diff --git a/lib/elk-api.d.ts b/lib/elk-api.d.ts new file mode 100644 index 0000000..ec7a608 --- /dev/null +++ b/lib/elk-api.d.ts @@ -0,0 +1,132 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export interface LayoutOptions { + [key: string]: string +} + +export interface ElkPoint { + x: number + y: number +} + +export interface ElkGraphElement { + id?: string + labels?: ElkLabel[] + layoutOptions?: LayoutOptions +} + +export interface ElkShape extends ElkGraphElement { + x?: number + y?: number + width?: number + height?: number +} + +export interface ElkNode extends ElkShape { + id: string + children?: ElkNode[] + ports?: ElkPort[] + edges?: ElkExtendedEdge[] +} + +export interface ElkPort extends ElkShape { + id: string +} + +export interface ElkLabel extends ElkShape { + text?: string +} + +/** + * @deprecated use ElkExtendedEdge directly + */ +export interface ElkEdge extends ElkGraphElement { + id: string + junctionPoints?: ElkPoint[] +} + +/** + * @deprecated use ElkExtendedEdge instead + */ +export interface ElkPrimitiveEdge extends ElkEdge { + source: string + sourcePort?: string + target: string + targetPort?: string + sourcePoint?: ElkPoint + targetPoint?: ElkPoint + bendPoints?: ElkPoint[] +} + +export interface ElkExtendedEdge extends ElkEdge { + sources: string[] + targets: string[] + sections?: ElkEdgeSection[] +} + +export interface ElkEdgeSection extends ElkGraphElement { + id: string + startPoint: ElkPoint + endPoint: ElkPoint + bendPoints?: ElkPoint[] + incomingShape?: string + outgoingShape?: string + incomingSections?: string[] + outgoingSections?: string[] +} + +export interface ElkLayoutArguments { + layoutOptions?: LayoutOptions + logging?: boolean + measureExecutionTime?: boolean +} + +export interface ElkCommonDescription { + id?: string + name?: string + description?: string +} + +export interface ElkLayoutAlgorithmDescription extends ElkCommonDescription { + category?: string + knownOptions?: string[] + supportedFeatures?: string[] +} + +export interface ElkLayoutOptionDescription extends ElkCommonDescription { + group?: string + type?: string + targets?: string[] +} + +export interface ElkLayoutCategoryDescription extends ElkCommonDescription { + knownLayouters?: string[] +} + +export interface ELK { + layout(graph: ElkNode, args?: ElkLayoutArguments): Promise; + knownLayoutAlgorithms(): Promise + knownLayoutOptions(): Promise + knownLayoutCategories(): Promise + terminateWorker(): void; +} + +export interface ELKConstructorArguments { + defaultLayoutOptions?: LayoutOptions + algorithms?: string[] + workerUrl?: string + workerFactory?: (url?: string) => Worker +} + +declare const ElkConstructor: { + new(args?: ELKConstructorArguments): ELK; +}; +export default ElkConstructor; diff --git a/lib/elk-api.js b/lib/elk-api.js new file mode 100644 index 0000000..29a0bde --- /dev/null +++ b/lib/elk-api.js @@ -0,0 +1,224 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + if (this.worker) this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +"use strict"; + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELK; +ELK.default = ELK; +},{"./elk-api.js":1}]},{},[2])(2) +}); diff --git a/lib/elk-worker.d.ts b/lib/elk-worker.d.ts new file mode 100644 index 0000000..77606b2 --- /dev/null +++ b/lib/elk-worker.d.ts @@ -0,0 +1 @@ +export type Worker = Worker diff --git a/lib/elk-worker.js b/lib/elk-worker.js new file mode 100644 index 0000000..d896f3a --- /dev/null +++ b/lib/elk-worker.js @@ -0,0 +1,105019 @@ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var _xblockexpression; + +// -------------- GENERATED CODE -------------- +var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {204:1, 51:1}, $intern_4 = {204:1, 51:1, 128:1}, $intern_5 = {229:1, 3:1}, $intern_6 = {51:1}, $intern_7 = {85:1}, $intern_8 = {20:1, 31:1, 16:1}, $intern_9 = 2063, $intern_10 = {20:1, 31:1, 16:1, 21:1}, $intern_11 = {85:1, 139:1, 133:1}, $intern_12 = {20:1, 31:1, 16:1, 21:1, 87:1}, $intern_13 = {20:1, 31:1, 16:1, 277:1, 21:1, 87:1}, $intern_14 = {51:1, 128:1}, $intern_15 = {358:1, 44:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {159:1}, $intern_19 = {41:1}, $intern_20 = {202:1}, $intern_21 = {l:4194303, m:4194303, h:524287}, $intern_22 = {253:1, 3:1, 34:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 16:1}, $intern_25 = {3:1, 20:1, 31:1, 16:1}, $intern_26 = {307:1, 3:1, 20:1, 31:1, 16:1, 15:1, 59:1}, $intern_27 = {3:1, 4:1, 5:1, 173:1}, $intern_28 = {3:1, 85:1}, $intern_29 = {20:1, 16:1, 21:1}, $intern_30 = {3:1, 20:1, 31:1, 16:1, 21:1}, $intern_31 = {20:1, 16:1, 21:1, 87:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 173:1}, $intern_35 = 1024, $intern_36 = 1073741824, $intern_37 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_38 = {20:1, 31:1, 56:1, 16:1, 15:1}, $intern_39 = {20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, $intern_40 = {46:1}, $intern_41 = {380:1}, $intern_42 = 1.0E-4, $intern_43 = -2147483648, $intern_44 = {3:1, 103:1, 63:1, 82:1}, $intern_45 = {201:1, 3:1, 4:1}, $intern_46 = 1000, $intern_47 = 65535, $intern_48 = 1900, $intern_49 = {53:1, 3:1, 4:1}, $intern_50 = {3:1, 4:1, 34:1, 206:1}, $intern_51 = 4194303, $intern_52 = 1048575, $intern_53 = 524288, $intern_54 = 4194304, $intern_55 = 17592186044416, $intern_56 = 1000000000, $intern_57 = -17592186044416, $intern_58 = {3:1, 103:1, 77:1, 63:1, 82:1}, $intern_59 = {3:1, 296:1, 82:1}, $intern_60 = Infinity, $intern_61 = -Infinity, $intern_62 = 4096, $intern_63 = {3:1, 4:1, 376:1}, $intern_64 = 65536, $intern_65 = 55296, $intern_66 = {109:1, 3:1, 4:1}, $intern_67 = 100000, $intern_68 = 0.3010299956639812, $intern_69 = 4294967295, $intern_70 = {44:1}, $intern_71 = {3:1, 4:1, 20:1, 31:1, 56:1, 13:1, 16:1, 15:1, 59:1}, $intern_72 = {3:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, $intern_73 = {20:1, 16:1, 15:1}, $intern_74 = {3:1, 50:1}, $intern_75 = {189:1}, $intern_76 = {3:1, 4:1, 85:1}, $intern_77 = {3:1, 4:1, 20:1, 31:1, 16:1, 49:1, 21:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, $intern_85 = {3:1, 34:1, 22:1, 304:1}, $intern_86 = {3:1, 4:1, 5:1, 856:1}, $intern_87 = {533:1, 687:1}, $intern_88 = {50:1}, $intern_89 = {178:1, 46:1}, $intern_90 = {134:1}, $intern_91 = {183:1, 3:1, 4:1}, $intern_92 = {217:1, 336:1}, $intern_93 = {3:1, 4:1, 5:1, 603:1}, $intern_94 = 0.01, $intern_95 = {3:1, 96:1, 137:1}, $intern_96 = {205:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 198:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 100:1, 115:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 126:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 150:1, 100:1, 115:1}, $intern_105 = {47:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 483:1, 150:1, 100:1, 115:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 150:1, 199:1, 210:1, 100:1, 115:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 150:1, 2042:1, 210:1, 100:1, 115:1}, $intern_109 = {3:1, 4:1, 140:1, 214:1, 423:1}, $intern_110 = {3:1, 4:1, 107:1, 214:1, 423:1}, $intern_111 = {230:1}, $intern_112 = {3:1, 4:1, 5:1, 601:1}, $intern_113 = {106:1, 47:1}, $intern_114 = {413:1, 230:1}, $intern_115 = {846:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 854:1}, $intern_117 = 1.0E-5, $intern_118 = 1.0E-6, $intern_119 = 0.09999999999999998, $intern_120 = 1.0E-8, $intern_121 = 4.71238898038469, $intern_122 = 3.141592653589793, $intern_123 = 0.10000000149011612, $intern_124 = -1.7976931348623157E308, $intern_125 = {3:1, 6:1, 4:1, 5:1, 534:1, 100:1, 115:1}, $intern_126 = 6.283185307179586, $intern_127 = 4.9E-324, $intern_128 = {3:1, 4:1, 5:1, 100:1}, $intern_129 = 5.497787143782138, $intern_130 = 3.9269908169872414, $intern_131 = 2.356194490192345, $intern_132 = {341:1}, $intern_133 = {295:1}, $intern_134 = 0.05, $intern_135 = 1.2999999523162842, $intern_136 = {3:1, 34:1, 22:1, 347:1}, $intern_137 = {94:1, 93:1}, $intern_138 = 32768, $intern_139 = {110:1, 94:1, 93:1, 58:1, 54:1, 99:1}, $intern_140 = {195:1, 3:1, 4:1}, $intern_141 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1}, $intern_142 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 51:1, 15:1, 59:1, 70:1, 66:1, 61:1, 596:1}, $intern_143 = {424:1, 686:1}, $intern_144 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 70:1, 61:1}, $intern_145 = {378:1, 152:1}, $intern_146 = {3:1, 4:1, 5:1, 129:1}, $intern_147 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 61:1}, $intern_148 = {3:1, 6:1, 4:1, 5:1, 198:1}, $intern_149 = {3:1, 4:1, 5:1, 173:1, 379:1}, $intern_150 = {79:1}, $intern_151 = {3:1, 20:1, 16:1, 15:1, 61:1, 597:1, 79:1, 71:1, 97:1}, $intern_152 = 8192, $intern_153 = 2048, $intern_154 = {3:1, 4:1, 5:1, 254:1}, $intern_155 = {3:1, 4:1, 5:1, 688:1}, $intern_156 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1, 71:1}, $intern_157 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1, 79:1, 71:1, 97:1}, $intern_158 = {3:1, 4:1, 5:1, 689:1}, $intern_159 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 70:1, 61:1, 79:1, 71:1, 97:1}, $intern_160 = {20:1, 31:1, 56:1, 16:1, 15:1, 61:1, 71:1}, $intern_161 = {51:1, 128:1, 287:1}, $intern_162 = {76:1, 343:1}, $intern_163 = 1352, $intern_164 = -32768, $intern_165 = {57:1}, $intern_166 = {3:1, 4:1, 5:1, 124:1}, $intern_167 = {94:1, 93:1, 599:1, 2034:1}, $intern_168 = 1114111, $intern_169 = {3:1, 122:1}, $intern_170 = {3:1, 4:1, 5:1, 381:1}; +var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; +function setGwtProperty(propertyName, propertyValue){ + typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); +} + +function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ + ensureModuleInit(); + var initFnList = initFnList_0; + $moduleName = modName; + $moduleBase = modBase; + permutationId = softPermutationId; + function initializeModules(){ + for (var i = 0; i < initFnList.length; i++) { + initFnList[i](); + } + } + + if (errFn) { + try { + $entry(initializeModules)(); + } + catch (e) { + errFn(modName, e); + } + } + else { + $entry(initializeModules)(); + } +} + +function ensureModuleInit(){ + initFnList_0 == null && (initFnList_0 = []); +} + +function addInitFunctions(){ + ensureModuleInit(); + var initFnList = initFnList_0; + for (var i = 0; i < arguments.length; i++) { + initFnList.push(arguments[i]); + } +} + +function typeMarkerFn(){ +} + +function toString_40(object){ + var number; + if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { + return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); + } + return object.toString(); +} + +function portableObjCreate(obj){ + function F(){ + } + + ; + F.prototype = obj || {}; + return new F; +} + +function makeLambdaFunction(samMethod, ctor, ctorArguments){ + var lambda = function(){ + return samMethod.apply(lambda, arguments); + } + ; + ctor.apply(lambda, ctorArguments); + return lambda; +} + +function emptyMethod(){ +} + +function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ + var prototypesByTypeId = prototypesByTypeId_0, superPrototype; + var prototype_0 = prototypesByTypeId[typeId]; + var clazz = prototype_0 instanceof Array?prototype_0[0]:null; + if (prototype_0 && !clazz) { + _ = prototype_0; + } + else { + _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); + _.castableTypeMap = castableTypeMap; + !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); + prototypesByTypeId[typeId] = _; + } + for (var i = 3; i < arguments.length; ++i) { + arguments[i].prototype = _; + } + clazz && (_.___clazz = clazz); +} + +$wnd.goog = $wnd.goog || {}; +$wnd.goog.global = $wnd.goog.global || $wnd; +prototypesByTypeId_0 = {}; +function $equals(this$static, other){ + return maskUndefined(this$static) === maskUndefined(other); +} + +function Object_0(){ +} + +function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ + return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other); +} + +function getClass__Ljava_lang_Class___devirtual$(this$static){ + return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; +} + +function hashCode__I__devirtual$(this$static){ + return instanceOfString(this$static)?$hashCode_2(this$static):instanceOfDouble(this$static)?$hashCode_1(this$static):instanceOfBoolean(this$static)?$hashCode_0(this$static):hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getObjectIdentityHashCode(this$static):$hashCode(this$static); +} + +defineClass(1, null, {}, Object_0); +_.equals_0 = function equals(other){ + return $equals(this, other); +} +; +_.getClass_0 = function getClass_0(){ + return this.___clazz; +} +; +_.hashCode_1 = function hashCode_0(){ + return getObjectIdentityHashCode(this); +} +; +_.toString_0 = function toString_1(){ + var number; + return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); +} +; +_.equals = function(other){ + return this.equals_0(other); +} +; +_.hashCode = function(){ + return this.hashCode_1(); +} +; +_.toString = function(){ + return this.toString_0(); +} +; +function canCast(src_0, dstId){ + if (instanceOfString(src_0)) { + return !!stringCastMap[dstId]; + } + else if (src_0.castableTypeMap) { + return !!src_0.castableTypeMap[dstId]; + } + else if (instanceOfDouble(src_0)) { + return !!doubleCastMap[dstId]; + } + else if (instanceOfBoolean(src_0)) { + return !!booleanCastMap[dstId]; + } + return false; +} + +function castTo(src_0, dstId){ + checkCriticalType(src_0 == null || canCast(src_0, dstId)); + return src_0; +} + +function castToArray(src_0){ + var elementTypeCategory; + checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))); + return src_0; +} + +function castToBoolean(src_0){ + checkCriticalType(src_0 == null || instanceOfBoolean(src_0)); + return src_0; +} + +function castToDouble(src_0){ + checkCriticalType(src_0 == null || instanceOfDouble(src_0)); + return src_0; +} + +function castToJso(src_0){ + checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn)); + return src_0; +} + +function castToString(src_0){ + checkCriticalType(src_0 == null || instanceOfString(src_0)); + return src_0; +} + +function charToString(x_0){ + return String.fromCharCode(x_0); +} + +function hasJavaObjectVirtualDispatch(src_0){ + return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function instanceOf(src_0, dstId){ + return src_0 != null && canCast(src_0, dstId); +} + +function instanceOfBoolean(src_0){ + return typeof src_0 === 'boolean'; +} + +function instanceOfDouble(src_0){ + return typeof src_0 === 'number'; +} + +function instanceOfJso(src_0){ + return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn); +} + +function instanceOfString(src_0){ + return typeof src_0 === 'string'; +} + +function isJsObjectOrFunction(src_0){ + return typeof src_0 === 'object' || typeof src_0 === 'function'; +} + +function maskUndefined(src_0){ + return src_0 == null?null:src_0; +} + +function round_int(x_0){ + return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; +} + +function throwClassCastExceptionUnlessNull(o){ + checkCriticalType(o == null); + return o; +} + +var booleanCastMap, doubleCastMap, stringCastMap; +function $ensureNamesAreInitialized(this$static){ + if (this$static.typeName != null) { + return; + } + initializeNames(this$static); +} + +function $getEnumConstants(this$static){ + return this$static.enumConstantsFunc && this$static.enumConstantsFunc(); +} + +function $getName(this$static){ + $ensureNamesAreInitialized(this$static); + return this$static.typeName; +} + +function $toString_5(this$static){ + return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName); +} + +function Class(){ + ++nextSequentialId; + this.typeName = null; + this.simpleName = null; + this.packageName = null; + this.compoundName = null; + this.canonicalName = null; + this.typeId = null; + this.arrayLiterals = null; +} + +function createClassObject(packageName, compoundClassName){ + var clazz; + clazz = new Class; + clazz.packageName = packageName; + clazz.compoundName = compoundClassName; + return clazz; +} + +function createForClass(packageName, compoundClassName, typeId){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + return clazz; +} + +function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + clazz.modifiers = enumConstantsFunc?8:0; + clazz.enumSuperclass = superclass; + clazz.enumConstantsFunc = enumConstantsFunc; + clazz.enumValueOfFunc = enumValueOfFunc; + return clazz; +} + +function createForInterface(packageName, compoundClassName){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + clazz.modifiers = 2; + return clazz; +} + +function createForPrimitive(className, primitiveTypeId){ + var clazz; + clazz = createClassObject('', className); + clazz.typeId = primitiveTypeId; + clazz.modifiers = 1; + return clazz; +} + +function getClassLiteralForArray_0(leafClass, dimensions){ + var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; + return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); +} + +function getPrototypeForClass(clazz){ + if (clazz.isPrimitive()) { + return null; + } + var typeId = clazz.typeId; + return prototypesByTypeId_0[typeId]; +} + +function initializeNames(clazz){ + if (clazz.isArray_1()) { + var componentType = clazz.componentType; + componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName()); + clazz.canonicalName = componentType.getCanonicalName() + '[]'; + clazz.simpleName = componentType.getSimpleName() + '[]'; + return; + } + var packageName = clazz.packageName; + var compoundName = clazz.compoundName; + compoundName = compoundName.split('/'); + clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); + clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); + clazz.simpleName = compoundName[compoundName.length - 1]; +} + +function join_0(separator, strings){ + var i = 0; + while (!strings[i] || strings[i] == '') { + i++; + } + var result = strings[i++]; + for (; i < strings.length; i++) { + if (!strings[i] || strings[i] == '') { + continue; + } + result += separator + strings[i]; + } + return result; +} + +function maybeSetClassLiteral(typeId, clazz){ + var proto; + if (!typeId) { + return; + } + clazz.typeId = typeId; + var prototype_0 = getPrototypeForClass(clazz); + if (!prototype_0) { + prototypesByTypeId_0[typeId] = [clazz]; + return; + } + prototype_0.___clazz = clazz; +} + +defineClass(297, 1, {297:1, 2124:1}, Class); +_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ + var clazz; + clazz = new Class; + clazz.modifiers = 4; + dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); + return clazz; +} +; +_.getCanonicalName = function getCanonicalName(){ + $ensureNamesAreInitialized(this); + return this.canonicalName; +} +; +_.getName = function getName(){ + return $getName(this); +} +; +_.getSimpleName = function getSimpleName(){ + return $ensureNamesAreInitialized(this) , this.simpleName; +} +; +_.isArray_1 = function isArray_1(){ + return (this.modifiers & 4) != 0; +} +; +_.isPrimitive = function isPrimitive(){ + return (this.modifiers & 1) != 0; +} +; +_.toString_0 = function toString_44(){ + return $toString_5(this); +} +; +_.modifiers = 0; +var nextSequentialId = 1; +var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); +var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 297); +defineClass(2096, 1, $intern_1); +var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 2096); +function $clinit_Absent(){ + $clinit_Absent = emptyMethod; + INSTANCE = new Absent; +} + +function Absent(){ +} + +defineClass(1191, 2096, $intern_1, Absent); +_.equals_0 = function equals_0(object){ + return object === this; +} +; +_.hashCode_1 = function hashCode_1(){ + return 2040732332; +} +; +_.toString_0 = function toString_2(){ + return 'Optional.absent()'; +} +; +_.transform = function transform(function_0){ + checkNotNull(function_0); + return $clinit_Absent() , INSTANCE; +} +; +var INSTANCE; +var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1191); +function $appendTo(this$static, appendable, parts){ + checkNotNull(appendable); + if (parts.hasNext_0()) { + $append_7(appendable, $toString(parts.next_1())); + while (parts.hasNext_0()) { + $append_7(appendable, this$static.separator); + $append_7(appendable, $toString(parts.next_1())); + } + } + return appendable; +} + +function $appendTo_0(this$static, builder, parts){ + var impossible; + try { + $appendTo(this$static, builder, parts); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 606)) { + impossible = $e0; + throw toJs(new AssertionError_0(impossible)); + } + else + throw toJs($e0); + } + return builder; +} + +function $join(this$static, parts){ + return $appendTo_0(this$static, new StringBuilder, parts).string; +} + +function $toString(part){ + requireNonNull(part); + return instanceOf(part, 484)?castTo(part, 484):toString_40(part); +} + +function Joiner(){ + this.separator = castToString(checkNotNull(', ')); +} + +defineClass(636, 1, {}, Joiner); +var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 636); +function equal(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function badElementIndex(index_0, size_0){ + if (index_0 < 0) { + return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_3(index_0)])); + } + else if (size_0 < 0) { + throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); + } + else { + return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_3(index_0), valueOf_3(size_0)])); + } +} + +function badPositionIndex(index_0, size_0, desc){ + if (index_0 < 0) { + return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_3(index_0)])); + } + else if (size_0 < 0) { + throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); + } + else { + return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_3(index_0), valueOf_3(size_0)])); + } +} + +function badPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || start_0 > size_0) { + return badPositionIndex(start_0, size_0, 'start index'); + } + if (end < 0 || end > size_0) { + return badPositionIndex(end, size_0, 'end index'); + } + return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_3(end), valueOf_3(start_0)])); +} + +function checkArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkArgument_1(b, p1){ + if (!b) { + throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1])))); + } +} + +function checkArgument_2(b, errorMessageTemplate, p1, p2){ + if (!b) { + throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2])))); + } +} + +function checkElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0))); + } + return index_0; +} + +function checkNotNull(reference){ + if (reference == null) { + throw toJs(new NullPointerException); + } + return reference; +} + +function checkNotNull_0(reference, errorMessage){ + if (reference == null) { + throw toJs(new NullPointerException_0(errorMessage)); + } + return reference; +} + +function checkPositionIndex(index_0, size_0){ + if (index_0 < 0 || index_0 > size_0) { + throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index'))); + } + return index_0; +} + +function checkPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || end < start_0 || end > size_0) { + throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0))); + } +} + +function checkState(expression){ + if (!expression) { + throw toJs(new IllegalStateException); + } +} + +function checkState_0(expression){ + if (!expression) { + throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); + } +} + +var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate'); +function toStringHelper(components){ + var builder, first, o, o$iterator; + builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40); + first = true; + for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) { + o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++)); + first || (builder.string += ',' , builder); + builder.string += '' + o; + first = false; + } + return (builder.string += ')' , builder).string; +} + +function $apply(this$static, t){ + var i; + for (i = 0; i < this$static.components.array.length; i++) { + if (!castTo($get_12(this$static.components, i), 178).apply_1(t)) { + return false; + } + } + return true; +} + +function Predicates$AndPredicate(components){ + this.components = components; +} + +defineClass(589, 1, {178:1, 589:1, 3:1, 46:1}, Predicates$AndPredicate); +_.test_0 = function test_0(input_0){ + return $apply(this, input_0); +} +; +_.apply_1 = function apply_1(t){ + return $apply(this, t); +} +; +_.equals_0 = function equals_1(obj){ + var that; + if (instanceOf(obj, 589)) { + that = castTo(obj, 589); + return $equals_2(this.components, that.components); + } + return false; +} +; +_.hashCode_1 = function hashCode_2(){ + return hashCode_49(this.components) + 306654252; +} +; +_.toString_0 = function toString_3(){ + return toStringHelper(this.components); +} +; +var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 589); +function Present(reference){ + this.reference = reference; +} + +defineClass(419, 2096, {419:1, 3:1}, Present); +_.equals_0 = function equals_2(object){ + var other; + if (instanceOf(object, 419)) { + other = castTo(object, 419); + return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference); + } + return false; +} +; +_.hashCode_1 = function hashCode_3(){ + return 1502476572 + hashCode__I__devirtual$(this.reference); +} +; +_.toString_0 = function toString_4(){ + return 'Optional.of(' + this.reference + ')'; +} +; +_.transform = function transform_0(function_0){ + return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.')); +} +; +var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 419); +function lenientFormat(template, args){ + var builder, i, i0, placeholderStart, templateStart; + template = template == null?'null':(checkCriticalNotNull(template) , template); + for (i0 = 0; i0 < args.length; i0++) { + args[i0] = lenientToString(args[i0]); + } + builder = new StringBuilder_0; + templateStart = 0; + i = 0; + while (i < args.length) { + placeholderStart = template.indexOf('%s', templateStart); + if (placeholderStart == -1) { + break; + } + builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart); + $append_10(builder, args[i++]); + templateStart = placeholderStart + 2; + } + $append_9(builder, template, templateStart, template.length); + if (i < args.length) { + builder.string += ' ['; + $append_10(builder, args[i++]); + while (i < args.length) { + builder.string += ', '; + $append_10(builder, args[i++]); + } + builder.string += ']'; + } + return builder.string; +} + +function lenientToString(o){ + var e, number, objectToString; + if (o == null) { + return 'null'; + } + try { + return toString_40(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + e = $e0; + objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16)); + $log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e); + return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>'; + } + else + throw toJs($e0); + } +} + +function $forEachRemaining(this$static, consumer){ + checkCriticalNotNull(consumer); + while (this$static.hasNext_0()) { + consumer.accept(this$static.next_1()); + } +} + +function $remove_21(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove(){ + throw toJs(new UnsupportedOperationException); +} + +defineClass(204, 1, $intern_3); +_.forEachRemaining = function forEachRemaining(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_0(){ + $remove(); +} +; +var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 204); +defineClass(2076, 204, $intern_4); +_.remove = function remove_1(){ + $remove(); +} +; +_.add_1 = function add_1(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_1(e){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 2076); +function AbstractIndexedListIterator(size_0){ + AbstractIndexedListIterator_0.call(this, size_0, 0); +} + +function AbstractIndexedListIterator_0(size_0, position){ + checkPositionIndex(position, size_0); + this.size_0 = size_0; + this.position = position; +} + +defineClass(399, 2076, $intern_4); +_.hasNext_0 = function hasNext(){ + return this.position < this.size_0; +} +; +_.hasPrevious = function hasPrevious(){ + return this.position > 0; +} +; +_.next_1 = function next_0(){ + if (this.position >= this.size_0) { + throw toJs(new NoSuchElementException); + } + return this.get_0(this.position++); +} +; +_.nextIndex_0 = function nextIndex_0(){ + return this.position; +} +; +_.previous_0 = function previous_0(){ + if (this.position <= 0) { + throw toJs(new NoSuchElementException); + } + return this.get_0(--this.position); +} +; +_.previousIndex = function previousIndex(){ + return this.position - 1; +} +; +_.position = 0; +_.size_0 = 0; +var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 399); +function $hasNext(this$static){ + checkState(this$static.state != 3); + switch (this$static.state) { + case 2: + return false; + case 0: + return true; + } + return $tryToComputeNext(this$static); +} + +function $next(this$static){ + var result; + if (!$hasNext(this$static)) { + throw toJs(new NoSuchElementException); + } + this$static.state = 1; + result = this$static.next_0; + this$static.next_0 = null; + return result; +} + +function $tryToComputeNext(this$static){ + this$static.state = 3; + this$static.next_0 = this$static.computeNext(); + if (this$static.state != 2) { + this$static.state = 0; + return true; + } + return false; +} + +defineClass(713, 204, $intern_3); +_.hasNext_0 = function hasNext_0(){ + return $hasNext(this); +} +; +_.next_1 = function next_1(){ + return $next(this); +} +; +_.state = 1; +var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 713); +function $containsEntry(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 16); + return !!collection && collection.contains(value_0); +} + +function $containsValue(this$static, value_0){ + var collection, collection$iterator; + for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) { + collection = castTo(collection$iterator.next_1(), 16); + if (collection.contains(value_0)) { + return true; + } + } + return false; +} + +function $keySet(this$static){ + var result; + result = this$static.keySet; + return !result?(this$static.keySet = this$static.createKeySet()):result; +} + +function $keys(this$static){ + var result; + result = this$static.keys_0; + return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result; +} + +function $remove_0(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 16); + return !!collection && collection.remove_1(value_0); +} + +defineClass(2084, 1, {229:1}); +_.asMap_0 = function asMap(){ + var result; + return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; +} +; +_.equals_0 = function equals_3(object){ + return equalsImpl_1(this, object); +} +; +_.hashCode_1 = function hashCode_4(){ + return hashCode__I__devirtual$(this.asMap_0()); +} +; +_.isEmpty = function isEmpty(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet_0(){ + return $keySet(this); +} +; +_.toString_0 = function toString_5(){ + return toString_40(this.asMap_0()); +} +; +var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 2084); +function $clear(this$static){ + var collection, collection$iterator; + for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) { + collection = castTo(collection$iterator.next_1(), 16); + collection.clear_0(); + } + this$static.map_0.clear_0(); + this$static.totalSize = 0; +} + +function $containsKey(this$static, key){ + return this$static.map_0.containsKey(key); +} + +function $entries(this$static){ + var result; + return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result; +} + +function $get(this$static, key){ + var collection; + collection = castTo(this$static.map_0.get_3(key), 16); + !collection && (collection = this$static.createCollection_0(key)); + return this$static.wrapCollection(key, collection); +} + +function $put(this$static, key, value_0){ + var collection; + collection = castTo(this$static.map_0.get_3(key), 16); + if (!collection) { + collection = this$static.createCollection_0(key); + if (collection.add_2(value_0)) { + ++this$static.totalSize; + this$static.map_0.put(key, collection); + return true; + } + else { + throw toJs(new AssertionError_0('New Collection violated the Collection spec')); + } + } + else if (collection.add_2(value_0)) { + ++this$static.totalSize; + return true; + } + else { + return false; + } +} + +function $removeAll(this$static, key){ + var collection, output; + collection = castTo(this$static.map_0.remove_0(key), 16); + if (!collection) { + return this$static.createUnmodifiableEmptyCollection(); + } + output = this$static.createCollection(); + output.addAll(collection); + this$static.totalSize -= collection.size_1(); + collection.clear_0(); + return this$static.unmodifiableCollectionSubclass(output); +} + +function $removeValuesForKey(this$static, key){ + var collection, count; + collection = castTo(safeRemove_0(this$static.map_0, key), 16); + if (collection) { + count = collection.size_1(); + collection.clear_0(); + this$static.totalSize -= count; + } +} + +function $values(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +function $wrapList(this$static, key, list, ancestor){ + return instanceOf(list, 59)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor); +} + +function AbstractMapBasedMultimap(map_0){ + checkArgument(map_0.isEmpty()); + this.map_0 = map_0; +} + +function iteratorOrListIterator(collection){ + return instanceOf(collection, 15)?castTo(collection, 15).listIterator_0():collection.iterator_0(); +} + +function lambda$1(keyToValueCollectionEntry_0){ + var key, valueCollection; + key = keyToValueCollectionEntry_0.getKey(); + valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 16); + return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); +} + +defineClass(742, 2084, $intern_5); +_.clear_0 = function clear_0(){ + $clear(this); +} +; +_.containsKey = function containsKey(key){ + return $containsKey(this, key); +} +; +_.createAsMap = function createAsMap(){ + return new AbstractMapBasedMultimap$AsMap(this, this.map_0); +} +; +_.createCollection_0 = function createCollection(key){ + return this.createCollection(); +} +; +_.createKeySet = function createKeySet(){ + return new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){ + return this.unmodifiableCollectionSubclass(this.createCollection()); +} +; +_.entryIterator = function entryIterator_0(){ + return new AbstractMapBasedMultimap$2(this); +} +; +_.entrySpliterator = function entrySpliterator_0(){ + return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize); +} +; +_.get_1 = function get_0(key){ + return $get(this, key); +} +; +_.removeAll = function removeAll(key){ + return $removeAll(this, key); +} +; +_.size_1 = function size_1(){ + return this.totalSize; +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){ + return $clinit_Collections() , new Collections$UnmodifiableCollection(collection); +} +; +_.valueIterator_0 = function valueIterator(){ + return new AbstractMapBasedMultimap$1(this); +} +; +_.valueSpliterator = function valueSpliterator(){ + return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize); +} +; +_.wrapCollection = function wrapCollection(key, collection){ + return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null); +} +; +_.totalSize = 0; +var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 742); +function $asMap(this$static){ + var result; + return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result; +} + +defineClass(1696, 742, $intern_5); +_.createCollection = function createCollection_0(){ + return new ArrayList_0(this.expectedValuesPerKey); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.get_1 = function get_1(key){ + return castTo($get(this, key), 15); +} +; +_.removeAll = function removeAll_0(key){ + return castTo($removeAll(this, key), 15); +} +; +_.asMap_0 = function asMap_0(){ + return $asMap(this); +} +; +_.equals_0 = function equals_4(object){ + return equalsImpl_1(this, object); +} +; +_.get_2 = function get_2(key){ + return castTo($get(this, key), 15); +} +; +_.removeAll_0 = function removeAll_1(key){ + return castTo($removeAll(this, key), 15); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){ + return unmodifiableList(castTo(collection, 15)); +} +; +_.wrapCollection = function wrapCollection_0(key, collection){ + return $wrapList(this, key, castTo(collection, 15), null); +} +; +var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1696); +function AbstractMapBasedMultimap$Itr(this$0){ + this.this$01 = this$0; + this.keyIterator = this$0.map_0.entrySet_0().iterator_0(); + this.key = null; + this.collection = null; + this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2); +} + +defineClass(748, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_0(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_1(){ + return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0(); +} +; +_.next_1 = function next_2(){ + var mapEntry; + if (!this.valueIterator.hasNext_0()) { + mapEntry = castTo(this.keyIterator.next_1(), 44); + this.key = mapEntry.getKey(); + this.collection = castTo(mapEntry.getValue(), 16); + this.valueIterator = this.collection.iterator_0(); + } + return this.output(this.key, this.valueIterator.next_1()); +} +; +_.remove = function remove_2(){ + this.valueIterator.remove(); + castTo(requireNonNull(this.collection), 16).isEmpty() && this.keyIterator.remove(); + --this.this$01.totalSize; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 748); +function AbstractMapBasedMultimap$1(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1129, 748, $intern_6, AbstractMapBasedMultimap$1); +_.output = function output_0(key, value_0){ + return value_0; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1129); +function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ +} + +defineClass(1130, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); +_.apply_0 = function apply_2(arg0){ + return castTo(arg0, 16).spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1130); +function AbstractMapBasedMultimap$2(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1131, 748, $intern_6, AbstractMapBasedMultimap$2); +_.output = function output_1(key, value_0){ + return new ImmutableEntry(key, value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1131); +function $forEach_2(this$static, consumer){ + var entry, entry$iterator; + checkCriticalNotNull(consumer); + for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + consumer.accept_1(entry.getKey(), entry.getValue()); + } +} + +function $merge(this$static, key, value_0, remappingFunction){ + var currentValue, newValue; + checkCriticalNotNull(remappingFunction); + checkCriticalNotNull(value_0); + currentValue = this$static.get_3(key); + newValue = currentValue == null?value_0:addAll_21(castTo(currentValue, 15), castTo(value_0, 16)); + newValue == null?this$static.remove_0(key):this$static.put(key, newValue); + return newValue; +} + +var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map'); +function $containsEntry_0(this$static, entry){ + var key, ourValue, value_0; + key = entry.getKey(); + value_0 = entry.getValue(); + ourValue = this$static.get_3(key); + if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) { + return false; + } + if (ourValue == null && !this$static.containsKey(key)) { + return false; + } + return true; +} + +function $implFindEntry(this$static, key, remove){ + var entry, iter, k; + for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) { + entry = castTo(iter.next_1(), 44); + k = entry.getKey(); + if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) { + if (remove) { + entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue()); + iter.remove(); + } + return entry; + } + } + return null; +} + +function $putAll(this$static, map_0){ + var e, e$iterator; + checkCriticalNotNull(map_0); + for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 44); + this$static.put(e.getKey(), e.getValue()); + } +} + +function $toString_0(this$static){ + var entry, entry$iterator, joiner; + joiner = new StringJoiner(', ', '{', '}'); + for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + $add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue())); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function $toString_1(this$static, o){ + return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o); +} + +function getEntryKeyOrNull(entry){ + return !entry?null:entry.key; +} + +function getEntryValueOrNull(entry){ + return !entry?null:entry.getValue(); +} + +defineClass(2065, 1, $intern_7); +_.forEach = function forEach(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_1(){ + this.entrySet_0().clear_0(); +} +; +_.containsEntry = function containsEntry(entry){ + return $containsEntry_0(this, entry); +} +; +_.containsKey = function containsKey_0(key){ + return !!$implFindEntry(this, key, false); +} +; +_.containsValue = function containsValue(value_0){ + var entry, entry$iterator, v; + for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + v = entry.getValue(); + if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) { + return true; + } + } + return false; +} +; +_.equals_0 = function equals_5(obj){ + var entry, entry$iterator, otherMap; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 85)) { + return false; + } + otherMap = castTo(obj, 85); + if (this.size_1() != otherMap.size_1()) { + return false; + } + for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + if (!this.containsEntry(entry)) { + return false; + } + } + return true; +} +; +_.get_3 = function get_3(key){ + return getEntryValueOrNull($implFindEntry(this, key, false)); +} +; +_.hashCode_1 = function hashCode_5(){ + return hashCode_48(this.entrySet_0()); +} +; +_.isEmpty = function isEmpty_0(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet_1(){ + return new AbstractMap$1(this); +} +; +_.put = function put(key, value_0){ + throw toJs(new UnsupportedOperationException_0('Put not supported on this map')); +} +; +_.putAll = function putAll(map_0){ + $putAll(this, map_0); +} +; +_.remove_0 = function remove_3(key){ + return getEntryValueOrNull($implFindEntry(this, key, true)); +} +; +_.size_1 = function size_2(){ + return this.entrySet_0().size_1(); +} +; +_.toString_0 = function toString_6(){ + return $toString_0(this); +} +; +_.values_0 = function values_1(){ + return new AbstractMap$2(this); +} +; +var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 2065); +function $entrySet(this$static){ + var result; + result = this$static.entrySet; + return !result?(this$static.entrySet = this$static.createEntrySet()):result; +} + +defineClass(2085, 2065, $intern_7); +_.createKeySet = function createKeySet_0(){ + return new Maps$KeySet(this); +} +; +_.entrySet_0 = function entrySet(){ + return $entrySet(this); +} +; +_.keySet_0 = function keySet_2(){ + var result; + result = this.keySet; + return !result?(this.keySet = this.createKeySet()):result; +} +; +_.values_0 = function values_2(){ + var result; + result = this.values; + return !result?(this.values = new Maps$Values(this)):result; +} +; +var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 2085); +function $get_0(this$static, key){ + var collection, k; + collection = castTo(safeGet(this$static.submap, key), 16); + if (!collection) { + return null; + } + k = key; + return this$static.this$01_1.wrapCollection(k, collection); +} + +function $remove_1(this$static, key){ + var collection, output; + collection = castTo(this$static.submap.remove_0(key), 16); + if (!collection) { + return null; + } + output = this$static.this$01_1.createCollection(); + output.addAll(collection); + this$static.this$01_1.totalSize -= collection.size_1(); + collection.clear_0(); + return output; +} + +function $wrapEntry(this$static, entry){ + var key; + key = entry.getKey(); + return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 16))); +} + +function AbstractMapBasedMultimap$AsMap(this$0, submap){ + this.this$01_1 = this$0; + this.submap = submap; +} + +defineClass(402, 2085, $intern_7, AbstractMapBasedMultimap$AsMap); +_.get_3 = function get_4(key){ + return $get_0(this, key); +} +; +_.remove_0 = function remove_4(key){ + return $remove_1(this, key); +} +; +_.clear_0 = function clear_2(){ + this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this)); +} +; +_.containsKey = function containsKey_1(key){ + return safeContainsKey(this.submap, key); +} +; +_.createEntrySet_0 = function createEntrySet(){ + return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this); +} +; +_.createEntrySet = function(){ + return this.createEntrySet_0(); +} +; +_.equals_0 = function equals_6(object){ + return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object); +} +; +_.hashCode_1 = function hashCode_6(){ + return hashCode__I__devirtual$(this.submap); +} +; +_.keySet_0 = function keySet_3(){ + return this.this$01_1.keySet_0(); +} +; +_.size_1 = function size_3(){ + return this.submap.size_1(); +} +; +_.toString_0 = function toString_7(){ + return toString_40(this.submap); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 402); +function $forEach_0(this$static, action){ + var t, t$iterator; + checkCriticalNotNull(action); + for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + action.accept(t); + } +} + +var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable'); +function $addAll(this$static, c){ + var changed, e, e$iterator; + checkCriticalNotNull(c); + changed = false; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + changed = changed | this$static.add_2(e); + } + return changed; +} + +function $advanceToFind(this$static, o, remove){ + var e, iter; + for (iter = this$static.iterator_0(); iter.hasNext_0();) { + e = iter.next_1(); + if (maskUndefined(o) === maskUndefined(e) || o != null && equals_Ljava_lang_Object__Z__devirtual$(o, e)) { + remove && iter.remove(); + return true; + } + } + return false; +} + +function $clear_0(this$static){ + var iter; + for (iter = this$static.iterator_0(); iter.hasNext_0();) { + iter.next_1(); + iter.remove(); + } +} + +function $containsAll(this$static, c){ + var e, e$iterator; + checkCriticalNotNull(c); + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + if (!this$static.contains(e)) { + return false; + } + } + return true; +} + +function $removeAll_0(this$static, c){ + var changed, iter, o; + checkCriticalNotNull(c); + changed = false; + for (iter = new ArrayList$1(this$static); iter.i < iter.this$01.array.length;) { + o = $next_6(iter); + if (c.contains(o)) { + $remove_13(iter); + changed = true; + } + } + return changed; +} + +function $toArray(this$static){ + return this$static.toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.size_1(), 5, 1)); +} + +function $toArray_0(this$static, a){ + var i, it, result, size_0; + size_0 = this$static.size_1(); + a.length < size_0 && (a = stampJavaTypeInfo_1(new Array(size_0), a)); + result = a; + it = this$static.iterator_0(); + for (i = 0; i < size_0; ++i) { + setCheck(result, i, it.next_1()); + } + a.length > size_0 && setCheck(a, size_0, null); + return a; +} + +function $toString_2(this$static){ + var e, e$iterator, joiner; + joiner = new StringJoiner(', ', '[', ']'); + for (e$iterator = this$static.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $add_9(joiner, maskUndefined(e) === maskUndefined(this$static)?'(this Collection)':e == null?'null':toString_40(e)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +defineClass(31, 1, $intern_8); +_.forEach_0 = function forEach_0(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream(){ + return this.stream(); +} +; +_.spliterator_0 = function spliterator_0(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_0(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_2(o){ + throw toJs(new UnsupportedOperationException_0('Add not supported on this collection')); +} +; +_.addAll = function addAll(c){ + return $addAll(this, c); +} +; +_.clear_0 = function clear_3(){ + $clear_0(this); +} +; +_.contains = function contains(o){ + return $advanceToFind(this, o, false); +} +; +_.containsAll = function containsAll(c){ + return $containsAll(this, c); +} +; +_.isEmpty = function isEmpty_1(){ + return this.size_1() == 0; +} +; +_.remove_1 = function remove_5(o){ + return $advanceToFind(this, o, true); +} +; +_.toArray = function toArray(){ + return $toArray(this); +} +; +_.toArray_0 = function toArray_0(a){ + return $toArray_0(this, a); +} +; +_.toString_0 = function toString_8(){ + return $toString_2(this); +} +; +var Ljava_util_AbstractCollection_2_classLit = createForClass('java.util', 'AbstractCollection', 31); +var Ljava_util_Set_2_classLit = createForInterface('java.util', 'Set'); +function $equals_0(this$static, o){ + var other; + if (maskUndefined(o) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(o, 21)) { + return false; + } + other = castTo(o, 21); + if (other.size_1() != this$static.size_1()) { + return false; + } + return this$static.containsAll(other); +} + +function $removeAll_1(this$static, c){ + var iter, o, o$iterator, size_0; + checkCriticalNotNull(c); + size_0 = this$static.map_0.size_1(); + if (size_0 < c.size_1()) { + for (iter = this$static.map_0.keySet_0().iterator_0(); iter.hasNext_0();) { + o = iter.next_1(); + c.contains(o) && iter.remove(); + } + } + else { + for (o$iterator = c.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + this$static.map_0.remove_0(o) != null; + } + } + return size_0 != this$static.map_0.size_1(); +} + +defineClass($intern_9, 31, $intern_10); +_.spliterator_0 = function spliterator_1(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_7(o){ + return $equals_0(this, o); +} +; +_.hashCode_1 = function hashCode_7(){ + return hashCode_48(this); +} +; +var Ljava_util_AbstractSet_2_classLit = createForClass('java.util', 'AbstractSet', $intern_9); +defineClass(2068, $intern_9, $intern_10); +var Lcom_google_common_collect_Sets$ImprovedAbstractSet_2_classLit = createForClass('com.google.common.collect', 'Sets/ImprovedAbstractSet', 2068); +function $contains(this$static, o){ + var entry, key, value_0; + if (instanceOf(o, 44)) { + entry = castTo(o, 44); + key = entry.getKey(); + value_0 = safeGet(this$static.map_1(), key); + return equal(value_0, entry.getValue()) && (value_0 != null || this$static.map_1().containsKey(key)); + } + return false; +} + +defineClass(2069, 2068, $intern_10); +_.clear_0 = function clear_4(){ + this.map_1().clear_0(); +} +; +_.contains = function contains_0(o){ + return $contains(this, o); +} +; +_.isEmpty = function isEmpty_2(){ + return this.map_1().isEmpty(); +} +; +_.remove_1 = function remove_6(o){ + var entry; + if (this.contains(o) && instanceOf(o, 44)) { + entry = castTo(o, 44); + return this.map_1().keySet_0().remove_1(entry.getKey()); + } + return false; +} +; +_.size_1 = function size_4(){ + return this.map_1().size_1(); +} +; +var Lcom_google_common_collect_Maps$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Maps/EntrySet', 2069); +function AbstractMapBasedMultimap$AsMap$AsMapEntries(this$1){ + this.this$11 = this$1; +} + +defineClass(1127, 2069, $intern_10, AbstractMapBasedMultimap$AsMap$AsMapEntries); +_.contains = function contains_1(o){ + return safeContains(this.this$11.submap.entrySet_0(), o); +} +; +_.iterator_0 = function iterator_0(){ + return new AbstractMapBasedMultimap$AsMap$AsMapIterator(this.this$11); +} +; +_.map_1 = function map_1(){ + return this.this$11; +} +; +_.remove_1 = function remove_7(o){ + var entry; + if (!safeContains(this.this$11.submap.entrySet_0(), o)) { + return false; + } + entry = castTo(requireNonNull(castTo(o, 44)), 44); + $removeValuesForKey(this.this$11.this$01_1, entry.getKey()); + return true; +} +; +_.spliterator_0 = function spliterator_2(){ + return map_2(this.this$11.submap.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type(this.this$11)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries', 1127); +function AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1128, 1, {}, AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type); +_.apply_0 = function apply_3(arg0){ + return $wrapEntry(this.$$outer_0, castTo(arg0, 44)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type', 1128); +function AbstractMapBasedMultimap$AsMap$AsMapIterator(this$1){ + this.this$11 = this$1; + this.delegateIterator = this.this$11.submap.entrySet_0().iterator_0(); +} + +defineClass(746, 1, $intern_6, AbstractMapBasedMultimap$AsMap$AsMapIterator); +_.forEachRemaining = function forEachRemaining_1(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_3(){ + var entry; + return entry = castTo(this.delegateIterator.next_1(), 44) , this.collection = castTo(entry.getValue(), 16) , $wrapEntry(this.this$11, entry); +} +; +_.hasNext_0 = function hasNext_2(){ + return this.delegateIterator.hasNext_0(); +} +; +_.remove = function remove_8(){ + checkState_0(!!this.collection); + this.delegateIterator.remove(); + this.this$11.this$01_1.totalSize -= this.collection.size_1(); + this.collection.clear_0(); + this.collection = null; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapIterator', 746); +function Maps$KeySet(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 85); +} + +defineClass(542, 2068, $intern_10, Maps$KeySet); +_.clear_0 = function clear_5(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_2(o){ + return this.map_0.containsKey(o); +} +; +_.forEach_0 = function forEach_1(action){ + checkNotNull(action); + this.map_0.forEach(new Maps$KeySet$lambda$0$Type(action)); +} +; +_.isEmpty = function isEmpty_3(){ + return this.map_0.isEmpty(); +} +; +_.iterator_0 = function iterator_1(){ + return new Maps$1(this.map_0.entrySet_0().iterator_0()); +} +; +_.remove_1 = function remove_9(o){ + if (this.map_0.containsKey(o)) { + this.map_0.remove_0(o); + return true; + } + return false; +} +; +_.size_1 = function size_5(){ + return this.map_0.size_1(); +} +; +var Lcom_google_common_collect_Maps$KeySet_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet', 542); +function AbstractMapBasedMultimap$KeySet(this$0, subMap){ + this.this$01 = this$0; + Maps$KeySet.call(this, subMap); +} + +defineClass(327, 542, $intern_10, AbstractMapBasedMultimap$KeySet); +_.clear_0 = function clear_6(){ + var entryIterator; + clear_20((entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator))); +} +; +_.containsAll = function containsAll_0(c){ + return this.map_0.keySet_0().containsAll(c); +} +; +_.equals_0 = function equals_8(object){ + return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.map_0.keySet_0(), object); +} +; +_.hashCode_1 = function hashCode_8(){ + return hashCode__I__devirtual$(this.map_0.keySet_0()); +} +; +_.iterator_0 = function iterator_2(){ + var entryIterator; + return entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator); +} +; +_.remove_1 = function remove_10(key){ + var collection, count; + count = 0; + collection = castTo(this.map_0.remove_0(key), 16); + if (collection) { + count = collection.size_1(); + collection.clear_0(); + this.this$01.totalSize -= count; + } + return count > 0; +} +; +_.spliterator_0 = function spliterator_3(){ + return this.map_0.keySet_0().spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet', 327); +function AbstractMapBasedMultimap$KeySet$1(this$1, val$entryIterator){ + this.this$11 = this$1; + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(747, 1, $intern_6, AbstractMapBasedMultimap$KeySet$1); +_.forEachRemaining = function forEachRemaining_2(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_3(){ + return this.val$entryIterator2.hasNext_0(); +} +; +_.next_1 = function next_4(){ + this.entry = castTo(this.val$entryIterator2.next_1(), 44); + return this.entry.getKey(); +} +; +_.remove = function remove_11(){ + var collection; + checkState_0(!!this.entry); + collection = castTo(this.entry.getValue(), 16); + this.val$entryIterator2.remove(); + this.this$11.this$01.totalSize -= collection.size_1(); + collection.clear_0(); + this.entry = null; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet/1', 747); +function AbstractMapBasedMultimap$SortedAsMap(this$0, submap){ + this.this$01_0 = this$0; + AbstractMapBasedMultimap$AsMap.call(this, this$0, submap); +} + +defineClass(503, 402, {85:1, 133:1}, AbstractMapBasedMultimap$SortedAsMap); +_.createKeySet = function createKeySet_1(){ + return this.createKeySet_0(); +} +; +_.keySet_0 = function keySet_4(){ + return this.keySet_1(); +} +; +_.createKeySet_0 = function createKeySet_2(){ + return new AbstractMapBasedMultimap$SortedKeySet(this.this$01_0, this.sortedMap()); +} +; +_.firstKey = function firstKey(){ + return this.sortedMap().firstKey(); +} +; +_.keySet_1 = function keySet_5(){ + var result; + return result = this.sortedKeySet , !result?(this.sortedKeySet = this.createKeySet_0()):result; +} +; +_.lastKey = function lastKey(){ + return this.sortedMap().lastKey(); +} +; +_.sortedMap = function sortedMap(){ + return castTo(this.submap, 133); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedAsMap', 503); +function AbstractMapBasedMultimap$NavigableAsMap(this$0, submap){ + this.this$01 = this$0; + AbstractMapBasedMultimap$SortedAsMap.call(this, this$0, submap); +} + +defineClass(446, 503, $intern_11, AbstractMapBasedMultimap$NavigableAsMap); +_.createKeySet = function createKeySet_3(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 133), 139)); +} +; +_.createKeySet_0 = function createKeySet_4(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 133), 139)); +} +; +_.keySet_0 = function keySet_6(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 133), 139))):result, 277); +} +; +_.keySet_1 = function keySet_7(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 133), 139))):result, 277); +} +; +_.sortedMap = function sortedMap_0(){ + return castTo(castTo(this.submap, 133), 139); +} +; +_.ceilingKey = function ceilingKey(key){ + return castTo(castTo(this.submap, 133), 139).ceilingKey(key); +} +; +_.floorKey = function floorKey(key){ + return castTo(castTo(this.submap, 133), 139).floorKey(key); +} +; +_.headMap = function headMap(toKey, inclusive){ + return new AbstractMapBasedMultimap$NavigableAsMap(this.this$01, castTo(castTo(this.submap, 133), 139).headMap(toKey, inclusive)); +} +; +_.higherKey = function higherKey(key){ + return castTo(castTo(this.submap, 133), 139).higherKey(key); +} +; +_.lowerKey = function lowerKey(key){ + return castTo(castTo(this.submap, 133), 139).lowerKey(key); +} +; +_.tailMap = function tailMap(fromKey, inclusive){ + return new AbstractMapBasedMultimap$NavigableAsMap(this.this$01, castTo(castTo(this.submap, 133), 139).tailMap(fromKey, inclusive)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableAsMap', 446); +function AbstractMapBasedMultimap$SortedKeySet(this$0, subMap){ + AbstractMapBasedMultimap$KeySet.call(this, this$0, subMap); +} + +defineClass(502, 327, $intern_12, AbstractMapBasedMultimap$SortedKeySet); +_.spliterator_0 = function spliterator_4(){ + return this.map_0.keySet_0().spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedKeySet', 502); +function AbstractMapBasedMultimap$NavigableKeySet(this$0, subMap){ + AbstractMapBasedMultimap$SortedKeySet.call(this, this$0, subMap); +} + +defineClass(401, 502, $intern_13, AbstractMapBasedMultimap$NavigableKeySet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableKeySet', 401); +function $addToMap(this$static){ + this$static.ancestor?$addToMap(this$static.ancestor):this$static.this$01_0.map_0.put(this$static.key, this$static.delegate); +} + +function $refreshIfEmpty(this$static){ + var newDelegate; + if (this$static.ancestor) { + $refreshIfEmpty(this$static.ancestor); + if (this$static.ancestor.delegate != this$static.ancestorDelegate) { + throw toJs(new ConcurrentModificationException); + } + } + else if (this$static.delegate.isEmpty()) { + newDelegate = castTo(this$static.this$01_0.map_0.get_3(this$static.key), 16); + !!newDelegate && (this$static.delegate = newDelegate); + } +} + +function $removeIfEmpty(this$static){ + this$static.ancestor?$removeIfEmpty(this$static.ancestor):this$static.delegate.isEmpty() && this$static.this$01_0.map_0.remove_0(this$static.key); +} + +function $size(this$static){ + $refreshIfEmpty(this$static); + return this$static.delegate.size_1(); +} + +function AbstractMapBasedMultimap$WrappedCollection(this$0, key, delegate, ancestor){ + this.this$01_0 = this$0; + this.key = key; + this.delegate = delegate; + this.ancestor = ancestor; + this.ancestorDelegate = !ancestor?null:ancestor.delegate; +} + +defineClass(551, 31, $intern_8, AbstractMapBasedMultimap$WrappedCollection); +_.add_2 = function add_3(value_0){ + var changed, wasEmpty; + $refreshIfEmpty(this); + wasEmpty = this.delegate.isEmpty(); + changed = this.delegate.add_2(value_0); + if (changed) { + ++this.this$01_0.totalSize; + wasEmpty && $addToMap(this); + } + return changed; +} +; +_.addAll = function addAll_0(collection){ + var changed, newSize, oldSize; + if (collection.isEmpty()) { + return false; + } + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + changed = this.delegate.addAll(collection); + if (changed) { + newSize = this.delegate.size_1(); + this.this$01_0.totalSize += newSize - oldSize; + oldSize == 0 && $addToMap(this); + } + return changed; +} +; +_.clear_0 = function clear_7(){ + var oldSize; + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + if (oldSize == 0) { + return; + } + this.delegate.clear_0(); + this.this$01_0.totalSize -= oldSize; + $removeIfEmpty(this); +} +; +_.contains = function contains_3(o){ + $refreshIfEmpty(this); + return this.delegate.contains(o); +} +; +_.containsAll = function containsAll_1(c){ + $refreshIfEmpty(this); + return this.delegate.containsAll(c); +} +; +_.equals_0 = function equals_9(object){ + if (object === this) { + return true; + } + $refreshIfEmpty(this); + return equals_Ljava_lang_Object__Z__devirtual$(this.delegate, object); +} +; +_.hashCode_1 = function hashCode_9(){ + $refreshIfEmpty(this); + return hashCode__I__devirtual$(this.delegate); +} +; +_.iterator_0 = function iterator_3(){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this); +} +; +_.remove_1 = function remove_12(o){ + var changed; + $refreshIfEmpty(this); + changed = this.delegate.remove_1(o); + if (changed) { + --this.this$01_0.totalSize; + $removeIfEmpty(this); + } + return changed; +} +; +_.size_1 = function size_6(){ + return $size(this); +} +; +_.spliterator_0 = function spliterator_5(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +_.toString_0 = function toString_9(){ + $refreshIfEmpty(this); + return toString_40(this.delegate); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection', 551); +function $sort_0(this$static, c){ + var a, i; + a = this$static.toArray(); + mergeSort(a, 0, a.length, c); + for (i = 0; i < a.length; i++) { + this$static.set_2(i, a[i]); + } +} + +var Ljava_util_List_2_classLit = createForInterface('java.util', 'List'); +function AbstractMapBasedMultimap$WrappedList(this$0, key, delegate, ancestor){ + this.this$01 = this$0; + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, ancestor); +} + +defineClass(744, 551, {20:1, 31:1, 16:1, 15:1}, AbstractMapBasedMultimap$WrappedList); +_.sort_0 = function sort_0(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_6(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +_.add_3 = function add_4(index_0, element){ + var wasEmpty; + $refreshIfEmpty(this); + wasEmpty = this.delegate.isEmpty(); + castTo(this.delegate, 15).add_3(index_0, element); + ++this.this$01.totalSize; + wasEmpty && $addToMap(this); +} +; +_.addAll_0 = function addAll_1(index_0, c){ + var changed, newSize, oldSize; + if (c.isEmpty()) { + return false; + } + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + changed = castTo(this.delegate, 15).addAll_0(index_0, c); + if (changed) { + newSize = this.delegate.size_1(); + this.this$01.totalSize += newSize - oldSize; + oldSize == 0 && $addToMap(this); + } + return changed; +} +; +_.get_0 = function get_5(index_0){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).get_0(index_0); +} +; +_.indexOf_0 = function indexOf(o){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).indexOf_0(o); +} +; +_.listIterator_0 = function listIterator(){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this); +} +; +_.listIterator_1 = function listIterator_0(index_0){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this, index_0); +} +; +_.remove_2 = function remove_13(index_0){ + var value_0; + $refreshIfEmpty(this); + value_0 = castTo(this.delegate, 15).remove_2(index_0); + --this.this$01.totalSize; + $removeIfEmpty(this); + return value_0; +} +; +_.set_2 = function set_2(index_0, element){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).set_2(index_0, element); +} +; +_.subList = function subList_0(fromIndex, toIndex){ + $refreshIfEmpty(this); + return $wrapList(this.this$01, this.key, castTo(this.delegate, 15).subList(fromIndex, toIndex), !this.ancestor?this:this.ancestor); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList', 744); +function AbstractMapBasedMultimap$RandomAccessWrappedList(this$0, key, delegate, ancestor){ + AbstractMapBasedMultimap$WrappedList.call(this, this$0, key, delegate, ancestor); +} + +defineClass(1126, 744, {20:1, 31:1, 16:1, 15:1, 59:1}, AbstractMapBasedMultimap$RandomAccessWrappedList); +var Lcom_google_common_collect_AbstractMapBasedMultimap$RandomAccessWrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/RandomAccessWrappedList', 1126); +function $$init(this$static){ + this$static.originalDelegate = this$static.this$11_0.delegate; +} + +function $remove_2(this$static){ + this$static.delegateIterator.remove(); + --this$static.this$11_0.this$01_0.totalSize; + $removeIfEmpty(this$static.this$11_0); +} + +function $validateIterator(this$static){ + $refreshIfEmpty(this$static.this$11_0); + if (this$static.this$11_0.delegate != this$static.originalDelegate) { + throw toJs(new ConcurrentModificationException); + } +} + +function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this$1){ + this.this$11_0 = this$1; + $$init(this); + this.delegateIterator = iteratorOrListIterator(this$1.delegate); +} + +function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0(this$1, delegateIterator){ + this.this$11_0 = this$1; + $$init(this); + this.delegateIterator = delegateIterator; +} + +defineClass(628, 1, $intern_6, AbstractMapBasedMultimap$WrappedCollection$WrappedIterator); +_.forEachRemaining = function forEachRemaining_3(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_4(){ + $validateIterator(this); + return this.delegateIterator.hasNext_0(); +} +; +_.next_1 = function next_5(){ + $validateIterator(this); + return this.delegateIterator.next_1(); +} +; +_.remove = function remove_14(){ + $remove_2(this); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator', 628); +function AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this$1){ + this.this$11 = this$1; + AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.call(this, this$1); +} + +function AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this$1, index_0){ + this.this$11 = this$1; + AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0.call(this, this$1, castTo(this$1.delegate, 15).listIterator_1(index_0)); +} + +defineClass(745, 628, $intern_14, AbstractMapBasedMultimap$WrappedList$WrappedListIterator, AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0); +_.remove = function remove_15(){ + $remove_2(this); +} +; +_.add_1 = function add_5(value_0){ + var wasEmpty; + wasEmpty = $size(this.this$11) == 0; + ($validateIterator(this) , castTo(this.delegateIterator, 128)).add_1(value_0); + ++this.this$11.this$01.totalSize; + wasEmpty && $addToMap(this.this$11); +} +; +_.hasPrevious = function hasPrevious_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 128)).hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 128)).nextIndex_0(); +} +; +_.previous_0 = function previous_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 128)).previous_0(); +} +; +_.previousIndex = function previousIndex_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 128)).previousIndex(); +} +; +_.set_1 = function set_3(value_0){ + ($validateIterator(this) , castTo(this.delegateIterator, 128)).set_1(value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList$WrappedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList/WrappedListIterator', 745); +function AbstractMapBasedMultimap$WrappedSortedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(743, 551, $intern_12, AbstractMapBasedMultimap$WrappedSortedSet); +_.spliterator_0 = function spliterator_7(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSortedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSortedSet', 743); +function AbstractMapBasedMultimap$WrappedNavigableSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedSortedSet.call(this, this$0, key, delegate); +} + +defineClass(1125, 743, $intern_13, AbstractMapBasedMultimap$WrappedNavigableSet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedNavigableSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedNavigableSet', 1125); +function AbstractMapBasedMultimap$WrappedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(1124, 551, $intern_10, AbstractMapBasedMultimap$WrappedSet); +_.spliterator_0 = function spliterator_8(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSet', 1124); +function AbstractMapBasedMultimap$lambda$1$Type(){ +} + +defineClass(1133, 1, {}, AbstractMapBasedMultimap$lambda$1$Type); +_.apply_0 = function apply_4(arg0){ + return lambda$1(castTo(arg0, 44)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$1$Type', 1133); +function AbstractMapBasedMultimap$lambda$2$Type(key_0){ + this.key_0 = key_0; +} + +defineClass(1132, 1, {}, AbstractMapBasedMultimap$lambda$2$Type); +_.apply_0 = function apply_5(arg0){ + return new ImmutableEntry(this.key_0, arg0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$2$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$2$Type', 1132); +var Ljava_util_Map$Entry_2_classLit = createForInterface('java.util', 'Map/Entry'); +defineClass(358, 1, $intern_15); +_.equals_0 = function equals_10(object){ + var that; + if (instanceOf(object, 44)) { + that = castTo(object, 44); + return equal(this.getKey(), that.getKey()) && equal(this.getValue(), that.getValue()); + } + return false; +} +; +_.hashCode_1 = function hashCode_10(){ + var k, v; + k = this.getKey(); + v = this.getValue(); + return (k == null?0:hashCode__I__devirtual$(k)) ^ (v == null?0:hashCode__I__devirtual$(v)); +} +; +_.setValue = function setValue(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_10(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Lcom_google_common_collect_AbstractMapEntry_2_classLit = createForClass('com.google.common.collect', 'AbstractMapEntry', 358); +defineClass(2086, 31, $intern_8); +_.clear_0 = function clear_8(){ + this.multimap_0().clear_0(); +} +; +_.contains = function contains_4(o){ + var entry; + if (instanceOf(o, 44)) { + entry = castTo(o, 44); + return $containsEntry(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.remove_1 = function remove_16(o){ + var entry; + if (instanceOf(o, 44)) { + entry = castTo(o, 44); + return $remove_0(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.size_1 = function size_7(){ + return this.multimap_0().totalSize; +} +; +var Lcom_google_common_collect_Multimaps$Entries_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Entries', 2086); +function AbstractMultimap$Entries(this$0){ + this.this$01 = this$0; +} + +defineClass(749, 2086, $intern_8, AbstractMultimap$Entries); +_.iterator_0 = function iterator_4(){ + return this.this$01.entryIterator(); +} +; +_.multimap_0 = function multimap_0(){ + return this.this$01; +} +; +_.spliterator_0 = function spliterator_9(){ + return this.this$01.entrySpliterator(); +} +; +var Lcom_google_common_collect_AbstractMultimap$Entries_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Entries', 749); +function AbstractMultimap$EntrySet(this$0){ + AbstractMultimap$Entries.call(this, this$0); +} + +defineClass(750, 749, $intern_10, AbstractMultimap$EntrySet); +_.spliterator_0 = function spliterator_10(){ + return this.this$01.entrySpliterator(); +} +; +_.equals_0 = function equals_11(obj){ + return equalsImpl_3(this, obj); +} +; +_.hashCode_1 = function hashCode_11(){ + return hashCodeImpl_0(this); +} +; +var Lcom_google_common_collect_AbstractMultimap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/EntrySet', 750); +function AbstractMultimap$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(751, 31, $intern_8, AbstractMultimap$Values); +_.clear_0 = function clear_9(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_5(o){ + return $containsValue(this.this$01, o); +} +; +_.iterator_0 = function iterator_5(){ + return this.this$01.valueIterator_0(); +} +; +_.size_1 = function size_8(){ + return this.this$01.totalSize; +} +; +_.spliterator_0 = function spliterator_11(){ + return this.this$01.valueSpliterator(); +} +; +var Lcom_google_common_collect_AbstractMultimap$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Values', 751); +function lambda$0_1(entry_1){ + entry_1.val$backingEntry2.getKey(); + castTo(entry_1.val$backingEntry2.getValue(), 16).size_1(); + $add(); +} + +function lambda$1_0(action_0, entry_1){ + var count, elem, i; + elem = entry_1.val$backingEntry2.getKey(); + count = castTo(entry_1.val$backingEntry2.getValue(), 16).size_1(); + for (i = 0; i < count; i++) { + action_0.accept(elem); + } +} + +function $add(){ + throw toJs(new UnsupportedOperationException); +} + +function $entrySet_0(this$static){ + var result; + result = this$static.entrySet; + !result && (this$static.entrySet = result = new AbstractMultiset$EntrySet(this$static)); + return result; +} + +function $forEachEntry(this$static, action){ + checkNotNull(action); + $entrySet_0(this$static).forEach_0(new Multiset$lambda$0$Type); +} + +defineClass(2087, 31, {849:1, 20:1, 31:1, 16:1}); +_.forEach_0 = function forEach_2(action){ + checkNotNull(action); + $entrySet_0(this).forEach_0(new Multiset$lambda$1$Type(action)); +} +; +_.spliterator_0 = function spliterator_12(){ + var entrySpliterator; + return entrySpliterator = $entrySet_0(this).spliterator_0() , flatMap(entrySpliterator, new Multisets$lambda$1$Type, 64 | entrySpliterator.characteristics_0() & 1296, this.multimap.totalSize); +} +; +_.add_2 = function add_6(element){ + $add(); + return true; +} +; +_.addAll = function addAll_2(elementsToAdd){ + return checkNotNull(this) , checkNotNull(elementsToAdd) , instanceOf(elementsToAdd, 552)?addAllImpl(castTo(elementsToAdd, 849)):!elementsToAdd.isEmpty() && addAll_7(this, elementsToAdd.iterator_0()); +} +; +_.contains = function contains_6(element){ + var values; + return values = castTo(safeGet($asMap(this.multimap), element), 16) , (!values?0:values.size_1()) > 0; +} +; +_.equals_0 = function equals_12(object){ + return equalsImpl_2(this, object); +} +; +_.hashCode_1 = function hashCode_12(){ + return hashCode__I__devirtual$($entrySet_0(this)); +} +; +_.isEmpty = function isEmpty_4(){ + return $entrySet_0(this).isEmpty(); +} +; +_.remove_1 = function remove_17(element){ + return $remove_5(this, element, 1) > 0; +} +; +_.toString_0 = function toString_11(){ + return toString_40($entrySet_0(this)); +} +; +var Lcom_google_common_collect_AbstractMultiset_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset', 2087); +defineClass(2089, 2068, $intern_10); +_.clear_0 = function clear_10(){ + $clear(this.this$01.multimap); +} +; +_.contains = function contains_7(o){ + var count, entry; + if (instanceOf(o, 504)) { + entry = castTo(o, 425); + if (castTo(entry.val$backingEntry2.getValue(), 16).size_1() <= 0) { + return false; + } + count = $count(this.this$01, entry.val$backingEntry2.getKey()); + return count == castTo(entry.val$backingEntry2.getValue(), 16).size_1(); + } + return false; +} +; +_.remove_1 = function remove_18(object){ + var element, entry, entryCount, multiset; + if (instanceOf(object, 504)) { + entry = castTo(object, 425); + element = entry.val$backingEntry2.getKey(); + entryCount = castTo(entry.val$backingEntry2.getValue(), 16).size_1(); + if (entryCount != 0) { + multiset = this.this$01; + return setCountImpl(multiset, element, entryCount); + } + } + return false; +} +; +var Lcom_google_common_collect_Multisets$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multisets/EntrySet', 2089); +function AbstractMultiset$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1139, 2089, $intern_10, AbstractMultiset$EntrySet); +_.iterator_0 = function iterator_6(){ + return new Multimaps$Keys$1($entrySet($asMap(this.this$01.multimap)).iterator_0()); +} +; +_.size_1 = function size_9(){ + return $asMap(this.this$01.multimap).size_1(); +} +; +var Lcom_google_common_collect_AbstractMultiset$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset/EntrySet', 1139); +function AbstractSetMultimap(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(627, 742, $intern_5); +_.createCollection = function createCollection_1(){ + return this.createCollection_1(); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_1(){ + return this.createUnmodifiableEmptyCollection_0(); +} +; +_.get_1 = function get_6(key){ + return this.get_4(key); +} +; +_.removeAll = function removeAll_2(key){ + return this.removeAll_1(key); +} +; +_.asMap_0 = function asMap_1(){ + var result; + return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; +} +; +_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_2(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_SET; +} +; +_.equals_0 = function equals_13(object){ + return equalsImpl_1(this, object); +} +; +_.get_4 = function get_7(key){ + return castTo($get(this, key), 21); +} +; +_.removeAll_1 = function removeAll_3(key){ + return castTo($removeAll(this, key), 21); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_1(collection){ + return $clinit_Collections() , new Collections$UnmodifiableSet(castTo(collection, 21)); +} +; +_.wrapCollection = function wrapCollection_1(key, collection){ + return new AbstractMapBasedMultimap$WrappedSet(this, key, castTo(collection, 21)); +} +; +var Lcom_google_common_collect_AbstractSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSetMultimap', 627); +function $values_0(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +defineClass(1723, 627, $intern_5); +_.createCollection = function createCollection_2(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createCollection_1 = function createCollection_3(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_3(){ + return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); +} +; +_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_4(){ + return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); +} +; +_.get_1 = function get_8(key){ + return castTo(castTo($get(this, key), 21), 87); +} +; +_.get_4 = function get_9(key){ + return castTo(castTo($get(this, key), 21), 87); +} +; +_.removeAll = function removeAll_4(key){ + return castTo(castTo($removeAll(this, key), 21), 87); +} +; +_.removeAll_1 = function removeAll_5(key){ + return castTo(castTo($removeAll(this, key), 21), 87); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_2(collection){ + return instanceOf(collection, 277)?unmodifiableNavigableSet(castTo(collection, 277)):($clinit_Collections() , new Collections$UnmodifiableSortedSet(castTo(collection, 87))); +} +; +_.asMap_0 = function asMap_2(){ + var result; + return result = this.asMap , !result?(this.asMap = instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result; +} +; +_.wrapCollection = function wrapCollection_2(key, collection){ + return instanceOf(collection, 277)?new AbstractMapBasedMultimap$WrappedNavigableSet(this, key, castTo(collection, 277)):new AbstractMapBasedMultimap$WrappedSortedSet(this, key, castTo(collection, 87)); +} +; +var Lcom_google_common_collect_AbstractSortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedSetMultimap', 1723); +function AbstractSortedKeySortedSetMultimap(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1724, 1723, $intern_5); +_.asMap_0 = function asMap_3(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 133), 139); +} +; +_.keySet_0 = function keySet_8(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 87), 277); +} +; +_.createKeySet = function createKeySet_5(){ + return instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +var Lcom_google_common_collect_AbstractSortedKeySortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedKeySortedSetMultimap', 1724); +defineClass(2109, 1, {2046:1}); +_.equals_0 = function equals_14(obj){ + return equalsImpl_4(this, obj); +} +; +_.hashCode_1 = function hashCode_13(){ + var result; + return hashCode_48((result = this.cellSet , !result?(this.cellSet = new AbstractTable$CellSet(this)):result)); +} +; +_.toString_0 = function toString_12(){ + var map_0; + return $toString_0((map_0 = this.rowMap , !map_0?(this.rowMap = new ArrayTable$RowMap(this)):map_0)); +} +; +var Lcom_google_common_collect_AbstractTable_2_classLit = createForClass('com.google.common.collect', 'AbstractTable', 2109); +function AbstractTable$CellSet(this$0){ + this.this$01 = this$0; +} + +defineClass(679, $intern_9, $intern_10, AbstractTable$CellSet); +_.clear_0 = function clear_11(){ + $clear_1(); +} +; +_.contains = function contains_8(o){ + var cell, row; + if (instanceOf(o, 479)) { + cell = castTo(o, 697); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 85); + return !!row && safeContains(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); + } + return false; +} +; +_.iterator_0 = function iterator_7(){ + return $cellIterator(this.this$01); +} +; +_.remove_1 = function remove_19(o){ + var cell, row; + if (instanceOf(o, 479)) { + cell = castTo(o, 697); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 85); + return !!row && safeRemove(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); + } + return false; +} +; +_.size_1 = function size_10(){ + return $size_0(this.this$01); +} +; +_.spliterator_0 = function spliterator_13(){ + return $cellSpliterator(this.this$01); +} +; +var Lcom_google_common_collect_AbstractTable$CellSet_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/CellSet', 679); +function AbstractTable$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(2025, 31, $intern_8, AbstractTable$Values); +_.clear_0 = function clear_12(){ + $clear_1(); +} +; +_.contains = function contains_9(o){ + return $containsValue_0(this.this$01, o); +} +; +_.iterator_0 = function iterator_8(){ + return $valuesIterator(this.this$01); +} +; +_.size_1 = function size_11(){ + return $size_0(this.this$01); +} +; +_.spliterator_0 = function spliterator_14(){ + return $valuesSpliterator(this.this$01); +} +; +var Lcom_google_common_collect_AbstractTable$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/Values', 2025); +function ArrayListMultimapGwtSerializationDependencies(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(1697, 1696, $intern_5); +var Lcom_google_common_collect_ArrayListMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimapGwtSerializationDependencies', 1697); +function ArrayListMultimap(){ + ArrayListMultimap_0.call(this, 12, 3); +} + +function ArrayListMultimap_0(expectedKeys, expectedValuesPerKey){ + ArrayListMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(expectedKeys))); + checkNonnegative(expectedValuesPerKey, 'expectedValuesPerKey'); + this.expectedValuesPerKey = expectedValuesPerKey; +} + +defineClass(520, 1697, $intern_5, ArrayListMultimap, ArrayListMultimap_0); +_.createCollection = function createCollection_4(){ + return new ArrayList_0(this.expectedValuesPerKey); +} +; +_.expectedValuesPerKey = 0; +var Lcom_google_common_collect_ArrayListMultimap_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimap', 520); +function $at(this$static, rowIndex, columnIndex){ + checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); + checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); + return this$static.array[rowIndex][columnIndex]; +} + +function $cellIterator(this$static){ + return new ArrayTable$1(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); +} + +function $cellSpliterator(this$static){ + return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 273, new ArrayTable$1methodref$getCell$Type(this$static)); +} + +function $clear_1(){ + throw toJs(new UnsupportedOperationException); +} + +function $containsValue_0(this$static, value_0){ + var element, element$array, element$index, element$max, row, row$array, row$index, row$max; + for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + for (element$array = row , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + if (maskUndefined(value_0) === maskUndefined(element) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, element)) { + return true; + } + } + } + return false; +} + +function $eraseAll(this$static){ + var row, row$array, row$index, row$max; + for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + fill0_2(row, row.length, null); + } +} + +function $get_1(this$static, rowKey, columnKey){ + var columnIndex, rowIndex; + rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 17); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 17); + return !rowIndex || !columnIndex?null:$at(this$static, rowIndex.value_0, columnIndex.value_0); +} + +function $getValue(this$static, index_0){ + var columnIndex, rowIndex; + rowIndex = index_0 / this$static.columnList.delegateList_0().size_1() | 0; + columnIndex = index_0 % this$static.columnList.delegateList_0().size_1(); + return $at(this$static, rowIndex, columnIndex); +} + +function $put_0(this$static, rowKey, columnKey, value_0){ + var columnIndex, rowIndex; + checkNotNull(rowKey); + checkNotNull(columnKey); + rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 17); + checkArgument_2(!!rowIndex, 'Row %s not in %s', rowKey, this$static.rowList); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 17); + checkArgument_2(!!columnIndex, 'Column %s not in %s', columnKey, this$static.columnList); + return $set(this$static, rowIndex.value_0, columnIndex.value_0, value_0); +} + +function $rowMap(this$static){ + var map_0; + map_0 = this$static.rowMap; + return !map_0?(this$static.rowMap = new ArrayTable$RowMap(this$static)):map_0; +} + +function $set(this$static, rowIndex, columnIndex, value_0){ + var oldValue; + checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); + checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); + oldValue = this$static.array[rowIndex][columnIndex]; + setCheck(this$static.array[rowIndex], columnIndex, value_0); + return oldValue; +} + +function $size_0(this$static){ + return this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(); +} + +function $values_1(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractTable$Values(this$static)):result; +} + +function $valuesIterator(this$static){ + return new ArrayTable$3(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); +} + +function $valuesSpliterator(this$static){ + return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 16, new ArrayTable$2methodref$getValue$Type(this$static)); +} + +function ArrayTable(rowKeys, columnKeys){ + var tmpArray; + this.rowList = ($clinit_ImmutableList() , checkNotNull(rowKeys) , $clinit_ImmutableList() , copyFromCollection(rowKeys)); + this.columnList = (checkNotNull(columnKeys) , copyFromCollection(columnKeys)); + checkArgument(this.rowList.delegateList_0().isEmpty() == this.columnList.delegateList_0().isEmpty()); + this.rowKeyToIndex = indexMap(this.rowList); + this.columnKeyToIndex = indexMap(this.columnList); + tmpArray = initMultidimensionalArray(Ljava_lang_Object_2_classLit, [$intern_16, $intern_2], [5, 1], 5, [this.rowList.delegateList_0().size_1(), this.columnList.delegateList_0().size_1()], 2); + this.array = tmpArray; + $eraseAll(this); +} + +defineClass(678, 2109, {678:1, 2046:1, 3:1}, ArrayTable); +var Lcom_google_common_collect_ArrayTable_2_classLit = createForClass('com.google.common.collect', 'ArrayTable', 678); +function ArrayTable$1(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(2021, 399, $intern_4, ArrayTable$1); +_.get_0 = function get_10(index_0){ + return new ArrayTable$2(this.this$01, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1', 2021); +function ArrayTable$1methodref$getCell$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(2022, 1, {}, ArrayTable$1methodref$getCell$Type); +_.apply_2 = function apply_6(arg0){ + return new ArrayTable$2(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$1methodref$getCell$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1methodref$getCell$Type', 2022); +defineClass(2110, 1, {697:1}); +_.equals_0 = function equals_15(obj){ + var other; + if (obj === this) { + return true; + } + if (instanceOf(obj, 479)) { + other = castTo(obj, 697); + return equal($get_2(this.this$01.rowList, this.rowIndex), $get_2(other.this$01.rowList, other.rowIndex)) && equal($get_2(this.this$01.columnList, this.columnIndex), $get_2(other.this$01.columnList, other.columnIndex)) && equal($at(this.this$01, this.rowIndex, this.columnIndex), $at(other.this$01, other.rowIndex, other.columnIndex)); + } + return false; +} +; +_.hashCode_1 = function hashCode_14(){ + return hashCode_47(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [$get_2(this.this$01.rowList, this.rowIndex), $get_2(this.this$01.columnList, this.columnIndex), $at(this.this$01, this.rowIndex, this.columnIndex)])); +} +; +_.toString_0 = function toString_13(){ + return '(' + $get_2(this.this$01.rowList, this.rowIndex) + ',' + $get_2(this.this$01.columnList, this.columnIndex) + ')=' + $at(this.this$01, this.rowIndex, this.columnIndex); +} +; +var Lcom_google_common_collect_Tables$AbstractCell_2_classLit = createForClass('com.google.common.collect', 'Tables/AbstractCell', 2110); +function ArrayTable$2(this$0, val$index){ + this.this$01 = this$0; + this.val$index2 = val$index; + this.rowIndex = this.val$index2 / this.this$01.columnList.delegateList_0().size_1() | 0; + this.columnIndex = this.val$index2 % this.this$01.columnList.delegateList_0().size_1(); +} + +defineClass(479, 2110, {479:1, 697:1}, ArrayTable$2); +_.columnIndex = 0; +_.rowIndex = 0; +_.val$index2 = 0; +var Lcom_google_common_collect_ArrayTable$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2', 479); +function ArrayTable$2methodref$getValue$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(2024, 1, {}, ArrayTable$2methodref$getValue$Type); +_.apply_2 = function apply_7(arg0){ + return $getValue(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$2methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2methodref$getValue$Type', 2024); +function ArrayTable$3(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(2023, 399, $intern_4, ArrayTable$3); +_.get_0 = function get_11(index_0){ + return $getValue(this.this$01, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$3_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/3', 2023); +function $forEachEntry_0(this$static, action){ + this$static.entryIterator().forEachRemaining(action); +} + +defineClass(2077, 2065, $intern_7); +_.clear_0 = function clear_13(){ + clear_20(this.entryIterator()); +} +; +_.entrySet_0 = function entrySet_0(){ + return new Maps$IteratorBasedAbstractMap$1(this); +} +; +_.entrySpliterator = function entrySpliterator_1(){ + return new Spliterators$IteratorSpliterator_1(this.entryIterator(), this.size_1()); +} +; +var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap', 2077); +function $getEntry(this$static, index_0){ + checkElementIndex(index_0, this$static.keyIndex.delegate.map_0.size_1()); + return new ArrayTable$ArrayMap$1(this$static, index_0); +} + +function $getKey(this$static, index_0){ + return $keySet_0(this$static.keyIndex).asList_1().get_0(index_0); +} + +function ArrayTable$ArrayMap(keyIndex){ + this.keyIndex = keyIndex; +} + +defineClass(842, 2077, $intern_7); +_.clear_0 = function clear_14(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_2(key){ + return $containsKey_0(this.keyIndex, key); +} +; +_.entryIterator = function entryIterator_1(){ + return new ArrayTable$ArrayMap$2(this, this.keyIndex.delegate.map_0.size_1()); +} +; +_.entrySpliterator = function entrySpliterator_2(){ + return indexed(this.keyIndex.delegate.map_0.size_1(), 16, new ArrayTable$ArrayMap$0methodref$getEntry$Type(this)); +} +; +_.get_3 = function get_12(key){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 17); + return !index_0?null:this.getValue_0(index_0.value_0); +} +; +_.isEmpty = function isEmpty_5(){ + return this.keyIndex.delegate.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_9(){ + return $keySet_0(this.keyIndex); +} +; +_.put = function put_0(key, value_0){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 17); + if (!index_0) { + throw toJs(new IllegalArgumentException_0(this.getKeyRole() + ' ' + key + ' not in ' + $keySet_0(this.keyIndex))); + } + return this.setValue_0(index_0.value_0, value_0); +} +; +_.remove_0 = function remove_20(key){ + throw toJs(new UnsupportedOperationException); +} +; +_.size_1 = function size_12(){ + return this.keyIndex.delegate.map_0.size_1(); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap', 842); +function ArrayTable$ArrayMap$0methodref$getEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(2020, 1, {}, ArrayTable$ArrayMap$0methodref$getEntry$Type); +_.apply_2 = function apply_8(arg0){ + return $getEntry(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap$0methodref$getEntry$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/0methodref$getEntry$Type', 2020); +function ArrayTable$ArrayMap$1(this$1, val$index){ + this.this$11 = this$1; + this.val$index2 = val$index; +} + +defineClass(2018, 358, $intern_15, ArrayTable$ArrayMap$1); +_.getKey = function getKey(){ + return $getKey(this.this$11, this.val$index2); +} +; +_.getValue = function getValue(){ + return this.this$11.getValue_0(this.val$index2); +} +; +_.setValue = function setValue_0(value_0){ + return this.this$11.setValue_0(this.val$index2, value_0); +} +; +_.val$index2 = 0; +var Lcom_google_common_collect_ArrayTable$ArrayMap$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/1', 2018); +function ArrayTable$ArrayMap$2(this$1, $anonymous0){ + this.this$11 = this$1; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(2019, 399, $intern_4, ArrayTable$ArrayMap$2); +_.get_0 = function get_13(index_0){ + return $getEntry(this.this$11, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/2', 2019); +function ArrayTable$Row(this$0, rowIndex){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.columnKeyToIndex); + this.rowIndex = rowIndex; +} + +defineClass(2017, 842, $intern_7, ArrayTable$Row); +_.getKeyRole = function getKeyRole(){ + return 'Column'; +} +; +_.getValue_0 = function getValue_0(index_0){ + return $at(this.this$01, this.rowIndex, index_0); +} +; +_.setValue_0 = function setValue_1(index_0, newValue){ + return $set(this.this$01, this.rowIndex, index_0, newValue); +} +; +_.rowIndex = 0; +var Lcom_google_common_collect_ArrayTable$Row_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/Row', 2017); +function $put_1(){ + throw toJs(new UnsupportedOperationException); +} + +function $setValue(){ + throw toJs(new UnsupportedOperationException); +} + +function ArrayTable$RowMap(this$0){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.rowKeyToIndex); +} + +defineClass(843, 842, $intern_7, ArrayTable$RowMap); +_.getValue_0 = function getValue_1(index_0){ + return new ArrayTable$Row(this.this$01, index_0); +} +; +_.put = function put_1(key, value_0){ + return castTo(value_0, 85) , $put_1(); +} +; +_.setValue_0 = function setValue_2(index_0, newValue){ + return castTo(newValue, 85) , $setValue(); +} +; +_.getKeyRole = function getKeyRole_0(){ + return 'Row'; +} +; +var Lcom_google_common_collect_ArrayTable$RowMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/RowMap', 843); +function checkEntryNotNull(key, value_0){ + if (key == null) { + throw toJs(new NullPointerException_0('null key in entry: null=' + value_0)); + } + else if (value_0 == null) { + throw toJs(new NullPointerException_0('null value in entry: ' + key + '=null')); + } +} + +function checkNonnegative(value_0, name_0){ + if (value_0 < 0) { + throw toJs(new IllegalArgumentException_0(name_0 + ' cannot be negative but was: ' + value_0)); + } + return value_0; +} + +function flatMap(fromSpliterator, function_0, topCharacteristics, topSize){ + checkArgument_0((topCharacteristics & $intern_17) == 0, 'flatMap does not support SUBSIZED characteristic'); + checkArgument_0((topCharacteristics & 4) == 0, 'flatMap does not support SORTED characteristic'); + checkNotNull(fromSpliterator); + checkNotNull(function_0); + return new CollectSpliterators$FlatMapSpliteratorOfObject(fromSpliterator, function_0, topCharacteristics, topSize); +} + +function indexed(size_0, extraCharacteristics, function_0){ + return new CollectSpliterators$1WithCharacteristics(range_0(size_0).spliterator_1(), function_0, extraCharacteristics); +} + +function map_2(fromSpliterator, function_0){ + checkNotNull(fromSpliterator); + checkNotNull(function_0); + return new CollectSpliterators$1(fromSpliterator, function_0); +} + +function $forEachRemaining_0(this$static, consumer){ + while (this$static.tryAdvance(consumer)) + ; +} + +function CollectSpliterators$1(val$fromSpliterator, val$function){ + this.val$fromSpliterator1 = val$fromSpliterator; + this.val$function2 = val$function; +} + +defineClass(1157, 1, $intern_18, CollectSpliterators$1); +_.hasCharacteristics = function hasCharacteristics(characteristics){ + return (this.val$fromSpliterator1.characteristics_0() & -262 & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_0(){ + return this.val$fromSpliterator1.characteristics_0() & -262; +} +; +_.estimateSize_0 = function estimateSize(){ + return this.val$fromSpliterator1.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_4(action){ + this.val$fromSpliterator1.forEachRemaining(new CollectSpliterators$1$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance(action){ + return this.val$fromSpliterator1.tryAdvance(new CollectSpliterators$1$lambda$0$Type(action, this.val$function2)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1', 1157); +function CollectSpliterators$1$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1158, 1, $intern_19, CollectSpliterators$1$lambda$0$Type); +_.accept = function accept_0(arg0){ + this.action_0.accept(this.function_1.apply_0(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$0$Type', 1158); +function CollectSpliterators$1$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1159, 1, $intern_19, CollectSpliterators$1$lambda$1$Type); +_.accept = function accept_1(arg0){ + this.action_0.accept(this.function_1.apply_0(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$1$Type', 1159); +function CollectSpliterators$1WithCharacteristics(delegate, val$function, val$extraCharacteristics){ + this.val$function2 = val$function; + this.val$extraCharacteristics3 = val$extraCharacteristics; + this.delegate = delegate; +} + +defineClass(1154, 1, $intern_18, CollectSpliterators$1WithCharacteristics); +_.hasCharacteristics = function hasCharacteristics_0(characteristics){ + return ((16464 | this.val$extraCharacteristics3) & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_1(){ + return 16464 | this.val$extraCharacteristics3; +} +; +_.estimateSize_0 = function estimateSize_0(){ + return this.delegate.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_5(action){ + this.delegate.forEachRemaining_0(new CollectSpliterators$1WithCharacteristics$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance_0(action){ + return this.delegate.tryAdvance_0(new CollectSpliterators$1WithCharacteristics$lambda$0$Type(action, this.val$function2)); +} +; +_.val$extraCharacteristics3 = 0; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics', 1154); +function CollectSpliterators$1WithCharacteristics$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1155, 1, $intern_20, CollectSpliterators$1WithCharacteristics$lambda$0$Type); +_.accept_0 = function accept_2(arg0){ + this.action_0.accept(this.function_1.apply_2(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$0$Type', 1155); +function CollectSpliterators$1WithCharacteristics$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1156, 1, $intern_20, CollectSpliterators$1WithCharacteristics$lambda$1$Type); +_.accept_0 = function accept_3(arg0){ + this.action_0.accept(this.function_1.apply_2(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$1$Type', 1156); +function $lambda$0(this$static, fromElement_0){ + return this$static.prefix = castTo(this$static.function_0.apply_0(fromElement_0), 159); +} + +function $lambda$1(this$static, action_1, fromElement_1){ + var elements; + elements = castTo(this$static.function_0.apply_0(fromElement_1), 159); + !!elements && elements.forEachRemaining(action_1); +} + +defineClass(1150, 1, $intern_18); +_.hasCharacteristics = function hasCharacteristics_1(characteristics){ + return (this.characteristics & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_2(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_1(){ + !!this.prefix && (this.estimatedSize = max_1(this.estimatedSize, this.prefix.estimateSize_0())); + return max_1(this.estimatedSize, 0); +} +; +_.forEachRemaining = function forEachRemaining_6(action){ + if (this.prefix) { + this.prefix.forEachRemaining(action); + this.prefix = null; + } + this.from.forEachRemaining(new CollectSpliterators$FlatMapSpliterator$lambda$1$Type(this, action)); + this.estimatedSize = 0; +} +; +_.tryAdvance = function tryAdvance_1(action){ + while (true) { + if (!!this.prefix && this.prefix.tryAdvance(action)) { + neq(this.estimatedSize, $intern_21) && (this.estimatedSize = sub_2(this.estimatedSize, 1)); + return true; + } + else { + this.prefix = null; + } + if (!this.from.tryAdvance(new CollectSpliterators$FlatMapSpliterator$lambda$0$Type(this))) { + return false; + } + } +} +; +_.characteristics = 0; +_.estimatedSize = 0; +var Lcom_google_common_collect_CollectSpliterators$FlatMapSpliterator_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/FlatMapSpliterator', 1150); +function CollectSpliterators$FlatMapSpliterator$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1152, 1, $intern_19, CollectSpliterators$FlatMapSpliterator$lambda$0$Type); +_.accept = function accept_4(arg0){ + $lambda$0(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$FlatMapSpliterator$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/FlatMapSpliterator/lambda$0$Type', 1152); +function CollectSpliterators$FlatMapSpliterator$lambda$1$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1153, 1, $intern_19, CollectSpliterators$FlatMapSpliterator$lambda$1$Type); +_.accept = function accept_5(arg0){ + $lambda$1(this.$$outer_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$FlatMapSpliterator$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/FlatMapSpliterator/lambda$1$Type', 1153); +function CollectSpliterators$FlatMapSpliteratorOfObject(from, function_0, characteristics, estimatedSize){ + this.prefix = null; + this.from = from; + this.function_0 = function_0; + this.characteristics = characteristics; + this.estimatedSize = estimatedSize; +} + +defineClass(1151, 1150, $intern_18, CollectSpliterators$FlatMapSpliteratorOfObject); +var Lcom_google_common_collect_CollectSpliterators$FlatMapSpliteratorOfObject_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/FlatMapSpliteratorOfObject', 1151); +function safeContains(collection, object){ + checkNotNull(collection); + try { + return collection.contains(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212) || instanceOf($e0, 169)) { + return false; + } + else + throw toJs($e0); + } +} + +function safeRemove(collection, object){ + checkNotNull(collection); + try { + return collection.remove_1(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212) || instanceOf($e0, 169)) { + return false; + } + else + throw toJs($e0); + } +} + +function $equals_1(this$static, obj){ + var compareResult, that; + if (instanceOf(obj, 253)) { + that = castTo(obj, 253); + try { + compareResult = this$static.compareTo(that); + return compareResult == 0; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212)) { + return false; + } + else + throw toJs($e0); + } + } + return false; +} + +function Cut(endpoint){ + this.endpoint = endpoint; +} + +defineClass(253, 1, $intern_22); +_.compareTo_0 = function compareTo_0(that){ + return this.compareTo(castTo(that, 253)); +} +; +_.compareTo = function compareTo(that){ + var result; + if (that == ($clinit_Cut$BelowAll() , INSTANCE_1)) { + return 1; + } + if (that == ($clinit_Cut$AboveAll() , INSTANCE_0)) { + return -1; + } + result = ($clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, that.endpoint)); + if (result != 0) { + return result; + } + return instanceOf(this, 526) == instanceOf(that, 526)?0:instanceOf(this, 526)?1:-1; +} +; +_.endpoint_0 = function endpoint_0(){ + return this.endpoint; +} +; +_.equals_0 = function equals_16(obj){ + return $equals_1(this, obj); +} +; +var Lcom_google_common_collect_Cut_2_classLit = createForClass('com.google.common.collect', 'Cut', 253); +function $clinit_Cut$AboveAll(){ + $clinit_Cut$AboveAll = emptyMethod; + INSTANCE_0 = new Cut$AboveAll; +} + +function Cut$AboveAll(){ + Cut.call(this, ''); +} + +defineClass(1823, 253, $intern_22, Cut$AboveAll); +_.compareTo = function compareTo_1(o){ + return o == this?0:1; +} +; +_.describeAsLowerBound = function describeAsLowerBound(sb){ + throw toJs(new AssertionError); +} +; +_.describeAsUpperBound = function describeAsUpperBound(sb){ + sb.string += '+\u221E)'; +} +; +_.endpoint_0 = function endpoint_1(){ + throw toJs(new IllegalStateException_0('range unbounded on this side')); +} +; +_.hashCode_1 = function hashCode_15(){ + return $clinit_System() , getIdentityHashCode(this); +} +; +_.isLessThan = function isLessThan(value_0){ + return false; +} +; +_.toString_0 = function toString_14(){ + return '+\u221E'; +} +; +var INSTANCE_0; +var Lcom_google_common_collect_Cut$AboveAll_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveAll', 1823); +function Cut$AboveValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 34)); +} + +defineClass(526, 253, {253:1, 526:1, 3:1, 34:1}, Cut$AboveValue); +_.describeAsLowerBound = function describeAsLowerBound_0(sb){ + $append_10((sb.string += '(' , sb), this.endpoint); +} +; +_.describeAsUpperBound = function describeAsUpperBound_0(sb){ + $append_5($append_10(sb, this.endpoint), 93); +} +; +_.hashCode_1 = function hashCode_16(){ + return ~hashCode__I__devirtual$(this.endpoint); +} +; +_.isLessThan = function isLessThan_0(value_0){ + return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) < 0; +} +; +_.toString_0 = function toString_15(){ + return '/' + this.endpoint + '\\'; +} +; +var Lcom_google_common_collect_Cut$AboveValue_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveValue', 526); +function $clinit_Cut$BelowAll(){ + $clinit_Cut$BelowAll = emptyMethod; + INSTANCE_1 = new Cut$BelowAll; +} + +function Cut$BelowAll(){ + Cut.call(this, ''); +} + +defineClass(1822, 253, $intern_22, Cut$BelowAll); +_.compareTo = function compareTo_2(o){ + return o == this?0:-1; +} +; +_.describeAsLowerBound = function describeAsLowerBound_1(sb){ + sb.string += '(-\u221E'; +} +; +_.describeAsUpperBound = function describeAsUpperBound_1(sb){ + throw toJs(new AssertionError); +} +; +_.endpoint_0 = function endpoint_2(){ + throw toJs(new IllegalStateException_0('range unbounded on this side')); +} +; +_.hashCode_1 = function hashCode_17(){ + return $clinit_System() , getIdentityHashCode(this); +} +; +_.isLessThan = function isLessThan_1(value_0){ + return true; +} +; +_.toString_0 = function toString_16(){ + return '-\u221E'; +} +; +var INSTANCE_1; +var Lcom_google_common_collect_Cut$BelowAll_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowAll', 1822); +function Cut$BelowValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 34)); +} + +defineClass(1824, 253, $intern_22, Cut$BelowValue); +_.describeAsLowerBound = function describeAsLowerBound_2(sb){ + $append_10((sb.string += '[' , sb), this.endpoint); +} +; +_.describeAsUpperBound = function describeAsUpperBound_2(sb){ + $append_5($append_10(sb, this.endpoint), 41); +} +; +_.hashCode_1 = function hashCode_18(){ + return hashCode__I__devirtual$(this.endpoint); +} +; +_.isLessThan = function isLessThan_2(value_0){ + return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) <= 0; +} +; +_.toString_0 = function toString_17(){ + return '\\' + this.endpoint + '/'; +} +; +var Lcom_google_common_collect_Cut$BelowValue_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowValue', 1824); +function FluentIterable(){ + $clinit_Absent(); +} + +function concatNoDefensiveCopy(inputs){ + var input_0, input$array, input$index, input$max; + for (input$array = inputs , input$index = 0 , input$max = input$array.length; input$index < input$max; ++input$index) { + input_0 = input$array[input$index]; + checkNotNull(input_0); + } + return new FluentIterable$3(inputs); +} + +defineClass(547, 1, $intern_23); +_.forEach_0 = function forEach_3(action){ + $forEach_0(this, action); +} +; +_.toString_0 = function toString_18(){ + return toString_25(castTo(checkNotNull_0(this, 'use Optional.orNull() instead of Optional.or(null)'), 20).iterator_0()); +} +; +var Lcom_google_common_collect_FluentIterable_2_classLit = createForClass('com.google.common.collect', 'FluentIterable', 547); +function FluentIterable$2(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(442, 547, $intern_23, FluentIterable$2); +_.iterator_0 = function iterator_9(){ + return new Iterators$ConcatenatedIterator(transform_2(this.val$inputs1.iterator_0(), new Iterables$10)); +} +; +var Lcom_google_common_collect_FluentIterable$2_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/2', 442); +function $iterator(this$static){ + return new Iterators$ConcatenatedIterator(new FluentIterable$3$1(this$static.val$inputs1.length, this$static.val$inputs1)); +} + +function FluentIterable$3(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(1059, 547, $intern_23, FluentIterable$3); +_.iterator_0 = function iterator_10(){ + return $iterator(this); +} +; +var Lcom_google_common_collect_FluentIterable$3_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3', 1059); +function FluentIterable$3$1($anonymous0, val$inputs){ + this.val$inputs3 = val$inputs; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(724, 399, $intern_4, FluentIterable$3$1); +_.get_0 = function get_14(i){ + return this.val$inputs3[i].iterator_0(); +} +; +var Lcom_google_common_collect_FluentIterable$3$1_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3/1', 724); +defineClass(2070, 1, {}); +_.toString_0 = function toString_19(){ + return toString_40(this.delegate_0().coll); +} +; +var Lcom_google_common_collect_ForwardingObject_2_classLit = createForClass('com.google.common.collect', 'ForwardingObject', 2070); +defineClass(2071, 2070, $intern_24); +_.delegate_0 = function delegate_0(){ + return this.delegate_1(); +} +; +_.forEach_0 = function forEach_4(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_0(){ + return this.stream(); +} +; +_.spliterator_0 = function spliterator_15(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_1(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_7(element){ + return this.delegate_1() , $add_4(); +} +; +_.addAll = function addAll_3(collection){ + return this.delegate_1() , $addAll_3(); +} +; +_.clear_0 = function clear_15(){ + this.delegate_1() , $clear_5(); +} +; +_.contains = function contains_10(object){ + return this.delegate_1().contains(object); +} +; +_.containsAll = function containsAll_2(collection){ + return this.delegate_1().containsAll(collection); +} +; +_.isEmpty = function isEmpty_6(){ + return this.delegate_1().coll.isEmpty(); +} +; +_.iterator_0 = function iterator_11(){ + return this.delegate_1().iterator_0(); +} +; +_.remove_1 = function remove_21(object){ + return this.delegate_1() , $remove_14(); +} +; +_.size_1 = function size_13(){ + return this.delegate_1().coll.size_1(); +} +; +_.toArray = function toArray_1(){ + return this.delegate_1().toArray(); +} +; +_.toArray_0 = function toArray_2(array){ + return this.delegate_1().toArray_0(array); +} +; +var Lcom_google_common_collect_ForwardingCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingCollection', 2071); +function $clinit_ImmutableCollection(){ + $clinit_ImmutableCollection = emptyMethod; + new ForwardingImmutableCollection(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +defineClass(2078, 31, $intern_25); +_.iterator_0 = function iterator_12(){ + return this.iterator_1(); +} +; +_.add_2 = function add_8(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_4(newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.asList_1 = function asList(){ + var list; + list = this.asList_0; + return !list?(this.asList_0 = this.createAsList()):list; +} +; +_.clear_0 = function clear_16(){ + throw toJs(new UnsupportedOperationException); +} +; +_.contains = function contains_11(object){ + return object != null && $advanceToFind(this, object, false); +} +; +_.createAsList = function createAsList(){ + switch (this.size_1()) { + case 0: + return $clinit_ImmutableList() , $clinit_ImmutableList() , EMPTY; + case 1: + return $clinit_ImmutableList() , new SingletonImmutableList(checkNotNull(this.iterator_1().next_1())); + default:return new RegularImmutableAsList_0(this, this.toArray()); + } +} +; +_.remove_1 = function remove_22(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_ImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection', 2078); +function ForwardingImmutableCollection(delegate){ + $clinit_ImmutableCollection(); + this.delegate = delegate; +} + +defineClass(727, 2078, $intern_25, ForwardingImmutableCollection); +_.iterator_0 = function iterator_14(){ + return unmodifiableIterator(this.delegate.iterator_0()); +} +; +_.contains = function contains_12(object){ + return object != null && this.delegate.contains(object); +} +; +_.containsAll = function containsAll_3(targets){ + return this.delegate.containsAll(targets); +} +; +_.isEmpty = function isEmpty_7(){ + return this.delegate.isEmpty(); +} +; +_.iterator_1 = function iterator_13(){ + return unmodifiableIterator(this.delegate.iterator_0()); +} +; +_.size_1 = function size_14(){ + return this.delegate.size_1(); +} +; +_.toArray = function toArray_3(){ + return this.delegate.toArray(); +} +; +_.toArray_0 = function toArray_4(other){ + return this.delegate.toArray_0(other); +} +; +_.toString_0 = function toString_20(){ + return toString_40(this.delegate); +} +; +var Lcom_google_common_collect_ForwardingImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableCollection', 727); +function $clinit_ImmutableList(){ + $clinit_ImmutableList = emptyMethod; + $clinit_ImmutableCollection(); + EMPTY = new RegularImmutableList(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +function $listIterator(this$static, index_0){ + return new ImmutableList$1(this$static, this$static.size_1(), index_0); +} + +function $reverse(this$static){ + var list; + list = (checkNotNull(this$static) , this$static?new ArrayList_1(this$static):newArrayList_0(this$static.iterator_0())); + reverse_2(list); + return unsafeDelegateList(list); +} + +function copyFromCollection(collection){ + $clinit_ImmutableList(); + var elements; + elements = collection.toArray(); + switch (elements.length) { + case 0: + return EMPTY; + case 1: + return new SingletonImmutableList(checkNotNull(elements[0])); + default:return new RegularImmutableList(nullCheckedList(elements)); + } +} + +function nullCheckedList(array){ + var castedArray, i, len; + for (i = 0 , len = array.length; i < len; i++) { + if (array[i] == null) { + throw toJs(new NullPointerException_0('at index ' + i)); + } + } + castedArray = array; + return new Arrays$ArrayList(castedArray); +} + +function unsafeDelegateList(list){ + var castedList; + switch (list.size_1()) { + case 0: + return EMPTY; + case 1: + return new SingletonImmutableList(checkNotNull(list.get_0(0))); + default:castedList = list; + return new RegularImmutableList(castedList); + } +} + +defineClass(307, 2078, $intern_26); +_.iterator_0 = function iterator_16(){ + return this.iterator_1(); +} +; +_.listIterator_0 = function listIterator_1(){ + return this.listIterator_2(0); +} +; +_.listIterator_1 = function listIterator_3(index_0){ + return this.listIterator_2(index_0); +} +; +_.sort_0 = function sort_1(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_16(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.subList = function subList_2(fromIndex, toIndex){ + return this.subList_0(fromIndex, toIndex); +} +; +_.add_3 = function add_9(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_5(index_0, newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.asList_1 = function asList_0(){ + return this; +} +; +_.equals_0 = function equals_17(obj){ + return equalsImpl(this, obj); +} +; +_.hashCode_1 = function hashCode_19(){ + return hashCodeImpl(this); +} +; +_.indexOf_0 = function indexOf_0(object){ + return object == null?-1:indexOfRandomAccess(this, object); +} +; +_.iterator_1 = function iterator_15(){ + return this.listIterator_2(0); +} +; +_.listIterator_2 = function listIterator_2(index_0){ + return $listIterator(this, index_0); +} +; +_.remove_2 = function remove_23(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_4(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.subList_0 = function subList_1(fromIndex, toIndex){ + var wrapper; + return unsafeDelegateList((wrapper = new Lists$1(this) , new AbstractList$SubList(wrapper, fromIndex, toIndex))); +} +; +var EMPTY; +var Lcom_google_common_collect_ImmutableList_2_classLit = createForClass('com.google.common.collect', 'ImmutableList', 307); +function $get_2(this$static, index_0){ + return this$static.delegateList_0().get_0(index_0); +} + +defineClass(2105, 307, $intern_26); +_.iterator_0 = function iterator_18(){ + return unmodifiableIterator(this.delegateList_0().iterator_0()); +} +; +_.subList = function subList_4(fromIndex, toIndex){ + return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); +} +; +_.contains = function contains_13(object){ + return object != null && this.delegateList_0().contains(object); +} +; +_.containsAll = function containsAll_4(targets){ + return this.delegateList_0().containsAll(targets); +} +; +_.equals_0 = function equals_18(obj){ + return equals_Ljava_lang_Object__Z__devirtual$(this.delegateList_0(), obj); +} +; +_.get_0 = function get_15(index_0){ + return $get_2(this, index_0); +} +; +_.hashCode_1 = function hashCode_20(){ + return hashCode__I__devirtual$(this.delegateList_0()); +} +; +_.indexOf_0 = function indexOf_1(object){ + return this.delegateList_0().indexOf_0(object); +} +; +_.isEmpty = function isEmpty_8(){ + return this.delegateList_0().isEmpty(); +} +; +_.iterator_1 = function iterator_17(){ + return unmodifiableIterator(this.delegateList_0().iterator_0()); +} +; +_.size_1 = function size_15(){ + return this.delegateList_0().size_1(); +} +; +_.subList_0 = function subList_3(fromIndex, toIndex){ + return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); +} +; +_.toArray = function toArray_5(){ + return this.delegateList_0().toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.delegateList_0().size_1(), 5, 1)); +} +; +_.toArray_0 = function toArray_6(other){ + return this.delegateList_0().toArray_0(other); +} +; +_.toString_0 = function toString_21(){ + return toString_40(this.delegateList_0()); +} +; +var Lcom_google_common_collect_ForwardingImmutableList_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableList', 2105); +function $clinit_ImmutableMap(){ + $clinit_ImmutableMap = emptyMethod; + EMPTY_0 = new RegularImmutableMap_0(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 44, 0, [])); +} + +function $entrySet_1(this$static){ + if (this$static.cachedEntrySet) { + return this$static.cachedEntrySet; + } + return this$static.cachedEntrySet = this$static.createEntrySet_1(); +} + +function $keySet_0(this$static){ + if (this$static.cachedKeySet) { + return this$static.cachedKeySet; + } + return this$static.cachedKeySet = this$static.createKeySet_1(); +} + +function $put_2(){ + throw toJs(new UnsupportedOperationException); +} + +function fromEntryList(entries){ + $clinit_ImmutableMap(); + var entry, entryArray, size_0; + size_0 = entries.array.length; + switch (size_0) { + case 0: + return EMPTY_0; + case 1: + entry = castTo(getOnlyElement(new ArrayList$1(entries)), 44); + return of(entry.getKey(), entry.getValue()); + default:entryArray = castTo($toArray_1(entries, initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 44, entries.array.length, 0, 1)), 173); + return new RegularImmutableMap(entryArray); + } +} + +function of(k1, v1){ + return $clinit_ImmutableMap() , checkEntryNotNull(k1, v1) , new SingletonImmutableBiMap(k1, v1); +} + +function of_0(k1, v1, k2, v2){ + $clinit_ImmutableMap(); + return new RegularImmutableMap_0(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 44, 0, [(checkEntryNotNull(k1, v1) , new ImmutableEntry(k1, v1)), (checkEntryNotNull(k2, v2) , new ImmutableEntry(k2, v2))])); +} + +defineClass(729, 1, $intern_28); +_.entrySet_0 = function entrySet_1(){ + return $entrySet_1(this); +} +; +_.forEach = function forEach_5(consumer){ + $forEach_2(this, consumer); +} +; +_.keySet_0 = function keySet_10(){ + return $keySet_0(this); +} +; +_.merge = function merge_0(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.values_0 = function values_4(){ + return this.values_2(); +} +; +_.clear_0 = function clear_17(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_3(key){ + return this.get_3(key) != null; +} +; +_.containsValue = function containsValue_0(value_0){ + return this.values_2().contains(value_0); +} +; +_.createKeySet_1 = function createKeySet_6(){ + return new ImmutableMapKeySet(this); +} +; +_.createValues = function createValues(){ + return new ImmutableMapValues(this); +} +; +_.equals_0 = function equals_19(object){ + return equalsImpl_0(this, object); +} +; +_.hashCode_1 = function hashCode_21(){ + return $entrySet_1(this).hashCode_1(); +} +; +_.isEmpty = function isEmpty_9(){ + return this.size_1() == 0; +} +; +_.put = function put_2(k, v){ + return $put_2(); +} +; +_.remove_0 = function remove_24(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_22(){ + return toStringImpl(this); +} +; +_.values_2 = function values_3(){ + if (this.cachedValues) { + return this.cachedValues; + } + return this.cachedValues = this.createValues(); +} +; +_.cachedEntrySet = null; +_.cachedKeySet = null; +_.cachedValues = null; +var EMPTY_0; +var Lcom_google_common_collect_ImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap', 729); +function $containsKey_0(this$static, key){ + return safeContainsKey(this$static.delegate, key); +} + +function $get_3(this$static, key){ + return key == null?null:safeGet(this$static.delegate, key); +} + +function ForwardingImmutableMap(entries){ + var delegate, entry, entry$array, entry$index, entry$max, key, previous; + delegate = new LinkedHashMap; + for (entry$array = entries , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { + entry = entry$array[entry$index]; + key = checkNotNull(entry.getKey()); + previous = $put_11(delegate, key, checkNotNull(entry.getValue())); + if (previous != null) { + throw toJs(new IllegalArgumentException_0('duplicate key: ' + key)); + } + } + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(730, 729, $intern_28); +_.containsKey = function containsKey_4(key){ + return $containsKey_0(this, key); +} +; +_.containsValue = function containsValue_1(value_0){ + return $containsValue_3(this.delegate, value_0); +} +; +_.createEntrySet_1 = function createEntrySet_0(){ + return unsafeDelegate(new ForwardingImmutableMap$1(this)); +} +; +_.createKeySet_1 = function createKeySet_7(){ + return unsafeDelegate($keySet_1(this.delegate)); +} +; +_.createValues = function createValues_0(){ + return $clinit_ImmutableCollection() , new ForwardingImmutableCollection($values_2(this.delegate)); +} +; +_.equals_0 = function equals_20(object){ + return $equals_7(this.delegate, object); +} +; +_.get_3 = function get_16(key){ + return $get_3(this, key); +} +; +_.hashCode_1 = function hashCode_22(){ + return hashCode__I__devirtual$(this.delegate.map_0); +} +; +_.isEmpty = function isEmpty_10(){ + return this.delegate.map_0.isEmpty(); +} +; +_.size_1 = function size_16(){ + return this.delegate.map_0.size_1(); +} +; +_.toString_0 = function toString_23(){ + return toString_40(this.delegate.map_0); +} +; +var Lcom_google_common_collect_ForwardingImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap', 730); +defineClass(2072, 2071, $intern_29); +_.delegate_0 = function delegate_1(){ + return this.delegate_2(); +} +; +_.delegate_1 = function delegate_2(){ + return this.delegate_2(); +} +; +_.spliterator_0 = function spliterator_17(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_21(object){ + return object === this || this.delegate_2().equals_0(object); +} +; +_.hashCode_1 = function hashCode_23(){ + return this.delegate_2().hashCode_1(); +} +; +var Lcom_google_common_collect_ForwardingSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSet', 2072); +function ForwardingImmutableMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1085, 2072, $intern_29, ForwardingImmutableMap$1); +_.delegate_0 = function delegate_3(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.delegate_1 = function delegate_4(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.contains = function contains_14(object){ + if (instanceOf(object, 44) && castTo(object, 44).getKey() == null) { + return false; + } + try { + return $contains_3($entrySet_2(this.this$01.delegate), object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212)) { + return false; + } + else + throw toJs($e0); + } +} +; +_.delegate_2 = function delegate_5(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.toArray_0 = function toArray_7(array){ + var result; + result = $toArray_4($entrySet_2(this.this$01.delegate), array); + $entrySet_2(this.this$01.delegate).coll.size_1() < result.length && setCheck(result, $entrySet_2(this.this$01.delegate).coll.size_1(), null); + return result; +} +; +var Lcom_google_common_collect_ForwardingImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap/1', 1085); +function unsafeDelegate(delegate){ + $clinit_ImmutableCollection(); + switch (delegate.size_1()) { + case 0: + return $clinit_RegularImmutableSet() , EMPTY_2; + case 1: + return new SingletonImmutableSet(delegate.iterator_0().next_1()); + default:return new RegularImmutableSet(delegate); + } +} + +defineClass(2079, 2078, $intern_30); +_.iterator_0 = function iterator_19(){ + return this.iterator_1(); +} +; +_.spliterator_0 = function spliterator_18(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_22(obj){ + return equalsImpl_3(this, obj); +} +; +_.hashCode_1 = function hashCode_24(){ + return hashCodeImpl_0(this); +} +; +var Lcom_google_common_collect_ImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableSet', 2079); +function ForwardingImmutableSet(delegate){ + $clinit_ImmutableCollection(); + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableSet(delegate)); +} + +defineClass(719, 2079, $intern_30); +_.iterator_0 = function iterator_21(){ + return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); +} +; +_.contains = function contains_15(object){ + return object != null && $contains_2(this.delegate, object); +} +; +_.containsAll = function containsAll_5(targets){ + return $containsAll_0(this.delegate, targets); +} +; +_.hashCode_1 = function hashCode_25(){ + return hashCode__I__devirtual$(this.delegate.coll); +} +; +_.isEmpty = function isEmpty_11(){ + return this.delegate.coll.isEmpty(); +} +; +_.iterator_1 = function iterator_20(){ + return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); +} +; +_.size_1 = function size_17(){ + return this.delegate.coll.size_1(); +} +; +_.toArray = function toArray_8(){ + return this.delegate.coll.toArray(); +} +; +_.toArray_0 = function toArray_9(other){ + return $toArray_3(this.delegate, other); +} +; +_.toString_0 = function toString_24(){ + return toString_40(this.delegate.coll); +} +; +var Lcom_google_common_collect_ForwardingImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableSet', 719); +defineClass(2073, 2072, $intern_31); +_.delegate_0 = function delegate_6(){ + return this.unmodifiableDelegate; +} +; +_.delegate_1 = function delegate_7(){ + return this.unmodifiableDelegate; +} +; +_.delegate_2 = function delegate_8(){ + return this.unmodifiableDelegate; +} +; +_.spliterator_0 = function spliterator_19(){ + return new SortedSet$1(this); +} +; +var Lcom_google_common_collect_ForwardingSortedSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSortedSet', 2073); +function $clear_2(this$static){ + this$static.size_0 = 0; + fill_2(this$static.hashTableKToV, null); + fill_2(this$static.hashTableVToK, null); + this$static.firstInKeyInsertionOrder = null; + this$static.lastInKeyInsertionOrder = null; + ++this$static.modCount; +} + +function $containsValue_1(this$static, value_0){ + return !!$seekByValue(this$static, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); +} + +function $delete(this$static, entry){ + var bucketEntry, bucketEntry0, keyBucket, prevBucketEntry, valueBucket; + keyBucket = entry.keyHash & this$static.mask; + prevBucketEntry = null; + for (bucketEntry0 = this$static.hashTableKToV[keyBucket]; true; bucketEntry0 = bucketEntry0.nextInKToVBucket) { + if (bucketEntry0 == entry) { + !prevBucketEntry?(this$static.hashTableKToV[keyBucket] = entry.nextInKToVBucket):(prevBucketEntry.nextInKToVBucket = entry.nextInKToVBucket); + break; + } + prevBucketEntry = bucketEntry0; + } + valueBucket = entry.valueHash & this$static.mask; + prevBucketEntry = null; + for (bucketEntry = this$static.hashTableVToK[valueBucket]; true; bucketEntry = bucketEntry.nextInVToKBucket) { + if (bucketEntry == entry) { + !prevBucketEntry?(this$static.hashTableVToK[valueBucket] = entry.nextInVToKBucket):(prevBucketEntry.nextInVToKBucket = entry.nextInVToKBucket); + break; + } + prevBucketEntry = bucketEntry; + } + !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry.nextInKeyInsertionOrder):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry.nextInKeyInsertionOrder); + !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry.prevInKeyInsertionOrder):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry.prevInKeyInsertionOrder); + --this$static.size_0; + ++this$static.modCount; +} + +function $forEach(this$static, action){ + var entry; + checkNotNull(action); + for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { + action.accept_1(entry.key, entry.value_0); + } +} + +function $get_4(this$static, key){ + return valueOrNull($seekByKey(this$static, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))))); +} + +function $insert(this$static, entry, oldEntryForKey){ + var keyBucket, valueBucket; + keyBucket = entry.keyHash & this$static.mask; + entry.nextInKToVBucket = this$static.hashTableKToV[keyBucket]; + this$static.hashTableKToV[keyBucket] = entry; + valueBucket = entry.valueHash & this$static.mask; + entry.nextInVToKBucket = this$static.hashTableVToK[valueBucket]; + this$static.hashTableVToK[valueBucket] = entry; + if (!oldEntryForKey) { + entry.prevInKeyInsertionOrder = this$static.lastInKeyInsertionOrder; + entry.nextInKeyInsertionOrder = null; + !this$static.lastInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(this$static.lastInKeyInsertionOrder.nextInKeyInsertionOrder = entry); + this$static.lastInKeyInsertionOrder = entry; + } + else { + entry.prevInKeyInsertionOrder = oldEntryForKey.prevInKeyInsertionOrder; + !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry); + entry.nextInKeyInsertionOrder = oldEntryForKey.nextInKeyInsertionOrder; + !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry); + } + ++this$static.size_0; + ++this$static.modCount; +} + +function $inverse(this$static){ + var result; + result = this$static.inverse; + return !result?(this$static.inverse = new HashBiMap$Inverse(this$static)):result; +} + +function $put_3(this$static, key, value_0){ + var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + oldEntryForKey = $seekByKey(this$static, key, keyHash); + if (!!oldEntryForKey && valueHash == oldEntryForKey.valueHash && equal(value_0, oldEntryForKey.value_0)) { + return value_0; + } + oldEntryForValue = $seekByValue(this$static, value_0, valueHash); + if (oldEntryForValue) { + throw toJs(new IllegalArgumentException_0('value already present: ' + value_0)); + } + newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); + if (oldEntryForKey) { + $delete(this$static, oldEntryForKey); + $insert(this$static, newEntry, oldEntryForKey); + oldEntryForKey.prevInKeyInsertionOrder = null; + oldEntryForKey.nextInKeyInsertionOrder = null; + return oldEntryForKey.value_0; + } + else { + $insert(this$static, newEntry, null); + $rehashIfNecessary(this$static); + return null; + } +} + +function $putInverse(this$static, value_0, key, force){ + var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + oldEntryForValue = $seekByValue(this$static, value_0, valueHash); + oldEntryForKey = $seekByKey(this$static, key, keyHash); + if (!!oldEntryForValue && keyHash == oldEntryForValue.keyHash && equal(key, oldEntryForValue.key)) { + return key; + } + else if (!!oldEntryForKey && !force) { + throw toJs(new IllegalArgumentException_0('key already present: ' + key)); + } + !!oldEntryForValue && $delete(this$static, oldEntryForValue); + !!oldEntryForKey && $delete(this$static, oldEntryForKey); + newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); + $insert(this$static, newEntry, oldEntryForKey); + if (oldEntryForKey) { + oldEntryForKey.prevInKeyInsertionOrder = null; + oldEntryForKey.nextInKeyInsertionOrder = null; + } + if (oldEntryForValue) { + oldEntryForValue.prevInKeyInsertionOrder = null; + oldEntryForValue.nextInKeyInsertionOrder = null; + } + $rehashIfNecessary(this$static); + return !oldEntryForValue?null:oldEntryForValue.key; +} + +function $rehashIfNecessary(this$static){ + var entry, newTableSize, oldKToV; + oldKToV = this$static.hashTableKToV; + if (needsResizing(this$static.size_0, oldKToV.length)) { + newTableSize = oldKToV.length * 2; + this$static.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 303, newTableSize, 0, 1); + this$static.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 303, newTableSize, 0, 1); + this$static.mask = newTableSize - 1; + this$static.size_0 = 0; + for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { + $insert(this$static, entry, entry); + } + ++this$static.modCount; + } +} + +function $seekByKey(this$static, key, keyHash){ + var entry; + for (entry = this$static.hashTableKToV[keyHash & this$static.mask]; entry; entry = entry.nextInKToVBucket) { + if (keyHash == entry.keyHash && equal(key, entry.key)) { + return entry; + } + } + return null; +} + +function $seekByValue(this$static, value_0, valueHash){ + var entry; + for (entry = this$static.hashTableVToK[valueHash & this$static.mask]; entry; entry = entry.nextInVToKBucket) { + if (valueHash == entry.valueHash && equal(value_0, entry.value_0)) { + return entry; + } + } + return null; +} + +function HashBiMap(){ + var tableSize; + checkNonnegative(16, 'expectedSize'); + tableSize = closedTableSize(16); + this.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 303, tableSize, 0, 1); + this.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 303, tableSize, 0, 1); + this.firstInKeyInsertionOrder = null; + this.lastInKeyInsertionOrder = null; + this.size_0 = 0; + this.mask = tableSize - 1; + this.modCount = 0; +} + +defineClass(543, 2077, $intern_28, HashBiMap); +_.putAll = function putAll_0(map_0){ + $putAll(this, map_0); +} +; +_.values_0 = function values_5(){ + var result; + return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); +} +; +_.clear_0 = function clear_18(){ + $clear_2(this); +} +; +_.containsKey = function containsKey_5(key){ + return !!$seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); +} +; +_.containsValue = function containsValue_2(value_0){ + return $containsValue_1(this, value_0); +} +; +_.entryIterator = function entryIterator_2(){ + return new HashBiMap$1(this, this); +} +; +_.forEach = function forEach_6(action){ + $forEach(this, action); +} +; +_.get_3 = function get_17(key){ + return $get_4(this, key); +} +; +_.keySet_0 = function keySet_11(){ + return new HashBiMap$KeySet(this); +} +; +_.put = function put_3(key, value_0){ + return $put_3(this, key, value_0); +} +; +_.remove_0 = function remove_25(key){ + var entry; + entry = $seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); + if (!entry) { + return null; + } + else { + $delete(this, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return entry.value_0; + } +} +; +_.size_1 = function size_18(){ + return this.size_0; +} +; +_.values_1 = function values_6(){ + var result; + return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); +} +; +_.mask = 0; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_HashBiMap_2_classLit = createForClass('com.google.common.collect', 'HashBiMap', 543); +function $hasNext_0(this$static){ + if (this$static.this$01.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + return !!this$static.next_0 && this$static.remaining > 0; +} + +function HashBiMap$Itr(this$0){ + this.this$01 = this$0; + this.next_0 = this.this$01.firstInKeyInsertionOrder; + this.expectedModCount = this.this$01.modCount; + this.remaining = this.this$01.size_0; +} + +defineClass(544, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_7(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_5(){ + return $hasNext_0(this); +} +; +_.next_1 = function next_6(){ + var entry; + if (!$hasNext_0(this)) { + throw toJs(new NoSuchElementException); + } + entry = castTo(requireNonNull(this.next_0), 303); + this.next_0 = entry.nextInKeyInsertionOrder; + this.toRemove = entry; + --this.remaining; + return this.output_0(entry); +} +; +_.remove = function remove_26(){ + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (!this.toRemove) { + throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); + } + $delete(this.this$01, this.toRemove); + this.expectedModCount = this.this$01.modCount; + this.toRemove = null; +} +; +_.expectedModCount = 0; +_.remaining = 0; +_.toRemove = null; +var Lcom_google_common_collect_HashBiMap$Itr_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Itr', 544); +function HashBiMap$1(this$0, this$0_1){ + this.this$02 = this$0_1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1023, 544, $intern_6, HashBiMap$1); +_.output_0 = function output_2(entry){ + return new HashBiMap$1$MapEntry(this, entry); +} +; +var Lcom_google_common_collect_HashBiMap$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1', 1023); +function HashBiMap$1$MapEntry(this$1, entry){ + this.this$11 = this$1; + this.delegate = entry; +} + +defineClass($intern_35, 358, $intern_15, HashBiMap$1$MapEntry); +_.getKey = function getKey_0(){ + return this.delegate.key; +} +; +_.getValue = function getValue_2(){ + return this.delegate.value_0; +} +; +_.setValue = function setValue_3(value_0){ + var newEntry, oldValue, valueHash; + oldValue = this.delegate.value_0; + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + if (valueHash == this.delegate.valueHash && (maskUndefined(value_0) === maskUndefined(oldValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, oldValue))) { + return value_0; + } + checkArgument_1(!$seekByValue(this.this$11.this$02, value_0, valueHash), value_0); + $delete(this.this$11.this$02, this.delegate); + newEntry = new HashBiMap$BiEntry(this.delegate.key, this.delegate.keyHash, value_0, valueHash); + $insert(this.this$11.this$02, newEntry, this.delegate); + this.delegate.prevInKeyInsertionOrder = null; + this.delegate.nextInKeyInsertionOrder = null; + this.this$11.expectedModCount = this.this$11.this$02.modCount; + this.this$11.toRemove == this.delegate && (this.this$11.toRemove = newEntry); + this.delegate = newEntry; + return oldValue; +} +; +var Lcom_google_common_collect_HashBiMap$1$MapEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1/MapEntry', $intern_35); +function ImmutableEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(246, 358, {358:1, 246:1, 3:1, 44:1}, ImmutableEntry); +_.getKey = function getKey_1(){ + return this.key; +} +; +_.getValue = function getValue_3(){ + return this.value_0; +} +; +_.setValue = function setValue_4(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_ImmutableEntry_2_classLit = createForClass('com.google.common.collect', 'ImmutableEntry', 246); +function HashBiMap$BiEntry(key, keyHash, value_0, valueHash){ + ImmutableEntry.call(this, key, value_0); + this.keyHash = keyHash; + this.valueHash = valueHash; +} + +defineClass(303, 246, {358:1, 303:1, 246:1, 3:1, 44:1}, HashBiMap$BiEntry); +_.keyHash = 0; +_.valueHash = 0; +var Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/BiEntry', 303); +function $get_5(this$static, value_0){ + return keyOrNull($seekByValue(this$static.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))))); +} + +function HashBiMap$Inverse(this$0){ + this.this$01 = this$0; +} + +function lambda$0(action_0, k_1, v_2){ + action_0.accept_1(v_2, k_1); +} + +defineClass(619, 2077, $intern_28, HashBiMap$Inverse); +_.putAll = function putAll_1(map_0){ + $putAll(this, map_0); +} +; +_.values_0 = function values_7(){ + return new HashBiMap$KeySet(this.this$01); +} +; +_.clear_0 = function clear_19(){ + $clear_2(this.this$01); +} +; +_.containsKey = function containsKey_6(value_0){ + return $containsValue_1(this.this$01, value_0); +} +; +_.entryIterator = function entryIterator_3(){ + return new HashBiMap$Inverse$1(this, this.this$01); +} +; +_.forEach = function forEach_7(action){ + checkNotNull(action); + $forEach(this.this$01, new HashBiMap$Inverse$lambda$0$Type(action)); +} +; +_.get_3 = function get_18(value_0){ + return $get_5(this, value_0); +} +; +_.keySet_0 = function keySet_12(){ + return new HashBiMap$Inverse$InverseKeySet(this); +} +; +_.put = function put_4(value_0, key){ + return $putInverse(this.this$01, value_0, key, false); +} +; +_.remove_0 = function remove_27(value_0){ + var entry; + entry = $seekByValue(this.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); + if (!entry) { + return null; + } + else { + $delete(this.this$01, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return entry.key; + } +} +; +_.size_1 = function size_19(){ + return this.this$01.size_0; +} +; +_.values_1 = function values_8(){ + return new HashBiMap$KeySet(this.this$01); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse', 619); +function HashBiMap$Inverse$1(this$1, this$0){ + this.this$11 = this$1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1020, 544, $intern_6, HashBiMap$Inverse$1); +_.output_0 = function output_3(entry){ + return new HashBiMap$Inverse$1$InverseEntry(this, entry); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1', 1020); +function HashBiMap$Inverse$1$InverseEntry(this$2, entry){ + this.this$21 = this$2; + this.delegate = entry; +} + +defineClass(1021, 358, $intern_15, HashBiMap$Inverse$1$InverseEntry); +_.getKey = function getKey_2(){ + return this.delegate.value_0; +} +; +_.getValue = function getValue_4(){ + return this.delegate.key; +} +; +_.setValue = function setValue_5(key){ + var keyHash, newEntry, oldKey; + oldKey = this.delegate.key; + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + if (keyHash == this.delegate.keyHash && (maskUndefined(key) === maskUndefined(oldKey) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, oldKey))) { + return key; + } + checkArgument_1(!$seekByKey(this.this$21.this$11.this$01, key, keyHash), key); + $delete(this.this$21.this$11.this$01, this.delegate); + newEntry = new HashBiMap$BiEntry(key, keyHash, this.delegate.value_0, this.delegate.valueHash); + this.delegate = newEntry; + $insert(this.this$21.this$11.this$01, newEntry, null); + this.this$21.expectedModCount = this.this$21.this$11.this$01.modCount; + return oldKey; +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$1$InverseEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1/InverseEntry', 1021); +function HashBiMap$Inverse$InverseKeySet(this$1){ + this.this$11 = this$1; + Maps$KeySet.call(this, this$1); +} + +defineClass(620, 542, $intern_10, HashBiMap$Inverse$InverseKeySet); +_.iterator_0 = function iterator_22(){ + return new HashBiMap$Inverse$InverseKeySet$1(this.this$11.this$01); +} +; +_.remove_1 = function remove_28(o){ + var entry; + entry = $seekByValue(this.this$11.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); + if (!entry) { + return false; + } + else { + $delete(this.this$11.this$01, entry); + return true; + } +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet', 620); +function HashBiMap$Inverse$InverseKeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1019, 544, $intern_6, HashBiMap$Inverse$InverseKeySet$1); +_.output_0 = function output_4(entry){ + return entry.value_0; +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet/1', 1019); +function HashBiMap$Inverse$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1022, 1, {}, HashBiMap$Inverse$lambda$0$Type); +_.accept_1 = function accept_6(arg0, arg1){ + lambda$0(this.action_0, arg0, arg1); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/lambda$0$Type', 1022); +function HashBiMap$KeySet(this$0){ + this.this$01 = this$0; + Maps$KeySet.call(this, this$0); +} + +defineClass(618, 542, $intern_10, HashBiMap$KeySet); +_.iterator_0 = function iterator_23(){ + return new HashBiMap$KeySet$1(this.this$01); +} +; +_.remove_1 = function remove_29(o){ + var entry; + entry = $seekByKey(this.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); + if (!entry) { + return false; + } + else { + $delete(this.this$01, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return true; + } +} +; +var Lcom_google_common_collect_HashBiMap$KeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet', 618); +function HashBiMap$KeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1018, 544, $intern_6, HashBiMap$KeySet$1); +_.output_0 = function output_5(entry){ + return entry.key; +} +; +var Lcom_google_common_collect_HashBiMap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet/1', 1018); +function HashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1123, 627, $intern_5); +var Lcom_google_common_collect_HashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'HashMultimapGwtSerializationDependencies', 1123); +function HashMultimap(){ + HashMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(12))); + checkArgument(true); + this.expectedValuesPerKey = 2; +} + +defineClass(271, 1123, $intern_5, HashMultimap); +_.createCollection = function createCollection_5(){ + return new HashSet_0(capacity_0(this.expectedValuesPerKey)); +} +; +_.createCollection_1 = function createCollection_6(){ + return new HashSet_0(capacity_0(this.expectedValuesPerKey)); +} +; +_.expectedValuesPerKey = 2; +var Lcom_google_common_collect_HashMultimap_2_classLit = createForClass('com.google.common.collect', 'HashMultimap', 271); +function closedTableSize(expectedEntries){ + var tableSize; + expectedEntries = $wnd.Math.max(expectedEntries, 2); + tableSize = highestOneBit(expectedEntries); + if (expectedEntries > tableSize) { + tableSize <<= 1; + return tableSize > 0?tableSize:$intern_36; + } + return tableSize; +} + +function needsResizing(size_0, tableSize){ + return size_0 > tableSize && tableSize < $intern_36; +} + +defineClass(2097, 307, $intern_26); +_.contains = function contains_16(target){ + return this.delegateCollection().contains(target); +} +; +_.isEmpty = function isEmpty_12(){ + return this.delegateCollection().isEmpty(); +} +; +_.size_1 = function size_20(){ + return this.delegateCollection().size_1(); +} +; +var Lcom_google_common_collect_ImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'ImmutableAsList', 2097); +function ImmutableBiMap(delegate){ + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(2030, 730, $intern_28); +_.values_2 = function values_9(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_0 = function values_10(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_1 = function values_11(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +var Lcom_google_common_collect_ImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableBiMap', 2030); +defineClass(2075, 1, {}); +var Lcom_google_common_collect_ImmutableCollection$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection/Builder', 2075); +function ImmutableEnumSet(delegate){ + ForwardingImmutableSet.call(this, delegate); +} + +function asImmutable(delegate){ + $clinit_ImmutableCollection(); + switch (delegate.size_0) { + case 0: + return $clinit_RegularImmutableSet() , EMPTY_2; + case 1: + return new SingletonImmutableSet(getOnlyElement(new EnumSet$EnumSetImpl$IteratorImpl(delegate))); + default:return new ImmutableEnumSet(delegate); + } +} + +defineClass(1035, 719, $intern_30, ImmutableEnumSet); +var Lcom_google_common_collect_ImmutableEnumSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableEnumSet', 1035); +function ImmutableList$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + AbstractIndexedListIterator_0.call(this, $anonymous0, $anonymous1); +} + +defineClass(980, 399, $intern_4, ImmutableList$1); +_.get_0 = function get_19(index_0){ + return this.this$01.get_0(index_0); +} +; +var Lcom_google_common_collect_ImmutableList$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/1', 980); +function ImmutableList$Builder(capacity){ + this.contents = (checkNonnegative(capacity, 'initialArraySize') , new ArrayList_0(capacity)); +} + +defineClass(979, 2075, {}, ImmutableList$Builder); +var Lcom_google_common_collect_ImmutableList$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/Builder', 979); +function ImmutableMap$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(623, 204, $intern_3, ImmutableMap$1); +_.hasNext_0 = function hasNext_6(){ + return this.val$entryIterator2.hasNext_0(); +} +; +_.next_1 = function next_7(){ + return castTo(this.val$entryIterator2.next_1(), 44).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/1', 623); +function ImmutableMap$2methodref$getKey$Type(){ +} + +defineClass(1054, 1, {}, ImmutableMap$2methodref$getKey$Type); +_.apply_0 = function apply_9(arg0){ + return castTo(arg0, 44).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$2methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/2methodref$getKey$Type', 1054); +function $put_4(this$static, key, value_0){ + $add_3(this$static.entries_0, ($clinit_ImmutableMap() , checkEntryNotNull(key, value_0) , new ImmutableEntry(key, value_0))); + return this$static; +} + +function ImmutableMap$Builder(initCapacity){ + this.entries_0 = (checkNonnegative(initCapacity, 'initialArraySize') , new ArrayList_0(initCapacity)); +} + +defineClass(1053, 1, {}, ImmutableMap$Builder); +var Lcom_google_common_collect_ImmutableMap$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/Builder', 1053); +defineClass(2098, 2079, $intern_30); +_.asList_1 = function asList_1(){ + var result; + return result = this.asList , !result?(this.asList = new IndexedImmutableSet$1(this)):result; +} +; +_.createAsList = function createAsList_0(){ + return new RegularImmutableAsList_0(this, $toArray_0(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.size_1(), 5, 1))); +} +; +var Lcom_google_common_collect_ImmutableSet$CachingAsList_2_classLit = createForClass('com.google.common.collect', 'ImmutableSet/CachingAsList', 2098); +defineClass(2099, 2098, $intern_30); +_.iterator_0 = function iterator_25(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.createAsList = function createAsList_1(){ + return new IndexedImmutableSet$1(this); +} +; +_.forEach_0 = function forEach_8(consumer){ + var i, n; + checkNotNull(consumer); + n = this.size_1(); + for (i = 0; i < n; i++) { + consumer.accept(castTo($entrySet_1(this.map_0).asList_1().get_0(i), 44).getKey()); + } +} +; +_.iterator_1 = function iterator_24(){ + var result; + return result = this.asList , $listIterator(!result?(this.asList = new IndexedImmutableSet$1(this)):result, 0); +} +; +_.spliterator_0 = function spliterator_20(){ + return indexed(this.size_1(), 1296, new IndexedImmutableSet$0methodref$get$Type(this)); +} +; +var Lcom_google_common_collect_IndexedImmutableSet_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet', 2099); +function $get_6(this$static, index_0){ + return castTo($entrySet_1(this$static.map_0).asList_1().get_0(index_0), 44).getKey(); +} + +function ImmutableMapKeySet(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1230, 2099, $intern_30, ImmutableMapKeySet); +_.iterator_0 = function iterator_27(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.contains = function contains_17(object){ + return this.map_0.containsKey(object); +} +; +_.forEach_0 = function forEach_9(action){ + checkNotNull(action); + $forEach_2(this.map_0, new ImmutableMapKeySet$lambda$0$Type(action)); +} +; +_.iterator_1 = function iterator_26(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.size_1 = function size_21(){ + return this.map_0.size_1(); +} +; +_.spliterator_0 = function spliterator_21(){ + return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMap$2methodref$getKey$Type); +} +; +var Lcom_google_common_collect_ImmutableMapKeySet_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet', 1230); +function ImmutableMapKeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1231, 1, {}, ImmutableMapKeySet$lambda$0$Type); +_.accept_1 = function accept_7(arg0, arg1){ + $clinit_ImmutableCollection(); + this.action_0.accept(arg0); +} +; +var Lcom_google_common_collect_ImmutableMapKeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet/lambda$0$Type', 1231); +function ImmutableMapValues(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1227, 2078, $intern_25, ImmutableMapValues); +_.iterator_0 = function iterator_29(){ + return new ImmutableMapValues$1(this); +} +; +_.asList_1 = function asList_2(){ + var entryList; + entryList = $entrySet_1(this.map_0).asList_1(); + return new ImmutableMapValues$2(this, entryList); +} +; +_.contains = function contains_18(object){ + return object != null && contains_19(new ImmutableMapValues$1(this), object); +} +; +_.iterator_1 = function iterator_28(){ + return new ImmutableMapValues$1(this); +} +; +_.size_1 = function size_22(){ + return this.map_0.size_1(); +} +; +_.spliterator_0 = function spliterator_22(){ + return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMapValues$0methodref$getValue$Type); +} +; +var Lcom_google_common_collect_ImmutableMapValues_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues', 1227); +function ImmutableMapValues$0methodref$getValue$Type(){ +} + +defineClass(1228, 1, {}, ImmutableMapValues$0methodref$getValue$Type); +_.apply_0 = function apply_10(arg0){ + return castTo(arg0, 44).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/0methodref$getValue$Type', 1228); +function ImmutableMapValues$1(this$0){ + this.this$01 = this$0; + this.entryItr = $entrySet_1(this.this$01.map_0).iterator_1(); +} + +defineClass(637, 204, $intern_3, ImmutableMapValues$1); +_.hasNext_0 = function hasNext_7(){ + return this.entryItr.hasNext_0(); +} +; +_.next_1 = function next_8(){ + return castTo(this.entryItr.next_1(), 44).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/1', 637); +function ImmutableMapValues$2(this$0, val$entryList){ + $clinit_ImmutableList(); + this.this$01 = this$0; + this.val$entryList2 = val$entryList; +} + +defineClass(1229, 2097, $intern_26, ImmutableMapValues$2); +_.delegateCollection = function delegateCollection(){ + return this.this$01; +} +; +_.get_0 = function get_20(index_0){ + return castTo(this.val$entryList2.get_0(index_0), 44).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$2_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/2', 1229); +function IndexedImmutableSet$0methodref$get$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1232, 1, {}, IndexedImmutableSet$0methodref$get$Type); +_.apply_2 = function apply_11(arg0){ + return $get_6(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_IndexedImmutableSet$0methodref$get$Type_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/0methodref$get$Type', 1232); +function IndexedImmutableSet$1(this$0){ + $clinit_ImmutableList(); + this.this$01 = this$0; +} + +defineClass(638, 2097, $intern_26, IndexedImmutableSet$1); +_.delegateCollection = function delegateCollection_0(){ + return this.this$01; +} +; +_.get_0 = function get_21(index_0){ + return $get_6(this.this$01, index_0); +} +; +_.size_1 = function size_23(){ + return this.this$01.map_0.size_1(); +} +; +var Lcom_google_common_collect_IndexedImmutableSet$1_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/1', 638); +function addAll_6(addTo, elementsToAdd){ + var c; + if (instanceOf(elementsToAdd, 16)) { + c = castTo(elementsToAdd, 16); + return addTo.addAll(c); + } + return addAll_7(addTo, castTo(checkNotNull(elementsToAdd), 20).iterator_0()); +} + +function all_0(iterable, predicate){ + return all_1(iterable.iterator_0(), predicate); +} + +function any_0(iterable, predicate){ + return indexOf_2(iterable.iterator_0(), predicate) != -1; +} + +function concat_0(inputs){ + return checkNotNull(inputs) , new FluentIterable$2(inputs); +} + +function filter_0(unfiltered, retainIfTrue){ + checkNotNull(unfiltered); + checkNotNull(retainIfTrue); + return new Iterables$4(unfiltered, retainIfTrue); +} + +function get_22(iterable){ + checkNotNull(iterable); + return get_23(new Iterators$ConcatenatedIterator(transform_2(iterable.val$inputs1.iterator_0(), new Iterables$10))); +} + +function getLast(iterable){ + var list; + if (iterable) { + list = iterable; + if (list.isEmpty()) { + throw toJs(new NoSuchElementException); + } + return list.get_0(list.size_1() - 1); + } + return getLast_0(iterable.iterator_0()); +} + +function isEmpty_13(iterable){ + if (instanceOf(iterable, 16)) { + return castTo(iterable, 16).isEmpty(); + } + return !iterable.iterator_0().hasNext_0(); +} + +function transform_1(fromIterable, function_0){ + checkNotNull(fromIterable); + checkNotNull(function_0); + return new Iterables$5(fromIterable, function_0); +} + +function Iterables$10(){ +} + +defineClass(43, 1, {}, Iterables$10); +_.apply_0 = function apply_12(iterable){ + return castTo(iterable, 20).iterator_0(); +} +; +_.equals_0 = function equals_23(other){ + return this === other; +} +; +var Lcom_google_common_collect_Iterables$10_2_classLit = createForClass('com.google.common.collect', 'Iterables/10', 43); +function $iterator_0(this$static){ + return filter_1(this$static.val$unfiltered1.iterator_0(), this$static.val$retainIfTrue2); +} + +function Iterables$4(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; + FluentIterable.call(this); +} + +function lambda$0_0(retainIfTrue_0, action_1, a_2){ + retainIfTrue_0.test_0(a_2) && action_1.accept(a_2); +} + +defineClass(1055, 547, $intern_23, Iterables$4); +_.forEach_0 = function forEach_10(action){ + checkNotNull(action); + this.val$unfiltered1.forEach_0(new Iterables$4$lambda$0$Type(this.val$retainIfTrue2, action)); +} +; +_.iterator_0 = function iterator_30(){ + return $iterator_0(this); +} +; +var Lcom_google_common_collect_Iterables$4_2_classLit = createForClass('com.google.common.collect', 'Iterables/4', 1055); +function Iterables$4$lambda$0$Type(retainIfTrue_0, action_1){ + this.retainIfTrue_0 = retainIfTrue_0; + this.action_1 = action_1; +} + +defineClass(1056, 1, $intern_19, Iterables$4$lambda$0$Type); +_.accept = function accept_8(arg0){ + lambda$0_0(this.retainIfTrue_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_Iterables$4$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/4/lambda$0$Type', 1056); +function Iterables$5(val$fromIterable, val$function){ + this.val$fromIterable1 = val$fromIterable; + this.val$function2 = val$function; + FluentIterable.call(this); +} + +defineClass(1057, 547, $intern_23, Iterables$5); +_.forEach_0 = function forEach_11(action){ + checkNotNull(action); + $forEach_0(this.val$fromIterable1, new Iterables$5$lambda$0$Type(action, this.val$function2)); +} +; +_.iterator_0 = function iterator_31(){ + return transform_2(new AbstractEList$EIterator(this.val$fromIterable1), this.val$function2); +} +; +var Lcom_google_common_collect_Iterables$5_2_classLit = createForClass('com.google.common.collect', 'Iterables/5', 1057); +function Iterables$5$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1058, 1, $intern_19, Iterables$5$lambda$0$Type); +_.accept = function accept_9(arg0){ + this.action_0.accept($apply_27(arg0)); +} +; +var Lcom_google_common_collect_Iterables$5$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/5/lambda$0$Type', 1058); +function addAll_7(addTo, iterator){ + var wasModified; + checkNotNull(addTo); + checkNotNull(iterator); + wasModified = false; + while (iterator.hasNext_0()) { + wasModified = wasModified | addTo.add_2(iterator.next_1()); + } + return wasModified; +} + +function advance(iterator){ + var i; + checkNotNull(iterator); + checkArgument_0(true, 'numberToAdvance must be nonnegative'); + for (i = 0; i < 0 && $hasNext_1(iterator); i++) { + $next_0(iterator); + } + return i; +} + +function all_1(iterator, predicate){ + var element; + checkNotNull(predicate); + while (iterator.hasNext_0()) { + element = iterator.next_1(); + if (!$apply_17(castTo(element, 10))) { + return false; + } + } + return true; +} + +function clear_20(iterator){ + checkNotNull(iterator); + while (iterator.hasNext_0()) { + iterator.next_1(); + iterator.remove(); + } +} + +function contains_19(iterator, element){ + if (element == null) { + while (iterator.entryItr.hasNext_0()) { + if (castTo(iterator.entryItr.next_1(), 44).getValue() == null) { + return true; + } + } + } + else { + while (iterator.entryItr.hasNext_0()) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, castTo(iterator.entryItr.next_1(), 44).getValue())) { + return true; + } + } + } + return false; +} + +function elementsEqual(iterator1, iterator2){ + var o1, o2; + while (iterator1.hasNext_0()) { + if (!iterator2.hasNext_0()) { + return false; + } + o1 = iterator1.next_1(); + o2 = iterator2.next_1(); + if (!(maskUndefined(o1) === maskUndefined(o2) || o1 != null && equals_Ljava_lang_Object__Z__devirtual$(o1, o2))) { + return false; + } + } + return !iterator2.hasNext_0(); +} + +function filter_1(unfiltered, retainIfTrue){ + checkNotNull(unfiltered); + checkNotNull(retainIfTrue); + return new Iterators$5(unfiltered, retainIfTrue); +} + +function get_23(iterator){ + var skipped; + skipped = advance(iterator); + if (!$hasNext_1(iterator)) { + throw toJs(new IndexOutOfBoundsException_0('position (0) must be less than the number of elements that remained (' + skipped + ')')); + } + return $next_0(iterator); +} + +function getLast_0(iterator){ + var current; + while (true) { + current = iterator.next_1(); + if (!iterator.hasNext_0()) { + return current; + } + } +} + +function getLast_1(iterator){ + return $hasNext_5(iterator.val$edgesIter2)?getLast_0(iterator):null; +} + +function getNext(iterator){ + return iterator.hasNext_0()?iterator.next_1():null; +} + +function getOnlyElement(iterator){ + var first, i, sb; + first = iterator.next_1(); + if (!iterator.hasNext_0()) { + return first; + } + sb = $append_10($append_11(new StringBuilder, 'expected one element but was: <'), first); + for (i = 0; i < 4 && iterator.hasNext_0(); i++) { + $append_10((sb.string += ', ' , sb), iterator.next_1()); + } + iterator.hasNext_0() && (sb.string += ', ...' , sb); + sb.string += '>'; + throw toJs(new IllegalArgumentException_0(sb.string)); +} + +function indexOf_2(iterator, predicate){ + var current, i; + checkNotNull_0(predicate, 'predicate'); + for (i = 0; iterator.hasNext_0(); i++) { + current = iterator.next_1(); + if (predicate.apply_1(current)) { + return i; + } + } + return -1; +} + +function size_24(iterator){ + var count; + count = 0; + while (iterator.hasNext_0()) { + iterator.next_1(); + count = add_20(count, 1); + } + return saturatedCast(count); +} + +function toString_25(iterator){ + var first, sb; + sb = $append_5(new StringBuilder, 91); + first = true; + while (iterator.hasNext_0()) { + first || (sb.string += ', ' , sb); + first = false; + $append_10(sb, iterator.next_1()); + } + return (sb.string += ']' , sb).string; +} + +function transform_2(fromIterator, function_0){ + checkNotNull(function_0); + return new Iterators$6(fromIterator, function_0); +} + +function unmodifiableIterator(iterator){ + var result; + checkNotNull(iterator); + if (instanceOf(iterator, 204)) { + result = castTo(iterator, 204); + return result; + } + return new Iterators$1(iterator); +} + +function Iterators$1(val$iterator){ + this.val$iterator1 = val$iterator; +} + +defineClass(1087, 204, $intern_3, Iterators$1); +_.hasNext_0 = function hasNext_8(){ + return this.val$iterator1.hasNext_0(); +} +; +_.next_1 = function next_9(){ + return this.val$iterator1.next_1(); +} +; +var Lcom_google_common_collect_Iterators$1_2_classLit = createForClass('com.google.common.collect', 'Iterators/1', 1087); +function Iterators$5(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; +} + +defineClass(1088, 713, $intern_3, Iterators$5); +_.computeNext = function computeNext(){ + var element; + while (this.val$unfiltered1.hasNext_0()) { + element = this.val$unfiltered1.next_1(); + if (this.val$retainIfTrue2.apply_1(element)) { + return element; + } + } + return this.state = 2 , null; +} +; +var Lcom_google_common_collect_Iterators$5_2_classLit = createForClass('com.google.common.collect', 'Iterators/5', 1088); +function TransformedIterator(backingIterator){ + this.backingIterator = castTo(checkNotNull(backingIterator), 51); +} + +defineClass(497, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_8(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_9(){ + return this.backingIterator.hasNext_0(); +} +; +_.next_1 = function next_10(){ + return this.transform_0(this.backingIterator.next_1()); +} +; +_.remove = function remove_30(){ + this.backingIterator.remove(); +} +; +var Lcom_google_common_collect_TransformedIterator_2_classLit = createForClass('com.google.common.collect', 'TransformedIterator', 497); +function Iterators$6($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1089, 497, $intern_6, Iterators$6); +_.transform_0 = function transform_3(from){ + return this.val$function2.apply_0(from); +} +; +var Lcom_google_common_collect_Iterators$6_2_classLit = createForClass('com.google.common.collect', 'Iterators/6', 1089); +function Iterators$9(val$value){ + this.val$value1 = val$value; +} + +defineClass(732, 204, $intern_3, Iterators$9); +_.hasNext_0 = function hasNext_10(){ + return !this.done_0; +} +; +_.next_1 = function next_11(){ + if (this.done_0) { + throw toJs(new NoSuchElementException); + } + this.done_0 = true; + return this.val$value1; +} +; +_.done_0 = false; +var Lcom_google_common_collect_Iterators$9_2_classLit = createForClass('com.google.common.collect', 'Iterators/9', 732); +function $clinit_Iterators$ArrayItr(){ + $clinit_Iterators$ArrayItr = emptyMethod; + EMPTY_1 = new Iterators$ArrayItr(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1)); +} + +function Iterators$ArrayItr(array){ + AbstractIndexedListIterator_0.call(this, 0, 0); + this.array = array; + this.offset = 0; +} + +defineClass(1086, 399, $intern_4, Iterators$ArrayItr); +_.get_0 = function get_24(index_0){ + return this.array[this.offset + index_0]; +} +; +_.offset = 0; +var EMPTY_1; +var Lcom_google_common_collect_Iterators$ArrayItr_2_classLit = createForClass('com.google.common.collect', 'Iterators/ArrayItr', 1086); +function $getTopMetaIterator(this$static){ + while (!this$static.topMetaIterator || !this$static.topMetaIterator.hasNext_0()) { + if (!!this$static.metaIterators && !$isEmpty(this$static.metaIterators)) { + this$static.topMetaIterator = castTo($removeFirst(this$static.metaIterators), 51); + } + else { + return null; + } + } + return this$static.topMetaIterator; +} + +function $hasNext_1(this$static){ + var topConcat; + while (!castTo(checkNotNull(this$static.iterator), 51).hasNext_0()) { + this$static.topMetaIterator = $getTopMetaIterator(this$static); + if (!this$static.topMetaIterator) { + return false; + } + this$static.iterator = castTo(this$static.topMetaIterator.next_1(), 51); + if (instanceOf(this$static.iterator, 38)) { + topConcat = castTo(this$static.iterator, 38); + this$static.iterator = topConcat.iterator; + !this$static.metaIterators && (this$static.metaIterators = new ArrayDeque); + $addFirst(this$static.metaIterators, this$static.topMetaIterator); + if (topConcat.metaIterators) { + while (!$isEmpty(topConcat.metaIterators)) { + $addFirst(this$static.metaIterators, castTo($removeLast(topConcat.metaIterators), 51)); + } + } + this$static.topMetaIterator = topConcat.topMetaIterator; + } + } + return true; +} + +function $next_0(this$static){ + if ($hasNext_1(this$static)) { + this$static.toRemove = this$static.iterator; + return this$static.iterator.next_1(); + } + else { + throw toJs(new NoSuchElementException); + } +} + +function Iterators$ConcatenatedIterator(metaIterator){ + this.iterator = ($clinit_Iterators$ArrayItr() , EMPTY_1); + this.topMetaIterator = castTo(checkNotNull(metaIterator), 51); +} + +defineClass(38, 1, {38:1, 51:1}, Iterators$ConcatenatedIterator); +_.forEachRemaining = function forEachRemaining_9(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_11(){ + return $hasNext_1(this); +} +; +_.next_1 = function next_12(){ + return $next_0(this); +} +; +_.remove = function remove_31(){ + if (!this.toRemove) { + throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); + } + this.toRemove.remove(); + this.toRemove = null; +} +; +var Lcom_google_common_collect_Iterators$ConcatenatedIterator_2_classLit = createForClass('com.google.common.collect', 'Iterators/ConcatenatedIterator', 38); +function $compareTo(this$static, other){ + return this$static.ordinal - other.ordinal; +} + +function $name(this$static){ + return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; +} + +function $toString_3(this$static){ + return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; +} + +function Enum(name_0, ordinal){ + this.name_0 = name_0; + this.ordinal = ordinal; +} + +function createValueOfMap(enumConstants){ + var result, value_0, value$array, value$index, value$max; + result = {}; + for (value$array = enumConstants , value$index = 0 , value$max = value$array.length; value$index < value$max; ++value$index) { + value_0 = value$array[value$index]; + result[':' + (value_0.name_0 != null?value_0.name_0:'' + value_0.ordinal)] = value_0; + } + return result; +} + +function valueOf(map_0, name_0){ + var result; + checkCriticalNotNull(name_0); + result = map_0[':' + name_0]; + checkCriticalArgument_0(!!result, 'Enum constant undefined: ' + name_0); + return result; +} + +function valueOf_0(enumType, name_0){ + var enumValueOfFunc; + enumValueOfFunc = (checkCriticalNotNull(enumType) , enumType).enumValueOfFunc; + checkCriticalArgument(!!enumValueOfFunc); + checkCriticalNotNull(name_0); + return enumValueOfFunc(name_0); +} + +defineClass(22, 1, {3:1, 34:1, 22:1}); +_.compareTo_0 = function compareTo_3(other){ + return $compareTo(this, castTo(other, 22)); +} +; +_.equals_0 = function equals_24(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_26(){ + return getObjectIdentityHashCode(this); +} +; +_.toString_0 = function toString_26(){ + return $toString_3(this); +} +; +_.ordinal = 0; +var Ljava_lang_Enum_2_classLit = createForClass('java.lang', 'Enum', 22); +function $clinit_Iterators$EmptyModifiableIterator(){ + $clinit_Iterators$EmptyModifiableIterator = emptyMethod; + INSTANCE_2 = new Iterators$EmptyModifiableIterator; +} + +function Iterators$EmptyModifiableIterator(){ + Enum.call(this, 'INSTANCE', 0); +} + +function valueOf_1(name_0){ + $clinit_Iterators$EmptyModifiableIterator(); + return valueOf(($clinit_Iterators$EmptyModifiableIterator$Map() , $MAP), name_0); +} + +function values_12(){ + $clinit_Iterators$EmptyModifiableIterator(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_37, 549, 0, [INSTANCE_2]); +} + +defineClass(549, 22, {549:1, 3:1, 34:1, 22:1, 51:1}, Iterators$EmptyModifiableIterator); +_.forEachRemaining = function forEachRemaining_10(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_12(){ + return false; +} +; +_.next_1 = function next_13(){ + throw toJs(new NoSuchElementException); +} +; +_.remove = function remove_32(){ + checkState_0(false); +} +; +var INSTANCE_2; +var Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit = createForEnum('com.google.common.collect', 'Iterators/EmptyModifiableIterator', 549, Ljava_lang_Enum_2_classLit, values_12, valueOf_1); +function $clinit_Iterators$EmptyModifiableIterator$Map(){ + $clinit_Iterators$EmptyModifiableIterator$Map = emptyMethod; + $MAP = createValueOfMap(($clinit_Iterators$EmptyModifiableIterator() , stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_37, 549, 0, [INSTANCE_2]))); +} + +var $MAP; +function LinkedHashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1907, 627, $intern_5); +var Lcom_google_common_collect_LinkedHashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimapGwtSerializationDependencies', 1907); +function LinkedHashMultimap(){ + LinkedHashMultimapGwtSerializationDependencies.call(this, new LinkedHashMap_0(capacity_0(16))); + checkNonnegative(2, 'expectedValuesPerKey'); + this.valueSetCapacity = 2; + this.multimapHeaderEntry = new LinkedHashMultimap$ValueEntry(null, null, 0, null); + succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); +} + +function succeedsInMultimap(pred, succ){ + pred.successorInMultimap = succ; + succ.predecessorInMultimap = pred; +} + +function succeedsInValueSet(pred, succ){ + pred.setSuccessorInValueSet(succ); + succ.setPredecessorInValueSet(pred); +} + +defineClass(1908, 1907, $intern_5, LinkedHashMultimap); +_.createCollection = function createCollection_7(){ + return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); +} +; +_.clear_0 = function clear_21(){ + $clear(this); + succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); +} +; +_.createCollection_1 = function createCollection_8(){ + return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); +} +; +_.createCollection_0 = function createCollection_9(key){ + return new LinkedHashMultimap$ValueSet(this, key, this.valueSetCapacity); +} +; +_.entryIterator = function entryIterator_4(){ + return new LinkedHashMultimap$1(this); +} +; +_.entrySpliterator = function entrySpliterator_3(){ + var result; + return new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17); +} +; +_.keySet_0 = function keySet_13(){ + var result; + return result = this.keySet , !result?(this.keySet = new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result; +} +; +_.valueIterator_0 = function valueIterator_0(){ + return new Maps$2(new LinkedHashMultimap$1(this)); +} +; +_.valueSpliterator = function valueSpliterator_0(){ + var result; + return map_2(new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17), new LinkedHashMultimap$0methodref$getValue$Type); +} +; +_.valueSetCapacity = 2; +var Lcom_google_common_collect_LinkedHashMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap', 1908); +function LinkedHashMultimap$0methodref$getValue$Type(){ +} + +defineClass(1911, 1, {}, LinkedHashMultimap$0methodref$getValue$Type); +_.apply_0 = function apply_13(arg0){ + return castTo(arg0, 44).getValue(); +} +; +var Lcom_google_common_collect_LinkedHashMultimap$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/0methodref$getValue$Type', 1911); +function $next_1(this$static){ + var result; + if (this$static.nextEntry == this$static.this$01.multimapHeaderEntry) { + throw toJs(new NoSuchElementException); + } + result = this$static.nextEntry; + this$static.toRemove = result; + this$static.nextEntry = castTo(requireNonNull(this$static.nextEntry.successorInMultimap), 227); + return result; +} + +function LinkedHashMultimap$1(this$0){ + this.this$01 = this$0; + this.nextEntry = castTo(requireNonNull(this.this$01.multimapHeaderEntry.successorInMultimap), 227); +} + +defineClass(834, 1, $intern_6, LinkedHashMultimap$1); +_.forEachRemaining = function forEachRemaining_11(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_14(){ + return $next_1(this); +} +; +_.hasNext_0 = function hasNext_13(){ + return this.nextEntry != this.this$01.multimapHeaderEntry; +} +; +_.remove = function remove_33(){ + checkState_0(!!this.toRemove); + $remove_0(this.this$01, this.toRemove.key, this.toRemove.value_0); + this.toRemove = null; +} +; +var Lcom_google_common_collect_LinkedHashMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/1', 834); +function LinkedHashMultimap$ValueEntry(key, value_0, smearedValueHash, nextInValueBucket){ + ImmutableEntry.call(this, key, value_0); + this.smearedValueHash = smearedValueHash; + this.nextInValueBucket = nextInValueBucket; +} + +defineClass(227, 246, {358:1, 246:1, 227:1, 604:1, 3:1, 44:1}, LinkedHashMultimap$ValueEntry); +_.getSuccessorInValueSet = function getSuccessorInValueSet(){ + return castTo(requireNonNull(this.successorInValueSet), 604); +} +; +_.setPredecessorInValueSet = function setPredecessorInValueSet(entry){ + this.predecessorInValueSet = entry; +} +; +_.setSuccessorInValueSet = function setSuccessorInValueSet(entry){ + this.successorInValueSet = entry; +} +; +_.smearedValueHash = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueEntry', 227); +function $rehashIfNecessary_0(this$static){ + var bucket, entry, hashTable, mask, valueEntry; + if (needsResizing(this$static.size_0, this$static.hashTable.length)) { + hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 227, this$static.hashTable.length * 2, 0, 1); + this$static.hashTable = hashTable; + mask = hashTable.length - 1; + for (entry = this$static.firstEntry; entry != this$static; entry = entry.getSuccessorInValueSet()) { + valueEntry = castTo(entry, 227); + bucket = valueEntry.smearedValueHash & mask; + valueEntry.nextInValueBucket = hashTable[bucket]; + hashTable[bucket] = valueEntry; + } + } +} + +function $remove_3(this$static, o){ + var bucket, entry, prev, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); + bucket = smearedHash & this$static.hashTable.length - 1; + prev = null; + for (entry = this$static.hashTable[bucket]; entry; prev = entry , entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { + !prev?(this$static.hashTable[bucket] = entry.nextInValueBucket):(prev.nextInValueBucket = entry.nextInValueBucket); + succeedsInValueSet(castTo(requireNonNull(entry.predecessorInValueSet), 604), castTo(requireNonNull(entry.successorInValueSet), 604)); + succeedsInMultimap(castTo(requireNonNull(entry.predecessorInMultimap), 227), castTo(requireNonNull(entry.successorInMultimap), 227)); + --this$static.size_0; + ++this$static.modCount; + return true; + } + } + return false; +} + +function LinkedHashMultimap$ValueSet(this$0, key, expectedValues){ + var hashTable, tableSize; + this.this$01 = this$0; + this.key = key; + this.firstEntry = this; + this.lastEntry = this; + tableSize = closedTableSize(expectedValues); + hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 227, tableSize, 0, 1); + this.hashTable = hashTable; +} + +defineClass(1909, 2068, {604:1, 20:1, 31:1, 16:1, 21:1}, LinkedHashMultimap$ValueSet); +_.add_2 = function add_10(value_0){ + var bucket, entry, newEntry, rowHead, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + bucket = smearedHash & this.hashTable.length - 1; + rowHead = this.hashTable[bucket]; + for (entry = rowHead; entry; entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, value_0)) { + return false; + } + } + newEntry = new LinkedHashMultimap$ValueEntry(this.key, value_0, smearedHash, rowHead); + succeedsInValueSet(this.lastEntry, newEntry); + newEntry.successorInValueSet = this; + this.lastEntry = newEntry; + succeedsInMultimap(castTo(requireNonNull(this.this$01.multimapHeaderEntry.predecessorInMultimap), 227), newEntry); + succeedsInMultimap(newEntry, this.this$01.multimapHeaderEntry); + this.hashTable[bucket] = newEntry; + ++this.size_0; + ++this.modCount; + $rehashIfNecessary_0(this); + return true; +} +; +_.clear_0 = function clear_22(){ + var entry, valueEntry; + fill_2(this.hashTable, null); + this.size_0 = 0; + for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { + valueEntry = castTo(entry, 227); + succeedsInMultimap(castTo(requireNonNull(valueEntry.predecessorInMultimap), 227), castTo(requireNonNull(valueEntry.successorInMultimap), 227)); + } + this.firstEntry = this; + this.lastEntry = this; + ++this.modCount; +} +; +_.contains = function contains_20(o){ + var entry, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); + for (entry = this.hashTable[smearedHash & this.hashTable.length - 1]; entry; entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { + return true; + } + } + return false; +} +; +_.forEach_0 = function forEach_12(action){ + var entry; + checkNotNull(action); + for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { + action.accept(castTo(entry, 227).value_0); + } +} +; +_.getSuccessorInValueSet = function getSuccessorInValueSet_0(){ + return this.firstEntry; +} +; +_.iterator_0 = function iterator_32(){ + return new LinkedHashMultimap$ValueSet$1(this); +} +; +_.remove_1 = function remove_34(o){ + return $remove_3(this, o); +} +; +_.setPredecessorInValueSet = function setPredecessorInValueSet_0(entry){ + this.lastEntry = entry; +} +; +_.setSuccessorInValueSet = function setSuccessorInValueSet_0(entry){ + this.firstEntry = entry; +} +; +_.size_1 = function size_25(){ + return this.size_0; +} +; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueSet_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet', 1909); +function $checkForComodification(this$static){ + if (this$static.this$11.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function LinkedHashMultimap$ValueSet$1(this$1){ + this.this$11 = this$1; + this.nextEntry = this.this$11.firstEntry; + this.expectedModCount = this.this$11.modCount; +} + +defineClass(1910, 1, $intern_6, LinkedHashMultimap$ValueSet$1); +_.forEachRemaining = function forEachRemaining_12(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_14(){ + return $checkForComodification(this) , this.nextEntry != this.this$11; +} +; +_.next_1 = function next_15(){ + var entry, result; + $checkForComodification(this); + if (this.nextEntry == this.this$11) { + throw toJs(new NoSuchElementException); + } + entry = castTo(this.nextEntry, 227); + result = entry.value_0; + this.toRemove = entry; + this.nextEntry = castTo(requireNonNull(entry.successorInValueSet), 604); + return result; +} +; +_.remove = function remove_35(){ + $checkForComodification(this); + checkState_0(!!this.toRemove); + $remove_3(this.this$11, this.toRemove.value_0); + this.expectedModCount = this.this$11.modCount; + this.toRemove = null; +} +; +_.expectedModCount = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueSet$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet/1', 1910); +function $addNode(this$static, key, value_0, nextSibling){ + var keyList, keyTail, node; + node = new LinkedListMultimap$Node(key, value_0); + if (!this$static.head) { + this$static.head = this$static.tail = node; + $put_6(this$static.keyToKeyList, key, new LinkedListMultimap$KeyList(node)); + ++this$static.modCount; + } + else if (!nextSibling) { + castTo(requireNonNull(this$static.tail), 511).next_0 = node; + node.previous = this$static.tail; + this$static.tail = node; + keyList = castTo($get_10(this$static.keyToKeyList, key), 260); + if (!keyList) { + $put_6(this$static.keyToKeyList, key, keyList = new LinkedListMultimap$KeyList(node)); + ++this$static.modCount; + } + else { + ++keyList.count; + keyTail = keyList.tail; + keyTail.nextSibling = node; + node.previousSibling = keyTail; + keyList.tail = node; + } + } + else { + keyList = castTo(requireNonNull(castTo($get_10(this$static.keyToKeyList, key), 260)), 260); + ++keyList.count; + node.previous = nextSibling.previous; + node.previousSibling = nextSibling.previousSibling; + node.next_0 = nextSibling; + node.nextSibling = nextSibling; + !nextSibling.previousSibling?(keyList.head = node):(nextSibling.previousSibling.nextSibling = node); + !nextSibling.previous?(this$static.head = node):(nextSibling.previous.next_0 = node); + nextSibling.previous = node; + nextSibling.previousSibling = node; + } + ++this$static.size_0; + return node; +} + +function $clear_3(this$static){ + this$static.head = null; + this$static.tail = null; + $reset(this$static.keyToKeyList); + this$static.size_0 = 0; + ++this$static.modCount; +} + +function $containsKey_1(this$static, key){ + return $containsKey_3(this$static.keyToKeyList, key); +} + +function $removeAll_2(this$static, key){ + var castKey, oldValues; + castKey = key; + oldValues = unmodifiableList(newArrayList_0(new LinkedListMultimap$ValueForKeyIterator(this$static, castKey))); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this$static, castKey)); + return oldValues; +} + +function $removeNode(this$static, node){ + var keyList; + node.previous?(node.previous.next_0 = node.next_0):(this$static.head = node.next_0); + node.next_0?(node.next_0.previous = node.previous):(this$static.tail = node.previous); + if (!node.previousSibling && !node.nextSibling) { + keyList = castTo(requireNonNull(castTo($remove_6(this$static.keyToKeyList, node.key), 260)), 260); + keyList.count = 0; + ++this$static.modCount; + } + else { + keyList = castTo(requireNonNull(castTo($get_10(this$static.keyToKeyList, node.key), 260)), 260); + --keyList.count; + !node.previousSibling?(keyList.head = castTo(requireNonNull(node.nextSibling), 511)):(node.previousSibling.nextSibling = node.nextSibling); + !node.nextSibling?(keyList.tail = castTo(requireNonNull(node.previousSibling), 511)):(node.nextSibling.previousSibling = node.previousSibling); + } + --this$static.size_0; +} + +function LinkedListMultimap(){ + this.keyToKeyList = new HashMap_0(capacity_0(12)); +} + +defineClass(780, 2084, $intern_5, LinkedListMultimap); +_.asMap_0 = function asMap_4(){ + var result; + return result = this.asMap , !result?(this.asMap = new Multimaps$AsMap(this)):result; +} +; +_.equals_0 = function equals_25(object){ + return equalsImpl_1(this, object); +} +; +_.get_1 = function get_25(key){ + return new LinkedListMultimap$1(this, key); +} +; +_.removeAll = function removeAll_6(key){ + return $removeAll_2(this, key); +} +; +_.clear_0 = function clear_23(){ + $clear_3(this); +} +; +_.containsKey = function containsKey_7(key){ + return $containsKey_1(this, key); +} +; +_.createAsMap = function createAsMap_0(){ + return new Multimaps$AsMap(this); +} +; +_.createKeySet = function createKeySet_8(){ + return new LinkedListMultimap$1KeySetImpl(this); +} +; +_.get_2 = function get_26(key){ + return new LinkedListMultimap$1(this, key); +} +; +_.isEmpty = function isEmpty_14(){ + return !this.head; +} +; +_.removeAll_0 = function removeAll_7(key){ + return $removeAll_2(this, key); +} +; +_.size_1 = function size_26(){ + return this.size_0; +} +; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_LinkedListMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap', 780); +function $equals_2(this$static, o){ + var elem, elem$iterator, elemOther, iterOther, other; + if (maskUndefined(o) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(o, 15)) { + return false; + } + other = castTo(o, 15); + if (this$static.size_1() != other.size_1()) { + return false; + } + iterOther = other.iterator_0(); + for (elem$iterator = this$static.iterator_0(); elem$iterator.hasNext_0();) { + elem = elem$iterator.next_1(); + elemOther = iterOther.next_1(); + if (!(maskUndefined(elem) === maskUndefined(elemOther) || elem != null && equals_Ljava_lang_Object__Z__devirtual$(elem, elemOther))) { + return false; + } + } + return true; +} + +function $indexOf(this$static, toFind){ + var i, n; + for (i = 0 , n = this$static.size_1(); i < n; ++i) { + if (equals_57(toFind, this$static.get_0(i))) { + return i; + } + } + return -1; +} + +defineClass(56, 31, $intern_38); +_.sort_0 = function sort_2(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_23(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.add_3 = function add_11(index_0, element){ + throw toJs(new UnsupportedOperationException_0('Add not supported on this list')); +} +; +_.add_2 = function add_12(obj){ + this.add_3(this.size_1(), obj); + return true; +} +; +_.addAll_0 = function addAll_8(index_0, c){ + var changed, e, e$iterator; + checkCriticalNotNull(c); + changed = false; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + this.add_3(index_0++, e); + changed = true; + } + return changed; +} +; +_.clear_0 = function clear_24(){ + this.removeRange(0, this.size_1()); +} +; +_.equals_0 = function equals_26(o){ + return $equals_2(this, o); +} +; +_.hashCode_1 = function hashCode_27(){ + return hashCode_49(this); +} +; +_.indexOf_0 = function indexOf_3(toFind){ + return $indexOf(this, toFind); +} +; +_.iterator_0 = function iterator_33(){ + return new AbstractList$IteratorImpl(this); +} +; +_.listIterator_0 = function listIterator_4(){ + return this.listIterator_1(0); +} +; +_.listIterator_1 = function listIterator_5(from){ + return new AbstractList$ListIteratorImpl(this, from); +} +; +_.remove_2 = function remove_36(index_0){ + throw toJs(new UnsupportedOperationException_0('Remove not supported on this list')); +} +; +_.removeRange = function removeRange(fromIndex, endIndex){ + var i, iter; + iter = this.listIterator_1(fromIndex); + for (i = fromIndex; i < endIndex; ++i) { + iter.next_1(); + iter.remove(); + } +} +; +_.set_2 = function set_5(index_0, o){ + throw toJs(new UnsupportedOperationException_0('Set not supported on this list')); +} +; +_.subList = function subList_5(fromIndex, toIndex){ + return new AbstractList$SubList(this, fromIndex, toIndex); +} +; +_.modCount = 0; +var Ljava_util_AbstractList_2_classLit = createForClass('java.util', 'AbstractList', 56); +function $add_0(this$static, index_0, element){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(element); +} + +function $addAll_0(this$static, index_0, c){ + var e, e$iterator, iter, modified; + checkCriticalNotNull(c); + modified = false; + iter = this$static.listIterator_1(index_0); + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + iter.add_1(e); + modified = true; + } + return modified; +} + +function $get_7(this$static, index_0){ + var iter; + iter = this$static.listIterator_1(index_0); + try { + return iter.next_1(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 112)) { + throw toJs(new IndexOutOfBoundsException_0("Can't get element " + index_0)); + } + else + throw toJs($e0); + } +} + +function $remove_4(this$static, index_0){ + var iter, old; + iter = this$static.listIterator_1(index_0); + try { + old = iter.next_1(); + iter.remove(); + return old; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 112)) { + throw toJs(new IndexOutOfBoundsException_0("Can't remove element " + index_0)); + } + else + throw toJs($e0); + } +} + +defineClass(2062, 56, $intern_38); +_.add_3 = function add_13(index_0, element){ + $add_0(this, index_0, element); +} +; +_.addAll_0 = function addAll_9(index_0, c){ + return $addAll_0(this, index_0, c); +} +; +_.get_0 = function get_27(index_0){ + return $get_7(this, index_0); +} +; +_.iterator_0 = function iterator_34(){ + return this.listIterator_1(0); +} +; +_.remove_2 = function remove_37(index_0){ + return $remove_4(this, index_0); +} +; +_.set_2 = function set_6(index_0, element){ + var iter, old; + iter = this.listIterator_1(index_0); + try { + old = iter.next_1(); + iter.set_1(element); + return old; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 112)) { + throw toJs(new IndexOutOfBoundsException_0("Can't set element " + index_0)); + } + else + throw toJs($e0); + } +} +; +var Ljava_util_AbstractSequentialList_2_classLit = createForClass('java.util', 'AbstractSequentialList', 2062); +function $listIterator_0(this$static, index_0){ + return new LinkedListMultimap$ValueForKeyIterator_0(this$static.this$01, this$static.val$key2, index_0); +} + +function LinkedListMultimap$1(this$0, val$key){ + this.this$01 = this$0; + this.val$key2 = val$key; +} + +defineClass(646, 2062, $intern_38, LinkedListMultimap$1); +_.listIterator_1 = function listIterator_6(index_0){ + return $listIterator_0(this, index_0); +} +; +_.size_1 = function size_27(){ + var keyList; + keyList = castTo($get_10(this.this$01.keyToKeyList, this.val$key2), 260); + return !keyList?0:keyList.count; +} +; +var Lcom_google_common_collect_LinkedListMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1', 646); +function LinkedListMultimap$1KeySetImpl(this$0){ + this.this$01 = this$0; +} + +defineClass(1316, 2068, $intern_10, LinkedListMultimap$1KeySetImpl); +_.contains = function contains_21(key){ + return $containsKey_1(this.this$01, key); +} +; +_.iterator_0 = function iterator_35(){ + return new LinkedListMultimap$DistinctKeyIterator(this.this$01); +} +; +_.remove_1 = function remove_38(o){ + return !$removeAll_2(this.this$01, o).list.isEmpty(); +} +; +_.size_1 = function size_28(){ + return $size_2(this.this$01.keyToKeyList); +} +; +var Lcom_google_common_collect_LinkedListMultimap$1KeySetImpl_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1KeySetImpl', 1316); +function $checkForConcurrentModification(this$static){ + if (this$static.this$01.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function LinkedListMultimap$DistinctKeyIterator(this$0){ + this.this$01 = this$0; + this.seenKeys = new HashSet_0(capacity_0($keySet(this.this$01).size_1())); + this.next_0 = this.this$01.head; + this.expectedModCount = this.this$01.modCount; +} + +defineClass(1315, 1, $intern_6, LinkedListMultimap$DistinctKeyIterator); +_.forEachRemaining = function forEachRemaining_13(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_15(){ + $checkForConcurrentModification(this); + return !!this.next_0; +} +; +_.next_1 = function next_16(){ + $checkForConcurrentModification(this); + if (!this.next_0) { + throw toJs(new NoSuchElementException); + } + this.current = this.next_0; + $add_6(this.seenKeys, this.current.key); + do { + this.next_0 = this.next_0.next_0; + } + while (!!this.next_0 && !$add_6(this.seenKeys, this.next_0.key)); + return this.current.key; +} +; +_.remove = function remove_39(){ + $checkForConcurrentModification(this); + checkState_0(!!this.current); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this.this$01, this.current.key)); + this.current = null; + this.expectedModCount = this.this$01.modCount; +} +; +_.expectedModCount = 0; +var Lcom_google_common_collect_LinkedListMultimap$DistinctKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/DistinctKeyIterator', 1315); +function LinkedListMultimap$KeyList(firstNode){ + this.head = firstNode; + this.tail = firstNode; + firstNode.previousSibling = null; + firstNode.nextSibling = null; + this.count = 1; +} + +defineClass(260, 1, {260:1}, LinkedListMultimap$KeyList); +_.count = 0; +var Lcom_google_common_collect_LinkedListMultimap$KeyList_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/KeyList', 260); +function LinkedListMultimap$Node(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(511, 358, {358:1, 511:1, 44:1}, LinkedListMultimap$Node); +_.getKey = function getKey_3(){ + return this.key; +} +; +_.getValue = function getValue_5(){ + return this.value_0; +} +; +_.setValue = function setValue_6(newValue){ + var result; + result = this.value_0; + this.value_0 = newValue; + return result; +} +; +var Lcom_google_common_collect_LinkedListMultimap$Node_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/Node', 511); +function $next_2(this$static){ + if (!this$static.next_0) { + throw toJs(new NoSuchElementException); + } + this$static.previous = this$static.current = this$static.next_0; + this$static.next_0 = this$static.next_0.nextSibling; + ++this$static.nextIndex; + return this$static.current.value_0; +} + +function $previous(this$static){ + if (!this$static.previous) { + throw toJs(new NoSuchElementException); + } + this$static.next_0 = this$static.current = this$static.previous; + this$static.previous = this$static.previous.previousSibling; + --this$static.nextIndex; + return this$static.current.value_0; +} + +function LinkedListMultimap$ValueForKeyIterator(this$0, key){ + var keyList; + this.this$01 = this$0; + this.key = key; + keyList = castTo($get_10(this$0.keyToKeyList, key), 260); + this.next_0 = !keyList?null:keyList.head; +} + +function LinkedListMultimap$ValueForKeyIterator_0(this$0, key, index_0){ + var keyList, size_0; + this.this$01 = this$0; + keyList = castTo($get_10(this$0.keyToKeyList, key), 260); + size_0 = !keyList?0:keyList.count; + checkPositionIndex(index_0, size_0); + if (index_0 >= (size_0 / 2 | 0)) { + this.previous = !keyList?null:keyList.tail; + this.nextIndex = size_0; + while (index_0++ < size_0) { + $previous(this); + } + } + else { + this.next_0 = !keyList?null:keyList.head; + while (index_0-- > 0) { + $next_2(this); + } + } + this.key = key; + this.current = null; +} + +defineClass(566, 1, $intern_14, LinkedListMultimap$ValueForKeyIterator, LinkedListMultimap$ValueForKeyIterator_0); +_.forEachRemaining = function forEachRemaining_14(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_14(value_0){ + this.previous = $addNode(this.this$01, this.key, value_0, this.next_0); + ++this.nextIndex; + this.current = null; +} +; +_.hasNext_0 = function hasNext_16(){ + return !!this.next_0; +} +; +_.hasPrevious = function hasPrevious_1(){ + return !!this.previous; +} +; +_.next_1 = function next_17(){ + return $next_2(this); +} +; +_.nextIndex_0 = function nextIndex_2(){ + return this.nextIndex; +} +; +_.previous_0 = function previous_2(){ + return $previous(this); +} +; +_.previousIndex = function previousIndex_1(){ + return this.nextIndex - 1; +} +; +_.remove = function remove_40(){ + checkState_0(!!this.current); + if (this.current != this.next_0) { + this.previous = this.current.previousSibling; + --this.nextIndex; + } + else { + this.next_0 = this.current.nextSibling; + } + $removeNode(this.this$01, this.current); + this.current = null; +} +; +_.set_1 = function set_7(value_0){ + checkState(!!this.current); + this.current.value_0 = value_0; +} +; +_.nextIndex = 0; +var Lcom_google_common_collect_LinkedListMultimap$ValueForKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/ValueForKeyIterator', 566); +function computeArrayListCapacity(arraySize){ + checkNonnegative(arraySize, 'arraySize'); + return saturatedCast(add_20(add_20(5, arraySize), arraySize / 10 | 0)); +} + +function equalsImpl(thisList, other){ + var i, otherList, size_0; + if (maskUndefined(other) === maskUndefined(checkNotNull(thisList))) { + return true; + } + if (!instanceOf(other, 15)) { + return false; + } + otherList = castTo(other, 15); + size_0 = thisList.size_1(); + if (size_0 != otherList.size_1()) { + return false; + } + if (instanceOf(otherList, 59)) { + for (i = 0; i < size_0; i++) { + if (!equal(thisList.get_0(i), otherList.get_0(i))) { + return false; + } + } + return true; + } + else { + return elementsEqual(thisList.iterator_0(), otherList.iterator_0()); + } +} + +function hashCodeImpl(list){ + var hashCode, o, o$iterator; + hashCode = 1; + for (o$iterator = list.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + hashCode = 31 * hashCode + (o == null?0:hashCode__I__devirtual$(o)); + hashCode = ~~hashCode; + } + return hashCode; +} + +function indexOfRandomAccess(list, element){ + var i, size_0; + size_0 = list.size_1(); + if (element == null) { + for (i = 0; i < size_0; i++) { + if (list.get_0(i) == null) { + return i; + } + } + } + else { + for (i = 0; i < size_0; i++) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, list.get_0(i))) { + return i; + } + } + } + return -1; +} + +function newArrayList(elements){ + checkNotNull(elements); + return instanceOf(elements, 16)?new ArrayList_1(castTo(elements, 16)):newArrayList_0(elements.iterator_0()); +} + +function newArrayList_0(elements){ + var list; + list = new ArrayList; + addAll_7(list, elements); + return list; +} + +function newArrayList_1(elements){ + var capacity, list; + checkNotNull(elements); + capacity = computeArrayListCapacity(elements.length); + list = new ArrayList_0(capacity); + addAll_15(list, elements); + return list; +} + +function newArrayListWithCapacity(initialArraySize){ + checkNonnegative(initialArraySize, 'initialArraySize'); + return new ArrayList_0(initialArraySize); +} + +function newArrayListWithExpectedSize(estimatedSize){ + return new ArrayList_0((checkNonnegative(estimatedSize, 'arraySize') , saturatedCast(add_20(add_20(5, estimatedSize), estimatedSize / 10 | 0)))); +} + +function newLinkedList(elements){ + var list; + list = new LinkedList; + addAll_6(list, elements); + return list; +} + +function reverse_0(list){ + var result, reversed; + if (instanceOf(list, 307)) { + reversed = $reverse(castTo(list, 307)); + result = reversed; + return result; + } + else + return instanceOf(list, 441)?castTo(list, 441).forwardList:instanceOf(list, 59)?new Lists$RandomAccessReverseList(list):new Lists$ReverseList(list); +} + +defineClass(1031, 56, $intern_38); +_.add_3 = function add_15(index_0, element){ + this.backingList.add_3(index_0, element); +} +; +_.addAll_0 = function addAll_10(index_0, c){ + return this.backingList.addAll_0(index_0, c); +} +; +_.contains = function contains_22(o){ + return this.backingList.contains(o); +} +; +_.get_0 = function get_28(index_0){ + return this.backingList.get_0(index_0); +} +; +_.remove_2 = function remove_41(index_0){ + return this.backingList.remove_2(index_0); +} +; +_.set_2 = function set_8(index_0, element){ + return this.backingList.set_2(index_0, element); +} +; +_.size_1 = function size_29(){ + return this.backingList.size_1(); +} +; +var Lcom_google_common_collect_Lists$AbstractListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/AbstractListWrapper', 1031); +defineClass(1032, 1031, $intern_39); +var Lcom_google_common_collect_Lists$RandomAccessListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessListWrapper', 1032); +function Lists$1($anonymous0){ + this.backingList = castTo(checkNotNull($anonymous0), 15); +} + +defineClass(1034, 1032, $intern_39, Lists$1); +_.listIterator_1 = function listIterator_7(index_0){ + return this.backingList.listIterator_1(index_0); +} +; +var Lcom_google_common_collect_Lists$1_2_classLit = createForClass('com.google.common.collect', 'Lists/1', 1034); +function $listIterator_1(this$static, index_0){ + var forwardIterator, start_0; + start_0 = $reversePosition(this$static, index_0); + forwardIterator = this$static.forwardList.listIterator_1(start_0); + return new Lists$ReverseList$1(this$static, forwardIterator); +} + +function $reverseIndex(this$static, index_0){ + var size_0; + size_0 = this$static.forwardList.size_1(); + checkElementIndex(index_0, size_0); + return size_0 - 1 - index_0; +} + +function $reversePosition(this$static, index_0){ + var size_0; + size_0 = this$static.forwardList.size_1(); + checkPositionIndex(index_0, size_0); + return size_0 - index_0; +} + +function Lists$ReverseList(forwardList){ + this.forwardList = castTo(checkNotNull(forwardList), 15); +} + +defineClass(441, 56, {441:1, 20:1, 31:1, 56:1, 16:1, 15:1}, Lists$ReverseList); +_.add_3 = function add_16(index_0, element){ + this.forwardList.add_3($reversePosition(this, index_0), element); +} +; +_.clear_0 = function clear_25(){ + this.forwardList.clear_0(); +} +; +_.get_0 = function get_29(index_0){ + return this.forwardList.get_0($reverseIndex(this, index_0)); +} +; +_.iterator_0 = function iterator_36(){ + return $listIterator_1(this, 0); +} +; +_.listIterator_1 = function listIterator_8(index_0){ + return $listIterator_1(this, index_0); +} +; +_.remove_2 = function remove_42(index_0){ + return this.forwardList.remove_2($reverseIndex(this, index_0)); +} +; +_.removeRange = function removeRange_0(fromIndex, toIndex){ + (checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex)))).clear_0(); +} +; +_.set_2 = function set_9(index_0, element){ + return this.forwardList.set_2($reverseIndex(this, index_0), element); +} +; +_.size_1 = function size_30(){ + return this.forwardList.size_1(); +} +; +_.subList = function subList_6(fromIndex, toIndex){ + return checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex))); +} +; +var Lcom_google_common_collect_Lists$ReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList', 441); +function Lists$RandomAccessReverseList(forwardList){ + Lists$ReverseList.call(this, forwardList); +} + +defineClass(1030, 441, {441:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, Lists$RandomAccessReverseList); +var Lcom_google_common_collect_Lists$RandomAccessReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessReverseList', 1030); +function Lists$ReverseList$1(this$1, val$forwardIterator){ + this.this$11 = this$1; + this.val$forwardIterator2 = val$forwardIterator; +} + +defineClass(1033, 1, $intern_14, Lists$ReverseList$1); +_.forEachRemaining = function forEachRemaining_15(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_17(e){ + this.val$forwardIterator2.add_1(e); + this.val$forwardIterator2.previous_0(); + this.canRemoveOrSet = false; +} +; +_.hasNext_0 = function hasNext_17(){ + return this.val$forwardIterator2.hasPrevious(); +} +; +_.hasPrevious = function hasPrevious_2(){ + return this.val$forwardIterator2.hasNext_0(); +} +; +_.next_1 = function next_18(){ + if (!this.val$forwardIterator2.hasPrevious()) { + throw toJs(new NoSuchElementException); + } + this.canRemoveOrSet = true; + return this.val$forwardIterator2.previous_0(); +} +; +_.nextIndex_0 = function nextIndex_3(){ + return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()); +} +; +_.previous_0 = function previous_3(){ + if (!this.val$forwardIterator2.hasNext_0()) { + throw toJs(new NoSuchElementException); + } + this.canRemoveOrSet = true; + return this.val$forwardIterator2.next_1(); +} +; +_.previousIndex = function previousIndex_2(){ + return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()) - 1; +} +; +_.remove = function remove_43(){ + checkState_0(this.canRemoveOrSet); + this.val$forwardIterator2.remove(); + this.canRemoveOrSet = false; +} +; +_.set_1 = function set_10(e){ + checkState(this.canRemoveOrSet); + this.val$forwardIterator2.set_1(e); +} +; +_.canRemoveOrSet = false; +var Lcom_google_common_collect_Lists$ReverseList$1_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList/1', 1033); +function asMapEntryIterator(set_0, function_0){ + return new Maps$3(set_0.iterator_0(), function_0); +} + +function capacity_0(expectedSize){ + if (expectedSize < 3) { + checkNonnegative(expectedSize, 'expectedSize'); + return expectedSize + 1; + } + if (expectedSize < $intern_36) { + return round_int(expectedSize / 0.75 + 1); + } + return $intern_0; +} + +function equalsImpl_0(map_0, object){ + var o; + if (map_0 === object) { + return true; + } + else if (instanceOf(object, 85)) { + o = castTo(object, 85); + return equalsImpl_3($entrySet_1(map_0), o.entrySet_0()); + } + return false; +} + +function indexMap(list){ + var builder, e, e$iterator, i; + builder = new ImmutableMap$Builder(list.delegateList_0().size_1()); + i = 0; + for (e$iterator = unmodifiableIterator(list.delegateList_0().iterator_0()); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $put_4(builder, e, valueOf_3(i++)); + } + return fromEntryList(builder.entries_0); +} + +function keyOrNull(entry){ + return !entry?null:entry.key; +} + +function safeContainsKey(map_0, key){ + checkNotNull(map_0); + try { + return map_0.containsKey(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212) || instanceOf($e0, 169)) { + return false; + } + else + throw toJs($e0); + } +} + +function safeGet(map_0, key){ + checkNotNull(map_0); + try { + return map_0.get_3(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212) || instanceOf($e0, 169)) { + return null; + } + else + throw toJs($e0); + } +} + +function safeRemove_0(map_0, key){ + checkNotNull(map_0); + try { + return map_0.remove_0(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 212) || instanceOf($e0, 169)) { + return null; + } + else + throw toJs($e0); + } +} + +function toStringImpl(map_0){ + var entry, entry$iterator, first, sb; + sb = $append_5((checkNonnegative(map_0.size_1(), 'size') , new StringBuilder_0), 123); + first = true; + for (entry$iterator = $entrySet_1(map_0).iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + first || (sb.string += ', ' , sb); + first = false; + $append_10($append_5($append_10(sb, entry.getKey()), 61), entry.getValue()); + } + return (sb.string += '}' , sb).string; +} + +function valueOrNull(entry){ + return !entry?null:entry.value_0; +} + +function $transform(entry){ + return castTo(entry, 44).getKey(); +} + +function Maps$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(440, 497, $intern_6, Maps$1); +_.transform_0 = function transform_4(entry){ + return $transform(entry); +} +; +var Lcom_google_common_collect_Maps$1_2_classLit = createForClass('com.google.common.collect', 'Maps/1', 440); +function Maps$2($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(712, 497, $intern_6, Maps$2); +_.transform_0 = function transform_5(entry){ + return castTo(entry, 44).getValue(); +} +; +var Lcom_google_common_collect_Maps$2_2_classLit = createForClass('com.google.common.collect', 'Maps/2', 712); +function Maps$3($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(975, 497, $intern_6, Maps$3); +_.transform_0 = function transform_6(key){ + return new ImmutableEntry(key, $apply_0(this.val$function2, key)); +} +; +var Lcom_google_common_collect_Maps$3_2_classLit = createForClass('com.google.common.collect', 'Maps/3', 975); +function Maps$IteratorBasedAbstractMap$1(this$1){ + this.this$11 = this$1; +} + +defineClass(972, 2069, $intern_10, Maps$IteratorBasedAbstractMap$1); +_.forEach_0 = function forEach_13(action){ + $forEachEntry_0(this.this$11, action); +} +; +_.iterator_0 = function iterator_37(){ + return this.this$11.entryIterator(); +} +; +_.map_1 = function map_3(){ + return this.this$11; +} +; +_.spliterator_0 = function spliterator_24(){ + return this.this$11.entrySpliterator(); +} +; +var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap$1_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap/1', 972); +function Maps$KeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(973, 1, {}, Maps$KeySet$lambda$0$Type); +_.accept_1 = function accept_10(arg0, arg1){ + this.action_0.accept(arg0); +} +; +var Lcom_google_common_collect_Maps$KeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet/lambda$0$Type', 973); +function Maps$Values(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 85); +} + +defineClass(971, 31, $intern_8, Maps$Values); +_.clear_0 = function clear_26(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_23(o){ + return this.map_0.containsValue(o); +} +; +_.forEach_0 = function forEach_14(action){ + checkNotNull(action); + this.map_0.forEach(new Maps$Values$lambda$0$Type(action)); +} +; +_.isEmpty = function isEmpty_15(){ + return this.map_0.isEmpty(); +} +; +_.iterator_0 = function iterator_38(){ + return new Maps$2(this.map_0.entrySet_0().iterator_0()); +} +; +_.remove_1 = function remove_44(o){ + var entry, entry$iterator; + try { + return $advanceToFind(this, o, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 48)) { + for (entry$iterator = this.map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + if (equal(o, entry.getValue())) { + this.map_0.remove_0(entry.getKey()); + return true; + } + } + return false; + } + else + throw toJs($e0); + } +} +; +_.size_1 = function size_31(){ + return this.map_0.size_1(); +} +; +var Lcom_google_common_collect_Maps$Values_2_classLit = createForClass('com.google.common.collect', 'Maps/Values', 971); +function Maps$Values$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(974, 1, {}, Maps$Values$lambda$0$Type); +_.accept_1 = function accept_11(arg0, arg1){ + this.action_0.accept(arg1); +} +; +var Lcom_google_common_collect_Maps$Values$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/Values/lambda$0$Type', 974); +function equalsImpl_1(multimap, object){ + var that; + if (object === multimap) { + return true; + } + if (instanceOf(object, 229)) { + that = castTo(object, 229); + return equals_Ljava_lang_Object__Z__devirtual$(multimap.asMap_0(), that.asMap_0()); + } + return false; +} + +function $removeValuesForKey_0(this$static, key){ + this$static.multimap.keySet_0().remove_1(key); +} + +function Multimaps$AsMap(multimap){ + this.multimap = castTo(checkNotNull(multimap), 229); +} + +defineClass(752, 2085, $intern_7, Multimaps$AsMap); +_.get_3 = function get_30(key){ + return this.multimap.containsKey(key)?this.multimap.get_1(key):null; +} +; +_.remove_0 = function remove_45(key){ + return this.multimap.containsKey(key)?this.multimap.removeAll(key):null; +} +; +_.clear_0 = function clear_27(){ + this.multimap.clear_0(); +} +; +_.containsKey = function containsKey_8(key){ + return this.multimap.containsKey(key); +} +; +_.createEntrySet_0 = function createEntrySet_1(){ + return new Multimaps$AsMap$EntrySet(this); +} +; +_.createEntrySet = function(){ + return this.createEntrySet_0(); +} +; +_.isEmpty = function isEmpty_16(){ + return this.multimap.isEmpty(); +} +; +_.keySet_0 = function keySet_14(){ + return this.multimap.keySet_0(); +} +; +_.size_1 = function size_32(){ + return this.multimap.keySet_0().size_1(); +} +; +var Lcom_google_common_collect_Multimaps$AsMap_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap', 752); +function Multimaps$AsMap$EntrySet(this$1){ + this.this$11 = this$1; +} + +defineClass(1134, 2069, $intern_10, Multimaps$AsMap$EntrySet); +_.iterator_0 = function iterator_39(){ + return asMapEntryIterator(this.this$11.multimap.keySet_0(), new Multimaps$AsMap$EntrySet$1(this)); +} +; +_.map_1 = function map_4(){ + return this.this$11; +} +; +_.remove_1 = function remove_46(o){ + var entry; + if (!$contains(this, o)) { + return false; + } + entry = castTo(requireNonNull(castTo(o, 44)), 44); + $removeValuesForKey_0(this.this$11, entry.getKey()); + return true; +} +; +var Lcom_google_common_collect_Multimaps$AsMap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet', 1134); +function $apply_0(this$static, key){ + return this$static.this$21.this$11.multimap.get_1(key); +} + +function Multimaps$AsMap$EntrySet$1(this$2){ + this.this$21 = this$2; +} + +defineClass(1138, 1, {}, Multimaps$AsMap$EntrySet$1); +_.apply_0 = function apply_14(key){ + return $apply_0(this, key); +} +; +_.equals_0 = function equals_27(other){ + return this === other; +} +; +var Lcom_google_common_collect_Multimaps$AsMap$EntrySet$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet/1', 1138); +function $count(this$static, element){ + var values; + values = castTo(safeGet($asMap(this$static.multimap), element), 16); + return !values?0:values.size_1(); +} + +function $remove_5(this$static, element, occurrences){ + var i, iterator, oldCount, values, values0; + checkNonnegative(occurrences, 'occurrences'); + if (occurrences == 0) { + return values0 = castTo(safeGet($asMap(this$static.multimap), element), 16) , !values0?0:values0.size_1(); + } + values = castTo(safeGet($asMap(this$static.multimap), element), 16); + if (!values) { + return 0; + } + oldCount = values.size_1(); + if (occurrences >= oldCount) { + values.clear_0(); + } + else { + iterator = values.iterator_0(); + for (i = 0; i < occurrences; i++) { + iterator.next_1(); + iterator.remove(); + } + } + return oldCount; +} + +function Multimaps$Keys(multimap){ + this.multimap = multimap; +} + +defineClass(552, 2087, {552:1, 849:1, 20:1, 31:1, 16:1}, Multimaps$Keys); +_.clear_0 = function clear_28(){ + $clear(this.multimap); +} +; +_.contains = function contains_24(element){ + return $containsKey(this.multimap, element); +} +; +_.forEach_0 = function forEach_15(consumer){ + checkNotNull(consumer); + $forEach_0($entries(this.multimap), new Multimaps$Keys$lambda$1$Type(consumer)); +} +; +_.iterator_0 = function iterator_40(){ + return new Maps$1($entries(this.multimap).this$01.entryIterator()); +} +; +_.size_1 = function size_33(){ + return this.multimap.totalSize; +} +; +_.spliterator_0 = function spliterator_25(){ + return map_2($entries(this.multimap).spliterator_0(), new Multimaps$Keys$0methodref$getKey$Type); +} +; +var Lcom_google_common_collect_Multimaps$Keys_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys', 552); +function Multimaps$Keys$0methodref$getKey$Type(){ +} + +defineClass(1136, 1, {}, Multimaps$Keys$0methodref$getKey$Type); +_.apply_0 = function apply_15(arg0){ + return castTo(arg0, 44).getKey(); +} +; +var Lcom_google_common_collect_Multimaps$Keys$0methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/0methodref$getKey$Type', 1136); +function Multimaps$Keys$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1135, 497, $intern_6, Multimaps$Keys$1); +_.transform_0 = function transform_7(backingEntry){ + return new Multimaps$Keys$1$1(castTo(backingEntry, 44)); +} +; +var Lcom_google_common_collect_Multimaps$Keys$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1', 1135); +defineClass(2088, 1, {425:1}); +_.equals_0 = function equals_28(object){ + var that; + if (instanceOf(object, 504)) { + that = castTo(object, 425); + return castTo(this.val$backingEntry2.getValue(), 16).size_1() == castTo(that.val$backingEntry2.getValue(), 16).size_1() && equal(this.val$backingEntry2.getKey(), that.val$backingEntry2.getKey()); + } + return false; +} +; +_.hashCode_1 = function hashCode_28(){ + var e; + e = this.val$backingEntry2.getKey(); + return (e == null?0:hashCode__I__devirtual$(e)) ^ castTo(this.val$backingEntry2.getValue(), 16).size_1(); +} +; +_.toString_0 = function toString_27(){ + var n, text_0; + text_0 = valueOf_6(this.val$backingEntry2.getKey()); + n = castTo(this.val$backingEntry2.getValue(), 16).size_1(); + return n == 1?text_0:text_0 + ' x ' + n; +} +; +var Lcom_google_common_collect_Multisets$AbstractEntry_2_classLit = createForClass('com.google.common.collect', 'Multisets/AbstractEntry', 2088); +function Multimaps$Keys$1$1(val$backingEntry){ + this.val$backingEntry2 = val$backingEntry; +} + +defineClass(504, 2088, {504:1, 425:1}, Multimaps$Keys$1$1); +var Lcom_google_common_collect_Multimaps$Keys$1$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1/1', 504); +function Multimaps$Keys$lambda$1$Type(consumer_0){ + this.consumer_0 = consumer_0; +} + +defineClass(1137, 1, $intern_19, Multimaps$Keys$lambda$1$Type); +_.accept = function accept_12(arg0){ + this.consumer_0.accept(castTo(arg0, 44).getKey()); +} +; +var Lcom_google_common_collect_Multimaps$Keys$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/lambda$1$Type', 1137); +function Multiset$lambda$0$Type(){ +} + +defineClass(1140, 1, $intern_19, Multiset$lambda$0$Type); +_.accept = function accept_13(arg0){ + lambda$0_1(castTo(arg0, 425)); +} +; +var Lcom_google_common_collect_Multiset$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$0$Type', 1140); +function Multiset$lambda$1$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(753, 1, $intern_19, Multiset$lambda$1$Type); +_.accept = function accept_14(arg0){ + lambda$1_0(this.action_0, castTo(arg0, 425)); +} +; +var Lcom_google_common_collect_Multiset$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$1$Type', 753); +function addAllImpl(elements){ + if ($entrySet_0(elements).isEmpty()) { + return false; + } + $forEachEntry(elements, new Multisets$0methodref$add$Type); + return true; +} + +function equalsImpl_2(multiset, object){ + var entry, entry$iterator, that; + if (object === multiset) { + return true; + } + if (instanceOf(object, 552)) { + that = castTo(object, 849); + if (multiset.multimap.totalSize != that.multimap.totalSize || $entrySet_0(multiset).size_1() != $entrySet_0(that).size_1()) { + return false; + } + for (entry$iterator = $entrySet_0(that).iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 425); + if ($count(multiset, entry.val$backingEntry2.getKey()) != castTo(entry.val$backingEntry2.getValue(), 16).size_1()) { + return false; + } + } + return true; + } + return false; +} + +function lambda$1_1(entry_0){ + return new Spliterators$IteratorSpliterator(nCopies(castTo(entry_0.val$backingEntry2.getValue(), 16).size_1(), entry_0.val$backingEntry2.getKey()), 16); +} + +function setCountImpl(self_0, element, oldCount){ + var values, oldCount_0, values_0, delta; + checkNonnegative(oldCount, 'oldCount'); + checkNonnegative(0, 'newCount'); + values = castTo(safeGet($asMap(self_0.multimap), element), 16); + if ((!values?0:values.size_1()) == oldCount) { + checkNonnegative(0, 'count'); + oldCount_0 = (values_0 = castTo(safeGet($asMap(self_0.multimap), element), 16) , !values_0?0:values_0.size_1()); + delta = -oldCount_0; + delta > 0?$add():delta < 0 && $remove_5(self_0, element, -delta); + return true; + } + else { + return false; + } +} + +function Multisets$0methodref$add$Type(){ +} + +defineClass(1141, 1, {}, Multisets$0methodref$add$Type); +var Lcom_google_common_collect_Multisets$0methodref$add$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/0methodref$add$Type', 1141); +function Multisets$lambda$1$Type(){ +} + +defineClass(754, 1, {}, Multisets$lambda$1$Type); +_.apply_0 = function apply_16(arg0){ + return lambda$1_1(castTo(arg0, 425)); +} +; +var Lcom_google_common_collect_Multisets$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/lambda$1$Type', 754); +defineClass(2106, 1, $intern_1); +var Lcom_google_common_collect_RangeGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'RangeGwtSerializationDependencies', 2106); +function $clinit_Range(){ + $clinit_Range = emptyMethod; + new Range_0(($clinit_Cut$BelowAll() , INSTANCE_1), ($clinit_Cut$AboveAll() , INSTANCE_0)); +} + +function $apply_1(this$static, input_0){ + return checkNotNull(input_0) , this$static.lowerBound.isLessThan(input_0) && !this$static.upperBound.isLessThan(input_0); +} + +function Range_0(lowerBound, upperBound){ + this.lowerBound = castTo(checkNotNull(lowerBound), 253); + this.upperBound = castTo(checkNotNull(upperBound), 253); + if (lowerBound.compareTo(upperBound) > 0 || lowerBound == ($clinit_Cut$AboveAll() , INSTANCE_0) || upperBound == ($clinit_Cut$BelowAll() , INSTANCE_1)) { + throw toJs(new IllegalArgumentException_0('Invalid range: ' + toString_29(lowerBound, upperBound))); + } +} + +function closed_0(lower, upper){ + $clinit_Range(); + return new Range_0(new Cut$BelowValue(lower), new Cut$AboveValue(upper)); +} + +function toString_29(lowerBound, upperBound){ + var sb; + sb = new StringBuilder_0; + lowerBound.describeAsLowerBound(sb); + sb.string += '..'; + upperBound.describeAsUpperBound(sb); + return sb.string; +} + +defineClass(521, 2106, {178:1, 521:1, 3:1, 46:1}, Range_0); +_.apply_1 = function apply_17(input_0){ + return $apply_1(this, castTo(input_0, 34)); +} +; +_.test_0 = function test_1(input_0){ + return $apply_1(this, castTo(input_0, 34)); +} +; +_.equals_0 = function equals_29(object){ + var other; + if (instanceOf(object, 521)) { + other = castTo(object, 521); + return $equals_1(this.lowerBound, other.lowerBound) && $equals_1(this.upperBound, other.upperBound); + } + return false; +} +; +_.hashCode_1 = function hashCode_29(){ + return this.lowerBound.hashCode_1() * 31 + this.upperBound.hashCode_1(); +} +; +_.toString_0 = function toString_28(){ + return toString_29(this.lowerBound, this.upperBound); +} +; +var Lcom_google_common_collect_Range_2_classLit = createForClass('com.google.common.collect', 'Range', 521); +function RegularImmutableAsList(delegate, delegateList){ + this.delegate = delegate; + this.delegateList = delegateList; +} + +function RegularImmutableAsList_0(delegate, array){ + $clinit_ImmutableList(); + RegularImmutableAsList.call(this, delegate, unsafeDelegateList(new Arrays$ArrayList(array))); +} + +defineClass(654, 2097, $intern_26, RegularImmutableAsList_0); +_.listIterator_1 = function listIterator_10(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +_.delegateCollection = function delegateCollection_1(){ + return this.delegate; +} +; +_.get_0 = function get_31(index_0){ + return $get_2(this.delegateList, index_0); +} +; +_.listIterator_2 = function listIterator_9(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +var Lcom_google_common_collect_RegularImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableAsList', 654); +function RegularImmutableList(delegate){ + this.delegate = ($clinit_Collections() , instanceOf(delegate, 59)?new Collections$UnmodifiableRandomAccessList(delegate):new Collections$UnmodifiableList(delegate)); +} + +defineClass(656, 2105, $intern_26, RegularImmutableList); +_.delegateList_0 = function delegateList_0(){ + return this.delegate; +} +; +var Lcom_google_common_collect_RegularImmutableList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableList', 656); +function RegularImmutableMap(entries){ + ForwardingImmutableMap.call(this, entries); +} + +function RegularImmutableMap_0(entries){ + RegularImmutableMap.call(this, entries); +} + +defineClass(548, 730, $intern_28, RegularImmutableMap, RegularImmutableMap_0); +var Lcom_google_common_collect_RegularImmutableMap_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableMap', 548); +function $clinit_RegularImmutableSet(){ + $clinit_RegularImmutableSet = emptyMethod; + $clinit_ImmutableCollection(); + EMPTY_2 = new RegularImmutableSet(($clinit_Collections() , $clinit_Collections() , EMPTY_SET)); +} + +function RegularImmutableSet(delegate){ + $clinit_RegularImmutableSet(); + ForwardingImmutableSet.call(this, delegate); +} + +defineClass(731, 719, $intern_30, RegularImmutableSet); +var EMPTY_2; +var Lcom_google_common_collect_RegularImmutableSet_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableSet', 731); +function equalsImpl_3(s, object){ + var o; + if (maskUndefined(s) === maskUndefined(object)) { + return true; + } + if (instanceOf(object, 21)) { + o = castTo(object, 21); + try { + return s.size_1() == o.size_1() && s.containsAll(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 169) || instanceOf($e0, 212)) { + return false; + } + else + throw toJs($e0); + } + } + return false; +} + +function hashCodeImpl_0(s){ + var hashCode, o, o$iterator; + hashCode = 0; + for (o$iterator = s.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + hashCode += o != null?hashCode__I__devirtual$(o):0; + hashCode = ~~hashCode; + } + return hashCode; +} + +function intersection_0(set1, set2){ + checkNotNull_0(set1, 'set1'); + checkNotNull_0(set2, 'set2'); + return new Sets$2(set1, set2); +} + +function newHashSet(elements){ + return instanceOf(elements, 16)?new HashSet_1(castTo(elements, 16)):newHashSet_0(elements.iterator_0()); +} + +function newHashSet_0(elements){ + var set_0; + set_0 = new HashSet; + addAll_7(set_0, elements); + return set_0; +} + +function newHashSet_1(elements){ + var set_0; + set_0 = new HashSet_0(capacity_0(elements.length)); + addAll_15(set_0, elements); + return set_0; +} + +function newLinkedHashSet(elements){ + var set_0; + if (elements) { + return new LinkedHashSet_1(elements); + } + set_0 = new LinkedHashSet; + addAll_6(set_0, elements); + return set_0; +} + +function newTreeSet(elements){ + var set_0; + set_0 = new TreeSet; + addAll_6(set_0, elements); + return set_0; +} + +function unmodifiableNavigableSet(set_0){ + if (instanceOf(set_0, 616)) { + return set_0; + } + return new Sets$UnmodifiableNavigableSet(set_0); +} + +defineClass(2074, $intern_9, $intern_10); +_.iterator_0 = function iterator_41(){ + return new Sets$2$1(this.val$set11, this.val$set22); +} +; +_.add_2 = function add_18(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_11(newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_29(){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_47(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_Sets$SetView_2_classLit = createForClass('com.google.common.collect', 'Sets/SetView', 2074); +function $size_1(this$static){ + var e, e$iterator, size_0; + size_0 = 0; + for (e$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this$static.val$set11); e$iterator.i < e$iterator.this$11.all.length;) { + e = $next_7(e$iterator); + this$static.val$set22.contains(e) && ++size_0; + } + return size_0; +} + +function Sets$2(val$set1, val$set2){ + this.val$set11 = val$set1; + this.val$set22 = val$set2; +} + +defineClass(976, 2074, $intern_10, Sets$2); +_.iterator_0 = function iterator_42(){ + return new Sets$2$1(this.val$set11, this.val$set22); +} +; +_.contains = function contains_25(object){ + return $contains_5(this.val$set11, object) && this.val$set22.contains(object); +} +; +_.containsAll = function containsAll_6(collection){ + return $containsAll(this.val$set11, collection) && this.val$set22.containsAll(collection); +} +; +_.isEmpty = function isEmpty_17(){ + return disjoint(this.val$set22, this.val$set11); +} +; +_.parallelStream = function parallelStream_1(){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$1methodref$contains$Type(this.val$set22)); +} +; +_.size_1 = function size_34(){ + return $size_1(this); +} +; +_.stream = function stream_2(){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$0methodref$contains$Type(this.val$set22)); +} +; +var Lcom_google_common_collect_Sets$2_2_classLit = createForClass('com.google.common.collect', 'Sets/2', 976); +function Sets$2$0methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(977, 1, $intern_40, Sets$2$0methodref$contains$Type); +_.test_0 = function test_2(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$0methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/0methodref$contains$Type', 977); +function Sets$2$1(val$set1, val$set2){ + this.val$set12 = val$set1; + this.val$set23 = val$set2; + this.itr = new EnumSet$EnumSetImpl$IteratorImpl(this.val$set12); +} + +defineClass(714, 713, $intern_3, Sets$2$1); +_.computeNext = function computeNext_0(){ + var e; + while ($hasNext_4(this.itr)) { + e = $next_7(this.itr); + if (this.val$set23.contains(e)) { + return e; + } + } + return this.state = 2 , null; +} +; +var Lcom_google_common_collect_Sets$2$1_2_classLit = createForClass('com.google.common.collect', 'Sets/2/1', 714); +function Sets$2$1methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(978, 1, $intern_40, Sets$2$1methodref$contains$Type); +_.test_0 = function test_3(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$1methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/1methodref$contains$Type', 978); +function Sets$UnmodifiableNavigableSet(delegate){ + this.delegate = castTo(checkNotNull(delegate), 277); + this.unmodifiableDelegate = ($clinit_Collections() , new Collections$UnmodifiableSortedSet(delegate)); +} + +defineClass(616, 2073, {616:1, 3:1, 20:1, 16:1, 277:1, 21:1, 87:1}, Sets$UnmodifiableNavigableSet); +_.delegate_0 = function delegate_9(){ + return this.unmodifiableDelegate; +} +; +_.delegate_1 = function delegate_10(){ + return this.unmodifiableDelegate; +} +; +_.delegate_2 = function delegate_11(){ + return this.unmodifiableDelegate; +} +; +_.forEach_0 = function forEach_16(action){ + this.delegate.forEach_0(action); +} +; +_.parallelStream = function parallelStream_2(){ + return this.delegate.parallelStream(); +} +; +_.stream = function stream_3(){ + return this.delegate.stream(); +} +; +var Lcom_google_common_collect_Sets$UnmodifiableNavigableSet_2_classLit = createForClass('com.google.common.collect', 'Sets/UnmodifiableNavigableSet', 616); +function SingletonImmutableBiMap(key, value_0){ + ImmutableBiMap.call(this, singletonMap(checkNotNull(key), checkNotNull(value_0))); + this.singleValue = value_0; +} + +defineClass(2031, 2030, $intern_28, SingletonImmutableBiMap); +_.values_2 = function values_13(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_0 = function values_14(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_1 = function values_15(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +var Lcom_google_common_collect_SingletonImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableBiMap', 2031); +function SingletonImmutableList(element){ + $clinit_ImmutableList(); + this.delegate = ($clinit_Collections() , new Collections$SingletonList(checkNotNull(element))); +} + +defineClass(657, 2105, $intern_26, SingletonImmutableList); +_.delegateList_0 = function delegateList_1(){ + return this.delegate; +} +; +var Lcom_google_common_collect_SingletonImmutableList_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableList', 657); +function SingletonImmutableSet(element){ + $clinit_ImmutableCollection(); + this.element = checkNotNull(element); +} + +defineClass(363, 2079, $intern_30, SingletonImmutableSet); +_.iterator_0 = function iterator_44(){ + return new Iterators$9(this.element); +} +; +_.contains = function contains_26(object){ + return equals_Ljava_lang_Object__Z__devirtual$(this.element, object); +} +; +_.iterator_1 = function iterator_43(){ + return new Iterators$9(this.element); +} +; +_.size_1 = function size_35(){ + return 1; +} +; +var Lcom_google_common_collect_SingletonImmutableSet_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableSet', 363); +function closeAll(toClose){ + var stream, stream$array, stream$index, stream$max; + for (stream$array = toClose , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + $close(stream); + } +} + +function concat_1(streams){ + var characteristics, estimatedSize, isParallel, splitr, splitrsBuilder, stream, stream$array, stream$index, stream$max; + isParallel = false; + characteristics = 336; + estimatedSize = 0; + splitrsBuilder = new ImmutableList$Builder(streams.length); + for (stream$array = streams , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + isParallel = isParallel | ($throwIfTerminated(stream) , false); + splitr = ($terminate(stream) , stream.spliterator); + $add_3(splitrsBuilder.contents, checkNotNull(splitr)); + characteristics &= splitr.characteristics_0(); + estimatedSize = saturatedAdd(estimatedSize, splitr.estimateSize_0()); + } + return castTo(castTo($onClose(new StreamImpl(null, flatMap(new Spliterators$IteratorSpliterator(($clinit_ImmutableList() , copyFromCollection(splitrsBuilder.contents)), 16), new Streams$lambda$0$Type, characteristics, estimatedSize)), new Streams$lambda$1$Type(streams)), 687), 848); +} + +function Streams$lambda$0$Type(){ +} + +defineClass(1148, 1, {}, Streams$lambda$0$Type); +_.apply_0 = function apply_18(arg0){ + return castTo(arg0, 159); +} +; +var Lcom_google_common_collect_Streams$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$0$Type', 1148); +function Streams$lambda$1$Type(streams_0){ + this.streams_0 = streams_0; +} + +defineClass(1149, 1, $intern_41, Streams$lambda$1$Type); +_.run = function run_0(){ + closeAll(this.streams_0); +} +; +var Lcom_google_common_collect_Streams$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$1$Type', 1149); +function equalsImpl_4(table, obj){ + var result, result0, that; + if (obj === table) { + return true; + } + else if (instanceOf(obj, 678)) { + that = castTo(obj, 2046); + return $equals_0((result0 = table.cellSet , !result0?(table.cellSet = new AbstractTable$CellSet(table)):result0), (result = that.cellSet , !result?(that.cellSet = new AbstractTable$CellSet(that)):result)); + } + else { + return false; + } +} + +function TreeMultimap(keyComparator, valueComparator){ + AbstractSortedKeySortedSetMultimap.call(this, new TreeMap_0(keyComparator)); + this.keyComparator = keyComparator; + this.valueComparator = valueComparator; +} + +function create(keyComparator, valueComparator){ + return new TreeMultimap(castTo(checkNotNull(keyComparator), 50), castTo(checkNotNull(valueComparator), 50)); +} + +defineClass(1725, 1724, $intern_5, TreeMultimap); +_.asMap_0 = function asMap_5(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 133), 139); +} +; +_.createCollection = function createCollection_10(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createCollection_1 = function createCollection_11(){ + return new TreeSet_0(this.valueComparator); +} +; +_.keySet_0 = function keySet_15(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 87), 277); +} +; +_.createAsMap = function createAsMap_1(){ + return instanceOf(this.map_0, 139)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 139)):instanceOf(this.map_0, 133)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 133)):new AbstractMapBasedMultimap$AsMap(this, this.map_0); +} +; +_.createCollection_0 = function createCollection_12(key){ + key == null && this.keyComparator.compare_1(key, key); + return new TreeSet_0(this.valueComparator); +} +; +var Lcom_google_common_collect_TreeMultimap_2_classLit = createForClass('com.google.common.collect', 'TreeMultimap', 1725); +function $clinit_DoubleMath(){ + $clinit_DoubleMath = emptyMethod; + $wnd.Math.log(2); +} + +function fuzzyCompare(a, b){ + $clinit_DoubleMath(); + return checkNonNegative($intern_42) , $wnd.Math.abs(a - b) <= $intern_42 || a == b || isNaN(a) && isNaN(b)?0:a < b?-1:a > b?1:compare_0(isNaN(a), isNaN(b)); +} + +function fuzzyEquals(a, b){ + $clinit_DoubleMath(); + checkNonNegative($intern_42); + return $wnd.Math.abs(a - b) <= $intern_42 || a == b || isNaN(a) && isNaN(b); +} + +function saturatedAdd(a, b){ + var naiveSum; + naiveSum = add_20(a, b); + if (lt(xor_0(a, b), 0) | gte_0(xor_0(a, naiveSum), 0)) { + return naiveSum; + } + return add_20($intern_21, xor_0(shru_0(naiveSum, 63), 1)); +} + +function checkNonNegative(x_0){ + if (!(x_0 >= 0)) { + throw toJs(new IllegalArgumentException_0('tolerance (' + x_0 + ') must be >= 0')); + } + return x_0; +} + +function compare_0(a, b){ + return a == b?0:a?1:-1; +} + +function saturatedCast(value_0){ + if (compare_2(value_0, $intern_0) > 0) { + return $intern_0; + } + if (compare_2(value_0, $intern_43) < 0) { + return $intern_43; + } + return toInt_0(value_0); +} + +function $$init_0(this$static){ + this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 319, 0, 0, 1); +} + +function $addSuppressed(this$static, exception){ + checkCriticalNotNull_0(exception, 'Cannot suppress a null exception.'); + checkCriticalArgument_0(exception != this$static, 'Exception can not suppress itself.'); + if (this$static.disableSuppression) { + return; + } + this$static.suppressedExceptions == null?(this$static.suppressedExceptions = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Throwable_2_classLit, 1), $intern_16, 82, 0, [exception])):(this$static.suppressedExceptions[this$static.suppressedExceptions.length] = exception); +} + +function $fillInStackTrace(this$static){ + if (this$static.writableStackTrace) { + this$static.backingJsObject !== '__noinit__' && this$static.initializeBackingError(); + this$static.stackTrace = null; + } + return this$static; +} + +function $linkBack(this$static, error){ + if (error instanceof Object) { + try { + error.__java$exception = this$static; + if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && $doc.documentMode < 9) { + return; + } + var throwable = this$static; + Object.defineProperties(error, {cause:{get:function(){ + var cause = throwable.getCause(); + return cause && cause.getBackingJsObject(); + } + }, suppressed:{get:function(){ + return throwable.getBackingSuppressed(); + } + }}); + } + catch (ignored) { + } + } +} + +function $printStackTraceImpl(this$static, out, ident){ + var t, t$array, t$index, t$max, theCause; + String.fromCharCode(10); + $printStackTraceItems(this$static); + for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 82, 0, 0, 1)) , this$static.suppressedExceptions) , t$index = 0 , t$max = t$array.length; t$index < t$max; ++t$index) { + t = t$array[t$index]; + $printStackTraceImpl(t, out, '\t' + ident); + } + theCause = this$static.cause_0; + !!theCause && $printStackTraceImpl(theCause, out, ident); +} + +function $printStackTraceItems(this$static){ + var element$array, element$index, element$max, stackTrace; + for (element$array = (this$static.stackTrace == null && (this$static.stackTrace = ($clinit_StackTraceCreator() , stackTrace = collector_1.getStackTrace(this$static) , dropInternalFrames(stackTrace))) , this$static.stackTrace) , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + String.fromCharCode(10); + } +} + +function $setBackingJsObject(this$static, backingJsObject){ + this$static.backingJsObject = backingJsObject; + $linkBack(this$static, backingJsObject); +} + +function $toString_4(this$static, message){ + var className; + className = $getName(this$static.___clazz); + return message == null?className:className + ': ' + message; +} + +function Throwable(){ + $$init_0(this); + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function Throwable_0(message){ + $$init_0(this); + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function Throwable_1(message, cause){ + $$init_0(this); + this.cause_0 = cause; + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function fixIE(e){ + if (!('stack' in e)) { + try { + throw e; + } + catch (ignored) { + } + } + return e; +} + +defineClass(82, 1, {3:1, 82:1}); +_.createError = function createError(msg){ + return new Error(msg); +} +; +_.getBackingJsObject = function getBackingJsObject(){ + return this.backingJsObject; +} +; +_.getBackingSuppressed = function getBackingSuppressed(){ + var i, result, suppressed; + suppressed = (this.suppressedExceptions == null && (this.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 82, 0, 0, 1)) , this.suppressedExceptions); + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, suppressed.length, 5, 1); + for (i = 0; i < suppressed.length; i++) { + result[i] = suppressed[i].backingJsObject; + } + return result; +} +; +_.getCause = function getCause(){ + return this.cause_0; +} +; +_.getMessage = function getMessage(){ + return this.detailMessage; +} +; +_.initializeBackingError = function initializeBackingError(){ + $setBackingJsObject(this, fixIE(this.createError($toString_4(this, this.detailMessage)))); + captureStackTrace(this); +} +; +_.toString_0 = function toString_30(){ + return $toString_4(this, this.getMessage()); +} +; +_.backingJsObject = '__noinit__'; +_.disableSuppression = false; +_.writableStackTrace = true; +var Ljava_lang_Throwable_2_classLit = createForClass('java.lang', 'Throwable', 82); +defineClass(103, 82, {3:1, 103:1, 82:1}); +var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 103); +function RuntimeException(){ + Throwable.call(this); +} + +function RuntimeException_0(message){ + Throwable_0.call(this, message); +} + +defineClass(63, 103, $intern_44, RuntimeException, RuntimeException_0); +var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 63); +defineClass(607, 63, $intern_44); +var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 607); +defineClass(875, 607, $intern_44); +var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 875); +function $clinit_JavaScriptException(){ + $clinit_JavaScriptException = emptyMethod; + NOT_SET = new Object_0; +} + +function $ensureInit(this$static){ + var exception; + if (this$static.message_0 == null) { + exception = maskUndefined(this$static.e) === maskUndefined(NOT_SET)?null:this$static.e; + this$static.name_0 = exception == null?'null':instanceOfJso(exception)?getExceptionName0(castToJso(exception)):instanceOfString(exception)?'String':$getName(getClass__Ljava_lang_Class___devirtual$(exception)); + this$static.description = this$static.description + ': ' + (instanceOfJso(exception)?getExceptionDescription0(castToJso(exception)):exception + ''); + this$static.message_0 = '(' + this$static.name_0 + ') ' + this$static.description; + } +} + +function JavaScriptException(e){ + $clinit_JavaScriptException(); + $$init_0(this); + $fillInStackTrace(this); + this.backingJsObject = e; + $linkBack(this, e); + this.detailMessage = e == null?'null':toString_40(e); + this.description = ''; + this.e = e; + this.description = ''; +} + +function getExceptionDescription0(e){ + return e == null?null:e.message; +} + +function getExceptionName0(e){ + return e == null?null:e.name; +} + +defineClass(486, 875, {486:1, 3:1, 103:1, 63:1, 82:1}, JavaScriptException); +_.getMessage = function getMessage_0(){ + $ensureInit(this); + return this.message_0; +} +; +_.getThrown = function getThrown(){ + return maskUndefined(this.e) === maskUndefined(NOT_SET)?null:this.e; +} +; +var NOT_SET; +var Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptException', 486); +function $equals_3(this$static, other){ + return !!this$static && !!this$static.equals?this$static.equals(other):maskUndefined(this$static) === maskUndefined(other); +} + +function $hashCode(this$static){ + return !!this$static && !!this$static.hashCode?this$static.hashCode():getObjectIdentityHashCode(this$static); +} + +var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); +function escapeChar(c, escapeTable){ + var lookedUp = escapeTable_0[c.charCodeAt(0)]; + return lookedUp == null?c:lookedUp; +} + +function escapeValue(toEscape){ + var escapeTable = (!escapeTable_0 && (escapeTable_0 = initEscapeTable()) , escapeTable_0); + var s = toEscape.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(x_0){ + return escapeChar(x_0, escapeTable); + } + ); + return '"' + s + '"'; +} + +function initEscapeTable(){ + var out = ['\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', '\\n', '\\u000B', '\\f', '\\r', '\\u000E', '\\u000F', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001A', '\\u001B', '\\u001C', '\\u001D', '\\u001E', '\\u001F']; + out[34] = '\\"'; + out[92] = '\\\\'; + out[173] = '\\u00ad'; + out[1536] = '\\u0600'; + out[1537] = '\\u0601'; + out[1538] = '\\u0602'; + out[1539] = '\\u0603'; + out[1757] = '\\u06dd'; + out[1807] = '\\u070f'; + out[6068] = '\\u17b4'; + out[6069] = '\\u17b5'; + out[8203] = '\\u200b'; + out[8204] = '\\u200c'; + out[8205] = '\\u200d'; + out[8206] = '\\u200e'; + out[8207] = '\\u200f'; + out[8232] = '\\u2028'; + out[8233] = '\\u2029'; + out[8234] = '\\u202a'; + out[8235] = '\\u202b'; + out[8236] = '\\u202c'; + out[8237] = '\\u202d'; + out[8238] = '\\u202e'; + out[8288] = '\\u2060'; + out[8289] = '\\u2061'; + out[8290] = '\\u2062'; + out[8291] = '\\u2063'; + out[8292] = '\\u2064'; + out[8298] = '\\u206a'; + out[8299] = '\\u206b'; + out[8300] = '\\u206c'; + out[8301] = '\\u206d'; + out[8302] = '\\u206e'; + out[8303] = '\\u206f'; + out[65279] = '\\ufeff'; + out[65529] = '\\ufff9'; + out[65530] = '\\ufffa'; + out[65531] = '\\ufffb'; + return out; +} + +var escapeTable_0; +defineClass(2047, 1, {}); +var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 2047); +function $clinit_Impl(){ + $clinit_Impl = emptyMethod; + !!($clinit_StackTraceCreator() , collector_1); +} + +function apply_19(jsFunction, thisObj, args){ + return jsFunction.apply(thisObj, args); + var __0; +} + +function enter_0(){ + var now_0; + if (entryDepth != 0) { + now_0 = Date.now(); + if (now_0 - watchdogEntryDepthLastScheduled > 2000) { + watchdogEntryDepthLastScheduled = now_0; + watchdogEntryDepthTimerId = $wnd.setTimeout(watchdogEntryDepthRun, 10); + } + } + if (entryDepth++ == 0) { + $flushEntryCommands(($clinit_SchedulerImpl() , INSTANCE_3)); + return true; + } + return false; +} + +function entry_2(jsFunction){ + $clinit_Impl(); + return function(){ + return entry0_0(jsFunction, this, arguments); + var __0; + } + ; +} + +function entry0_0(jsFunction, thisObj, args){ + var initialEntry; + initialEntry = enter_0(); + try { + return apply_19(jsFunction, thisObj, args); + } + finally { + exit(initialEntry); + } +} + +function exit(initialEntry){ + initialEntry && $flushFinallyCommands(($clinit_SchedulerImpl() , INSTANCE_3)); + --entryDepth; + if (initialEntry) { + if (watchdogEntryDepthTimerId != -1) { + watchdogEntryDepthCancel(watchdogEntryDepthTimerId); + watchdogEntryDepthTimerId = -1; + } + } +} + +function reportToBrowser(e){ + $clinit_Impl(); + $wnd.setTimeout(function(){ + throw e; + } + , 0); +} + +function watchdogEntryDepthCancel(timerId){ + $wnd.clearTimeout(timerId); +} + +function watchdogEntryDepthRun(){ + entryDepth != 0 && (entryDepth = 0); + watchdogEntryDepthTimerId = -1; +} + +var entryDepth = 0, watchdogEntryDepthLastScheduled = 0, watchdogEntryDepthTimerId = -1; +function $clinit_SchedulerImpl(){ + $clinit_SchedulerImpl = emptyMethod; + INSTANCE_3 = new SchedulerImpl; +} + +function $flushEntryCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.entryCommands) { + rescheduled = null; + do { + oldQueue = this$static.entryCommands; + this$static.entryCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.entryCommands); + this$static.entryCommands = rescheduled; + } +} + +function $flushFinallyCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.finallyCommands) { + rescheduled = null; + do { + oldQueue = this$static.finallyCommands; + this$static.finallyCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.finallyCommands); + this$static.finallyCommands = rescheduled; + } +} + +function SchedulerImpl(){ +} + +function push_0(queue, task){ + !queue && (queue = []); + queue[queue.length] = task; + return queue; +} + +function runScheduledTasks(tasks, rescheduled){ + var e, i, j, t; + for (i = 0 , j = tasks.length; i < j; i++) { + t = tasks[i]; + try { + t[1]?t[0].$_nullMethod() && (rescheduled = push_0(rescheduled, t)):t[0].$_nullMethod(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 82)) { + e = $e0; + $clinit_Impl(); + reportToBrowser(instanceOf(e, 486)?castTo(e, 486).getThrown():e); + } + else + throw toJs($e0); + } + } + return rescheduled; +} + +defineClass(902, 2047, {}, SchedulerImpl); +var INSTANCE_3; +var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 902); +function $clinit_StackTraceCreator(){ + $clinit_StackTraceCreator = emptyMethod; + var c, enforceLegacy; + enforceLegacy = !supportsErrorStack(); + c = new StackTraceCreator$CollectorModernNoSourceMap; + collector_1 = enforceLegacy?new StackTraceCreator$CollectorLegacy:c; +} + +function captureStackTrace(error){ + $clinit_StackTraceCreator(); + collector_1.collect(error); +} + +function dropInternalFrames(stackTrace){ + var dropFrameUntilFnName, dropFrameUntilFnName2, i, numberOfFramesToSearch; + dropFrameUntilFnName = 'captureStackTrace'; + dropFrameUntilFnName2 = 'initializeBackingError'; + numberOfFramesToSearch = $wnd.Math.min(stackTrace.length, 5); + for (i = numberOfFramesToSearch - 1; i >= 0; i--) { + if ($equals_5(stackTrace[i].methodName, dropFrameUntilFnName) || $equals_5(stackTrace[i].methodName, dropFrameUntilFnName2)) { + stackTrace.length >= i + 1 && stackTrace.splice(0, i + 1); + break; + } + } + return stackTrace; +} + +function extractFunctionName(fnName){ + var fnRE = /function(?:\s+([\w$]+))?\s*\(/; + var match_0 = fnRE.exec(fnName); + return match_0 && match_0[1] || 'anonymous'; +} + +function parseInt_0(number){ + $clinit_StackTraceCreator(); + return parseInt(number) || -1; +} + +function split_1(t){ + $clinit_StackTraceCreator(); + var e = t.backingJsObject; + if (e && e.stack) { + var stack_0 = e.stack; + var toString_0 = e + '\n'; + stack_0.substring(0, toString_0.length) == toString_0 && (stack_0 = stack_0.substring(toString_0.length)); + return stack_0.split('\n'); + } + return []; +} + +function supportsErrorStack(){ + if (Error.stackTraceLimit > 0) { + $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; + return true; + } + return 'stack' in new Error; +} + +var collector_1; +defineClass(2058, 1, {}); +var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 2058); +function StackTraceCreator$CollectorLegacy(){ +} + +defineClass(876, 2058, {}, StackTraceCreator$CollectorLegacy); +_.collect = function collect(error){ + var seen = {}, name_1; + var fnStack = []; + error['fnStack'] = fnStack; + var callee = arguments.callee.caller; + while (callee) { + var name_0 = ($clinit_StackTraceCreator() , callee.name || (callee.name = extractFunctionName(callee.toString()))); + fnStack.push(name_0); + var keyName = ':' + name_0; + var withThisName = seen[keyName]; + if (withThisName) { + var i, j; + for (i = 0 , j = withThisName.length; i < j; i++) { + if (withThisName[i] === callee) { + return; + } + } + } + (withThisName || (seen[keyName] = [])).push(callee); + callee = callee.caller; + } +} +; +_.getStackTrace = function getStackTrace(t){ + var i, length_0, stack_0, stackTrace; + stack_0 = ($clinit_StackTraceCreator() , t && t['fnStack']?t['fnStack']:[]); + length_0 = stack_0.length; + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 319, length_0, 0, 1); + for (i = 0; i < length_0; i++) { + stackTrace[i] = new StackTraceElement(stack_0[i], null, -1); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorLegacy_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorLegacy', 876); +function $parse(this$static, stString){ + var closeParen, col, endFileUrlIndex, fileName, index_0, lastColonIndex, line, location_0, toReturn; + location_0 = ''; + if (stString.length == 0) { + return this$static.createSte('Unknown', 'anonymous', -1, -1); + } + toReturn = $trim(stString); + $equals_5(toReturn.substr(0, 3), 'at ') && (toReturn = (checkCriticalStringElementIndex(3, toReturn.length + 1) , toReturn.substr(3))); + toReturn = toReturn.replace(/\[.*?\]/g, ''); + index_0 = toReturn.indexOf('('); + if (index_0 == -1) { + index_0 = toReturn.indexOf('@'); + if (index_0 == -1) { + location_0 = toReturn; + toReturn = ''; + } + else { + location_0 = $trim((checkCriticalStringElementIndex(index_0 + 1, toReturn.length + 1) , toReturn.substr(index_0 + 1))); + toReturn = $trim((checkCriticalStringBounds(0, index_0, toReturn.length) , toReturn.substr(0, index_0))); + } + } + else { + closeParen = toReturn.indexOf(')', index_0); + location_0 = (checkCriticalStringBounds(index_0 + 1, closeParen, toReturn.length) , toReturn.substr(index_0 + 1, closeParen - (index_0 + 1))); + toReturn = $trim((checkCriticalStringBounds(0, index_0, toReturn.length) , toReturn.substr(0, index_0))); + } + index_0 = $indexOf_1(toReturn, fromCodePoint(46)); + index_0 != -1 && (toReturn = (checkCriticalStringElementIndex(index_0 + 1, toReturn.length + 1) , toReturn.substr(index_0 + 1))); + (toReturn.length == 0 || $equals_5(toReturn, 'Anonymous function')) && (toReturn = 'anonymous'); + lastColonIndex = $lastIndexOf(location_0, fromCodePoint(58)); + endFileUrlIndex = $lastIndexOf_0(location_0, fromCodePoint(58), lastColonIndex - 1); + line = -1; + col = -1; + fileName = 'Unknown'; + if (lastColonIndex != -1 && endFileUrlIndex != -1) { + fileName = (checkCriticalStringBounds(0, endFileUrlIndex, location_0.length) , location_0.substr(0, endFileUrlIndex)); + line = parseInt_0((checkCriticalStringBounds(endFileUrlIndex + 1, lastColonIndex, location_0.length) , location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1)))); + col = parseInt_0((checkCriticalStringElementIndex(lastColonIndex + 1, location_0.length + 1) , location_0.substr(lastColonIndex + 1))); + } + return this$static.createSte(fileName, toReturn, line, col); +} + +defineClass(2059, 2058, {}); +_.collect = function collect_0(error){ +} +; +_.createSte = function createSte(fileName, method, line, col){ + return new StackTraceElement(method, fileName + '@' + col, line < 0?-1:line); +} +; +_.getStackTrace = function getStackTrace_0(t){ + var addIndex, i, length_0, stack_0, stackTrace, ste; + stack_0 = split_1(t); + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 319, 0, 0, 1); + addIndex = 0; + length_0 = stack_0.length; + if (length_0 == 0) { + return stackTrace; + } + ste = $parse(this, stack_0[0]); + $equals_5(ste.methodName, 'anonymous') || (stackTrace[addIndex++] = ste); + for (i = 1; i < length_0; i++) { + stackTrace[addIndex++] = $parse(this, stack_0[i]); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModern_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModern', 2059); +function StackTraceCreator$CollectorModernNoSourceMap(){ +} + +defineClass(877, 2059, {}, StackTraceCreator$CollectorModernNoSourceMap); +_.createSte = function createSte_0(fileName, method, line, col){ + return new StackTraceElement(method, fileName, -1); +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModernNoSourceMap_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModernNoSourceMap', 877); +function $clinit_DateTimeFormat(){ + $clinit_DateTimeFormat = emptyMethod; + new HashMap; +} + +function $addPart(this$static, buf, count){ + var oldLength; + if (buf.string.length > 0) { + $add_3(this$static.patternParts, new DateTimeFormat$PatternPart(buf.string, count)); + oldLength = buf.string.length; + 0 < oldLength?(buf.string = $substring_1(buf.string, 0, 0)):0 > oldLength && (buf.string += valueOf_7(initUnidimensionalArray(C_classLit, $intern_45, 28, -oldLength, 15, 1))); + } +} + +function $format(this$static, date, timeZone){ + var ch_0, diff, i, j, keepDate, keepTime, n, toAppendTo, trailQuote; + !timeZone && (timeZone = createTimeZone(date.jsdate.getTimezoneOffset())); + diff = (date.jsdate.getTimezoneOffset() - timeZone.standardOffset) * 60000; + keepDate = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); + keepTime = keepDate; + if (keepDate.jsdate.getTimezoneOffset() != date.jsdate.getTimezoneOffset()) { + diff > 0?(diff -= 86400000):(diff += 86400000); + keepTime = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); + } + toAppendTo = new StringBuilder_0; + n = this$static.pattern.length; + for (i = 0; i < n;) { + ch_0 = $charAt(this$static.pattern, i); + if (ch_0 >= 97 && ch_0 <= 122 || ch_0 >= 65 && ch_0 <= 90) { + for (j = i + 1; j < n && $charAt(this$static.pattern, j) == ch_0; ++j) + ; + $subFormat(toAppendTo, ch_0, j - i, keepDate, keepTime, timeZone); + i = j; + } + else if (ch_0 == 39) { + ++i; + if (i < n && $charAt(this$static.pattern, i) == 39) { + toAppendTo.string += "'"; + ++i; + continue; + } + trailQuote = false; + while (!trailQuote) { + j = i; + while (j < n && $charAt(this$static.pattern, j) != 39) { + ++j; + } + if (j >= n) { + throw toJs(new IllegalArgumentException_0("Missing trailing '")); + } + j + 1 < n && $charAt(this$static.pattern, j + 1) == 39?++j:(trailQuote = true); + $append_11(toAppendTo, $substring_1(this$static.pattern, i, j)); + i = j + 1; + } + } + else { + toAppendTo.string += String.fromCharCode(ch_0); + ++i; + } + } + return toAppendTo.string; +} + +function $formatFractionalSeconds(buf, count, date){ + var time, value_0; + time = fromDouble_0(date.jsdate.getTime()); + if (compare_2(time, 0) < 0) { + value_0 = $intern_46 - toInt_0(mod(neg_0(time), $intern_46)); + value_0 == $intern_46 && (value_0 = 0); + } + else { + value_0 = toInt_0(mod(time, $intern_46)); + } + if (count == 1) { + value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); + $append_5(buf, 48 + value_0 & $intern_47); + } + else if (count == 2) { + value_0 = $wnd.Math.min((value_0 + 5) / 10 | 0, 99); + $zeroPaddingNumber(buf, value_0, 2); + } + else { + $zeroPaddingNumber(buf, value_0, 3); + count > 3 && $zeroPaddingNumber(buf, 0, count - 3); + } +} + +function $formatMonth(buf, count, date){ + var value_0; + value_0 = date.jsdate.getMonth(); + switch (count) { + case 5: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value_0]); + break; + case 4: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value_0]); + break; + case 3: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value_0]); + break; + default:$zeroPaddingNumber(buf, value_0 + 1, count); + } +} + +function $formatYear(buf, count, date){ + var value_0; + value_0 = date.jsdate.getFullYear() - $intern_48 + $intern_48; + value_0 < 0 && (value_0 = -value_0); + switch (count) { + case 1: + buf.string += value_0; + break; + case 2: + $zeroPaddingNumber(buf, value_0 % 100, 2); + break; + default:$zeroPaddingNumber(buf, value_0, count); + } +} + +function $getNextCharCountInPattern(pattern, start_0){ + var ch_0, next; + ch_0 = (checkCriticalStringElementIndex(start_0, pattern.length) , pattern.charCodeAt(start_0)); + next = start_0 + 1; + while (next < pattern.length && (checkCriticalStringElementIndex(next, pattern.length) , pattern.charCodeAt(next) == ch_0)) { + ++next; + } + return next - start_0; +} + +function $identifyAbutStart(this$static){ + var abut, i, len; + abut = false; + len = this$static.patternParts.array.length; + for (i = 0; i < len; i++) { + if ($isNumeric(castTo($get_11(this$static.patternParts, i), 443))) { + if (!abut && i + 1 < len && $isNumeric(castTo($get_11(this$static.patternParts, i + 1), 443))) { + abut = true; + castTo($get_11(this$static.patternParts, i), 443).abutStart = true; + } + } + else { + abut = false; + } + } +} + +function $isNumeric(part){ + var i; + if (part.count <= 0) { + return false; + } + i = $indexOf_1('MLydhHmsSDkK', fromCodePoint($charAt(part.text_0, 0))); + return i > 1 || i >= 0 && part.count < 3; +} + +function $matchString(text_0, start_0, data_0, pos){ + var bestMatch, bestMatchLength, count, i, length_0, textInLowerCase; + count = data_0.length; + bestMatchLength = 0; + bestMatch = -1; + textInLowerCase = $toLowerCase((checkCriticalStringElementIndex(start_0, text_0.length + 1) , text_0.substr(start_0)), ($clinit_Locale() , ROOT)); + for (i = 0; i < count; ++i) { + length_0 = data_0[i].length; + if (length_0 > bestMatchLength && $startsWith(textInLowerCase, $toLowerCase(data_0[i], ROOT))) { + bestMatch = i; + bestMatchLength = length_0; + } + } + bestMatch >= 0 && (pos[0] = start_0 + bestMatchLength); + return bestMatch; +} + +function $parse_0(this$static, text_0, date){ + var abutPass, abutPat, abutStart, cal, count, i, parsePos, part, s; + cal = new DateRecord; + parsePos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [0]); + abutPat = -1; + abutStart = 0; + abutPass = 0; + for (i = 0; i < this$static.patternParts.array.length; ++i) { + part = castTo($get_11(this$static.patternParts, i), 443); + if (part.count > 0) { + if (abutPat < 0 && part.abutStart) { + abutPat = i; + abutStart = parsePos[0]; + abutPass = 0; + } + if (abutPat >= 0) { + count = part.count; + if (i == abutPat) { + count -= abutPass++; + if (count == 0) { + return 0; + } + } + if (!$subParse(text_0, parsePos, part, count, cal)) { + i = abutPat - 1; + parsePos[0] = abutStart; + continue; + } + } + else { + abutPat = -1; + if (!$subParse(text_0, parsePos, part, 0, cal)) { + return 0; + } + } + } + else { + abutPat = -1; + if ($charAt(part.text_0, 0) == 32) { + s = parsePos[0]; + $skipSpace(text_0, parsePos); + if (parsePos[0] > s) { + continue; + } + } + else if ($startsWith_0(text_0, part.text_0, parsePos[0])) { + parsePos[0] += part.text_0.length; + continue; + } + return 0; + } + } + if (!$calcDate(cal, date)) { + return 0; + } + return parsePos[0]; +} + +function $parse_1(this$static, text_0){ + var charsConsumed, curDate, date; + curDate = new Date_0; + date = new Date_1(curDate.jsdate.getFullYear() - $intern_48, curDate.jsdate.getMonth(), curDate.jsdate.getDate()); + charsConsumed = $parse_0(this$static, text_0, date); + if (charsConsumed == 0 || charsConsumed < text_0.length) { + throw toJs(new IllegalArgumentException_0(text_0)); + } + return date; +} + +function $parseInt(text_0, pos){ + var ch_0, ind, ret; + ret = 0; + ind = pos[0]; + if (ind >= text_0.length) { + return -1; + } + ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); + while (ch_0 >= 48 && ch_0 <= 57) { + ret = ret * 10 + (ch_0 - 48); + ++ind; + if (ind >= text_0.length) { + break; + } + ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); + } + ind > pos[0]?(pos[0] = ind):(ret = -1); + return ret; +} + +function $parsePattern(this$static, pattern){ + var buf, ch_0, count, i, inQuote; + buf = new StringBuilder_0; + inQuote = false; + for (i = 0; i < pattern.length; i++) { + ch_0 = (checkCriticalStringElementIndex(i, pattern.length) , pattern.charCodeAt(i)); + if (ch_0 == 32) { + $addPart(this$static, buf, 0); + buf.string += ' '; + $addPart(this$static, buf, 0); + while (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 32)) { + ++i; + } + continue; + } + if (inQuote) { + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += String.fromCharCode(ch_0); + ++i; + } + else { + inQuote = false; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + continue; + } + if ($indexOf_1('GyMLdkHmsSEcDahKzZv', fromCodePoint(ch_0)) > 0) { + $addPart(this$static, buf, 0); + buf.string += String.fromCharCode(ch_0); + count = $getNextCharCountInPattern(pattern, i); + $addPart(this$static, buf, count); + i += count - 1; + continue; + } + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += "'"; + ++i; + } + else { + inQuote = true; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + } + $addPart(this$static, buf, 0); + $identifyAbutStart(this$static); +} + +function $parseTimeZoneOffset(text_0, pos, cal){ + var offset, sign, st, value_0; + if (pos[0] >= text_0.length) { + cal.tzOffset = 0; + return true; + } + switch ($charAt(text_0, pos[0])) { + case 43: + sign = 1; + break; + case 45: + sign = -1; + break; + default:cal.tzOffset = 0; + return true; + } + ++pos[0]; + st = pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 == 0 && pos[0] == st) { + return false; + } + if (pos[0] < text_0.length && $charAt(text_0, pos[0]) == 58) { + offset = value_0 * 60; + ++pos[0]; + st = pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 == 0 && pos[0] == st) { + return false; + } + offset += value_0; + } + else { + offset = value_0; + offset < 24 && pos[0] - st <= 2?(offset *= 60):(offset = offset % 100 + (offset / 100 | 0) * 60); + } + offset *= sign; + cal.tzOffset = -offset; + return true; +} + +function $skipSpace(text_0, pos){ + while (pos[0] < text_0.length && $indexOf_1(' \t\r\n', fromCodePoint($charAt(text_0, pos[0]))) >= 0) { + ++pos[0]; + } +} + +function $subFormat(buf, ch_0, count, adjustedDate, adjustedTime, timezone){ + var value_0, value0, value1, value10, value2, value3, value4, value5, value6, value7, value8, value9; + switch (ch_0) { + case 71: + value0 = adjustedDate.jsdate.getFullYear() - $intern_48 >= -1900?1:0; + count >= 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini'])[value0]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['BC', 'AD'])[value0]); + break; + case 121: + $formatYear(buf, count, adjustedDate); + break; + case 77: + $formatMonth(buf, count, adjustedDate); + break; + case 107: + value1 = adjustedTime.jsdate.getHours(); + value1 == 0?$zeroPaddingNumber(buf, 24, count):$zeroPaddingNumber(buf, value1, count); + break; + case 83: + $formatFractionalSeconds(buf, count, adjustedTime); + break; + case 69: + value2 = adjustedDate.jsdate.getDay(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value2]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value2]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value2]); + break; + case 97: + adjustedTime.jsdate.getHours() >= 12 && adjustedTime.jsdate.getHours() < 24?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[1]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[0]); + break; + case 104: + value3 = adjustedTime.jsdate.getHours() % 12; + value3 == 0?$zeroPaddingNumber(buf, 12, count):$zeroPaddingNumber(buf, value3, count); + break; + case 75: + value4 = adjustedTime.jsdate.getHours() % 12; + $zeroPaddingNumber(buf, value4, count); + break; + case 72: + value5 = adjustedTime.jsdate.getHours(); + $zeroPaddingNumber(buf, value5, count); + break; + case 99: + value6 = adjustedDate.jsdate.getDay(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value6]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value6]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value6]):$zeroPaddingNumber(buf, value6, 1); + break; + case 76: + value7 = adjustedDate.jsdate.getMonth(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value7]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value7]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value7]):$zeroPaddingNumber(buf, value7 + 1, count); + break; + case 81: + value8 = adjustedDate.jsdate.getMonth() / 3 | 0; + count < 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Q1', 'Q2', 'Q3', 'Q4'])[value8]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'])[value8]); + break; + case 100: + value9 = adjustedDate.jsdate.getDate(); + $zeroPaddingNumber(buf, value9, count); + break; + case 109: + value10 = adjustedTime.jsdate.getMinutes(); + $zeroPaddingNumber(buf, value10, count); + break; + case 115: + value_0 = adjustedTime.jsdate.getSeconds(); + $zeroPaddingNumber(buf, value_0, count); + break; + case 122: + count < 4?$append_11(buf, timezone.tzNames[0]):$append_11(buf, timezone.tzNames[1]); + break; + case 118: + $append_11(buf, timezone.timezoneID); + break; + case 90: + count < 3?$append_11(buf, $getRFCTimeZoneString(timezone)):count == 3?$append_11(buf, $getISOTimeZoneString(timezone)):$append_11(buf, composeGMTString(timezone.standardOffset)); + break; + default:return false; + } + return true; +} + +function $subParse(text_0, pos, part, digitCount, cal){ + var ch_0, start_0, value_0; + $skipSpace(text_0, pos); + start_0 = pos[0]; + ch_0 = $charAt(part.text_0, 0); + value_0 = -1; + if ($isNumeric(part)) { + if (digitCount > 0) { + if (start_0 + digitCount > text_0.length) { + return false; + } + value_0 = $parseInt((checkCriticalStringBounds(0, start_0 + digitCount, text_0.length) , text_0.substr(0, start_0 + digitCount)), pos); + } + else { + value_0 = $parseInt(text_0, pos); + } + } + switch (ch_0) { + case 71: + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini']), pos); + cal.era = value_0; + return true; + case 77: + return $subParseMonth(text_0, pos, cal, value_0, start_0); + case 76: + return $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0); + case 69: + return $subParseDayOfWeek(text_0, pos, start_0, cal); + case 99: + return $subParseStandaloneDay(text_0, pos, start_0, cal); + case 97: + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM']), pos); + cal.ampm = value_0; + return true; + case 121: + return $subParseYear(text_0, pos, start_0, value_0, part, cal); + case 100: + if (value_0 <= 0) { + return false; + } + + cal.dayOfMonth = value_0; + return true; + case 83: + if (value_0 < 0) { + return false; + } + + return $subParseFractionalSeconds(value_0, start_0, pos[0], cal); + case 104: + value_0 == 12 && (value_0 = 0); + case 75: + case 72: + if (value_0 < 0) { + return false; + } + + cal.hours = value_0; + cal.midnightIs24 = false; + return true; + case 107: + if (value_0 < 0) { + return false; + } + + cal.hours = value_0; + cal.midnightIs24 = true; + return true; + case 109: + if (value_0 < 0) { + return false; + } + + cal.minutes = value_0; + return true; + case 115: + if (value_0 < 0) { + return false; + } + + cal.seconds = value_0; + return true; + case 90: + if (start_0 < text_0.length && (checkCriticalStringElementIndex(start_0, text_0.length) , text_0.charCodeAt(start_0) == 90)) { + ++pos[0]; + cal.tzOffset = 0; + return true; + } + + case 122: + case 118: + return $subParseTimeZoneInGMT(text_0, start_0, pos, cal); + default:return false; + } +} + +function $subParseDayOfWeek(text_0, pos, start_0, cal){ + var value_0; + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); + if (value_0 < 0) { + return false; + } + cal.dayOfWeek = value_0; + return true; +} + +function $subParseFractionalSeconds(value_0, start_0, end, cal){ + var a, i; + i = end - start_0; + if (i < 3) { + while (i < 3) { + value_0 *= 10; + ++i; + } + } + else { + a = 1; + while (i > 3) { + a *= 10; + --i; + } + value_0 = (value_0 + (a >> 1)) / a | 0; + } + cal.milliseconds = value_0; + return true; +} + +function $subParseMonth(text_0, pos, cal, value_0, start_0){ + if (value_0 < 0) { + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); + if (value_0 < 0) { + return false; + } + cal.month = value_0; + return true; + } + else if (value_0 > 0) { + cal.month = value_0 - 1; + return true; + } + return false; +} + +function $subParseStandaloneDay(text_0, pos, start_0, cal){ + var value_0; + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); + if (value_0 < 0) { + return false; + } + cal.dayOfWeek = value_0; + return true; +} + +function $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0){ + if (value_0 < 0) { + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); + if (value_0 < 0) { + return false; + } + cal.month = value_0; + return true; + } + else if (value_0 > 0) { + cal.month = value_0 - 1; + return true; + } + return false; +} + +function $subParseTimeZoneInGMT(text_0, start_0, pos, cal){ + if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'GMT'.length), 'GMT')) { + pos[0] = start_0 + 3; + return $parseTimeZoneOffset(text_0, pos, cal); + } + if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'UTC'.length), 'UTC')) { + pos[0] = start_0 + 3; + return $parseTimeZoneOffset(text_0, pos, cal); + } + return $parseTimeZoneOffset(text_0, pos, cal); +} + +function $subParseYear(text_0, pos, start_0, value_0, part, cal){ + var ambiguousTwoDigitYear, ch_0, date, defaultCenturyStartYear; + ch_0 = 32; + if (value_0 < 0) { + if (pos[0] >= text_0.length) { + return false; + } + ch_0 = $charAt(text_0, pos[0]); + if (ch_0 != 43 && ch_0 != 45) { + return false; + } + ++pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 < 0) { + return false; + } + ch_0 == 45 && (value_0 = -value_0); + } + if (ch_0 == 32 && pos[0] - start_0 == 2 && part.count == 2) { + date = new Date_0; + defaultCenturyStartYear = date.jsdate.getFullYear() - $intern_48 + $intern_48 - 80; + ambiguousTwoDigitYear = defaultCenturyStartYear % 100; + cal.ambiguousYear = value_0 == ambiguousTwoDigitYear; + value_0 += (defaultCenturyStartYear / 100 | 0) * 100 + (value_0 < ambiguousTwoDigitYear?100:0); + } + cal.year = value_0; + return true; +} + +function $zeroPaddingNumber(buf, value_0, minWidth){ + var b, i; + b = 10; + for (i = 0; i < minWidth - 1; i++) { + value_0 < b && (buf.string += '0' , buf); + b *= 10; + } + buf.string += value_0; +} + +defineClass(1064, 1, {}); +var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 1064); +function $clinit_DateTimeFormat_0(){ + $clinit_DateTimeFormat_0 = emptyMethod; + $clinit_DateTimeFormat(); + cache = new HashMap; +} + +function DateTimeFormat(pattern){ + $clinit_DateTimeFormat(); + this.patternParts = new ArrayList; + this.pattern = pattern; + $parsePattern(this, pattern); +} + +function getFormat(pattern, dtfi){ + $clinit_DateTimeFormat_0(); + var defaultDtfi, dtf; + defaultDtfi = $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); + dtf = null; + dtfi == defaultDtfi && (dtf = castTo($getStringValue(cache, pattern), 624)); + if (!dtf) { + dtf = new DateTimeFormat(pattern); + dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); + } + return dtf; +} + +defineClass(624, 1064, {624:1}, DateTimeFormat); +var cache; +var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 624); +defineClass(2101, 1, {}); +var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 2101); +defineClass(2102, 2101, {}); +var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 2102); +function $clinit_LocaleInfo(){ + $clinit_LocaleInfo = emptyMethod; + instance_0 = new LocaleInfo; +} + +function $getDateTimeFormatInfo(this$static){ + !this$static.dateTimeFormatInfo && (this$static.dateTimeFormatInfo = new DateTimeFormatInfoImpl); + return this$static.dateTimeFormatInfo; +} + +function LocaleInfo(){ +} + +defineClass(1120, 1, {}, LocaleInfo); +var instance_0; +var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 1120); +function $getISOTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_45, 28, 15, [43, 48, 48, 58, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_47; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_47; + data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_47; + data_0[5] = data_0[5] + offset % 10 & $intern_47; + return valueOf_8(data_0, 0, data_0.length); +} + +function $getRFCTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_45, 28, 15, [43, 48, 48, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_47; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_47; + data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_47; + data_0[4] = data_0[4] + offset % 10 & $intern_47; + return valueOf_8(data_0, 0, data_0.length); +} + +function TimeZone(){ +} + +function composeGMTString(offset){ + var data_0; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_45, 28, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); + if (offset <= 0) { + data_0[3] = 43; + offset = -offset; + } + data_0[4] = data_0[4] + ((offset / 60 | 0) / 10 | 0) & $intern_47; + data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_47; + data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_47; + data_0[8] = data_0[8] + offset % 10 & $intern_47; + return valueOf_8(data_0, 0, data_0.length); +} + +function composePOSIXTimeZoneID(offset){ + var str; + if (offset == 0) { + return 'Etc/GMT'; + } + if (offset < 0) { + offset = -offset; + str = 'Etc/GMT-'; + } + else { + str = 'Etc/GMT+'; + } + return str + offsetDisplay(offset); +} + +function composeUTCString(offset){ + var str; + if (offset == 0) { + return 'UTC'; + } + if (offset < 0) { + offset = -offset; + str = 'UTC+'; + } + else { + str = 'UTC-'; + } + return str + offsetDisplay(offset); +} + +function createTimeZone(timeZoneOffsetInMinutes){ + var tz; + tz = new TimeZone; + tz.standardOffset = timeZoneOffsetInMinutes; + tz.timezoneID = composePOSIXTimeZoneID(timeZoneOffsetInMinutes); + tz.tzNames = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 2, 6, 1); + tz.tzNames[0] = composeUTCString(timeZoneOffsetInMinutes); + tz.tzNames[1] = composeUTCString(timeZoneOffsetInMinutes); + return tz; +} + +function offsetDisplay(offset){ + var hour, mins; + hour = offset / 60 | 0; + mins = offset % 60; + if (mins == 0) { + return '' + hour; + } + return '' + hour + ':' + ('' + mins); +} + +defineClass(2027, 1, {}, TimeZone); +_.standardOffset = 0; +var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 2027); +function DateTimeFormatInfoImpl(){ +} + +defineClass(1293, 2102, {}, DateTimeFormatInfoImpl); +var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 1293); +function DateTimeFormat$PatternPart(txt, cnt){ + this.text_0 = txt; + this.count = cnt; + this.abutStart = false; +} + +defineClass(443, 1, {443:1}, DateTimeFormat$PatternPart); +_.abutStart = false; +_.count = 0; +var Lcom_google_gwt_i18n_shared_DateTimeFormat$PatternPart_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat/PatternPart', 443); +function $compareTo_0(this$static, other){ + return compare_6(fromDouble_0(this$static.jsdate.getTime()), fromDouble_0(other.jsdate.getTime())); +} + +function $fixDaylightSavings(this$static, requestedHours){ + var badHours, copy, day, newTime, originalTimeInMillis, timeDiff, timeDiffHours, timeDiffMinutes; + requestedHours %= 24; + if (this$static.jsdate.getHours() != requestedHours) { + copy = new $wnd.Date(this$static.jsdate.getTime()); + copy.setDate(copy.getDate() + 1); + timeDiff = this$static.jsdate.getTimezoneOffset() - copy.getTimezoneOffset(); + if (timeDiff > 0) { + timeDiffHours = timeDiff / 60 | 0; + timeDiffMinutes = timeDiff % 60; + day = this$static.jsdate.getDate(); + badHours = this$static.jsdate.getHours(); + badHours + timeDiffHours >= 24 && ++day; + newTime = new $wnd.Date(this$static.jsdate.getFullYear(), this$static.jsdate.getMonth(), day, requestedHours + timeDiffHours, this$static.jsdate.getMinutes() + timeDiffMinutes, this$static.jsdate.getSeconds(), this$static.jsdate.getMilliseconds()); + this$static.jsdate.setTime(newTime.getTime()); + } + } + originalTimeInMillis = this$static.jsdate.getTime(); + this$static.jsdate.setTime(originalTimeInMillis + 3600000); + this$static.jsdate.getHours() != requestedHours && this$static.jsdate.setTime(originalTimeInMillis); +} + +function $setDate(this$static, date){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setDate(date); + $fixDaylightSavings(this$static, hours); +} + +function $setHours(this$static, hours){ + this$static.jsdate.setHours(hours); + $fixDaylightSavings(this$static, hours); +} + +function $setMinutes(this$static, minutes){ + var hours; + hours = this$static.jsdate.getHours() + (minutes / 60 | 0); + this$static.jsdate.setMinutes(minutes); + $fixDaylightSavings(this$static, hours); +} + +function $setMonth(this$static, month){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setMonth(month); + $fixDaylightSavings(this$static, hours); +} + +function $setSeconds(this$static, seconds){ + var hours; + hours = this$static.jsdate.getHours() + (seconds / 3600 | 0); + this$static.jsdate.setSeconds(seconds); + $fixDaylightSavings(this$static, hours); +} + +function $setTime(this$static, time){ + this$static.jsdate.setTime(toDouble_0(time)); +} + +function $setYear(this$static, year){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setFullYear(year + $intern_48); + $fixDaylightSavings(this$static, hours); +} + +function Date_0(){ + this.jsdate = new $wnd.Date; +} + +function Date_1(year, month, date){ + this.jsdate = new $wnd.Date; + this.jsdate.setFullYear(year + $intern_48, month, date); + this.jsdate.setHours(0, 0, 0, 0); + $fixDaylightSavings(this, 0); +} + +function Date_2(date){ + this.jsdate = new $wnd.Date(toDouble_0(date)); +} + +function padTwo(number){ + return number < 10?'0' + number:'' + number; +} + +defineClass(206, 1, $intern_50, Date_0, Date_1, Date_2); +_.compareTo_0 = function compareTo_4(other){ + return $compareTo_0(this, castTo(other, 206)); +} +; +_.equals_0 = function equals_30(obj){ + return instanceOf(obj, 206) && eq(fromDouble_0(this.jsdate.getTime()), fromDouble_0(castTo(obj, 206).jsdate.getTime())); +} +; +_.hashCode_1 = function hashCode_30(){ + var time; + time = fromDouble_0(this.jsdate.getTime()); + return toInt_0(xor_0(time, shru_0(time, 32))); +} +; +_.toString_0 = function toString_31(){ + var hourOffset, minuteOffset, offset; + offset = -this.jsdate.getTimezoneOffset(); + hourOffset = (offset >= 0?'+':'') + (offset / 60 | 0); + minuteOffset = padTwo($wnd.Math.abs(offset) % 60); + return ($clinit_Date$StringData() , DAYS)[this.jsdate.getDay()] + ' ' + MONTHS[this.jsdate.getMonth()] + ' ' + padTwo(this.jsdate.getDate()) + ' ' + padTwo(this.jsdate.getHours()) + ':' + padTwo(this.jsdate.getMinutes()) + ':' + padTwo(this.jsdate.getSeconds()) + ' GMT' + hourOffset + minuteOffset + ' ' + this.jsdate.getFullYear(); +} +; +var Ljava_util_Date_2_classLit = createForClass('java.util', 'Date', 206); +function $calcDate(this$static, date){ + var adjustment, daysInCurrentMonth, defaultCenturyStart, offset, orgDayOfMonth, orgMonth, tmp; + this$static.era == 0 && this$static.year > 0 && (this$static.year = -(this$static.year - 1)); + this$static.year > $intern_43 && $setYear(date, this$static.year - $intern_48); + orgDayOfMonth = date.jsdate.getDate(); + $setDate(date, 1); + this$static.month >= 0 && $setMonth(date, this$static.month); + if (this$static.dayOfMonth >= 0) { + $setDate(date, this$static.dayOfMonth); + } + else if (this$static.month >= 0) { + tmp = new Date_1(date.jsdate.getFullYear() - $intern_48, date.jsdate.getMonth(), 35); + daysInCurrentMonth = 35 - tmp.jsdate.getDate(); + $setDate(date, $wnd.Math.min(daysInCurrentMonth, orgDayOfMonth)); + } + else { + $setDate(date, orgDayOfMonth); + } + this$static.hours < 0 && (this$static.hours = date.jsdate.getHours()); + this$static.ampm > 0 && this$static.hours < 12 && (this$static.hours += 12); + $setHours(date, this$static.hours == 24 && this$static.midnightIs24?0:this$static.hours); + this$static.minutes >= 0 && $setMinutes(date, this$static.minutes); + this$static.seconds >= 0 && $setSeconds(date, this$static.seconds); + this$static.milliseconds >= 0 && $setTime(date, add_20(mul_0(div(fromDouble_0(date.jsdate.getTime()), $intern_46), $intern_46), this$static.milliseconds)); + if (this$static.ambiguousYear) { + defaultCenturyStart = new Date_0; + $setYear(defaultCenturyStart, defaultCenturyStart.jsdate.getFullYear() - $intern_48 - 80); + lt(fromDouble_0(date.jsdate.getTime()), fromDouble_0(defaultCenturyStart.jsdate.getTime())) && $setYear(date, defaultCenturyStart.jsdate.getFullYear() - $intern_48 + 100); + } + if (this$static.dayOfWeek >= 0) { + if (this$static.dayOfMonth == -1) { + adjustment = (7 + this$static.dayOfWeek - date.jsdate.getDay()) % 7; + adjustment > 3 && (adjustment -= 7); + orgMonth = date.jsdate.getMonth(); + $setDate(date, date.jsdate.getDate() + adjustment); + date.jsdate.getMonth() != orgMonth && $setDate(date, date.jsdate.getDate() + (adjustment > 0?-7:7)); + } + else { + if (date.jsdate.getDay() != this$static.dayOfWeek) { + return false; + } + } + } + if (this$static.tzOffset > $intern_43) { + offset = date.jsdate.getTimezoneOffset(); + $setTime(date, add_20(fromDouble_0(date.jsdate.getTime()), (this$static.tzOffset - offset) * 60 * $intern_46)); + } + return true; +} + +function DateRecord(){ + Date_0.call(this); + this.era = -1; + this.ambiguousYear = false; + this.year = $intern_43; + this.month = -1; + this.dayOfMonth = -1; + this.ampm = -1; + this.midnightIs24 = false; + this.hours = -1; + this.minutes = -1; + this.seconds = -1; + this.milliseconds = -1; + this.dayOfWeek = -1; + this.tzOffset = $intern_43; +} + +defineClass(2015, 206, $intern_50, DateRecord); +_.ambiguousYear = false; +_.ampm = 0; +_.dayOfMonth = 0; +_.dayOfWeek = 0; +_.era = 0; +_.hours = 0; +_.midnightIs24 = false; +_.milliseconds = 0; +_.minutes = 0; +_.month = 0; +_.seconds = 0; +_.tzOffset = 0; +_.year = 0; +var Lcom_google_gwt_i18n_shared_impl_DateRecord_2_classLit = createForClass('com.google.gwt.i18n.shared.impl', 'DateRecord', 2015); +defineClass(2064, 1, {}); +_.isArray_0 = function isArray(){ + return null; +} +; +_.isBoolean = function isBoolean(){ + return null; +} +; +_.isNumber = function isNumber(){ + return null; +} +; +_.isObject = function isObject(){ + return null; +} +; +_.isString = function isString(){ + return null; +} +; +var Lcom_google_gwt_json_client_JSONValue_2_classLit = createForClass('com.google.gwt.json.client', 'JSONValue', 2064); +function $get_8(this$static, index_0){ + var v = this$static.jsArray[index_0]; + var func = ($clinit_JSONParser() , typeMap)[typeof v]; + return func?func(v):throwUnknownTypeException(typeof v); +} + +function $set_0(this$static, index_0, value_0){ + var previous; + previous = $get_8(this$static, index_0); + $set0(this$static, index_0, value_0); + return previous; +} + +function $set0(this$static, index_0, value_0){ + if (value_0) { + var func = value_0.getUnwrapper(); + value_0 = func(value_0); + } + else { + value_0 = undefined; + } + this$static.jsArray[index_0] = value_0; +} + +function JSONArray(){ + this.jsArray = []; +} + +function JSONArray_0(arr){ + this.jsArray = arr; +} + +function unwrap(value_0){ + return value_0.jsArray; +} + +defineClass(221, 2064, {221:1}, JSONArray, JSONArray_0); +_.equals_0 = function equals_31(other){ + if (!instanceOf(other, 221)) { + return false; + } + return $equals_3(this.jsArray, castTo(other, 221).jsArray); +} +; +_.getUnwrapper = function getUnwrapper(){ + return unwrap; +} +; +_.hashCode_1 = function hashCode_31(){ + return $hashCode(this.jsArray); +} +; +_.isArray_0 = function isArray_0(){ + return this; +} +; +_.toString_0 = function toString_32(){ + var c, i, sb; + sb = new StringBuilder_1('['); + for (i = 0 , c = this.jsArray.length; i < c; i++) { + i > 0 && (sb.string += ',' , sb); + $append_10(sb, $get_8(this, i)); + } + sb.string += ']'; + return sb.string; +} +; +var Lcom_google_gwt_json_client_JSONArray_2_classLit = createForClass('com.google.gwt.json.client', 'JSONArray', 221); +function $clinit_JSONBoolean(){ + $clinit_JSONBoolean = emptyMethod; + FALSE = new JSONBoolean(false); + TRUE = new JSONBoolean(true); +} + +function JSONBoolean(value_0){ + this.value_0 = value_0; +} + +function unwrap_0(value_0){ + return value_0.value_0; +} + +defineClass(493, 2064, {493:1}, JSONBoolean); +_.getUnwrapper = function getUnwrapper_0(){ + return unwrap_0; +} +; +_.isBoolean = function isBoolean_0(){ + return this; +} +; +_.toString_0 = function toString_33(){ + return $clinit_Boolean() , '' + this.value_0; +} +; +_.value_0 = false; +var FALSE, TRUE; +var Lcom_google_gwt_json_client_JSONBoolean_2_classLit = createForClass('com.google.gwt.json.client', 'JSONBoolean', 493); +function JSONException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(997, 63, $intern_44, JSONException); +var Lcom_google_gwt_json_client_JSONException_2_classLit = createForClass('com.google.gwt.json.client', 'JSONException', 997); +function $clinit_JSONNull(){ + $clinit_JSONNull = emptyMethod; + instance_1 = new JSONNull; +} + +function JSONNull(){ +} + +function unwrap_1(){ + return null; +} + +defineClass(1036, 2064, {}, JSONNull); +_.getUnwrapper = function getUnwrapper_1(){ + return unwrap_1; +} +; +_.toString_0 = function toString_34(){ + return 'null'; +} +; +var instance_1; +var Lcom_google_gwt_json_client_JSONNull_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNull', 1036); +function JSONNumber(value_0){ + this.value_0 = value_0; +} + +function unwrap_2(value_0){ + return value_0.value_0; +} + +defineClass(263, 2064, {263:1}, JSONNumber); +_.equals_0 = function equals_32(other){ + if (!instanceOf(other, 263)) { + return false; + } + return this.value_0 == castTo(other, 263).value_0; +} +; +_.getUnwrapper = function getUnwrapper_2(){ + return unwrap_2; +} +; +_.hashCode_1 = function hashCode_32(){ + return $hashCode_1(this.value_0); +} +; +_.isNumber = function isNumber_0(){ + return this; +} +; +_.toString_0 = function toString_35(){ + return this.value_0 + ''; +} +; +_.value_0 = 0; +var Lcom_google_gwt_json_client_JSONNumber_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNumber', 263); +function $computeKeys0(this$static, result){ + var jsObject = this$static.jsObject; + var i = 0; + for (var key in jsObject) { + jsObject.hasOwnProperty(key) && (result[i++] = key); + } + return result; +} + +function $containsKey_2(this$static, key){ + return key in this$static.jsObject; +} + +function $get_9(this$static, key){ + if (key == null) { + throw toJs(new NullPointerException); + } + return $get0(this$static, key); +} + +function $get0(this$static, key){ + var jsObject = this$static.jsObject; + var v; + key = String(key); + jsObject.hasOwnProperty(key) && (v = jsObject[key]); + var func = ($clinit_JSONParser() , typeMap)[typeof v]; + var ret = func?func(v):throwUnknownTypeException(typeof v); + return ret; +} + +function $put_5(this$static, key, jsonValue){ + var previous; + if (key == null) { + throw toJs(new NullPointerException); + } + previous = $get_9(this$static, key); + $put0(this$static, key, jsonValue); + return previous; +} + +function $put0(this$static, key, value_0){ + if (value_0) { + var func = value_0.getUnwrapper(); + this$static.jsObject[key] = func(value_0); + } + else { + delete this$static.jsObject[key]; + } +} + +function JSONObject(){ + JSONObject_0.call(this, {}); +} + +function JSONObject_0(jsValue){ + this.jsObject = jsValue; +} + +function unwrap_3(value_0){ + return value_0.jsObject; +} + +defineClass(190, 2064, {190:1}, JSONObject, JSONObject_0); +_.equals_0 = function equals_33(other){ + if (!instanceOf(other, 190)) { + return false; + } + return $equals_3(this.jsObject, castTo(other, 190).jsObject); +} +; +_.getUnwrapper = function getUnwrapper_3(){ + return unwrap_3; +} +; +_.hashCode_1 = function hashCode_33(){ + return $hashCode(this.jsObject); +} +; +_.isObject = function isObject_0(){ + return this; +} +; +_.toString_0 = function toString_36(){ + var first, key, key$array, key$index, key$max, keys_0, sb; + sb = new StringBuilder_1('{'); + first = true; + keys_0 = $computeKeys0(this, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)); + for (key$array = keys_0 , key$index = 0 , key$max = key$array.length; key$index < key$max; ++key$index) { + key = key$array[key$index]; + first?(first = false):(sb.string += ', ' , sb); + $append_11(sb, escapeValue(key)); + sb.string += ':'; + $append_10(sb, $get_9(this, key)); + } + sb.string += '}'; + return sb.string; +} +; +var Lcom_google_gwt_json_client_JSONObject_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject', 190); +function JSONObject$1(this$0, val$keys){ + this.this$01 = this$0; + this.val$keys2 = val$keys; +} + +defineClass(605, $intern_9, $intern_10, JSONObject$1); +_.contains = function contains_27(o){ + return instanceOfString(o) && $containsKey_2(this.this$01, castToString(o)); +} +; +_.iterator_0 = function iterator_45(){ + return new AbstractList$IteratorImpl(new Arrays$ArrayList(this.val$keys2)); +} +; +_.size_1 = function size_36(){ + return this.val$keys2.length; +} +; +var Lcom_google_gwt_json_client_JSONObject$1_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject/1', 605); +function $clinit_JSONParser(){ + $clinit_JSONParser = emptyMethod; + typeMap = {'boolean':createBoolean, 'number':createNumber, 'string':createString, 'object':createObject, 'function':createObject, 'undefined':createUndefined}; +} + +function createBoolean(v){ + return $clinit_JSONBoolean() , v?TRUE:FALSE; +} + +function createNumber(v){ + return new JSONNumber(v); +} + +function createObject(o){ + if (!o) { + return $clinit_JSONNull() , instance_1; + } + var v = o.valueOf?o.valueOf():o; + if (v !== o) { + var func = typeMap[typeof v]; + return func?func(v):throwUnknownTypeException(typeof v); + } + else if (o instanceof Array || o instanceof $wnd.Array) { + return new JSONArray_0(o); + } + else { + return new JSONObject_0(o); + } +} + +function createString(v){ + return new JSONString(v); +} + +function createUndefined(){ + return null; +} + +function throwUnknownTypeException(typeString){ + $clinit_JSONParser(); + throw toJs(new JSONException("Unexpected typeof result '" + typeString + "'; please report this bug to the GWT team")); +} + +var typeMap; +function JSONString(value_0){ + if (value_0 == null) { + throw toJs(new NullPointerException); + } + this.value_0 = value_0; +} + +function unwrap_4(value_0){ + return value_0.value_0; +} + +defineClass(211, 2064, {211:1}, JSONString); +_.equals_0 = function equals_34(other){ + if (!instanceOf(other, 211)) { + return false; + } + return $equals_5(this.value_0, castTo(other, 211).value_0); +} +; +_.getUnwrapper = function getUnwrapper_4(){ + return unwrap_4; +} +; +_.hashCode_1 = function hashCode_34(){ + return $hashCode_2(this.value_0); +} +; +_.isString = function isString_0(){ + return this; +} +; +_.toString_0 = function toString_37(){ + return escapeValue(this.value_0); +} +; +var Lcom_google_gwt_json_client_JSONString_2_classLit = createForClass('com.google.gwt.json.client', 'JSONString', 211); +function canSet(array, value_0){ + var elementTypeCategory; + switch (getElementTypeCategory(array)) { + case 6: + return instanceOfString(value_0); + case 7: + return instanceOfDouble(value_0); + case 8: + return instanceOfBoolean(value_0); + case 3: + return Array.isArray(value_0) && (elementTypeCategory = getElementTypeCategory(value_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16)); + case 11: + return value_0 != null && typeof value_0 === 'function'; + case 12: + return value_0 != null && (typeof value_0 === 'object' || typeof value_0 == 'function'); + case 0: + return canCast(value_0, array.__elementTypeId$); + case 2: + return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn); + case 1: + return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn) || canCast(value_0, array.__elementTypeId$); + default:return true; + } +} + +function getClassLiteralForArray(clazz, dimensions){ + return getClassLiteralForArray_0(clazz, dimensions); +} + +function getElementTypeCategory(array){ + return array.__elementTypeCategory$ == null?10:array.__elementTypeCategory$; +} + +function initMultidimensionalArray(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, count){ + return initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, 0, count); +} + +function initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count){ + var elementTypeCategory, i, isLastDimension, length_0, result; + length_0 = dimExprs[index_0]; + isLastDimension = index_0 == count - 1; + elementTypeCategory = isLastDimension?leafElementTypeCategory:0; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + leafElementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, count - index_0), castableTypeMapExprs[index_0], elementTypeIds[index_0], elementTypeCategory, result); + if (!isLastDimension) { + ++index_0; + for (i = 0; i < length_0; ++i) { + result[i] = initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count); + } + } + return result; +} + +function initUnidimensionalArray(leafClassLiteral, castableTypeMap, elementTypeId, length_0, elementTypeCategory, dimensions){ + var result; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + elementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, dimensions), castableTypeMap, elementTypeId, elementTypeCategory, result); + return result; +} + +function initializeArrayElementsWithDefaults(elementTypeCategory, length_0){ + var array = new Array(length_0); + var initValue; + switch (elementTypeCategory) { + case 14: + case 15: + initValue = 0; + break; + case 16: + initValue = false; + break; + default:return array; + } + for (var i = 0; i < length_0; ++i) { + array[i] = initValue; + } + return array; +} + +function isJavaArray(src_0){ + return Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function setCheck(array, index_0, value_0){ + checkCriticalArrayType(value_0 == null || canSet(array, value_0)); + return array[index_0] = value_0; +} + +function stampJavaTypeInfo(arrayClass, castableTypeMap, elementTypeId, elementTypeCategory, array){ + array.___clazz = arrayClass; + array.castableTypeMap = castableTypeMap; + array.typeMarker = typeMarkerFn; + array.__elementTypeId$ = elementTypeId; + array.__elementTypeCategory$ = elementTypeCategory; + return array; +} + +function stampJavaTypeInfo_0(array, referenceType){ + getElementTypeCategory(referenceType) != 10 && stampJavaTypeInfo(getClass__Ljava_lang_Class___devirtual$(referenceType), referenceType.castableTypeMap, referenceType.__elementTypeId$, getElementTypeCategory(referenceType), array); + return array; +} + +function create_0(value_0){ + var a0, a1, a2; + a0 = value_0 & $intern_51; + a1 = value_0 >> 22 & $intern_51; + a2 = value_0 < 0?$intern_52:0; + return create0(a0, a1, a2); +} + +function create_1(a){ + return create0(a.l, a.m, a.h); +} + +function create0(l, m, h){ + return {l:l, m:m, h:h}; +} + +function divMod(a, b, computeRemainder){ + var aIsCopy, aIsMinValue, aIsNegative, bpower, c, negative; + if (b.l == 0 && b.m == 0 && b.h == 0) { + throw toJs(new ArithmeticException('divide by zero')); + } + if (a.l == 0 && a.m == 0 && a.h == 0) { + computeRemainder && (remainder = create0(0, 0, 0)); + return create0(0, 0, 0); + } + if (b.h == $intern_53 && b.m == 0 && b.l == 0) { + return divModByMinValue(a, computeRemainder); + } + negative = false; + if (b.h >> 19 != 0) { + b = neg(b); + negative = !negative; + } + bpower = powerOfTwo(b); + aIsNegative = false; + aIsMinValue = false; + aIsCopy = false; + if (a.h == $intern_53 && a.m == 0 && a.l == 0) { + aIsMinValue = true; + aIsNegative = true; + if (bpower == -1) { + a = create_1(($clinit_BigLongLib$Const() , MAX_VALUE)); + aIsCopy = true; + negative = !negative; + } + else { + c = shr(a, bpower); + negative && negate(c); + computeRemainder && (remainder = create0(0, 0, 0)); + return c; + } + } + else if (a.h >> 19 != 0) { + aIsNegative = true; + a = neg(a); + aIsCopy = true; + negative = !negative; + } + if (bpower != -1) { + return divModByShift(a, bpower, negative, aIsNegative, computeRemainder); + } + if (compare_1(a, b) < 0) { + computeRemainder && (aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h))); + return create0(0, 0, 0); + } + return divModHelper(aIsCopy?a:create0(a.l, a.m, a.h), b, negative, aIsNegative, aIsMinValue, computeRemainder); +} + +function divModByMinValue(a, computeRemainder){ + if (a.h == $intern_53 && a.m == 0 && a.l == 0) { + computeRemainder && (remainder = create0(0, 0, 0)); + return create_1(($clinit_BigLongLib$Const() , ONE)); + } + computeRemainder && (remainder = create0(a.l, a.m, a.h)); + return create0(0, 0, 0); +} + +function divModByShift(a, bpower, negative, aIsNegative, computeRemainder){ + var c; + c = shr(a, bpower); + negative && negate(c); + if (computeRemainder) { + a = maskRight(a, bpower); + aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h)); + } + return c; +} + +function divModHelper(a, b, negative, aIsNegative, aIsMinValue, computeRemainder){ + var bshift, gte, quotient, shift_0, a1, a2, a0; + shift_0 = numberOfLeadingZeros(b) - numberOfLeadingZeros(a); + bshift = shl(b, shift_0); + quotient = create0(0, 0, 0); + while (shift_0 >= 0) { + gte = trialSubtract(a, bshift); + if (gte) { + shift_0 < 22?(quotient.l |= 1 << shift_0 , undefined):shift_0 < 44?(quotient.m |= 1 << shift_0 - 22 , undefined):(quotient.h |= 1 << shift_0 - 44 , undefined); + if (a.l == 0 && a.m == 0 && a.h == 0) { + break; + } + } + a1 = bshift.m; + a2 = bshift.h; + a0 = bshift.l; + bshift.h = a2 >>> 1; + bshift.m = a1 >>> 1 | (a2 & 1) << 21; + bshift.l = a0 >>> 1 | (a1 & 1) << 21; + --shift_0; + } + negative && negate(quotient); + if (computeRemainder) { + if (aIsNegative) { + remainder = neg(a); + aIsMinValue && (remainder = sub_1(remainder, ($clinit_BigLongLib$Const() , ONE))); + } + else { + remainder = create0(a.l, a.m, a.h); + } + } + return quotient; +} + +function maskRight(a, bits){ + var b0, b1, b2; + if (bits <= 22) { + b0 = a.l & (1 << bits) - 1; + b1 = b2 = 0; + } + else if (bits <= 44) { + b0 = a.l; + b1 = a.m & (1 << bits - 22) - 1; + b2 = 0; + } + else { + b0 = a.l; + b1 = a.m; + b2 = a.h & (1 << bits - 44) - 1; + } + return create0(b0, b1, b2); +} + +function negate(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_51; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_51; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_52; + a.l = neg0; + a.m = neg1; + a.h = neg2; +} + +function numberOfLeadingZeros(a){ + var b1, b2; + b2 = numberOfLeadingZeros_0(a.h); + if (b2 == 32) { + b1 = numberOfLeadingZeros_0(a.m); + return b1 == 32?numberOfLeadingZeros_0(a.l) + 32:b1 + 20 - 10; + } + else { + return b2 - 12; + } +} + +function powerOfTwo(a){ + var h, l, m; + l = a.l; + if ((l & l - 1) != 0) { + return -1; + } + m = a.m; + if ((m & m - 1) != 0) { + return -1; + } + h = a.h; + if ((h & h - 1) != 0) { + return -1; + } + if (h == 0 && m == 0 && l == 0) { + return -1; + } + if (h == 0 && m == 0 && l != 0) { + return numberOfTrailingZeros(l); + } + if (h == 0 && m != 0 && l == 0) { + return numberOfTrailingZeros(m) + 22; + } + if (h != 0 && m == 0 && l == 0) { + return numberOfTrailingZeros(h) + 44; + } + return -1; +} + +function toDoubleHelper(a){ + return a.l + a.m * $intern_54 + a.h * $intern_55; +} + +function trialSubtract(a, b){ + var sum0, sum1, sum2; + sum2 = a.h - b.h; + if (sum2 < 0) { + return false; + } + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 += sum1 >> 22; + if (sum2 < 0) { + return false; + } + a.l = sum0 & $intern_51; + a.m = sum1 & $intern_51; + a.h = sum2 & $intern_52; + return true; +} + +var remainder; +function add_19(a, b){ + var sum0, sum1, sum2; + sum0 = a.l + b.l; + sum1 = a.m + b.m + (sum0 >> 22); + sum2 = a.h + b.h + (sum1 >> 22); + return create0(sum0 & $intern_51, sum1 & $intern_51, sum2 & $intern_52); +} + +function and(a, b){ + return create0(a.l & b.l, a.m & b.m, a.h & b.h); +} + +function compare_1(a, b){ + var a0, a1, a2, b0, b1, b2, signA, signB; + signA = a.h >> 19; + signB = b.h >> 19; + if (signA != signB) { + return signB - signA; + } + a2 = a.h; + b2 = b.h; + if (a2 != b2) { + return a2 - b2; + } + a1 = a.m; + b1 = b.m; + if (a1 != b1) { + return a1 - b1; + } + a0 = a.l; + b0 = b.l; + return a0 - b0; +} + +function fromDouble(value_0){ + var a0, a1, a2, negative, result; + if (isNaN(value_0)) { + return $clinit_BigLongLib$Const() , ZERO; + } + if (value_0 < -9223372036854775808) { + return $clinit_BigLongLib$Const() , MIN_VALUE; + } + if (value_0 >= 9223372036854775807) { + return $clinit_BigLongLib$Const() , MAX_VALUE; + } + negative = false; + if (value_0 < 0) { + negative = true; + value_0 = -value_0; + } + a2 = 0; + if (value_0 >= $intern_55) { + a2 = round_int(value_0 / $intern_55); + value_0 -= a2 * $intern_55; + } + a1 = 0; + if (value_0 >= $intern_54) { + a1 = round_int(value_0 / $intern_54); + value_0 -= a1 * $intern_54; + } + a0 = round_int(value_0); + result = create0(a0, a1, a2); + negative && negate(result); + return result; +} + +function mul(a, b){ + var a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c0, c00, c01, c1, c10, c11, c12, c13, c2, c22, c23, c24, p0, p1, p2, p3, p4; + a0 = a.l & 8191; + a1 = a.l >> 13 | (a.m & 15) << 9; + a2 = a.m >> 4 & 8191; + a3 = a.m >> 17 | (a.h & 255) << 5; + a4 = (a.h & 1048320) >> 8; + b0 = b.l & 8191; + b1 = b.l >> 13 | (b.m & 15) << 9; + b2 = b.m >> 4 & 8191; + b3 = b.m >> 17 | (b.h & 255) << 5; + b4 = (b.h & 1048320) >> 8; + p0 = a0 * b0; + p1 = a1 * b0; + p2 = a2 * b0; + p3 = a3 * b0; + p4 = a4 * b0; + if (b1 != 0) { + p1 += a0 * b1; + p2 += a1 * b1; + p3 += a2 * b1; + p4 += a3 * b1; + } + if (b2 != 0) { + p2 += a0 * b2; + p3 += a1 * b2; + p4 += a2 * b2; + } + if (b3 != 0) { + p3 += a0 * b3; + p4 += a1 * b3; + } + b4 != 0 && (p4 += a0 * b4); + c00 = p0 & $intern_51; + c01 = (p1 & 511) << 13; + c0 = c00 + c01; + c10 = p0 >> 22; + c11 = p1 >> 9; + c12 = (p2 & 262143) << 4; + c13 = (p3 & 31) << 17; + c1 = c10 + c11 + c12 + c13; + c22 = p2 >> 18; + c23 = p3 >> 5; + c24 = (p4 & 4095) << 8; + c2 = c22 + c23 + c24; + c1 += c0 >> 22; + c0 &= $intern_51; + c2 += c1 >> 22; + c1 &= $intern_51; + c2 &= $intern_52; + return create0(c0, c1, c2); +} + +function neg(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_51; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_51; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_52; + return create0(neg0, neg1, neg2); +} + +function not(a){ + return create0(~a.l & $intern_51, ~a.m & $intern_51, ~a.h & $intern_52); +} + +function or(a, b){ + return create0(a.l | b.l, a.m | b.m, a.h | b.h); +} + +function shl(a, n){ + var res0, res1, res2; + n &= 63; + if (n < 22) { + res0 = a.l << n; + res1 = a.m << n | a.l >> 22 - n; + res2 = a.h << n | a.m >> 22 - n; + } + else if (n < 44) { + res0 = 0; + res1 = a.l << n - 22; + res2 = a.m << n - 22 | a.l >> 44 - n; + } + else { + res0 = 0; + res1 = 0; + res2 = a.l << n - 44; + } + return create0(res0 & $intern_51, res1 & $intern_51, res2 & $intern_52); +} + +function shr(a, n){ + var a2, negative, res0, res1, res2; + n &= 63; + a2 = a.h; + negative = (a2 & $intern_53) != 0; + negative && (a2 |= -1048576); + if (n < 22) { + res2 = a2 >> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = negative?$intern_52:0; + res1 = a2 >> n - 22; + res0 = a.m >> n - 22 | a2 << 44 - n; + } + else { + res2 = negative?$intern_52:0; + res1 = negative?$intern_51:0; + res0 = a2 >> n - 44; + } + return create0(res0 & $intern_51, res1 & $intern_51, res2 & $intern_52); +} + +function shru(a, n){ + var a2, res0, res1, res2; + n &= 63; + a2 = a.h & $intern_52; + if (n < 22) { + res2 = a2 >>> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = 0; + res1 = a2 >>> n - 22; + res0 = a.m >> n - 22 | a.h << 44 - n; + } + else { + res2 = 0; + res1 = 0; + res0 = a2 >>> n - 44; + } + return create0(res0 & $intern_51, res1 & $intern_51, res2 & $intern_52); +} + +function sub_1(a, b){ + var sum0, sum1, sum2; + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 = a.h - b.h + (sum1 >> 22); + return create0(sum0 & $intern_51, sum1 & $intern_51, sum2 & $intern_52); +} + +function toDouble(a){ + if (compare_1(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { + return -toDoubleHelper(neg(a)); + } + return a.l + a.m * $intern_54 + a.h * $intern_55; +} + +function toInt(a){ + return a.l | a.m << 22; +} + +function toString_38(a){ + var digits, rem, res, tenPowerLong, zeroesNeeded; + if (a.l == 0 && a.m == 0 && a.h == 0) { + return '0'; + } + if (a.h == $intern_53 && a.m == 0 && a.l == 0) { + return '-9223372036854775808'; + } + if (a.h >> 19 != 0) { + return '-' + toString_38(neg(a)); + } + rem = a; + res = ''; + while (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + tenPowerLong = create_0($intern_56); + rem = divMod(rem, tenPowerLong, true); + digits = '' + toInt(remainder); + if (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + zeroesNeeded = 9 - digits.length; + for (; zeroesNeeded > 0; zeroesNeeded--) { + digits = '0' + digits; + } + } + res = digits + res; + } + return res; +} + +function xor(a, b){ + return create0(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); +} + +function $clinit_BigLongLib$Const(){ + $clinit_BigLongLib$Const = emptyMethod; + MAX_VALUE = create0($intern_51, $intern_51, 524287); + MIN_VALUE = create0(0, 0, $intern_53); + ONE = create_0(1); + create_0(2); + ZERO = create_0(0); +} + +var MAX_VALUE, MIN_VALUE, ONE, ZERO; +function toJava(e){ + var javaException; + if (instanceOf(e, 82)) { + return e; + } + javaException = e && e.__java$exception; + if (!javaException) { + javaException = new JavaScriptException(e); + captureStackTrace(javaException); + } + return javaException; +} + +function toJs(t){ + return t.backingJsObject; +} + +function add_20(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a + b; + if ($intern_57 < result && result < $intern_55) { + return result; + } + } + return createLongEmul(add_19(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function and_0(a, b){ + return createLongEmul(and(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function compare_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if (!isNaN(result)) { + return result; + } + } + return compare_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b); +} + +function createLongEmul(big_0){ + var a2; + a2 = big_0.h; + if (a2 == 0) { + return big_0.l + big_0.m * $intern_54; + } + if (a2 == $intern_52) { + return big_0.l + big_0.m * $intern_54 - $intern_55; + } + return big_0; +} + +function div(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a / b; + if ($intern_57 < result && result < $intern_55) { + return result < 0?$wnd.Math.ceil(result):$wnd.Math.floor(result); + } + } + return createLongEmul(divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, false)); +} + +function eq(a, b){ + return compare_2(a, b) == 0; +} + +function fromDouble_0(value_0){ + if ($intern_57 < value_0 && value_0 < $intern_55) { + return value_0 < 0?$wnd.Math.ceil(value_0):$wnd.Math.floor(value_0); + } + return createLongEmul(fromDouble(value_0)); +} + +function gt(a, b){ + return compare_2(a, b) > 0; +} + +function gte_0(a, b){ + return compare_2(a, b) >= 0; +} + +function isSmallLong0(value_0){ + return typeof value_0 === 'number'; +} + +function lt(a, b){ + return compare_2(a, b) < 0; +} + +function mod(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a % b; + if ($intern_57 < result && result < $intern_55) { + return result; + } + } + return createLongEmul((divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, true) , remainder)); +} + +function mul_0(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a * b; + if ($intern_57 < result && result < $intern_55) { + return result; + } + } + return createLongEmul(mul(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function neg_0(a){ + var result; + if (isSmallLong0(a)) { + result = 0 - a; + if (!isNaN(result)) { + return result; + } + } + return createLongEmul(neg(a)); +} + +function neq(a, b){ + return compare_2(a, b) != 0; +} + +function not_0(a){ + return createLongEmul(not(isSmallLong0(a)?toBigLong(a):a)); +} + +function or_0(a, b){ + return createLongEmul(or(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function shl_0(a, n){ + return createLongEmul(shl(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function shr_0(a, n){ + return createLongEmul(shr(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function shru_0(a, n){ + return createLongEmul(shru(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function sub_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if ($intern_57 < result && result < $intern_55) { + return result; + } + } + return createLongEmul(sub_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function toBigLong(longValue){ + var a0, a1, a3, value_0; + value_0 = longValue; + a3 = 0; + if (value_0 < 0) { + value_0 += $intern_55; + a3 = $intern_52; + } + a1 = round_int(value_0 / $intern_54); + a0 = round_int(value_0 - a1 * $intern_54); + return create0(a0, a1, a3); +} + +function toDouble_0(a){ + var d; + if (isSmallLong0(a)) { + d = a; + return d == -0.?0:d; + } + return toDouble(a); +} + +function toInt_0(a){ + if (isSmallLong0(a)) { + return a | 0; + } + return toInt(a); +} + +function toString_39(a){ + if (isSmallLong0(a)) { + return '' + a; + } + return toString_38(a); +} + +function xor_0(a, b){ + return createLongEmul(xor(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function init(){ + $clinit_ElkJs(); + exportLayout(); +} + +function $split(this$static, input_0){ + return input_0.split(this$static); +} + +defineClass(2060, 1, {533:1}); +var Ljava_io_OutputStream_2_classLit = createForClass('java.io', 'OutputStream', 2060); +defineClass(2061, 2060, {533:1}); +var Ljava_io_FilterOutputStream_2_classLit = createForClass('java.io', 'FilterOutputStream', 2061); +function $println(x_0){ + !x_0?'null':$toString_4(x_0, x_0.getMessage()); + String.fromCharCode(10); +} + +function PrintStream(){ +} + +defineClass(878, 2061, {533:1}, PrintStream); +var Ljava_io_PrintStream_2_classLit = createForClass('java.io', 'PrintStream', 878); +function $replace0(this$static, start_0, end, toInsert){ + var length_0; + length_0 = this$static.string.length; + end > length_0?(end = length_0):checkCriticalStringElementIndex(start_0, end + 1); + this$static.string = $substring_1(this$static.string, 0, start_0) + ('' + toInsert) + $substring_0(this$static.string, end); +} + +function $substring(this$static, end){ + return $substring_1(this$static.string, 0, end); +} + +function AbstractStringBuilder(string){ + this.string = string; +} + +defineClass(427, 1, {484:1}); +_.toString_0 = function toString_41(){ + return this.string; +} +; +var Ljava_lang_AbstractStringBuilder_2_classLit = createForClass('java.lang', 'AbstractStringBuilder', 427); +function ArithmeticException(explanation){ + RuntimeException_0.call(this, explanation); +} + +defineClass(538, 63, $intern_44, ArithmeticException); +var Ljava_lang_ArithmeticException_2_classLit = createForClass('java.lang', 'ArithmeticException', 538); +function IndexOutOfBoundsException(){ + RuntimeException.call(this); +} + +function IndexOutOfBoundsException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(77, 63, $intern_58, IndexOutOfBoundsException, IndexOutOfBoundsException_0); +var Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'IndexOutOfBoundsException', 77); +function ArrayIndexOutOfBoundsException(){ + IndexOutOfBoundsException.call(this); +} + +function ArrayIndexOutOfBoundsException_0(msg){ + IndexOutOfBoundsException_0.call(this, msg); +} + +defineClass(333, 77, {3:1, 333:1, 103:1, 77:1, 63:1, 82:1}, ArrayIndexOutOfBoundsException, ArrayIndexOutOfBoundsException_0); +var Ljava_lang_ArrayIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'ArrayIndexOutOfBoundsException', 333); +function ArrayStoreException(){ + RuntimeException.call(this); +} + +function ArrayStoreException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(537, 63, $intern_44, ArrayStoreException, ArrayStoreException_0); +var Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang', 'ArrayStoreException', 537); +function Error_0(message){ + Throwable_0.call(this, message); +} + +function Error_1(message, cause){ + Throwable_1.call(this, message, cause); +} + +defineClass(296, 82, $intern_59, Error_0); +var Ljava_lang_Error_2_classLit = createForClass('java.lang', 'Error', 296); +function AssertionError(){ + Throwable.call(this); +} + +function AssertionError_0(message){ + Error_1.call(this, message == null?'null':toString_40(message), instanceOf(message, 82)?castTo(message, 82):null); +} + +defineClass(200, 296, $intern_59, AssertionError, AssertionError_0); +var Ljava_lang_AssertionError_2_classLit = createForClass('java.lang', 'AssertionError', 200); +function $clinit_Boolean(){ + $clinit_Boolean = emptyMethod; + FALSE_0 = false; + TRUE_0 = true; +} + +function $booleanValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $compareTo_1(this$static, b){ + return compare_3((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); +} + +function $hashCode_0(this$static){ + return (checkCriticalNotNull(this$static) , this$static)?1231:1237; +} + +function compare_3(x_0, y_0){ + $clinit_Boolean(); + return x_0 == y_0?0:x_0?1:-1; +} + +function compareTo_Ljava_lang_Object__I__devirtual$(this$static, other){ + $clinit_Boolean(); + return instanceOfString(this$static)?$compareTo_9(this$static, castToString(other)):instanceOfDouble(this$static)?$compareTo_4(this$static, castToDouble(other)):instanceOfBoolean(this$static)?$compareTo_1(this$static, castToBoolean(other)):this$static.compareTo_0(other); +} + +booleanCastMap = {3:1, 485:1, 34:1}; +var FALSE_0, TRUE_0; +var Ljava_lang_Boolean_2_classLit = createForClass('java.lang', 'Boolean', 485); +function __parseAndValidateDouble(s){ + floatRegex == null && (floatRegex = new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$')); + if (!floatRegex.test(s)) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + return parseFloat(s); +} + +function __parseAndValidateInt(s, lowerBound, upperBound){ + var i, isTooLow, length_0, startIndex, toReturn; + if (s == null) { + throw toJs(new NumberFormatException('null')); + } + length_0 = s.length; + startIndex = length_0 > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 45 || (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 43))?1:0; + for (i = startIndex; i < length_0; i++) { + if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + } + toReturn = parseInt(s, 10); + isTooLow = toReturn < lowerBound; + if (isNaN(toReturn)) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + else if (isTooLow || toReturn > upperBound) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + return toReturn; +} + +function __parseAndValidateLong(s){ + var c, firstTime, head, i, length_0, maxDigits, minValue, negative, orig, radixPower, toReturn; + if (s == null) { + throw toJs(new NumberFormatException('null')); + } + orig = s; + length_0 = s.length; + negative = false; + if (length_0 > 0) { + c = (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0)); + if (c == 45 || c == 43) { + s = (checkCriticalStringElementIndex(1, s.length + 1) , s.substr(1)); + --length_0; + negative = c == 45; + } + } + if (length_0 == 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + while (s.length > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 48)) { + s = (checkCriticalStringElementIndex(1, s.length + 1) , s.substr(1)); + --length_0; + } + if (length_0 > ($clinit_Number$__ParseLong() , maxLengthForRadix)[10]) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + for (i = 0; i < length_0; i++) { + if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + } + toReturn = 0; + maxDigits = maxDigitsForRadix[10]; + radixPower = maxDigitsRadixPower[10]; + minValue = neg_0(maxValueForRadix[10]); + firstTime = true; + head = length_0 % maxDigits; + if (head > 0) { + toReturn = -parseInt((checkCriticalStringBounds(0, head, s.length) , s.substr(0, head)), 10); + s = (checkCriticalStringElementIndex(head, s.length + 1) , s.substr(head)); + length_0 -= head; + firstTime = false; + } + while (length_0 >= maxDigits) { + head = parseInt((checkCriticalStringBounds(0, maxDigits, s.length) , s.substr(0, maxDigits)), 10); + s = (checkCriticalStringElementIndex(maxDigits, s.length + 1) , s.substr(maxDigits)); + length_0 -= maxDigits; + if (firstTime) { + firstTime = false; + } + else { + if (compare_2(toReturn, minValue) < 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + toReturn = mul_0(toReturn, radixPower); + } + toReturn = sub_2(toReturn, head); + } + if (compare_2(toReturn, 0) > 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + if (!negative) { + toReturn = neg_0(toReturn); + if (compare_2(toReturn, 0) < 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + } + return toReturn; +} + +function doubleValue__D__devirtual$(this$static){ + return instanceOfDouble(this$static)?(checkCriticalNotNull(this$static) , this$static):this$static.doubleValue(); +} + +defineClass(242, 1, {3:1, 242:1}); +var floatRegex; +var Ljava_lang_Number_2_classLit = createForClass('java.lang', 'Number', 242); +function $compareTo_2(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Byte(value_0){ + this.value_0 = value_0; +} + +defineClass(222, 242, {3:1, 222:1, 34:1, 242:1}, Byte); +_.compareTo_0 = function compareTo_5(b){ + return $compareTo_2(this, castTo(b, 222)); +} +; +_.doubleValue = function doubleValue_0(){ + return this.value_0; +} +; +_.equals_0 = function equals_35(o){ + return instanceOf(o, 222) && castTo(o, 222).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_35(){ + return this.value_0; +} +; +_.toString_0 = function toString_42(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Byte_2_classLit = createForClass('java.lang', 'Byte', 222); +function $clinit_Byte$BoxedValues(){ + $clinit_Byte$BoxedValues = emptyMethod; + boxedValues = initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 222, 256, 0, 1); +} + +function get_32(b){ + $clinit_Byte$BoxedValues(); + var rebase, result; + rebase = b + 128; + result = boxedValues[rebase]; + !result && (result = boxedValues[rebase] = new Byte(b)); + return result; +} + +var boxedValues; +function $compareTo_3(this$static, c){ + return this$static.value_0 - c.value_0; +} + +function Character(value_0){ + this.value_0 = value_0; +} + +function digit_0(c){ + if (c >= 48 && c < 48 + $wnd.Math.min(10, 10)) { + return c - 48; + } + if (c >= 97 && c < 97) { + return c - 97 + 10; + } + if (c >= 65 && c < 65) { + return c - 65 + 10; + } + return -1; +} + +function valueOf_2(c){ + var result; + if (c < 128) { + return $clinit_Character$BoxedValues() , result = boxedValues_0[c] , !result && (result = boxedValues_0[c] = new Character(c)) , result; + } + return new Character(c); +} + +defineClass(180, 1, {3:1, 180:1, 34:1}, Character); +_.compareTo_0 = function compareTo_6(c){ + return $compareTo_3(this, castTo(c, 180)); +} +; +_.equals_0 = function equals_36(o){ + return instanceOf(o, 180) && castTo(o, 180).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_36(){ + return this.value_0; +} +; +_.toString_0 = function toString_43(){ + return String.fromCharCode(this.value_0); +} +; +_.value_0 = 0; +var digitRegex; +var Ljava_lang_Character_2_classLit = createForClass('java.lang', 'Character', 180); +function $clinit_Character$BoxedValues(){ + $clinit_Character$BoxedValues = emptyMethod; + boxedValues_0 = initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 180, 128, 0, 1); +} + +var boxedValues_0; +function ClassCastException(){ + RuntimeException.call(this); +} + +function ClassCastException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(212, 63, {3:1, 212:1, 103:1, 63:1, 82:1}, ClassCastException, ClassCastException_0); +var Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang', 'ClassCastException', 212); +function $compareTo_4(this$static, b){ + return compare_4((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); +} + +function $doubleValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $equals_4(this$static, o){ + return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(o); +} + +function $floatValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $hashCode_1(this$static){ + return round_int((checkCriticalNotNull(this$static) , this$static)); +} + +function $intValue(this$static){ + return round_int((checkCriticalNotNull(this$static) , this$static)); +} + +function $toString_6(this$static){ + return '' + (checkCriticalNotNull(this$static) , this$static); +} + +function compare_4(x_0, y_0){ + if (x_0 < y_0) { + return -1; + } + if (x_0 > y_0) { + return 1; + } + if (x_0 == y_0) { + return x_0 == 0?compare_4(1 / x_0, 1 / y_0):0; + } + return isNaN(x_0)?isNaN(y_0)?0:1:-1; +} + +function isInfinite(x_0){ + return !isNaN(x_0) && !isFinite(x_0); +} + +doubleCastMap = {3:1, 34:1, 345:1, 242:1}; +var Ljava_lang_Double_2_classLit = createForClass('java.lang', 'Double', 345); +function $compareTo_5(this$static, b){ + return compare_4(this$static.value_0, b.value_0); +} + +function Float(value_0){ + this.value_0 = value_0; +} + +function Float_0(s){ + this.value_0 = parseFloat_0(s); +} + +function parseFloat_0(s){ + var doubleValue; + doubleValue = __parseAndValidateDouble(s); + if (doubleValue > 3.4028234663852886E38) { + return $intern_60; + } + else if (doubleValue < -3.4028234663852886E38) { + return $intern_61; + } + return doubleValue; +} + +defineClass(161, 242, {3:1, 34:1, 161:1, 242:1}, Float, Float_0); +_.compareTo_0 = function compareTo_7(b){ + return $compareTo_5(this, castTo(b, 161)); +} +; +_.doubleValue = function doubleValue_1(){ + return this.value_0; +} +; +_.equals_0 = function equals_37(o){ + return instanceOf(o, 161) && $equals_4(this.value_0, castTo(o, 161).value_0); +} +; +_.hashCode_1 = function hashCode_37(){ + return round_int(this.value_0); +} +; +_.toString_0 = function toString_45(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Float_2_classLit = createForClass('java.lang', 'Float', 161); +function IllegalArgumentException(){ + RuntimeException.call(this); +} + +function IllegalArgumentException_0(message){ + RuntimeException_0.call(this, message); +} + +function IllegalArgumentException_1(cause){ + Throwable_1.call(this, 'The given string does not match the expected format for individual spacings.', cause); +} + +defineClass(33, 63, {3:1, 103:1, 33:1, 63:1, 82:1}, IllegalArgumentException, IllegalArgumentException_0, IllegalArgumentException_1); +var Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang', 'IllegalArgumentException', 33); +function IllegalStateException(){ + RuntimeException.call(this); +} + +function IllegalStateException_0(s){ + RuntimeException_0.call(this, s); +} + +defineClass(73, 63, $intern_44, IllegalStateException, IllegalStateException_0); +var Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang', 'IllegalStateException', 73); +function $compareTo_6(this$static, b){ + return compare_5(this$static.value_0, b.value_0); +} + +function Integer(value_0){ + this.value_0 = value_0; +} + +function bitCount(x_0){ + x_0 -= x_0 >> 1 & 1431655765; + x_0 = (x_0 >> 2 & 858993459) + (x_0 & 858993459); + x_0 = (x_0 >> 4) + x_0 & 252645135; + x_0 += x_0 >> 8; + x_0 += x_0 >> 16; + return x_0 & 63; +} + +function compare_5(x_0, y_0){ + return x_0 < y_0?-1:x_0 > y_0?1:0; +} + +function highestOneBit(i){ + var rtn; + if (i < 0) { + return $intern_43; + } + else if (i == 0) { + return 0; + } + else { + for (rtn = $intern_36; (rtn & i) == 0; rtn >>= 1) + ; + return rtn; + } +} + +function numberOfLeadingZeros_0(i){ + var m, n, y_0; + if (i < 0) { + return 0; + } + else if (i == 0) { + return 32; + } + else { + y_0 = -(i >> 16); + m = y_0 >> 16 & 16; + n = 16 - m; + i = i >> m; + y_0 = i - 256; + m = y_0 >> 16 & 8; + n += m; + i <<= m; + y_0 = i - $intern_62; + m = y_0 >> 16 & 4; + n += m; + i <<= m; + y_0 = i - $intern_17; + m = y_0 >> 16 & 2; + n += m; + i <<= m; + y_0 = i >> 14; + m = y_0 & ~(y_0 >> 1); + return n + 2 - m; + } +} + +function numberOfTrailingZeros(i){ + var r, rtn; + if (i == 0) { + return 32; + } + else { + rtn = 0; + for (r = 1; (r & i) == 0; r <<= 1) { + ++rtn; + } + return rtn; + } +} + +function reverse_1(i){ + var nibbles; + nibbles = ($clinit_Integer$ReverseNibbles() , reverseNibbles); + return nibbles[i >>> 28] | nibbles[i >> 24 & 15] << 4 | nibbles[i >> 20 & 15] << 8 | nibbles[i >> 16 & 15] << 12 | nibbles[i >> 12 & 15] << 16 | nibbles[i >> 8 & 15] << 20 | nibbles[i >> 4 & 15] << 24 | nibbles[i & 15] << 28; +} + +function rotateLeft(i, distance){ + while (distance-- > 0) { + i = i << 1 | (i < 0?1:0); + } + return i; +} + +function valueOf_3(i){ + var rebase, result; + if (i > -129 && i < 128) { + return $clinit_Integer$BoxedValues() , rebase = i + 128 , result = boxedValues_1[rebase] , !result && (result = boxedValues_1[rebase] = new Integer(i)) , result; + } + return new Integer(i); +} + +defineClass(17, 242, {3:1, 34:1, 17:1, 242:1}, Integer); +_.compareTo_0 = function compareTo_8(b){ + return $compareTo_6(this, castTo(b, 17)); +} +; +_.doubleValue = function doubleValue_2(){ + return this.value_0; +} +; +_.equals_0 = function equals_38(o){ + return instanceOf(o, 17) && castTo(o, 17).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_38(){ + return this.value_0; +} +; +_.toString_0 = function toString_46(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Integer_2_classLit = createForClass('java.lang', 'Integer', 17); +function $clinit_Integer$BoxedValues(){ + $clinit_Integer$BoxedValues = emptyMethod; + boxedValues_1 = initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 17, 256, 0, 1); +} + +var boxedValues_1; +function $clinit_Integer$ReverseNibbles(){ + $clinit_Integer$ReverseNibbles = emptyMethod; + reverseNibbles = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); +} + +var reverseNibbles; +function $compareTo_7(this$static, b){ + return compare_6(this$static.value_0, b.value_0); +} + +function Long(value_0){ + this.value_0 = value_0; +} + +function compare_6(x_0, y_0){ + return compare_2(x_0, y_0) < 0?-1:compare_2(x_0, y_0) > 0?1:0; +} + +function hashCode_40(l){ + return toInt_0(shru_0(l, 32)) ^ toInt_0(l); +} + +function valueOf_4(l){ + var rebase, result; + if (compare_2(l, -129) > 0 && compare_2(l, 128) < 0) { + return $clinit_Long$BoxedValues() , rebase = toInt_0(l) + 128 , result = boxedValues_2[rebase] , !result && (result = boxedValues_2[rebase] = new Long(l)) , result; + } + return new Long(l); +} + +defineClass(168, 242, {3:1, 34:1, 168:1, 242:1}, Long); +_.compareTo_0 = function compareTo_9(b){ + return $compareTo_7(this, castTo(b, 168)); +} +; +_.doubleValue = function doubleValue_3(){ + return toDouble_0(this.value_0); +} +; +_.equals_0 = function equals_39(o){ + return instanceOf(o, 168) && eq(castTo(o, 168).value_0, this.value_0); +} +; +_.hashCode_1 = function hashCode_39(){ + return hashCode_40(this.value_0); +} +; +_.toString_0 = function toString_47(){ + return '' + toString_39(this.value_0); +} +; +_.value_0 = 0; +var Ljava_lang_Long_2_classLit = createForClass('java.lang', 'Long', 168); +function $clinit_Long$BoxedValues(){ + $clinit_Long$BoxedValues = emptyMethod; + boxedValues_2 = initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 168, 256, 0, 1); +} + +var boxedValues_2; +function max_1(x_0, y_0){ + return compare_2(x_0, y_0) > 0?x_0:y_0; +} + +function signum(d){ + return d == 0 || isNaN(d)?d:d < 0?-1:1; +} + +defineClass(2140, 1, {}); +function NegativeArraySizeException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(1904, 63, $intern_44, NegativeArraySizeException); +var Ljava_lang_NegativeArraySizeException_2_classLit = createForClass('java.lang', 'NegativeArraySizeException', 1904); +function NullPointerException(){ + RuntimeException.call(this); +} + +function NullPointerException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(169, 607, {3:1, 103:1, 169:1, 63:1, 82:1}, NullPointerException, NullPointerException_0); +_.createError = function createError_0(msg){ + return new TypeError(msg); +} +; +var Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang', 'NullPointerException', 169); +function $clinit_Number$__ParseLong(){ + $clinit_Number$__ParseLong = emptyMethod; + var i; + maxDigitsForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); + maxDigitsRadixPower = initUnidimensionalArray(I_classLit, $intern_49, 28, 37, 15, 1); + maxLengthForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); + maxValueForRadix = initUnidimensionalArray(J_classLit, $intern_63, 28, 37, 14, 1); + for (i = 2; i <= 36; i++) { + maxDigitsRadixPower[i] = round_int($wnd.Math.pow(i, maxDigitsForRadix[i])); + maxValueForRadix[i] = div($intern_21, maxDigitsRadixPower[i]); + } +} + +var maxDigitsForRadix, maxDigitsRadixPower, maxLengthForRadix, maxValueForRadix; +function NumberFormatException(message){ + IllegalArgumentException_0.call(this, message); +} + +defineClass(130, 33, {3:1, 103:1, 33:1, 130:1, 63:1, 82:1}, NumberFormatException); +var Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang', 'NumberFormatException', 130); +function $compareTo_8(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Short(value_0){ + this.value_0 = value_0; +} + +function valueOf_5(s){ + var rebase, result; + if (s > -129 && s < 128) { + return $clinit_Short$BoxedValues() , rebase = s + 128 , result = boxedValues_3[rebase] , !result && (result = boxedValues_3[rebase] = new Short(s)) , result; + } + return new Short(s); +} + +defineClass(191, 242, {3:1, 34:1, 242:1, 191:1}, Short); +_.compareTo_0 = function compareTo_10(b){ + return $compareTo_8(this, castTo(b, 191)); +} +; +_.doubleValue = function doubleValue_4(){ + return this.value_0; +} +; +_.equals_0 = function equals_40(o){ + return instanceOf(o, 191) && castTo(o, 191).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_41(){ + return this.value_0; +} +; +_.toString_0 = function toString_48(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Short_2_classLit = createForClass('java.lang', 'Short', 191); +function $clinit_Short$BoxedValues(){ + $clinit_Short$BoxedValues = emptyMethod; + boxedValues_3 = initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 191, 256, 0, 1); +} + +var boxedValues_3; +function StackTraceElement(methodName, fileName, lineNumber){ + this.className = 'Unknown'; + this.methodName = methodName; + this.fileName = fileName; + this.lineNumber = lineNumber; +} + +defineClass(319, 1, {3:1, 319:1}, StackTraceElement); +_.equals_0 = function equals_41(other){ + var st; + if (instanceOf(other, 319)) { + st = castTo(other, 319); + return this.lineNumber == st.lineNumber && this.methodName == st.methodName && this.className == st.className && this.fileName == st.fileName; + } + return false; +} +; +_.hashCode_1 = function hashCode_42(){ + return hashCode_47(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_3(this.lineNumber), this.className, this.methodName, this.fileName])); +} +; +_.toString_0 = function toString_49(){ + return this.className + '.' + this.methodName + '(' + (this.fileName != null?this.fileName:'Unknown Source') + (this.lineNumber >= 0?':' + this.lineNumber:'') + ')'; +} +; +_.lineNumber = 0; +var Ljava_lang_StackTraceElement_2_classLit = createForClass('java.lang', 'StackTraceElement', 319); +function $charAt(this$static, index_0){ + checkCriticalStringElementIndex(index_0, this$static.length); + return this$static.charCodeAt(index_0); +} + +function $compareTo_9(this$static, other){ + var a, b; + a = (checkCriticalNotNull(this$static) , this$static); + b = (checkCriticalNotNull(other) , other); + return a == b?0:a < b?-1:1; +} + +function $endsWith(suffix){ + var suffixlength; + suffixlength = suffix.length; + return $equals_5('org.eclipse.elk.layered'.substr('org.eclipse.elk.layered'.length - suffixlength, suffixlength), suffix); +} + +function $equals_5(this$static, other){ + return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other); +} + +function $equalsIgnoreCase(this$static, other){ + checkCriticalNotNull(this$static); + if (other == null) { + return false; + } + if ($equals_5(this$static, other)) { + return true; + } + return this$static.length == other.length && $equals_5(this$static.toLowerCase(), other.toLowerCase()); +} + +function $getChars0(this$static, srcBegin, srcEnd, dst, dstBegin){ + while (srcBegin < srcEnd) { + dst[dstBegin++] = $charAt(this$static, srcBegin++); + } +} + +function $hashCode_2(this$static){ + var h, i; + h = 0; + for (i = 0; i < this$static.length; i++) { + h = (h << 5) - h + (checkCriticalStringElementIndex(i, this$static.length) , this$static.charCodeAt(i)) | 0; + } + return h; +} + +function $indexOf_0(this$static, codePoint, startIndex){ + return $indexOf_2(this$static, fromCodePoint(codePoint), startIndex); +} + +function $indexOf_1(this$static, str){ + return this$static.indexOf(str); +} + +function $indexOf_2(this$static, str, startIndex){ + return this$static.indexOf(str, startIndex); +} + +function $intern(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $lastIndexOf(this$static, str){ + return this$static.lastIndexOf(str); +} + +function $lastIndexOf_0(this$static, str, start_0){ + return this$static.lastIndexOf(str, start_0); +} + +function $split_0(this$static, regex){ + var compiled, count, lastNonEmpty, lastTrail, matchIndex, matchObj, out, trail; + compiled = new RegExp(regex, 'g'); + out = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); + count = 0; + trail = this$static; + lastTrail = null; + while (true) { + matchObj = compiled.exec(trail); + if (matchObj == null || trail == '') { + out[count] = trail; + break; + } + else { + matchIndex = matchObj.index; + out[count] = (checkCriticalStringBounds(0, matchIndex, trail.length) , trail.substr(0, matchIndex)); + trail = $substring_1(trail, matchIndex + matchObj[0].length, trail.length); + compiled.lastIndex = 0; + if (lastTrail == trail) { + out[count] = (checkCriticalStringBounds(0, 1, trail.length) , trail.substr(0, 1)); + trail = (checkCriticalStringElementIndex(1, trail.length + 1) , trail.substr(1)); + } + lastTrail = trail; + ++count; + } + } + if (this$static.length > 0) { + lastNonEmpty = out.length; + while (lastNonEmpty > 0 && out[lastNonEmpty - 1] == '') { + --lastNonEmpty; + } + lastNonEmpty < out.length && (out.length = lastNonEmpty); + } + return out; +} + +function $startsWith(this$static, prefix){ + return $equals_5(this$static.substr(0, prefix.length), prefix); +} + +function $startsWith_0(this$static, prefix, toffset){ + return toffset >= 0 && $equals_5(this$static.substr(toffset, prefix.length), prefix); +} + +function $substring_0(this$static, beginIndex){ + checkCriticalStringElementIndex(beginIndex, this$static.length + 1); + return this$static.substr(beginIndex); +} + +function $substring_1(this$static, beginIndex, endIndex){ + checkCriticalStringBounds(beginIndex, endIndex, this$static.length); + return this$static.substr(beginIndex, endIndex - beginIndex); +} + +function $toCharArray(this$static){ + var charArr, n; + n = this$static.length; + charArr = initUnidimensionalArray(C_classLit, $intern_45, 28, n, 15, 1); + $getChars0(this$static, 0, n, charArr, 0); + return charArr; +} + +function $toLowerCase(this$static, locale){ + return locale == ($clinit_Locale() , $clinit_Locale() , defaultLocale)?this$static.toLocaleLowerCase():this$static.toLowerCase(); +} + +function $toString_7(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $trim(this$static){ + var end, length_0, start_0; + length_0 = this$static.length; + start_0 = 0; + while (start_0 < length_0 && (checkCriticalStringElementIndex(start_0, this$static.length) , this$static.charCodeAt(start_0) <= 32)) { + ++start_0; + } + end = length_0; + while (end > start_0 && (checkCriticalStringElementIndex(end - 1, this$static.length) , this$static.charCodeAt(end - 1) <= 32)) { + --end; + } + return start_0 > 0 || end < length_0?(checkCriticalStringBounds(start_0, end, this$static.length) , this$static.substr(start_0, end - start_0)):this$static; +} + +function fromCharCode(array){ + return String.fromCharCode.apply(null, array); +} + +function fromCodePoint(codePoint){ + var hiSurrogate, loSurrogate; + if (codePoint >= $intern_64) { + hiSurrogate = $intern_65 + (codePoint - $intern_64 >> 10 & 1023) & $intern_47; + loSurrogate = 56320 + (codePoint - $intern_64 & 1023) & $intern_47; + return String.fromCharCode(hiSurrogate) + ('' + String.fromCharCode(loSurrogate)); + } + else { + return String.fromCharCode(codePoint & $intern_47); + } +} + +function valueOf_6(x_0){ + return x_0 == null?'null':toString_40(x_0); +} + +function valueOf_7(x_0){ + return valueOf_8(x_0, 0, x_0.length); +} + +function valueOf_8(x_0, offset, count){ + var batchEnd, batchStart, end, s; + end = offset + count; + checkCriticalStringBounds(offset, end, x_0.length); + s = ''; + for (batchStart = offset; batchStart < end;) { + batchEnd = $wnd.Math.min(batchStart + 10000, end); + s += fromCharCode(x_0.slice(batchStart, batchEnd)); + batchStart = batchEnd; + } + return s; +} + +stringCastMap = {3:1, 484:1, 34:1, 2:1}; +var Ljava_lang_String_2_classLit = createForClass('java.lang', 'String', 2); +function $append(this$static, x_0){ + this$static.string += String.fromCharCode(x_0); + return this$static; +} + +function $append_0(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_1(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_2(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_3(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_4(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $deleteCharAt(this$static, start_0){ + $replace0(this$static, start_0, start_0 + 1, ''); + return this$static; +} + +function StringBuffer(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuffer_0(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuffer_1(s){ + AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); +} + +defineClass(111, 427, {484:1}, StringBuffer, StringBuffer_0, StringBuffer_1); +var Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang', 'StringBuffer', 111); +function $append_5(this$static, x_0){ + this$static.string += String.fromCharCode(x_0); + return this$static; +} + +function $append_6(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_7(this$static, x_0){ + return this$static.string += '' + x_0 , this$static; +} + +function $append_8(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_9(this$static, x_0, start_0, end){ + this$static.string += '' + $substring_1(x_0 == null?'null':toString_40(x_0), start_0, end); + return this$static; +} + +function $append_10(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_11(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_12(this$static, x_0){ + this$static.string += valueOf_8(x_0, 0, x_0.length); + return this$static; +} + +function $append_13(this$static, x_0, len){ + this$static.string += valueOf_8(x_0, 0, len); + return this$static; +} + +function $insert_0(this$static, index_0, x_0){ + $replace0(this$static, index_0, index_0, x_0); + return this$static; +} + +function StringBuilder(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuilder_0(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuilder_1(s){ + AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); +} + +defineClass(104, 427, {484:1}, StringBuilder, StringBuilder_0, StringBuilder_1); +var Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang', 'StringBuilder', 104); +function StringIndexOutOfBoundsException(message){ + IndexOutOfBoundsException_0.call(this, message); +} + +defineClass(702, 77, $intern_58, StringIndexOutOfBoundsException); +var Ljava_lang_StringIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'StringIndexOutOfBoundsException', 702); +function $clinit_System(){ + $clinit_System = emptyMethod; + err_0 = new PrintStream; +} + +function arraycopy(src_0, srcOfs, dest, destOfs, len){ + $clinit_System(); + var destArray, destComp, destEnd, destType, srcArray, srcComp, srcType; + checkCriticalNotNull_0(src_0, 'src'); + checkCriticalNotNull_0(dest, 'dest'); + srcType = getClass__Ljava_lang_Class___devirtual$(src_0); + destType = getClass__Ljava_lang_Class___devirtual$(dest); + checkCriticalArrayType_0((srcType.modifiers & 4) != 0, 'srcType is not an array'); + checkCriticalArrayType_0((destType.modifiers & 4) != 0, 'destType is not an array'); + srcComp = srcType.componentType; + destComp = destType.componentType; + checkCriticalArrayType_0((srcComp.modifiers & 1) != 0?srcComp == destComp:(destComp.modifiers & 1) == 0, "Array types don't match"); + checkArrayCopyIndicies(src_0, srcOfs, dest, destOfs, len); + if ((srcComp.modifiers & 1) == 0 && srcType != destType) { + srcArray = castToArray(src_0); + destArray = castToArray(dest); + if (maskUndefined(src_0) === maskUndefined(dest) && srcOfs < destOfs) { + srcOfs += len; + for (destEnd = destOfs + len; destEnd-- > destOfs;) { + setCheck(destArray, destEnd, srcArray[--srcOfs]); + } + } + else { + for (destEnd = destOfs + len; destOfs < destEnd;) { + setCheck(destArray, destOfs++, srcArray[srcOfs++]); + } + } + } + else { + copy_0(src_0, srcOfs, dest, destOfs, len, true); + } +} + +function checkArrayCopyIndicies(src_0, srcOfs, dest, destOfs, len){ + var destlen, srclen; + srclen = src_0.length; + destlen = dest.length; + if (srcOfs < 0 || destOfs < 0 || len < 0 || srcOfs + len > srclen || destOfs + len > destlen) { + throw toJs(new IndexOutOfBoundsException); + } +} + +defineClass(2145, 1, {}); +var err_0; +function UnsupportedOperationException(){ + RuntimeException.call(this); +} + +function UnsupportedOperationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(48, 63, {3:1, 103:1, 63:1, 82:1, 48:1}, UnsupportedOperationException, UnsupportedOperationException_0); +var Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang', 'UnsupportedOperationException', 48); +function $clinit_BigDecimal(){ + $clinit_BigDecimal = emptyMethod; + var i, j, j0; + new BigDecimal(1, 0); + new BigDecimal(10, 0); + new BigDecimal(0, 0); + BI_SCALED_BY_ZERO = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 247, 11, 0, 1); + CH_ZEROS = initUnidimensionalArray(C_classLit, $intern_45, 28, 100, 15, 1); + DOUBLE_FIVE_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); + DOUBLE_FIVE_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_49, 28, DOUBLE_FIVE_POW.length, 15, 1); + DOUBLE_TEN_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [1, 10, 100, $intern_46, 10000, $intern_67, 1000000, 10000000, 100000000, $intern_56, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000]); + DOUBLE_TEN_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_49, 28, DOUBLE_TEN_POW.length, 15, 1); + ZERO_SCALED_BY = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 247, 11, 0, 1); + i = 0; + for (; i < ZERO_SCALED_BY.length; i++) { + BI_SCALED_BY_ZERO[i] = new BigDecimal(i, 0); + ZERO_SCALED_BY[i] = new BigDecimal(0, i); + CH_ZEROS[i] = 48; + } + for (; i < CH_ZEROS.length; i++) { + CH_ZEROS[i] = 48; + } + for (j0 = 0; j0 < DOUBLE_FIVE_POW_BIT_LENGTH.length; j0++) { + DOUBLE_FIVE_POW_BIT_LENGTH[j0] = bitLength(DOUBLE_FIVE_POW[j0]); + } + for (j = 0; j < DOUBLE_TEN_POW_BIT_LENGTH.length; j++) { + DOUBLE_TEN_POW_BIT_LENGTH[j] = bitLength(DOUBLE_TEN_POW[j]); + } + $clinit_Multiplication(); +} + +function $compareTo_10(this$static, val){ + var diffPrecision, diffScale, thisSign, thisUnscaled, valUnscaled, valueSign; + thisSign = $signum(this$static); + valueSign = $signum(val); + if (thisSign == valueSign) { + if (this$static.scale == val.scale && this$static.bitLength < 54 && val.bitLength < 54) { + return this$static.smallValue < val.smallValue?-1:this$static.smallValue > val.smallValue?1:0; + } + diffScale = this$static.scale - val.scale; + diffPrecision = (this$static.precision > 0?this$static.precision:$wnd.Math.floor((this$static.bitLength - 1) * $intern_68) + 1) - (val.precision > 0?val.precision:$wnd.Math.floor((val.bitLength - 1) * $intern_68) + 1); + if (diffPrecision > diffScale + 1) { + return thisSign; + } + else if (diffPrecision < diffScale - 1) { + return -thisSign; + } + else { + thisUnscaled = (!this$static.intVal && (this$static.intVal = valueOf_9(fromDouble_0(this$static.smallValue))) , this$static.intVal); + valUnscaled = (!val.intVal && (val.intVal = valueOf_9(fromDouble_0(val.smallValue))) , val.intVal); + diffScale < 0?(thisUnscaled = $multiply(thisUnscaled, powerOf10(-diffScale))):diffScale > 0 && (valUnscaled = $multiply(valUnscaled, powerOf10(diffScale))); + return $compareTo_11(thisUnscaled, valUnscaled); + } + } + else + return thisSign < valueSign?-1:1; +} + +function $initFrom(this$static, val){ + var begin, ch_0, i, last, offset, scaleString, unscaled, unscaledBuffer; + begin = 0; + offset = 0; + last = val.length; + scaleString = null; + unscaledBuffer = new StringBuilder_0; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { + ++offset; + ++begin; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 45))) { + throw toJs(new NumberFormatException('For input string: "' + val + '"')); + } + } + while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 46) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { + ++offset; + } + unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 46)) { + ++offset; + begin = offset; + while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { + ++offset; + } + this$static.scale = offset - begin; + unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); + } + else { + this$static.scale = 0; + } + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 101 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 69))) { + ++offset; + begin = offset; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { + ++offset; + offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 45) && ++begin; + } + scaleString = (checkCriticalStringBounds(begin, last, val.length) , val.substr(begin, last - begin)); + this$static.scale = this$static.scale - __parseAndValidateInt(scaleString, $intern_43, $intern_0); + if (this$static.scale != round_int(this$static.scale)) { + throw toJs(new NumberFormatException('Scale out of range.')); + } + } + unscaled = unscaledBuffer.string; + if (unscaled.length < 16) { + this$static.smallValue = (unscaledRegex == null && (unscaledRegex = new RegExp('^[+-]?\\d*$', 'i')) , unscaledRegex.test(unscaled)?parseInt(unscaled, 10):NaN); + if (isNaN(this$static.smallValue)) { + throw toJs(new NumberFormatException('For input string: "' + val + '"')); + } + this$static.bitLength = bitLength(this$static.smallValue); + } + else { + $setUnscaledValue(this$static, new BigInteger_3(unscaled)); + } + this$static.precision = unscaledBuffer.string.length; + for (i = 0; i < unscaledBuffer.string.length; ++i) { + ch_0 = $charAt(unscaledBuffer.string, i); + if (ch_0 != 45 && ch_0 != 48) { + break; + } + --this$static.precision; + } + this$static.precision == 0 && (this$static.precision = 1); +} + +function $setUnscaledValue(this$static, unscaledValue){ + var value_0; + this$static.intVal = unscaledValue; + this$static.bitLength = bitLength_1(unscaledValue); + this$static.bitLength < 54 && (this$static.smallValue = (value_0 = unscaledValue.numberLength > 1?fromBits_0(unscaledValue.digits[0], unscaledValue.digits[1]):fromBits_0(unscaledValue.digits[0], 0) , toDouble_0(unscaledValue.sign > 0?value_0:neg_0(value_0)))); +} + +function $signum(this$static){ + if (this$static.bitLength < 54) { + return this$static.smallValue < 0?-1:this$static.smallValue > 0?1:0; + } + return (!this$static.intVal && (this$static.intVal = valueOf_9(fromDouble_0(this$static.smallValue))) , this$static.intVal).sign; +} + +function $toPlainString(this$static){ + var begin, delta, intStr, result; + intStr = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_9(fromDouble_0(this$static.smallValue))) , this$static.intVal), 0); + if (this$static.scale == 0 || this$static.bitLength == 0 && this$static.smallValue != -1 && this$static.scale < 0) { + return intStr; + } + begin = $signum(this$static) < 0?1:0; + delta = this$static.scale; + result = (intStr.length + 1 + $wnd.Math.abs(round_int(this$static.scale)) , new StringBuilder_0); + begin == 1 && (result.string += '-' , result); + if (this$static.scale > 0) { + delta -= intStr.length - begin; + if (delta >= 0) { + result.string += '0.'; + for (; delta > CH_ZEROS.length; delta -= CH_ZEROS.length) { + $append_12(result, CH_ZEROS); + } + $append_13(result, CH_ZEROS, round_int(delta)); + $append_11(result, (checkCriticalStringElementIndex(begin, intStr.length + 1) , intStr.substr(begin))); + } + else { + delta = begin - delta; + $append_11(result, $substring_1(intStr, begin, round_int(delta))); + result.string += '.'; + $append_11(result, $substring_0(intStr, round_int(delta))); + } + } + else { + $append_11(result, (checkCriticalStringElementIndex(begin, intStr.length + 1) , intStr.substr(begin))); + for (; delta < -CH_ZEROS.length; delta += CH_ZEROS.length) { + $append_12(result, CH_ZEROS); + } + $append_13(result, CH_ZEROS, round_int(-delta)); + } + return result.string; +} + +function $toString_8(this$static){ + var begin, end, exponent, intString, result; + if (this$static.toStringImage != null) { + return this$static.toStringImage; + } + if (this$static.bitLength < 32) { + this$static.toStringImage = toDecimalScaledString(fromDouble_0(this$static.smallValue), round_int(this$static.scale)); + return this$static.toStringImage; + } + intString = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_9(fromDouble_0(this$static.smallValue))) , this$static.intVal), 0); + if (this$static.scale == 0) { + return intString; + } + begin = (!this$static.intVal && (this$static.intVal = valueOf_9(fromDouble_0(this$static.smallValue))) , this$static.intVal).sign < 0?2:1; + end = intString.length; + exponent = -this$static.scale + end - begin; + result = new StringBuilder; + result.string += '' + intString; + if (this$static.scale > 0 && exponent >= -6) { + if (exponent >= 0) { + $insert_0(result, end - round_int(this$static.scale), String.fromCharCode(46)); + } + else { + $replace0(result, begin - 1, begin - 1, '0.'); + $insert_0(result, begin + 1, valueOf_8(CH_ZEROS, 0, -round_int(exponent) - 1)); + } + } + else { + if (end - begin >= 1) { + $insert_0(result, begin, String.fromCharCode(46)); + ++end; + } + $insert_0(result, end, String.fromCharCode(69)); + exponent > 0 && $insert_0(result, ++end, String.fromCharCode(43)); + $insert_0(result, ++end, '' + toString_39(fromDouble_0(exponent))); + } + this$static.toStringImage = result.string; + return this$static.toStringImage; +} + +function BigDecimal(smallValue, scale){ + this.scale = scale; + this.bitLength = bitLength_0(smallValue); + this.bitLength < 54?(this.smallValue = toDouble_0(smallValue)):(this.intVal = ($clinit_BigInteger() , compare_2(smallValue, 0) >= 0?fromBits(smallValue):$negate(fromBits(neg_0(smallValue))))); +} + +function BigDecimal_0(val){ + $clinit_BigDecimal(); + $initFrom(this, val); +} + +function bitLength(value_0){ + var negative, result; + if (value_0 > -140737488355328 && value_0 < 140737488355328) { + if (value_0 == 0) { + return 0; + } + negative = value_0 < 0; + negative && (value_0 = -value_0); + result = round_int($wnd.Math.floor($wnd.Math.log(value_0) / 0.6931471805599453)); + (!negative || value_0 != $wnd.Math.pow(2, result)) && ++result; + return result; + } + return bitLength_0(fromDouble_0(value_0)); +} + +function bitLength_0(value_0){ + var high; + compare_2(value_0, 0) < 0 && (value_0 = not_0(value_0)); + return high = toInt_0(shru_0(value_0, 32)) , 64 - (high != 0?numberOfLeadingZeros_0(high):numberOfLeadingZeros_0(toInt_0(value_0)) + 32); +} + +defineClass(247, 242, {3:1, 34:1, 242:1, 247:1}, BigDecimal, BigDecimal_0); +_.compareTo_0 = function compareTo_11(val){ + return $compareTo_10(this, castTo(val, 247)); +} +; +_.doubleValue = function doubleValue_5(){ + return __parseAndValidateDouble($toString_8(this)); +} +; +_.equals_0 = function equals_42(x_0){ + var x1; + if (this === x_0) { + return true; + } + if (instanceOf(x_0, 247)) { + x1 = castTo(x_0, 247); + return this.scale == x1.scale && $compareTo_10(this, x1) == 0; + } + return false; +} +; +_.hashCode_1 = function hashCode_43(){ + var longValue; + if (this.hashCode_0 != 0) { + return this.hashCode_0; + } + if (this.bitLength < 54) { + longValue = fromDouble_0(this.smallValue); + this.hashCode_0 = toInt_0(and_0(longValue, -1)); + this.hashCode_0 = 33 * this.hashCode_0 + toInt_0(and_0(shr_0(longValue, 32), -1)); + this.hashCode_0 = 17 * this.hashCode_0 + round_int(this.scale); + return this.hashCode_0; + } + this.hashCode_0 = 17 * $hashCode_3(this.intVal) + round_int(this.scale); + return this.hashCode_0; +} +; +_.toString_0 = function toString_50(){ + return $toString_8(this); +} +; +_.bitLength = 0; +_.hashCode_0 = 0; +_.precision = 0; +_.scale = 0; +_.smallValue = 0; +var BI_SCALED_BY_ZERO, CH_ZEROS, DOUBLE_FIVE_POW, DOUBLE_FIVE_POW_BIT_LENGTH, DOUBLE_TEN_POW, DOUBLE_TEN_POW_BIT_LENGTH, ZERO_SCALED_BY, unscaledRegex; +var Ljava_math_BigDecimal_2_classLit = createForClass('java.math', 'BigDecimal', 247); +function $clinit_BigInteger(){ + $clinit_BigInteger = emptyMethod; + var i; + ONE_0 = new BigInteger(1, 1); + TEN = new BigInteger(1, 10); + ZERO_0 = new BigInteger(0, 0); + MINUS_ONE = new BigInteger(-1, 1); + SMALL_VALUES = stampJavaTypeInfo(getClassLiteralForArray(Ljava_math_BigInteger_2_classLit, 1), $intern_16, 92, 0, [ZERO_0, ONE_0, new BigInteger(1, 2), new BigInteger(1, 3), new BigInteger(1, 4), new BigInteger(1, 5), new BigInteger(1, 6), new BigInteger(1, 7), new BigInteger(1, 8), new BigInteger(1, 9), TEN]); + TWO_POWS = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 92, 32, 0, 1); + for (i = 0; i < TWO_POWS.length; i++) { + TWO_POWS[i] = gte_0(shl_0(1, i), 0)?fromBits(shl_0(1, i)):$negate(fromBits(neg_0(shl_0(1, i)))); + } +} + +function $compareTo_11(this$static, val){ + if (this$static.sign > val.sign) { + return 1; + } + if (this$static.sign < val.sign) { + return -1; + } + if (this$static.numberLength > val.numberLength) { + return this$static.sign; + } + if (this$static.numberLength < val.numberLength) { + return -val.sign; + } + return this$static.sign * compareArrays(this$static.digits, val.digits, this$static.numberLength); +} + +function $cutOffLeadingZeroes(this$static){ + while (this$static.numberLength > 0 && this$static.digits[--this$static.numberLength] == 0) + ; + this$static.digits[this$static.numberLength++] == 0 && (this$static.sign = 0); +} + +function $equals_6(this$static, x_0){ + var x1; + if (maskUndefined(this$static) === maskUndefined(x_0)) { + return true; + } + if (instanceOf(x_0, 92)) { + x1 = castTo(x_0, 92); + return this$static.sign == x1.sign && this$static.numberLength == x1.numberLength && $equalsArrays(this$static, x1.digits); + } + return false; +} + +function $equalsArrays(this$static, b){ + var i; + for (i = this$static.numberLength - 1; i >= 0 && this$static.digits[i] === b[i]; i--) + ; + return i < 0; +} + +function $getFirstNonzeroDigit(this$static){ + var i; + if (this$static.firstNonzeroDigit == -2) { + if (this$static.sign == 0) { + i = -1; + } + else { + for (i = 0; this$static.digits[i] == 0; i++) + ; + } + this$static.firstNonzeroDigit = i; + } + return this$static.firstNonzeroDigit; +} + +function $hashCode_3(this$static){ + var i; + if (this$static.hashCode_0 != 0) { + return this$static.hashCode_0; + } + for (i = 0; i < this$static.digits.length; i++) { + this$static.hashCode_0 = this$static.hashCode_0 * 33 + (this$static.digits[i] & -1); + } + this$static.hashCode_0 = this$static.hashCode_0 * this$static.sign; + return this$static.hashCode_0; +} + +function $multiply(this$static, val){ + if (val.sign == 0 || this$static.sign == 0) { + return ZERO_0; + } + return $clinit_Multiplication() , karatsuba(this$static, val); +} + +function $negate(this$static){ + return this$static.sign == 0?this$static:new BigInteger_1(-this$static.sign, this$static.numberLength, this$static.digits); +} + +function $pow(this$static, exp_0){ + var x_0; + if (exp_0 < 0) { + throw toJs(new ArithmeticException('Negative exponent')); + } + if (exp_0 == 0) { + return ONE_0; + } + else if (exp_0 == 1 || $equals_6(this$static, ONE_0) || $equals_6(this$static, ZERO_0)) { + return this$static; + } + if (!$testBit(this$static, 0)) { + x_0 = 1; + while (!$testBit(this$static, x_0)) { + ++x_0; + } + return $multiply(getPowerOfTwo(x_0 * exp_0), $pow($shiftRight(this$static, x_0), exp_0)); + } + return pow_0(this$static, exp_0); +} + +function $shiftLeft(this$static, n){ + if (n == 0 || this$static.sign == 0) { + return this$static; + } + return n > 0?shiftLeft(this$static, n):shiftRight(this$static, -n); +} + +function $shiftRight(this$static, n){ + if (n == 0 || this$static.sign == 0) { + return this$static; + } + return n > 0?shiftRight(this$static, n):shiftLeft(this$static, -n); +} + +function $testBit(this$static, n){ + var digit, firstNonZeroDigit, intCount; + if (n == 0) { + return (this$static.digits[0] & 1) != 0; + } + if (n < 0) { + throw toJs(new ArithmeticException('Negative bit address')); + } + intCount = n >> 5; + if (intCount >= this$static.numberLength) { + return this$static.sign < 0; + } + digit = this$static.digits[intCount]; + n = 1 << (n & 31); + if (this$static.sign < 0) { + firstNonZeroDigit = $getFirstNonzeroDigit(this$static); + if (intCount < firstNonZeroDigit) { + return false; + } + else + firstNonZeroDigit == intCount?(digit = -digit):(digit = ~digit); + } + return (digit & n) != 0; +} + +function BigInteger(sign, bits){ + $clinit_BigInteger(); + BigInteger_1.call(this, sign, 1, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [bits])); +} + +function BigInteger_0(lowBits, highBits){ + BigInteger_1.call(this, 1, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [lowBits, highBits])); +} + +function BigInteger_1(sign, numberLength, digits){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = numberLength; + this.digits = digits; +} + +function BigInteger_2(digits){ + $clinit_BigInteger(); + if (digits.length == 0) { + this.sign = 0; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [0]); + } + else { + this.sign = 1; + this.numberLength = digits.length; + this.digits = digits; + $cutOffLeadingZeroes(this); + } +} + +function BigInteger_3(val){ + $clinit_BigInteger(); + BigInteger_4.call(this, val); +} + +function BigInteger_4(val){ + checkCriticalNotNull(val); + if (val.length == 0) { + throw toJs(new NumberFormatException('Zero length BigInteger')); + } + setFromString(this, val); +} + +function fromBits(bits){ + $clinit_BigInteger(); + var highBits, lowBits; + lowBits = toInt_0(bits); + highBits = toInt_0(shru_0(bits, 32)); + if (highBits != 0) { + return new BigInteger_0(lowBits, highBits); + } + if (lowBits > 10 || lowBits < 0) { + return new BigInteger(1, lowBits); + } + return SMALL_VALUES[lowBits]; +} + +function getPowerOfTwo(exp_0){ + var bitN, intCount, resDigits; + if (exp_0 < TWO_POWS.length) { + return TWO_POWS[exp_0]; + } + intCount = exp_0 >> 5; + bitN = exp_0 & 31; + resDigits = initUnidimensionalArray(I_classLit, $intern_49, 28, intCount + 1, 15, 1); + resDigits[intCount] = 1 << bitN; + return new BigInteger_1(1, intCount + 1, resDigits); +} + +function setFromString(bi, val){ + var bigRadix, bigRadixDigit, bigRadixDigitsLength, charsPerInt, digitIndex, digits, endChar, newDigit, numberLength, sign, startChar, stringLength, substrEnd, substrStart, topChars; + stringLength = val.length; + endChar = stringLength; + checkCriticalStringElementIndex(0, val.length); + if (val.charCodeAt(0) == 45) { + sign = -1; + startChar = 1; + --stringLength; + } + else { + sign = 1; + startChar = 0; + } + charsPerInt = ($clinit_Conversion() , digitFitInInt)[10]; + bigRadixDigitsLength = stringLength / charsPerInt | 0; + topChars = stringLength % charsPerInt; + topChars != 0 && ++bigRadixDigitsLength; + digits = initUnidimensionalArray(I_classLit, $intern_49, 28, bigRadixDigitsLength, 15, 1); + bigRadix = bigRadices[8]; + digitIndex = 0; + substrEnd = startChar + (topChars == 0?charsPerInt:topChars); + for (substrStart = startChar; substrStart < endChar; substrStart = substrEnd , substrEnd = substrStart + charsPerInt) { + bigRadixDigit = __parseAndValidateInt((checkCriticalStringBounds(substrStart, substrEnd, val.length) , val.substr(substrStart, substrEnd - substrStart)), $intern_43, $intern_0); + newDigit = ($clinit_Multiplication() , multiplyByInt(digits, digits, digitIndex, bigRadix)); + newDigit += inplaceAdd(digits, digitIndex, bigRadixDigit); + digits[digitIndex++] = newDigit; + } + numberLength = digitIndex; + bi.sign = sign; + bi.numberLength = numberLength; + bi.digits = digits; + $cutOffLeadingZeroes(bi); +} + +function valueOf_9(val){ + $clinit_BigInteger(); + return compare_2(val, 0) >= 0?fromBits(val):$negate(fromBits(neg_0(val))); +} + +defineClass(92, 242, {3:1, 34:1, 242:1, 92:1}, BigInteger, BigInteger_0, BigInteger_1, BigInteger_2, BigInteger_3); +_.compareTo_0 = function compareTo_12(val){ + return $compareTo_11(this, castTo(val, 92)); +} +; +_.doubleValue = function doubleValue_6(){ + return __parseAndValidateDouble(toDecimalScaledString_0(this, 0)); +} +; +_.equals_0 = function equals_43(x_0){ + return $equals_6(this, x_0); +} +; +_.hashCode_1 = function hashCode_44(){ + return $hashCode_3(this); +} +; +_.toString_0 = function toString_51(){ + return toDecimalScaledString_0(this, 0); +} +; +_.firstNonzeroDigit = -2; +_.hashCode_0 = 0; +_.numberLength = 0; +_.sign = 0; +var MINUS_ONE, ONE_0, SMALL_VALUES, TEN, TWO_POWS, ZERO_0; +var Ljava_math_BigInteger_2_classLit = createForClass('java.math', 'BigInteger', 92); +function bitLength_1(val){ + var bLength, highDigit, i; + if (val.sign == 0) { + return 0; + } + bLength = val.numberLength << 5; + highDigit = val.digits[val.numberLength - 1]; + if (val.sign < 0) { + i = $getFirstNonzeroDigit(val); + if (i == val.numberLength - 1) { + --highDigit; + highDigit = highDigit | 0; + } + } + bLength -= numberOfLeadingZeros_0(highDigit); + return bLength; +} + +function shiftLeft(source, count){ + var intCount, resDigits, resLength, result; + intCount = count >> 5; + count &= 31; + resLength = source.numberLength + intCount + (count == 0?0:1); + resDigits = initUnidimensionalArray(I_classLit, $intern_49, 28, resLength, 15, 1); + shiftLeft_0(resDigits, source.digits, intCount, count); + result = new BigInteger_1(source.sign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function shiftLeft_0(result, source, intCount, count){ + var i, i0, rightShiftCount; + if (count == 0) { + arraycopy(source, 0, result, intCount, result.length - intCount); + } + else { + rightShiftCount = 32 - count; + result[result.length - 1] = 0; + for (i0 = result.length - 1; i0 > intCount; i0--) { + result[i0] |= source[i0 - intCount - 1] >>> rightShiftCount; + result[i0 - 1] = source[i0 - intCount - 1] << count; + } + } + for (i = 0; i < intCount; i++) { + result[i] = 0; + } +} + +function shiftLeftOneBit(result, source, srcLen){ + var carry, i, val; + carry = 0; + for (i = 0; i < srcLen; i++) { + val = source[i]; + result[i] = val << 1 | carry; + carry = val >>> 31; + } + carry != 0 && (result[srcLen] = carry); +} + +function shiftRight(source, count){ + var i, intCount, resDigits, resLength, result; + intCount = count >> 5; + count &= 31; + if (intCount >= source.numberLength) { + return source.sign < 0?($clinit_BigInteger() , MINUS_ONE):($clinit_BigInteger() , ZERO_0); + } + resLength = source.numberLength - intCount; + resDigits = initUnidimensionalArray(I_classLit, $intern_49, 28, resLength + 1, 15, 1); + shiftRight_0(resDigits, resLength, source.digits, intCount, count); + if (source.sign < 0) { + for (i = 0; i < intCount && source.digits[i] == 0; i++) + ; + if (i < intCount || count > 0 && source.digits[i] << 32 - count != 0) { + for (i = 0; i < resLength && resDigits[i] == -1; i++) { + resDigits[i] = 0; + } + i == resLength && ++resLength; + ++resDigits[i]; + } + } + result = new BigInteger_1(source.sign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function shiftRight_0(result, resultLen, source, intCount, count){ + var allZero, i, leftShiftCount; + allZero = true; + for (i = 0; i < intCount; i++) { + allZero = allZero & source[i] == 0; + } + if (count == 0) { + arraycopy(source, intCount, result, 0, resultLen); + i = resultLen; + } + else { + leftShiftCount = 32 - count; + allZero = allZero & source[i] << leftShiftCount == 0; + for (i = 0; i < resultLen - 1; i++) { + result[i] = source[i + intCount] >>> count | source[i + intCount + 1] << leftShiftCount; + } + result[i] = source[i + intCount] >>> count; + ++i; + } + return allZero; +} + +function $clinit_Conversion(){ + $clinit_Conversion = emptyMethod; + bigRadices = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [$intern_43, 1162261467, $intern_36, 1220703125, 362797056, 1977326743, $intern_36, 387420489, $intern_56, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, $intern_36, 1291467969, 1544804416, 1838265625, 60466176]); + digitFitInInt = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); +} + +function divideLongByBillion(a){ + var aPos, quot, rem; + if (compare_2(a, 0) >= 0) { + quot = div(a, $intern_56); + rem = mod(a, $intern_56); + } + else { + aPos = shru_0(a, 1); + quot = div(aPos, 500000000); + rem = mod(aPos, 500000000); + rem = add_20(shl_0(rem, 1), and_0(a, 1)); + } + return or_0(shl_0(rem, 32), and_0(quot, $intern_69)); +} + +function toDecimalScaledString(value_0, scale){ + $clinit_Conversion(); + var currentChar, endPoint, exponent, insertPoint, j, j0, negNumber, prev, resLengthInChars, result, result1, result10, startPoint, v; + negNumber = compare_2(value_0, 0) < 0; + negNumber && (value_0 = neg_0(value_0)); + if (compare_2(value_0, 0) == 0) { + switch (scale) { + case 0: + return '0'; + case 1: + return '0.0'; + case 2: + return '0.00'; + case 3: + return '0.000'; + case 4: + return '0.0000'; + case 5: + return '0.00000'; + case 6: + return '0.000000'; + default:result10 = new StringBuilder; + scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); + result10.string += scale == $intern_43?'2147483648':'' + -scale; + return result10.string; + } + } + resLengthInChars = 18; + result = initUnidimensionalArray(C_classLit, $intern_45, 28, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + v = value_0; + do { + prev = v; + v = div(v, 10); + result[--currentChar] = toInt_0(add_20(48, sub_2(prev, mul_0(v, 10)))) & $intern_47; + } + while (compare_2(v, 0) != 0); + exponent = sub_2(sub_2(sub_2(resLengthInChars, currentChar), scale), 1); + if (scale == 0) { + negNumber && (result[--currentChar] = 45); + return valueOf_8(result, currentChar, resLengthInChars - currentChar); + } + if (scale > 0 && compare_2(exponent, -6) >= 0) { + if (compare_2(exponent, 0) >= 0) { + insertPoint = currentChar + toInt_0(exponent); + for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { + result[j0 + 1] = result[j0]; + } + result[++insertPoint] = 46; + negNumber && (result[--currentChar] = 45); + return valueOf_8(result, currentChar, resLengthInChars - currentChar + 1); + } + for (j = 2; lt(j, add_20(neg_0(exponent), 1)); j++) { + result[--currentChar] = 48; + } + result[--currentChar] = 46; + result[--currentChar] = 48; + negNumber && (result[--currentChar] = 45); + return valueOf_8(result, currentChar, resLengthInChars - currentChar); + } + startPoint = currentChar + 1; + endPoint = resLengthInChars; + result1 = new StringBuilder_0; + negNumber && (result1.string += '-' , result1); + if (endPoint - startPoint >= 1) { + $append_5(result1, result[currentChar]); + result1.string += '.'; + result1.string += valueOf_8(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_8(result, currentChar, resLengthInChars - currentChar); + } + result1.string += 'E'; + compare_2(exponent, 0) > 0 && (result1.string += '+' , result1); + result1.string += '' + toString_39(exponent); + return result1.string; +} + +function toDecimalScaledString_0(val, scale){ + $clinit_Conversion(); + var currentChar, delta, digits, endPoint, exponent, highDigit, i, i1, insertPoint, j, j0, negNumber, numberLength, prev, previous, res, resDigit, resLengthInChars, result, result1, result10, result11, sign, startPoint, temp, temp1, tempLen, v; + sign = val.sign; + numberLength = val.numberLength; + digits = val.digits; + if (sign == 0) { + switch (scale) { + case 0: + return '0'; + case 1: + return '0.0'; + case 2: + return '0.00'; + case 3: + return '0.000'; + case 4: + return '0.0000'; + case 5: + return '0.00000'; + case 6: + return '0.000000'; + default:result10 = new StringBuilder; + scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); + result10.string += -scale; + return result10.string; + } + } + resLengthInChars = numberLength * 10 + 1 + 7; + result = initUnidimensionalArray(C_classLit, $intern_45, 28, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + if (numberLength == 1) { + highDigit = digits[0]; + if (highDigit < 0) { + v = and_0(highDigit, $intern_69); + do { + prev = v; + v = div(v, 10); + result[--currentChar] = 48 + toInt_0(sub_2(prev, mul_0(v, 10))) & $intern_47; + } + while (compare_2(v, 0) != 0); + } + else { + v = highDigit; + do { + prev = v; + v = v / 10 | 0; + result[--currentChar] = 48 + (prev - v * 10) & $intern_47; + } + while (v != 0); + } + } + else { + temp = initUnidimensionalArray(I_classLit, $intern_49, 28, numberLength, 15, 1); + tempLen = numberLength; + arraycopy(digits, 0, temp, 0, tempLen); + BIG_LOOP: while (true) { + result11 = 0; + for (i1 = tempLen - 1; i1 >= 0; i1--) { + temp1 = add_20(shl_0(result11, 32), and_0(temp[i1], $intern_69)); + res = divideLongByBillion(temp1); + temp[i1] = toInt_0(res); + result11 = toInt_0(shr_0(res, 32)); + } + resDigit = toInt_0(result11); + previous = currentChar; + do { + result[--currentChar] = 48 + resDigit % 10 & $intern_47; + } + while ((resDigit = resDigit / 10 | 0) != 0 && currentChar != 0); + delta = 9 - previous + currentChar; + for (i = 0; i < delta && currentChar > 0; i++) { + result[--currentChar] = 48; + } + j = tempLen - 1; + for (; temp[j] == 0; j--) { + if (j == 0) { + break BIG_LOOP; + } + } + tempLen = j + 1; + } + while (result[currentChar] == 48) { + ++currentChar; + } + } + negNumber = sign < 0; + exponent = resLengthInChars - currentChar - scale - 1; + if (scale == 0) { + negNumber && (result[--currentChar] = 45); + return valueOf_8(result, currentChar, resLengthInChars - currentChar); + } + if (scale > 0 && exponent >= -6) { + if (exponent >= 0) { + insertPoint = currentChar + exponent; + for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { + result[j0 + 1] = result[j0]; + } + result[++insertPoint] = 46; + negNumber && (result[--currentChar] = 45); + return valueOf_8(result, currentChar, resLengthInChars - currentChar + 1); + } + for (j = 2; j < -exponent + 1; j++) { + result[--currentChar] = 48; + } + result[--currentChar] = 46; + result[--currentChar] = 48; + negNumber && (result[--currentChar] = 45); + return valueOf_8(result, currentChar, resLengthInChars - currentChar); + } + startPoint = currentChar + 1; + endPoint = resLengthInChars; + result1 = new StringBuilder_0; + negNumber && (result1.string += '-' , result1); + if (endPoint - startPoint >= 1) { + $append_5(result1, result[currentChar]); + result1.string += '.'; + result1.string += valueOf_8(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_8(result, currentChar, resLengthInChars - currentChar); + } + result1.string += 'E'; + exponent > 0 && (result1.string += '+' , result1); + result1.string += '' + exponent; + return result1.string; +} + +var bigRadices, digitFitInInt; +function add_21(op1, op2){ + var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, res0, resDigits, resSign, valueHi, valueLo; + op1Sign = op1.sign; + op2Sign = op2.sign; + if (op1Sign == 0) { + return op2; + } + if (op2Sign == 0) { + return op1; + } + op1Len = op1.numberLength; + op2Len = op2.numberLength; + if (op1Len + op2Len == 2) { + a = and_0(op1.digits[0], $intern_69); + b = and_0(op2.digits[0], $intern_69); + if (op1Sign == op2Sign) { + res0 = add_20(a, b); + valueLo = toInt_0(res0); + valueHi = toInt_0(shru_0(res0, 32)); + return valueHi == 0?new BigInteger(op1Sign, valueLo):new BigInteger_1(op1Sign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [valueLo, valueHi])); + } + return $clinit_BigInteger() , gte_0(op1Sign < 0?sub_2(b, a):sub_2(a, b), 0)?fromBits(op1Sign < 0?sub_2(b, a):sub_2(a, b)):$negate(fromBits(neg_0(op1Sign < 0?sub_2(b, a):sub_2(a, b)))); + } + else if (op1Sign == op2Sign) { + resSign = op1Sign; + resDigits = op1Len >= op2Len?add_22(op1.digits, op1Len, op2.digits, op2Len):add_22(op2.digits, op2Len, op1.digits, op1Len); + } + else { + cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); + if (cmp == 0) { + return $clinit_BigInteger() , ZERO_0; + } + if (cmp == 1) { + resSign = op1Sign; + resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); + } + else { + resSign = op2Sign; + resDigits = subtract_0(op2.digits, op2Len, op1.digits, op1Len); + } + } + res = new BigInteger_1(resSign, resDigits.length, resDigits); + $cutOffLeadingZeroes(res); + return res; +} + +function add_22(a, aSize, b, bSize){ + var res; + res = initUnidimensionalArray(I_classLit, $intern_49, 28, aSize + 1, 15, 1); + add_23(res, a, aSize, b, bSize); + return res; +} + +function add_23(res, a, aSize, b, bSize){ + var carry, i; + carry = add_20(and_0(a[0], $intern_69), and_0(b[0], $intern_69)); + res[0] = toInt_0(carry); + carry = shr_0(carry, 32); + if (aSize >= bSize) { + for (i = 1; i < bSize; i++) { + carry = add_20(carry, add_20(and_0(a[i], $intern_69), and_0(b[i], $intern_69))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_69)); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + } + else { + for (i = 1; i < aSize; i++) { + carry = add_20(carry, add_20(and_0(a[i], $intern_69), and_0(b[i], $intern_69))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < bSize; i++) { + carry = add_20(carry, and_0(b[i], $intern_69)); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + } + compare_2(carry, 0) != 0 && (res[i] = toInt_0(carry)); +} + +function compareArrays(a, b, size_0){ + var i; + for (i = size_0 - 1; i >= 0 && a[i] === b[i]; i--) + ; + return i < 0?0:lt(and_0(a[i], $intern_69), and_0(b[i], $intern_69))?-1:1; +} + +function inplaceAdd(a, aSize, addend){ + var carry, i; + carry = and_0(addend, $intern_69); + for (i = 0; compare_2(carry, 0) != 0 && i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_69)); + a[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + return toInt_0(carry); +} + +function subtract(op1, op2){ + var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, resDigits, resSign; + op1Sign = op1.sign; + op2Sign = op2.sign; + if (op2Sign == 0) { + return op1; + } + if (op1Sign == 0) { + return op2.sign == 0?op2:new BigInteger_1(-op2.sign, op2.numberLength, op2.digits); + } + op1Len = op1.numberLength; + op2Len = op2.numberLength; + if (op1Len + op2Len == 2) { + a = and_0(op1.digits[0], $intern_69); + b = and_0(op2.digits[0], $intern_69); + op1Sign < 0 && (a = neg_0(a)); + op2Sign < 0 && (b = neg_0(b)); + return $clinit_BigInteger() , gte_0(sub_2(a, b), 0)?fromBits(sub_2(a, b)):$negate(fromBits(neg_0(sub_2(a, b)))); + } + cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); + if (cmp == -1) { + resSign = -op2Sign; + resDigits = op1Sign == op2Sign?subtract_0(op2.digits, op2Len, op1.digits, op1Len):add_22(op2.digits, op2Len, op1.digits, op1Len); + } + else { + resSign = op1Sign; + if (op1Sign == op2Sign) { + if (cmp == 0) { + return $clinit_BigInteger() , ZERO_0; + } + resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); + } + else { + resDigits = add_22(op1.digits, op1Len, op2.digits, op2Len); + } + } + res = new BigInteger_1(resSign, resDigits.length, resDigits); + $cutOffLeadingZeroes(res); + return res; +} + +function subtract_0(a, aSize, b, bSize){ + var res; + res = initUnidimensionalArray(I_classLit, $intern_49, 28, aSize, 15, 1); + subtract_1(res, a, aSize, b, bSize); + return res; +} + +function subtract_1(res, a, aSize, b, bSize){ + var borrow, i; + borrow = 0; + for (i = 0; i < bSize; i++) { + borrow = add_20(borrow, sub_2(and_0(a[i], $intern_69), and_0(b[i], $intern_69))); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } + for (; i < aSize; i++) { + borrow = add_20(borrow, and_0(a[i], $intern_69)); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } +} + +function $clinit_Multiplication(){ + $clinit_Multiplication = emptyMethod; + var fivePow, i; + bigFivePows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 92, 32, 0, 1); + bigTenPows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 92, 32, 0, 1); + fivePow = 1; + for (i = 0; i <= 18; i++) { + bigFivePows[i] = ($clinit_BigInteger() , compare_2(fivePow, 0) >= 0?fromBits(fivePow):$negate(fromBits(neg_0(fivePow)))); + bigTenPows[i] = gte_0(shl_0(fivePow, i), 0)?fromBits(shl_0(fivePow, i)):$negate(fromBits(neg_0(shl_0(fivePow, i)))); + fivePow = mul_0(fivePow, 5); + } + for (; i < bigTenPows.length; i++) { + bigFivePows[i] = $multiply(bigFivePows[i - 1], bigFivePows[1]); + bigTenPows[i] = $multiply(bigTenPows[i - 1], ($clinit_BigInteger() , TEN)); + } +} + +function karatsuba(op1, op2){ + $clinit_Multiplication(); + var lower, lowerOp1, lowerOp2, middle, ndiv2, temp, upper, upperOp1, upperOp2; + if (op2.numberLength > op1.numberLength) { + temp = op1; + op1 = op2; + op2 = temp; + } + if (op2.numberLength < 63) { + return multiplyPAP(op1, op2); + } + ndiv2 = (op1.numberLength & -2) << 4; + upperOp1 = $shiftRight(op1, ndiv2); + upperOp2 = $shiftRight(op2, ndiv2); + lowerOp1 = subtract(op1, $shiftLeft(upperOp1, ndiv2)); + lowerOp2 = subtract(op2, $shiftLeft(upperOp2, ndiv2)); + upper = karatsuba(upperOp1, upperOp2); + lower = karatsuba(lowerOp1, lowerOp2); + middle = karatsuba(subtract(upperOp1, lowerOp1), subtract(lowerOp2, upperOp2)); + middle = add_21(add_21(middle, upper), lower); + middle = $shiftLeft(middle, ndiv2); + upper = $shiftLeft(upper, ndiv2 << 1); + return add_21(add_21(upper, middle), lower); +} + +function multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits){ + if (aLen == 0 || bLen == 0) { + return; + } + aLen == 1?(resDigits[bLen] = multiplyByInt(resDigits, bDigits, bLen, aDigits[0])):bLen == 1?(resDigits[aLen] = multiplyByInt(resDigits, aDigits, aLen, bDigits[0])):multPAP(aDigits, bDigits, resDigits, aLen, bLen); +} + +function multPAP(a, b, t, aLen, bLen){ + var aI, carry, i, j; + if (maskUndefined(a) === maskUndefined(b) && aLen == bLen) { + square(a, aLen, t); + return; + } + for (i = 0; i < aLen; i++) { + carry = 0; + aI = a[i]; + for (j = 0; j < bLen; j++) { + carry = add_20(add_20(mul_0(and_0(aI, $intern_69), and_0(b[j], $intern_69)), and_0(t[i + j], $intern_69)), and_0(toInt_0(carry), $intern_69)); + t[i + j] = toInt_0(carry); + carry = shru_0(carry, 32); + } + t[i + bLen] = toInt_0(carry); + } +} + +function multiplyByInt(res, a, aSize, factor){ + $clinit_Multiplication(); + var carry, i; + carry = 0; + for (i = 0; i < aSize; i++) { + carry = add_20(mul_0(and_0(a[i], $intern_69), and_0(factor, $intern_69)), and_0(toInt_0(carry), $intern_69)); + res[i] = toInt_0(carry); + carry = shru_0(carry, 32); + } + return toInt_0(carry); +} + +function multiplyPAP(a, b){ + var aDigits, aLen, bDigits, bLen, resDigits, resLength, resSign, result, val, valueHi, valueLo; + aLen = a.numberLength; + bLen = b.numberLength; + resLength = aLen + bLen; + resSign = a.sign != b.sign?-1:1; + if (resLength == 2) { + val = mul_0(and_0(a.digits[0], $intern_69), and_0(b.digits[0], $intern_69)); + valueLo = toInt_0(val); + valueHi = toInt_0(shru_0(val, 32)); + return valueHi == 0?new BigInteger(resSign, valueLo):new BigInteger_1(resSign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [valueLo, valueHi])); + } + aDigits = a.digits; + bDigits = b.digits; + resDigits = initUnidimensionalArray(I_classLit, $intern_49, 28, resLength, 15, 1); + multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits); + result = new BigInteger_1(resSign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function pow_0(base, exponent){ + $clinit_Multiplication(); + var acc, res; + res = ($clinit_BigInteger() , ONE_0); + acc = base; + for (; exponent > 1; exponent >>= 1) { + (exponent & 1) != 0 && (res = $multiply(res, acc)); + acc.numberLength == 1?(acc = $multiply(acc, acc)):(acc = new BigInteger_2(square(acc.digits, acc.numberLength, initUnidimensionalArray(I_classLit, $intern_49, 28, acc.numberLength << 1, 15, 1)))); + } + res = $multiply(res, acc); + return res; +} + +function powerOf10(exp_0){ + $clinit_Multiplication(); + var intExp, longExp, powerOfFive, res; + intExp = round_int(exp_0); + if (exp_0 < bigTenPows.length) { + return bigTenPows[intExp]; + } + else if (exp_0 <= 50) { + return $pow(($clinit_BigInteger() , TEN), intExp); + } + else if (exp_0 <= $intern_46) { + return $shiftLeft($pow(bigFivePows[1], intExp), intExp); + } + if (exp_0 > 1000000) { + throw toJs(new ArithmeticException('power of ten too big')); + } + if (exp_0 <= $intern_0) { + return $shiftLeft($pow(bigFivePows[1], intExp), intExp); + } + powerOfFive = $pow(bigFivePows[1], $intern_0); + res = powerOfFive; + longExp = fromDouble_0(exp_0 - $intern_0); + intExp = round_int(exp_0 % $intern_0); + while (compare_2(longExp, $intern_0) > 0) { + res = $multiply(res, powerOfFive); + longExp = sub_2(longExp, $intern_0); + } + res = $multiply(res, $pow(bigFivePows[1], intExp)); + res = $shiftLeft(res, $intern_0); + longExp = fromDouble_0(exp_0 - $intern_0); + while (compare_2(longExp, $intern_0) > 0) { + res = $shiftLeft(res, $intern_0); + longExp = sub_2(longExp, $intern_0); + } + res = $shiftLeft(res, intExp); + return res; +} + +function square(a, aLen, res){ + var carry, i, i0, index_0, j; + for (i0 = 0; i0 < aLen; i0++) { + carry = 0; + for (j = i0 + 1; j < aLen; j++) { + carry = add_20(add_20(mul_0(and_0(a[i0], $intern_69), and_0(a[j], $intern_69)), and_0(res[i0 + j], $intern_69)), and_0(toInt_0(carry), $intern_69)); + res[i0 + j] = toInt_0(carry); + carry = shru_0(carry, 32); + } + res[i0 + aLen] = toInt_0(carry); + } + shiftLeftOneBit(res, res, aLen << 1); + carry = 0; + for (i = 0 , index_0 = 0; i < aLen; ++i , index_0++) { + carry = add_20(add_20(mul_0(and_0(a[i], $intern_69), and_0(a[i], $intern_69)), and_0(res[index_0], $intern_69)), and_0(toInt_0(carry), $intern_69)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + ++index_0; + carry = add_20(carry, and_0(res[index_0], $intern_69)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + } + return res; +} + +var bigFivePows, bigTenPows; +function $containsKey_3(this$static, key){ + return instanceOfString(key)?$hasStringValue(this$static, key):!!$getEntry_0(this$static.hashCodeMap, key); +} + +function $containsValue_2(this$static, value_0, entries){ + var entry, entry$iterator; + for (entry$iterator = entries.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + if (this$static.equals_1(value_0, entry.getValue())) { + return true; + } + } + return false; +} + +function $get_10(this$static, key){ + return instanceOfString(key)?$getStringValue(this$static, key):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, key)); +} + +function $getStringValue(this$static, key){ + return key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key); +} + +function $hasStringValue(this$static, key){ + return key == null?!!$getEntry_0(this$static.hashCodeMap, null):$contains_7(this$static.stringMap, key); +} + +function $put_6(this$static, key, value_0){ + return instanceOfString(key)?$putStringValue(this$static, key, value_0):$put_9(this$static.hashCodeMap, key, value_0); +} + +function $putStringValue(this$static, key, value_0){ + return key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0); +} + +function $remove_6(this$static, key){ + return instanceOfString(key)?key == null?$remove_19(this$static.hashCodeMap, null):$remove_20(this$static.stringMap, key):$remove_19(this$static.hashCodeMap, key); +} + +function $reset(this$static){ + this$static.hashCodeMap = new InternalHashCodeMap(this$static); + this$static.stringMap = new InternalStringMap(this$static); + ++this$static.modCount; +} + +function $size_2(this$static){ + return this$static.hashCodeMap.size_0 + this$static.stringMap.size_0; +} + +function AbstractHashMap(ignored, alsoIgnored){ + checkCriticalArgument_0(ignored >= 0, 'Negative initial capacity'); + checkCriticalArgument_0(alsoIgnored >= 0, 'Non-positive load factor'); + $reset(this); +} + +defineClass(498, 2065, $intern_7); +_.clear_0 = function clear_30(){ + $reset(this); +} +; +_.containsKey = function containsKey_9(key){ + return $containsKey_3(this, key); +} +; +_.containsValue = function containsValue_3(value_0){ + return $containsValue_2(this, value_0, this.stringMap) || $containsValue_2(this, value_0, this.hashCodeMap); +} +; +_.entrySet_0 = function entrySet_2(){ + return new AbstractHashMap$EntrySet(this); +} +; +_.get_3 = function get_33(key){ + return $get_10(this, key); +} +; +_.put = function put_5(key, value_0){ + return $put_6(this, key, value_0); +} +; +_.remove_0 = function remove_48(key){ + return $remove_6(this, key); +} +; +_.size_1 = function size_37(){ + return $size_2(this); +} +; +_.modCount = 0; +var Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util', 'AbstractHashMap', 498); +function $contains_0(this$static, o){ + if (instanceOf(o, 44)) { + return $containsEntry_0(this$static.this$01, castTo(o, 44)); + } + return false; +} + +function AbstractHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(267, $intern_9, $intern_10, AbstractHashMap$EntrySet); +_.clear_0 = function clear_31(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_28(o){ + return $contains_0(this, o); +} +; +_.iterator_0 = function iterator_46(){ + return new AbstractHashMap$EntrySetIterator(this.this$01); +} +; +_.remove_1 = function remove_49(entry){ + var key; + if ($contains_0(this, entry)) { + key = castTo(entry, 44).getKey(); + this.this$01.remove_0(key); + return true; + } + return false; +} +; +_.size_1 = function size_38(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractHashMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySet', 267); +function $computeHasNext(this$static){ + if (this$static.current.hasNext_0()) { + return true; + } + if (this$static.current != this$static.stringMapEntries) { + return false; + } + this$static.current = new InternalHashCodeMap$1(this$static.this$01.hashCodeMap); + return this$static.current.hasNext_0(); +} + +function $next_3(this$static){ + var rv; + checkCriticalConcurrentModification(this$static.this$01.modCount, this$static.lastModCount); + checkCriticalElement(this$static.hasNext); + this$static.last = this$static.current; + rv = castTo(this$static.current.next_1(), 44); + this$static.hasNext = $computeHasNext(this$static); + return rv; +} + +function $remove_7(this$static){ + checkCriticalState(!!this$static.last); + checkCriticalConcurrentModification(this$static.this$01.modCount, this$static.lastModCount); + this$static.last.remove(); + this$static.last = null; + this$static.hasNext = $computeHasNext(this$static); + this$static.lastModCount = this$static.this$01.modCount; +} + +function AbstractHashMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.stringMapEntries = new InternalStringMap$1(this.this$01.stringMap); + this.current = this.stringMapEntries; + this.hasNext = $computeHasNext(this); + this.lastModCount = this.this$01.modCount; +} + +defineClass(268, 1, $intern_6, AbstractHashMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_16(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_19(){ + return $next_3(this); +} +; +_.hasNext_0 = function hasNext_18(){ + return this.hasNext; +} +; +_.remove = function remove_50(){ + $remove_7(this); +} +; +_.hasNext = false; +_.lastModCount = 0; +var Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySetIterator', 268); +function $hasNext_2(this$static){ + return this$static.i < this$static.this$01_0.size_1(); +} + +function $next_4(this$static){ + checkCriticalElement(this$static.i < this$static.this$01_0.size_1()); + return this$static.this$01_0.get_0(this$static.last = this$static.i++); +} + +function $remove_8(this$static){ + checkCriticalState(this$static.last != -1); + this$static.this$01_0.remove_2(this$static.last); + this$static.i = this$static.last; + this$static.last = -1; +} + +function AbstractList$IteratorImpl(this$0){ + this.this$01_0 = this$0; +} + +defineClass(426, 1, $intern_6, AbstractList$IteratorImpl); +_.forEachRemaining = function forEachRemaining_17(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_19(){ + return $hasNext_2(this); +} +; +_.next_1 = function next_20(){ + return $next_4(this); +} +; +_.remove = function remove_51(){ + $remove_8(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/IteratorImpl', 426); +function $add_1(this$static, o){ + this$static.this$01.add_3(this$static.i, o); + ++this$static.i; + this$static.last = -1; +} + +function AbstractList$ListIteratorImpl(this$0, start_0){ + this.this$01 = this$0; + AbstractList$IteratorImpl.call(this, this$0); + checkCriticalPositionIndex(start_0, this$0.size_1()); + this.i = start_0; +} + +defineClass(98, 426, $intern_14, AbstractList$ListIteratorImpl); +_.remove = function remove_52(){ + $remove_8(this); +} +; +_.add_1 = function add_24(o){ + $add_1(this, o); +} +; +_.hasPrevious = function hasPrevious_3(){ + return this.i > 0; +} +; +_.nextIndex_0 = function nextIndex_4(){ + return this.i; +} +; +_.previous_0 = function previous_4(){ + return checkCriticalElement(this.i > 0) , this.this$01.get_0(this.last = --this.i); +} +; +_.previousIndex = function previousIndex_3(){ + return this.i - 1; +} +; +_.set_1 = function set_11(o){ + checkCriticalState(this.last != -1); + this.this$01.set_2(this.last, o); +} +; +var Ljava_util_AbstractList$ListIteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/ListIteratorImpl', 98); +function AbstractList$SubList(wrapped, fromIndex, toIndex){ + checkCriticalPositionIndexes(fromIndex, toIndex, wrapped.size_1()); + this.wrapped = wrapped; + this.fromIndex = fromIndex; + this.size_0 = toIndex - fromIndex; +} + +defineClass(244, 56, $intern_38, AbstractList$SubList); +_.add_3 = function add_25(index_0, element){ + checkCriticalPositionIndex(index_0, this.size_0); + this.wrapped.add_3(this.fromIndex + index_0, element); + ++this.size_0; +} +; +_.get_0 = function get_34(index_0){ + checkCriticalElementIndex(index_0, this.size_0); + return this.wrapped.get_0(this.fromIndex + index_0); +} +; +_.remove_2 = function remove_53(index_0){ + var result; + checkCriticalElementIndex(index_0, this.size_0); + result = this.wrapped.remove_2(this.fromIndex + index_0); + --this.size_0; + return result; +} +; +_.set_2 = function set_12(index_0, element){ + checkCriticalElementIndex(index_0, this.size_0); + return this.wrapped.set_2(this.fromIndex + index_0, element); +} +; +_.size_1 = function size_39(){ + return this.size_0; +} +; +_.fromIndex = 0; +_.size_0 = 0; +var Ljava_util_AbstractList$SubList_2_classLit = createForClass('java.util', 'AbstractList/SubList', 244); +function AbstractMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(266, $intern_9, $intern_10, AbstractMap$1); +_.clear_0 = function clear_32(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_29(key){ + return this.this$01.containsKey(key); +} +; +_.iterator_0 = function iterator_47(){ + var outerIter; + return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter); +} +; +_.remove_1 = function remove_54(key){ + if (this.this$01.containsKey(key)) { + this.this$01.remove_0(key); + return true; + } + return false; +} +; +_.size_1 = function size_40(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractMap$1_2_classLit = createForClass('java.util', 'AbstractMap/1', 266); +function AbstractMap$1$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(541, 1, $intern_6, AbstractMap$1$1); +_.forEachRemaining = function forEachRemaining_18(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_20(){ + return this.val$outerIter2.hasNext_0(); +} +; +_.next_1 = function next_21(){ + var entry; + return entry = castTo(this.val$outerIter2.next_1(), 44) , entry.getKey(); +} +; +_.remove = function remove_55(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util', 'AbstractMap/1/1', 541); +function AbstractMap$2(this$0){ + this.this$01 = this$0; +} + +defineClass(231, 31, $intern_8, AbstractMap$2); +_.clear_0 = function clear_33(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_30(value_0){ + return this.this$01.containsValue(value_0); +} +; +_.iterator_0 = function iterator_48(){ + var outerIter; + return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter); +} +; +_.size_1 = function size_41(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractMap$2_2_classLit = createForClass('java.util', 'AbstractMap/2', 231); +function AbstractMap$2$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(301, 1, $intern_6, AbstractMap$2$1); +_.forEachRemaining = function forEachRemaining_19(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_21(){ + return this.val$outerIter2.hasNext_0(); +} +; +_.next_1 = function next_22(){ + var entry; + return entry = castTo(this.val$outerIter2.next_1(), 44) , entry.getValue(); +} +; +_.remove = function remove_56(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$2$1_2_classLit = createForClass('java.util', 'AbstractMap/2/1', 301); +function $setValue_0(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = value_0; + return oldValue; +} + +defineClass(494, 1, {494:1, 44:1}); +_.equals_0 = function equals_44(other){ + var entry; + if (!instanceOf(other, 44)) { + return false; + } + entry = castTo(other, 44); + return equals_57(this.key, entry.getKey()) && equals_57(this.value_0, entry.getValue()); +} +; +_.getKey = function getKey_4(){ + return this.key; +} +; +_.getValue = function getValue_6(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_45(){ + return hashCode_55(this.key) ^ hashCode_55(this.value_0); +} +; +_.setValue = function setValue_7(value_0){ + return $setValue_0(this, value_0); +} +; +_.toString_0 = function toString_52(){ + return this.key + '=' + this.value_0; +} +; +var Ljava_util_AbstractMap$AbstractEntry_2_classLit = createForClass('java.util', 'AbstractMap/AbstractEntry', 494); +function AbstractMap$SimpleEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(397, 494, {494:1, 397:1, 44:1}, AbstractMap$SimpleEntry); +var Ljava_util_AbstractMap$SimpleEntry_2_classLit = createForClass('java.util', 'AbstractMap/SimpleEntry', 397); +defineClass(2082, 1, $intern_70); +_.equals_0 = function equals_45(other){ + var entry; + if (!instanceOf(other, 44)) { + return false; + } + entry = castTo(other, 44); + return equals_57(this.getKey(), entry.getKey()) && equals_57(this.getValue(), entry.getValue()); +} +; +_.hashCode_1 = function hashCode_46(){ + return hashCode_55(this.getKey()) ^ hashCode_55(this.getValue()); +} +; +_.toString_0 = function toString_53(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util', 'AbstractMapEntry', 2082); +function $containsEntry_1(this$static, entry){ + var key, lookupEntry; + key = entry.getKey(); + lookupEntry = this$static.getEntry(key); + return !!lookupEntry && equals_57(lookupEntry.value_0, entry.getValue()); +} + +function $containsKey_4(this$static, k){ + var key; + key = k; + return !!this$static.getEntry(key); +} + +function getKeyOrNSE(entry){ + if (!entry) { + throw toJs(new NoSuchElementException); + } + return entry.key; +} + +defineClass(2090, 2065, $intern_11); +_.ceilingKey = function ceilingKey_0(key){ + return getEntryKeyOrNull(this.getCeilingEntry(key)); +} +; +_.containsEntry = function containsEntry_0(entry){ + return $containsEntry_1(this, entry); +} +; +_.containsKey = function containsKey_10(k){ + return $containsKey_4(this, k); +} +; +_.entrySet_0 = function entrySet_3(){ + return new AbstractNavigableMap$EntrySet(this); +} +; +_.firstKey = function firstKey_0(){ + return getKeyOrNSE(this.getFirstEntry()); +} +; +_.floorKey = function floorKey_0(key){ + return getEntryKeyOrNull(this.getFloorEntry(key)); +} +; +_.get_3 = function get_35(k){ + var key; + key = k; + return getEntryValueOrNull(this.getEntry(key)); +} +; +_.higherKey = function higherKey_0(key){ + return getEntryKeyOrNull(this.getHigherEntry(key)); +} +; +_.keySet_0 = function keySet_16(){ + return new AbstractNavigableMap$NavigableKeySet(this); +} +; +_.lastKey = function lastKey_0(){ + return getKeyOrNSE(this.getLastEntry()); +} +; +_.lowerKey = function lowerKey_0(key){ + return getEntryKeyOrNull(this.getLowerEntry(key)); +} +; +var Ljava_util_AbstractNavigableMap_2_classLit = createForClass('java.util', 'AbstractNavigableMap', 2090); +function AbstractNavigableMap$EntrySet(this$0){ + this.this$01_0 = this$0; +} + +defineClass(629, $intern_9, $intern_10, AbstractNavigableMap$EntrySet); +_.contains = function contains_31(o){ + return instanceOf(o, 44) && $containsEntry_1(this.this$01_0, castTo(o, 44)); +} +; +_.iterator_0 = function iterator_49(){ + return this.this$01_0.entryIterator_0(); +} +; +_.remove_1 = function remove_57(o){ + var entry; + if (instanceOf(o, 44)) { + entry = castTo(o, 44); + return this.this$01_0.removeEntry(entry); + } + return false; +} +; +_.size_1 = function size_42(){ + return this.this$01_0.size_1(); +} +; +var Ljava_util_AbstractNavigableMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/EntrySet', 629); +function AbstractNavigableMap$NavigableKeySet(map_0){ + this.map_0 = map_0; +} + +defineClass(1146, $intern_9, $intern_13, AbstractNavigableMap$NavigableKeySet); +_.spliterator_0 = function spliterator_26(){ + return new SortedSet$1(this); +} +; +_.clear_0 = function clear_34(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_32(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_50(){ + var entryIterator; + entryIterator = this.map_0.entrySet_0().this$01_0.entryIterator_0(); + return new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_58(o){ + if ($containsKey_4(this.map_0, o)) { + this.map_0.remove_0(o); + return true; + } + return false; +} +; +_.size_1 = function size_43(){ + return this.map_0.size_1(); +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet', 1146); +function AbstractNavigableMap$NavigableKeySet$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(1147, 1, $intern_6, AbstractNavigableMap$NavigableKeySet$1); +_.forEachRemaining = function forEachRemaining_20(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_22(){ + return $hasNext_2(this.val$entryIterator2.iter); +} +; +_.next_1 = function next_23(){ + var entry; + entry = $next_10(this.val$entryIterator2); + return entry.getKey(); +} +; +_.remove = function remove_59(){ + $remove_27(this.val$entryIterator2); +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet$1_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet/1', 1147); +defineClass(2103, 31, $intern_8); +_.add_2 = function add_26(o){ + return checkCriticalState_0($offer(this, o), 'Unable to add element to queue') , true; +} +; +_.addAll = function addAll_12(c){ + checkCriticalNotNull(c); + checkCriticalArgument_0(c != this, "Can't add a queue to itself"); + return $addAll(this, c); +} +; +_.clear_0 = function clear_35(){ + while ($poll_0(this) != null) + ; +} +; +var Ljava_util_AbstractQueue_2_classLit = createForClass('java.util', 'AbstractQueue', 2103); +function $addFirst(this$static, e){ + checkCriticalNotNull(e); + this$static.head = this$static.head - 1 & this$static.array.length - 1; + setCheck(this$static.array, this$static.head, e); + $ensureCapacity(this$static); +} + +function $addLast(this$static, e){ + checkCriticalNotNull(e); + setCheck(this$static.array, this$static.tail, e); + this$static.tail = this$static.tail + 1 & this$static.array.length - 1; + $ensureCapacity(this$static); +} + +function $clear_4(this$static){ + if (this$static.head == this$static.tail) { + return; + } + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); + this$static.head = 0; + this$static.tail = 0; +} + +function $contains_1(it, o){ + if (o == null) { + return false; + } + while (it.currentIndex != it.fence) { + if (equals_Ljava_lang_Object__Z__devirtual$(o, $next_5(it))) { + return true; + } + } + return false; +} + +function $copyElements(this$static, dest, count){ + var dstIdx, i, mask; + mask = this$static.array.length - 1; + for (i = this$static.head , dstIdx = 0; dstIdx < count; i = i + 1 & mask , ++dstIdx) { + setCheck(dest, dstIdx, this$static.array[i]); + } +} + +function $ensureCapacity(this$static){ + var newArray, newLength, numElements; + if (this$static.head != this$static.tail) { + return; + } + numElements = this$static.array.length; + newLength = highestOneBit($wnd.Math.max(8, numElements)) << 1; + if (this$static.head != 0) { + newArray = createFrom(this$static.array, newLength); + $copyElements(this$static, newArray, numElements); + this$static.array = newArray; + this$static.head = 0; + } + else { + setLength(this$static.array, newLength); + } + this$static.tail = numElements; +} + +function $isEmpty(this$static){ + return this$static.head == this$static.tail; +} + +function $pollFirst(this$static){ + var e; + e = this$static.array[this$static.head]; + if (e == null) { + return null; + } + setCheck(this$static.array, this$static.head, null); + this$static.head = this$static.head + 1 & this$static.array.length - 1; + return e; +} + +function $pollLast(this$static){ + var e; + e = this$static.array[this$static.tail - 1 & this$static.array.length - 1]; + if (e == null) { + return null; + } + this$static.tail = this$static.tail - 1 & this$static.array.length - 1; + setCheck(this$static.array, this$static.tail, null); + return e; +} + +function $remove_9(it, o){ + if ($contains_1(it, o)) { + $remove_10(it); + return true; + } + return false; +} + +function $removeAtIndex(this$static, i){ + var headDistance, mask, size_0, tailDistance; + mask = this$static.array.length - 1; + headDistance = i - this$static.head & mask; + tailDistance = this$static.tail - i & mask; + size_0 = this$static.tail - this$static.head & mask; + checkConcurrentModification(headDistance < size_0); + if (headDistance >= tailDistance) { + $shiftLeftAtIndex(this$static, i); + return -1; + } + else { + $shiftRightAtIndex(this$static, i); + return 1; + } +} + +function $removeFirst(this$static){ + var e; + e = $pollFirst(this$static); + checkCriticalElement(e != null); + return e; +} + +function $removeLast(this$static){ + var e; + e = $pollLast(this$static); + checkCriticalElement(e != null); + return e; +} + +function $shiftLeftAtIndex(this$static, i){ + var mask, nextOffset; + mask = this$static.array.length - 1; + this$static.tail = this$static.tail - 1 & mask; + while (i != this$static.tail) { + nextOffset = i + 1 & mask; + setCheck(this$static.array, i, this$static.array[nextOffset]); + i = nextOffset; + } + setCheck(this$static.array, this$static.tail, null); +} + +function $shiftRightAtIndex(this$static, i){ + var mask, prevOffset; + mask = this$static.array.length - 1; + while (i != this$static.head) { + prevOffset = i - 1 & mask; + setCheck(this$static.array, i, this$static.array[prevOffset]); + i = prevOffset; + } + setCheck(this$static.array, this$static.head, null); + this$static.head = this$static.head + 1 & mask; +} + +function ArrayDeque(){ + this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); +} + +function ArrayDeque_0(numElements){ + this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, highestOneBit($wnd.Math.max(8, numElements)) << 1, 5, 1); +} + +function checkConcurrentModification(expression){ + if (!expression) { + throw toJs(new ConcurrentModificationException); + } +} + +defineClass(310, 31, {4:1, 20:1, 31:1, 16:1}, ArrayDeque, ArrayDeque_0); +_.add_2 = function add_27(e){ + return $addLast(this, e) , true; +} +; +_.clear_0 = function clear_36(){ + $clear_4(this); +} +; +_.contains = function contains_33(o){ + return $contains_1(new ArrayDeque$IteratorImpl(this), o); +} +; +_.isEmpty = function isEmpty_18(){ + return $isEmpty(this); +} +; +_.iterator_0 = function iterator_51(){ + return new ArrayDeque$IteratorImpl(this); +} +; +_.remove_1 = function remove_60(o){ + return $remove_9(new ArrayDeque$IteratorImpl(this), o); +} +; +_.size_1 = function size_44(){ + return this.tail - this.head & this.array.length - 1; +} +; +_.spliterator_0 = function spliterator_27(){ + return new Spliterators$IteratorSpliterator(this, 272); +} +; +_.toArray_0 = function toArray_10(out){ + var size_0; + size_0 = this.tail - this.head & this.array.length - 1; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + $copyElements(this, out, size_0); + out.length > size_0 && setCheck(out, size_0, null); + return out; +} +; +_.head = 0; +_.tail = 0; +var Ljava_util_ArrayDeque_2_classLit = createForClass('java.util', 'ArrayDeque', 310); +function $next_5(this$static){ + var e; + checkCriticalElement(this$static.currentIndex != this$static.fence); + e = this$static.this$01.array[this$static.currentIndex]; + checkConcurrentModification(this$static.fence == this$static.this$01.tail && e != null); + this$static.lastIndex = this$static.currentIndex; + this$static.currentIndex = this$static.currentIndex + 1 & this$static.this$01.array.length - 1; + return e; +} + +function $remove_10(this$static){ + checkCriticalState(this$static.lastIndex >= 0); + if ($removeAtIndex(this$static.this$01, this$static.lastIndex) < 0) { + this$static.currentIndex = this$static.currentIndex - 1 & this$static.this$01.array.length - 1; + this$static.fence = this$static.this$01.tail; + } + this$static.lastIndex = -1; +} + +function ArrayDeque$IteratorImpl(this$0){ + this.this$01 = this$0; + this.currentIndex = this.this$01.head; + this.fence = this.this$01.tail; +} + +defineClass(459, 1, $intern_6, ArrayDeque$IteratorImpl); +_.forEachRemaining = function forEachRemaining_21(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_23(){ + return this.currentIndex != this.fence; +} +; +_.next_1 = function next_24(){ + return $next_5(this); +} +; +_.remove = function remove_61(){ + $remove_10(this); +} +; +_.currentIndex = 0; +_.fence = 0; +_.lastIndex = -1; +var Ljava_util_ArrayDeque$IteratorImpl_2_classLit = createForClass('java.util', 'ArrayDeque/IteratorImpl', 459); +function $$init_1(this$static){ + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $add_2(this$static, index_0, o){ + checkCriticalPositionIndex(index_0, this$static.array.length); + insertTo(this$static.array, index_0, o); +} + +function $add_3(this$static, o){ + push_1(this$static.array, o); + return true; +} + +function $addAll_1(this$static, index_0, c){ + var cArray, len; + checkCriticalPositionIndex(index_0, this$static.array.length); + cArray = c.toArray(); + len = cArray.length; + if (len == 0) { + return false; + } + insertTo_0(this$static.array, index_0, cArray); + return true; +} + +function $addAll_2(this$static, c){ + var cArray, len; + cArray = c.toArray(); + len = cArray.length; + if (len == 0) { + return false; + } + insertTo_0(this$static.array, this$static.array.length, cArray); + return true; +} + +function $forEach_1(this$static, consumer){ + var e, e$array, e$index, e$max; + checkCriticalNotNull(consumer); + for (e$array = this$static.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + consumer.accept(e); + } +} + +function $get_11(this$static, index_0){ + checkCriticalElementIndex(index_0, this$static.array.length); + return this$static.array[index_0]; +} + +function $indexOf_3(this$static, o, index_0){ + for (; index_0 < this$static.array.length; ++index_0) { + if (equals_57(o, this$static.array[index_0])) { + return index_0; + } + } + return -1; +} + +function $remove_11(this$static, index_0){ + var previous; + previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); + removeFrom(this$static.array, index_0, 1); + return previous; +} + +function $remove_12(this$static, o){ + var i; + i = $indexOf_3(this$static, o, 0); + if (i == -1) { + return false; + } + $remove_11(this$static, i); + return true; +} + +function $removeRange(this$static, fromIndex, endIndex){ + var count; + checkCriticalPositionIndexes(fromIndex, endIndex, this$static.array.length); + count = endIndex - fromIndex; + removeFrom(this$static.array, fromIndex, count); +} + +function $set_1(this$static, index_0, o){ + var previous; + previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); + this$static.array[index_0] = o; + return previous; +} + +function $sort(this$static, c){ + sort_4(this$static.array, this$static.array.length, c); +} + +function $toArray_1(this$static, out){ + var i, size_0; + size_0 = this$static.array.length; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + for (i = 0; i < size_0; ++i) { + setCheck(out, i, this$static.array[i]); + } + out.length > size_0 && setCheck(out, size_0, null); + return out; +} + +function ArrayList(){ + $$init_1(this); +} + +function ArrayList_0(initialCapacity){ + $$init_1(this); + checkCriticalArgument_0(initialCapacity >= 0, 'Initial capacity must not be negative'); +} + +function ArrayList_1(c){ + $$init_1(this); + insertTo_0(this.array, 0, c.toArray()); +} + +defineClass(13, 56, $intern_71, ArrayList, ArrayList_0, ArrayList_1); +_.add_3 = function add_28(index_0, o){ + $add_2(this, index_0, o); +} +; +_.add_2 = function add_29(o){ + return $add_3(this, o); +} +; +_.addAll_0 = function addAll_13(index_0, c){ + return $addAll_1(this, index_0, c); +} +; +_.addAll = function addAll_14(c){ + return $addAll_2(this, c); +} +; +_.clear_0 = function clear_37(){ + setLength(this.array, 0); +} +; +_.contains = function contains_34(o){ + return $indexOf_3(this, o, 0) != -1; +} +; +_.forEach_0 = function forEach_17(consumer){ + $forEach_1(this, consumer); +} +; +_.get_0 = function get_36(index_0){ + return $get_11(this, index_0); +} +; +_.indexOf_0 = function indexOf_4(o){ + return $indexOf_3(this, o, 0); +} +; +_.isEmpty = function isEmpty_19(){ + return this.array.length == 0; +} +; +_.iterator_0 = function iterator_52(){ + return new ArrayList$1(this); +} +; +_.remove_2 = function remove_62(index_0){ + return $remove_11(this, index_0); +} +; +_.remove_1 = function remove_63(o){ + return $remove_12(this, o); +} +; +_.removeRange = function removeRange_1(fromIndex, endIndex){ + $removeRange(this, fromIndex, endIndex); +} +; +_.set_2 = function set_13(index_0, o){ + return $set_1(this, index_0, o); +} +; +_.size_1 = function size_45(){ + return this.array.length; +} +; +_.sort_0 = function sort_3(c){ + $sort(this, c); +} +; +_.toArray = function toArray_11(){ + return clone_0(this.array); +} +; +_.toArray_0 = function toArray_12(out){ + return $toArray_1(this, out); +} +; +var Ljava_util_ArrayList_2_classLit = createForClass('java.util', 'ArrayList', 13); +function $hasNext_3(this$static){ + return this$static.i < this$static.this$01.array.length; +} + +function $next_6(this$static){ + checkCriticalElement(this$static.i < this$static.this$01.array.length); + this$static.last = this$static.i++; + return this$static.this$01.array[this$static.last]; +} + +function $remove_13(this$static){ + checkCriticalState(this$static.last != -1); + $remove_11(this$static.this$01, this$static.i = this$static.last); + this$static.last = -1; +} + +function ArrayList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(7, 1, $intern_6, ArrayList$1); +_.forEachRemaining = function forEachRemaining_22(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_24(){ + return $hasNext_3(this); +} +; +_.next_1 = function next_25(){ + return $next_6(this); +} +; +_.remove = function remove_64(){ + $remove_13(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_ArrayList$1_2_classLit = createForClass('java.util', 'ArrayList/1', 7); +function copyOf(original, newLength){ + checkCriticalArraySize(newLength); + return copyPrimitiveArray(original, initUnidimensionalArray(I_classLit, $intern_49, 28, newLength, 15, 1), newLength); +} + +function copyOf_0(original, newLength){ + var result; + checkCriticalArraySize(newLength); + return result = original.slice(0, newLength) , result.length = newLength , stampJavaTypeInfo_0(result, original); +} + +function copyPrimitiveArray(original, copy, to){ + var copyLen, len; + len = original.length; + copyLen = $wnd.Math.min(to, len); + copy_0(original, 0, copy, 0, copyLen, true); + return copy; +} + +function deepToString(a, arraysIveSeen){ + var joiner, obj, obj$array, obj$index, obj$max, objArray, old, tempSet, elementTypeCategory; + if (a == null) { + return 'null'; + } + old = arraysIveSeen.map_0.put(a, arraysIveSeen); + if (old != null) { + return '[...]'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (obj$array = a , obj$index = 0 , obj$max = obj$array.length; obj$index < obj$max; ++obj$index) { + obj = obj$array[obj$index]; + if (obj != null && (getClass__Ljava_lang_Class___devirtual$(obj).modifiers & 4) != 0) { + if (Array.isArray(obj) && (elementTypeCategory = getElementTypeCategory(obj) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))) { + if (arraysIveSeen.map_0.containsKey(obj)) { + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '[...]'); + } + else { + objArray = castToArray(obj); + tempSet = new HashSet_1(arraysIveSeen); + $add_9(joiner, deepToString(objArray, tempSet)); + } + } + else + instanceOf(obj, 183)?$add_9(joiner, toString_61(castTo(obj, 183))):instanceOf(obj, 195)?$add_9(joiner, toString_54(castTo(obj, 195))):instanceOf(obj, 201)?$add_9(joiner, toString_55(castTo(obj, 201))):instanceOf(obj, 2111)?$add_9(joiner, toString_60(castTo(obj, 2111))):instanceOf(obj, 53)?$add_9(joiner, toString_58(castTo(obj, 53))):instanceOf(obj, 376)?$add_9(joiner, toString_59(castTo(obj, 376))):instanceOf(obj, 846)?$add_9(joiner, toString_57(castTo(obj, 846))):instanceOf(obj, 109) && $add_9(joiner, toString_56(castTo(obj, 109))); + } + else { + $add_9(joiner, obj == null?'null':toString_40(obj)); + } + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function equals_46(array1, array2){ + var i, val1, val2; + if (maskUndefined(array1) === maskUndefined(array2)) { + return true; + } + if (array1 == null || array2 == null) { + return false; + } + if (array1.length != array2.length) { + return false; + } + for (i = 0; i < array1.length; ++i) { + val1 = array1[i]; + val2 = array2[i]; + if (!(maskUndefined(val1) === maskUndefined(val2) || val1 != null && equals_Ljava_lang_Object__Z__devirtual$(val1, val2))) { + return false; + } + } + return true; +} + +function fill_0(a, fromIndex, toIndex, val){ + checkCriticalArrayBounds_0(fromIndex, toIndex, a.length); + fill0(a, fromIndex, toIndex, val); +} + +function fill_1(a, val){ + fill0_0(a, a.length, val); +} + +function fill_2(a, val){ + fill0_2(a, a.length, val); +} + +function fill_3(a){ + fill0_3(a, a.length); +} + +function fill0(a, fromIndex, toIndex, val){ + var i; + for (i = fromIndex; i < toIndex; ++i) { + a[i] = val; + } +} + +function fill0_0(a, toIndex, val){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = val; + } +} + +function fill0_1(a, toIndex){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = -1; + } +} + +function fill0_2(a, toIndex, val){ + var i; + for (i = 0; i < toIndex; ++i) { + setCheck(a, i, val); + } +} + +function fill0_3(a, toIndex){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = false; + } +} + +function hashCode_47(a){ + var e, e$array, e$index, e$max, hashCode; + hashCode = 1; + for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function insertionSort(array, low, high, comp){ + var i, j, t; + for (i = low + 1; i < high; ++i) { + for (j = i; j > low && comp.compare_1(array[j - 1], array[j]) > 0; --j) { + t = array[j]; + setCheck(array, j, array[j - 1]); + setCheck(array, j - 1, t); + } + } +} + +function merge_1(src_0, srcLow, srcMid, srcHigh, dest, destLow, destHigh, comp){ + var topIdx; + topIdx = srcMid; + while (destLow < destHigh) { + topIdx >= srcHigh || srcLow < srcMid && comp.compare_1(src_0[srcLow], src_0[topIdx]) <= 0?setCheck(dest, destLow++, src_0[srcLow++]):setCheck(dest, destLow++, src_0[topIdx++]); + } +} + +function mergeSort(x_0, fromIndex, toIndex, comp){ + var temp; + comp = ($clinit_Comparators() , !comp?INTERNAL_NATURAL_ORDER:comp); + temp = x_0.slice(fromIndex, toIndex); + mergeSort_0(temp, x_0, fromIndex, toIndex, -fromIndex, comp); +} + +function mergeSort_0(temp, array, low, high, ofs, comp){ + var length_0, tempHigh, tempLow, tempMid; + length_0 = high - low; + if (length_0 < 7) { + insertionSort(array, low, high, comp); + return; + } + tempLow = low + ofs; + tempHigh = high + ofs; + tempMid = tempLow + (tempHigh - tempLow >> 1); + mergeSort_0(array, temp, tempLow, tempMid, -ofs, comp); + mergeSort_0(array, temp, tempMid, tempHigh, -ofs, comp); + if (comp.compare_1(temp[tempMid - 1], temp[tempMid]) <= 0) { + while (low < high) { + setCheck(array, low++, temp[tempLow++]); + } + return; + } + merge_1(temp, tempLow, tempMid, tempHigh, array, low, high, comp); +} + +function sort_4(x_0, toIndex, c){ + checkCriticalArrayBounds_0(0, toIndex, x_0.length); + mergeSort(x_0, 0, toIndex, c); +} + +function sort_5(x_0, c){ + mergeSort(x_0, 0, x_0.length, c); +} + +function spliterator_28(array, endExclusive){ + return checkCriticalArrayBounds(endExclusive, array.length) , new Spliterators$ArraySpliterator(array, endExclusive); +} + +function stream_4(array){ + return new StreamImpl(null, spliterator_28(array, array.length)); +} + +function toString_54(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_55(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, String.fromCharCode(element)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_56(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_57(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_58(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_59(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + toString_39(element)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_60(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_61(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function Arrays$0methodref$compare$Type(){ +} + +defineClass(2112, $wnd.Function, {}, Arrays$0methodref$compare$Type); +_.compare_0 = function compare_7(d1, d2){ + return compare_4(d1, d2); +} +; +function $get_12(this$static, index_0){ + checkCriticalElementIndex(index_0, this$static.array.length); + return this$static.array[index_0]; +} + +function $toArray_2(this$static, out){ + var i, size_0; + size_0 = this$static.array.length; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + for (i = 0; i < size_0; ++i) { + setCheck(out, i, this$static.array[i]); + } + out.length > size_0 && setCheck(out, size_0, null); + return out; +} + +function Arrays$ArrayList(array){ + checkCriticalNotNull(array); + this.array = array; +} + +defineClass(151, 56, $intern_72, Arrays$ArrayList); +_.contains = function contains_35(o){ + return $indexOf(this, o) != -1; +} +; +_.forEach_0 = function forEach_18(consumer){ + var e, e$array, e$index, e$max; + checkCriticalNotNull(consumer); + for (e$array = this.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + consumer.accept(e); + } +} +; +_.get_0 = function get_37(index_0){ + return $get_12(this, index_0); +} +; +_.set_2 = function set_14(index_0, value_0){ + var was; + was = (checkCriticalElementIndex(index_0, this.array.length) , this.array[index_0]); + setCheck(this.array, index_0, value_0); + return was; +} +; +_.size_1 = function size_46(){ + return this.array.length; +} +; +_.sort_0 = function sort_6(c){ + sort_4(this.array, this.array.length, c); +} +; +_.toArray = function toArray_13(){ + return $toArray_2(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.array.length, 5, 1)); +} +; +_.toArray_0 = function toArray_14(out){ + return $toArray_2(this, out); +} +; +var Ljava_util_Arrays$ArrayList_2_classLit = createForClass('java.util', 'Arrays/ArrayList', 151); +function $clinit_Collections(){ + $clinit_Collections = emptyMethod; + EMPTY_LIST = new Collections$EmptyList; + EMPTY_MAP = new Collections$EmptyMap; + EMPTY_SET = new Collections$EmptySet; +} + +function addAll_15(c, a){ + $clinit_Collections(); + var e, e$array, e$index, e$max, result; + result = false; + for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + result = result | c.add_2(e); + } + return result; +} + +function disjoint(c1, c2){ + $clinit_Collections(); + var iterating, o, o$iterator, testing; + iterating = c1; + testing = c2; + if (instanceOf(c1, 21) && !instanceOf(c2, 21)) { + iterating = c2; + testing = c1; + } + for (o$iterator = iterating.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + if (testing.contains(o)) { + return false; + } + } + return true; +} + +function hashCode_48(collection){ + $clinit_Collections(); + var e, e$iterator, hashCode; + hashCode = 0; + for (e$iterator = collection.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + hashCode = hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function hashCode_49(list){ + $clinit_Collections(); + var e, e$iterator, hashCode; + hashCode = 1; + for (e$iterator = list.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function nCopies(n, o){ + $clinit_Collections(); + var i, list; + list = new ArrayList; + for (i = 0; i < n; ++i) { + push_1(list.array, o); + } + return new Collections$UnmodifiableRandomAccessList(list); +} + +function reverse_2(l){ + var t; + $clinit_Collections(); + var head, headElem, iBack, iFront, tail, tailElem; + if (instanceOf(l, 59)) { + for (iFront = 0 , iBack = l.size_1() - 1; iFront < iBack; ++iFront , --iBack) { + t = l.get_0(iFront); + l.set_2(iFront, l.get_0(iBack)); + l.set_2(iBack, t); + } + } + else { + head = l.listIterator_0(); + tail = l.listIterator_1(l.size_1()); + while (head.nextIndex_0() < tail.previousIndex()) { + headElem = head.next_1(); + tailElem = tail.previous_0(); + head.set_1(tailElem); + tail.set_1(headElem); + } + } +} + +function reverseOrder(cmp){ + $clinit_Collections(); + return !cmp?($clinit_Comparators() , $clinit_Comparators() , REVERSE_NATURAL_ORDER):cmp.reversed(); +} + +function singletonMap(key, value_0){ + $clinit_Collections(); + var map_0; + map_0 = new HashMap_0(1); + instanceOfString(key)?$putStringValue(map_0, key, value_0):$put_9(map_0.hashCodeMap, key, value_0); + return new Collections$UnmodifiableMap(map_0); +} + +function unmodifiableList(list){ + $clinit_Collections(); + return instanceOf(list, 59)?new Collections$UnmodifiableRandomAccessList(list):new Collections$UnmodifiableList(list); +} + +var EMPTY_LIST, EMPTY_MAP, EMPTY_SET; +function $get_13(location_0){ + checkCriticalElementIndex(location_0, 0); + return null; +} + +function Collections$EmptyList(){ +} + +defineClass(953, 56, $intern_72, Collections$EmptyList); +_.contains = function contains_36(object){ + return false; +} +; +_.get_0 = function get_38(location_0){ + return $get_13(location_0); +} +; +_.iterator_0 = function iterator_53(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.listIterator_0 = function listIterator_11(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.size_1 = function size_47(){ + return 0; +} +; +var Ljava_util_Collections$EmptyList_2_classLit = createForClass('java.util', 'Collections/EmptyList', 953); +function $clinit_Collections$EmptyListIterator(){ + $clinit_Collections$EmptyListIterator = emptyMethod; + INSTANCE_4 = new Collections$EmptyListIterator; +} + +function Collections$EmptyListIterator(){ +} + +defineClass(954, 1, $intern_14, Collections$EmptyListIterator); +_.forEachRemaining = function forEachRemaining_23(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_30(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasNext_0 = function hasNext_25(){ + return false; +} +; +_.hasPrevious = function hasPrevious_4(){ + return false; +} +; +_.next_1 = function next_26(){ + throw toJs(new NoSuchElementException); +} +; +_.nextIndex_0 = function nextIndex_5(){ + return 0; +} +; +_.previous_0 = function previous_5(){ + throw toJs(new NoSuchElementException); +} +; +_.previousIndex = function previousIndex_4(){ + return -1; +} +; +_.remove = function remove_65(){ + throw toJs(new IllegalStateException); +} +; +_.set_1 = function set_15(o){ + throw toJs(new IllegalStateException); +} +; +var INSTANCE_4; +var Ljava_util_Collections$EmptyListIterator_2_classLit = createForClass('java.util', 'Collections/EmptyListIterator', 954); +function Collections$EmptyMap(){ +} + +defineClass(956, 2065, $intern_28, Collections$EmptyMap); +_.containsKey = function containsKey_11(key){ + return false; +} +; +_.containsValue = function containsValue_4(value_0){ + return false; +} +; +_.entrySet_0 = function entrySet_4(){ + return $clinit_Collections() , EMPTY_SET; +} +; +_.get_3 = function get_39(key){ + return null; +} +; +_.keySet_0 = function keySet_17(){ + return $clinit_Collections() , EMPTY_SET; +} +; +_.size_1 = function size_48(){ + return 0; +} +; +_.values_0 = function values_16(){ + return $clinit_Collections() , EMPTY_LIST; +} +; +var Ljava_util_Collections$EmptyMap_2_classLit = createForClass('java.util', 'Collections/EmptyMap', 956); +function Collections$EmptySet(){ +} + +defineClass(955, $intern_9, $intern_30, Collections$EmptySet); +_.contains = function contains_37(object){ + return false; +} +; +_.iterator_0 = function iterator_54(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.size_1 = function size_49(){ + return 0; +} +; +var Ljava_util_Collections$EmptySet_2_classLit = createForClass('java.util', 'Collections/EmptySet', 955); +function Collections$SingletonList(element){ + this.element = element; +} + +defineClass(608, 56, {3:1, 20:1, 31:1, 56:1, 16:1, 15:1}, Collections$SingletonList); +_.contains = function contains_38(item_0){ + return equals_57(this.element, item_0); +} +; +_.get_0 = function get_40(index_0){ + checkCriticalElementIndex(index_0, 1); + return this.element; +} +; +_.size_1 = function size_50(){ + return 1; +} +; +var Ljava_util_Collections$SingletonList_2_classLit = createForClass('java.util', 'Collections/SingletonList', 608); +function $add_4(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_3(){ + throw toJs(new UnsupportedOperationException); +} + +function $clear_5(){ + throw toJs(new UnsupportedOperationException); +} + +function $contains_2(this$static, o){ + return this$static.coll.contains(o); +} + +function $containsAll_0(this$static, c){ + return this$static.coll.containsAll(c); +} + +function $remove_14(){ + throw toJs(new UnsupportedOperationException); +} + +function $toArray_3(this$static, a){ + return this$static.coll.toArray_0(a); +} + +function Collections$UnmodifiableCollection(coll){ + this.coll = coll; +} + +defineClass(384, 1, $intern_24, Collections$UnmodifiableCollection); +_.forEach_0 = function forEach_19(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_3(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.spliterator_0 = function spliterator_29(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_5(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_31(o){ + return $add_4(); +} +; +_.addAll = function addAll_16(c){ + return $addAll_3(); +} +; +_.clear_0 = function clear_38(){ + $clear_5(); +} +; +_.contains = function contains_39(o){ + return $contains_2(this, o); +} +; +_.containsAll = function containsAll_7(c){ + return $containsAll_0(this, c); +} +; +_.isEmpty = function isEmpty_20(){ + return this.coll.isEmpty(); +} +; +_.iterator_0 = function iterator_55(){ + return new Collections$UnmodifiableCollectionIterator(this.coll.iterator_0()); +} +; +_.remove_1 = function remove_66(o){ + return $remove_14(); +} +; +_.size_1 = function size_51(){ + return this.coll.size_1(); +} +; +_.toArray = function toArray_15(){ + return this.coll.toArray(); +} +; +_.toArray_0 = function toArray_16(a){ + return $toArray_3(this, a); +} +; +_.toString_0 = function toString_62(){ + return toString_40(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollection', 384); +function $remove_15(){ + throw toJs(new UnsupportedOperationException); +} + +function Collections$UnmodifiableCollectionIterator(it){ + this.it = it; +} + +defineClass(383, 1, $intern_6, Collections$UnmodifiableCollectionIterator); +_.forEachRemaining = function forEachRemaining_24(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_26(){ + return this.it.hasNext_0(); +} +; +_.next_1 = function next_27(){ + return this.it.next_1(); +} +; +_.remove = function remove_67(){ + $remove_15(); +} +; +var Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollectionIterator', 383); +function Collections$UnmodifiableList(list){ + Collections$UnmodifiableCollection.call(this, list); + this.list = list; +} + +defineClass(540, 384, $intern_73, Collections$UnmodifiableList); +_.spliterator_0 = function spliterator_30(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.add_3 = function add_32(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_17(index_0, c){ + throw toJs(new UnsupportedOperationException); +} +; +_.equals_0 = function equals_47(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.list, o); +} +; +_.get_0 = function get_41(index_0){ + return this.list.get_0(index_0); +} +; +_.hashCode_1 = function hashCode_50(){ + return hashCode__I__devirtual$(this.list); +} +; +_.indexOf_0 = function indexOf_5(o){ + return this.list.indexOf_0(o); +} +; +_.isEmpty = function isEmpty_21(){ + return this.list.isEmpty(); +} +; +_.listIterator_0 = function listIterator_12(){ + return new Collections$UnmodifiableListIterator(this.list.listIterator_1(0)); +} +; +_.listIterator_1 = function listIterator_13(from){ + return new Collections$UnmodifiableListIterator(this.list.listIterator_1(from)); +} +; +_.remove_2 = function remove_68(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_16(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.sort_0 = function sort_7(c){ + throw toJs(new UnsupportedOperationException); +} +; +_.subList = function subList_7(fromIndex, toIndex){ + return new Collections$UnmodifiableList(this.list.subList(fromIndex, toIndex)); +} +; +var Ljava_util_Collections$UnmodifiableList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableList', 540); +function Collections$UnmodifiableListIterator(lit){ + Collections$UnmodifiableCollectionIterator.call(this, lit); + this.lit = lit; +} + +defineClass(705, 383, $intern_14, Collections$UnmodifiableListIterator); +_.remove = function remove_69(){ + $remove_15(); +} +; +_.add_1 = function add_33(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasPrevious = function hasPrevious_5(){ + return this.lit.hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_6(){ + return this.lit.nextIndex_0(); +} +; +_.previous_0 = function previous_6(){ + return this.lit.previous_0(); +} +; +_.previousIndex = function previousIndex_5(){ + return this.lit.previousIndex(); +} +; +_.set_1 = function set_17(o){ + throw toJs(new UnsupportedOperationException); +} +; +var Ljava_util_Collections$UnmodifiableListIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableListIterator', 705); +function $containsValue_3(this$static, val){ + return this$static.map_0.containsValue(val); +} + +function $entrySet_2(this$static){ + !this$static.entrySet && (this$static.entrySet = new Collections$UnmodifiableMap$UnmodifiableEntrySet(this$static.map_0.entrySet_0())); + return this$static.entrySet; +} + +function $equals_7(this$static, o){ + return equals_Ljava_lang_Object__Z__devirtual$(this$static.map_0, o); +} + +function $keySet_1(this$static){ + !this$static.keySet && (this$static.keySet = new Collections$UnmodifiableSet(this$static.map_0.keySet_0())); + return this$static.keySet; +} + +function $values_2(this$static){ + !this$static.values && (this$static.values = new Collections$UnmodifiableCollection(this$static.map_0.values_0())); + return this$static.values; +} + +function Collections$UnmodifiableMap(map_0){ + this.map_0 = map_0; +} + +defineClass(609, 1, $intern_7, Collections$UnmodifiableMap); +_.forEach = function forEach_20(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge_2(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_39(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_12(key){ + return this.map_0.containsKey(key); +} +; +_.containsValue = function containsValue_5(val){ + return $containsValue_3(this, val); +} +; +_.entrySet_0 = function entrySet_5(){ + return $entrySet_2(this); +} +; +_.equals_0 = function equals_48(o){ + return $equals_7(this, o); +} +; +_.get_3 = function get_42(key){ + return this.map_0.get_3(key); +} +; +_.hashCode_1 = function hashCode_51(){ + return hashCode__I__devirtual$(this.map_0); +} +; +_.isEmpty = function isEmpty_22(){ + return this.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_18(){ + return $keySet_1(this); +} +; +_.put = function put_6(key, value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_0 = function remove_70(key){ + throw toJs(new UnsupportedOperationException); +} +; +_.size_1 = function size_52(){ + return this.map_0.size_1(); +} +; +_.toString_0 = function toString_63(){ + return toString_40(this.map_0); +} +; +_.values_0 = function values_17(){ + return $values_2(this); +} +; +var Ljava_util_Collections$UnmodifiableMap_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap', 609); +function Collections$UnmodifiableSet(set_0){ + Collections$UnmodifiableCollection.call(this, set_0); +} + +defineClass(396, 384, $intern_29, Collections$UnmodifiableSet); +_.spliterator_0 = function spliterator_31(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_49(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.coll, o); +} +; +_.hashCode_1 = function hashCode_52(){ + return hashCode__I__devirtual$(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSet', 396); +function $contains_3(this$static, o){ + return this$static.coll.contains(o); +} + +function $toArray_4(this$static, a){ + var result; + result = this$static.coll.toArray_0(a); + $wrap(result, this$static.coll.size_1()); + return result; +} + +function $wrap(array, size_0){ + var i; + for (i = 0; i < size_0; ++i) { + setCheck(array, i, new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(array[i], 44))); + } +} + +function Collections$UnmodifiableMap$UnmodifiableEntrySet(s){ + Collections$UnmodifiableSet.call(this, s); +} + +defineClass(957, 396, $intern_29, Collections$UnmodifiableMap$UnmodifiableEntrySet); +_.contains = function contains_40(o){ + return $contains_3(this, o); +} +; +_.containsAll = function containsAll_8(o){ + return this.coll.containsAll(o); +} +; +_.iterator_0 = function iterator_56(){ + var it; + it = this.coll.iterator_0(); + return new Collections$UnmodifiableMap$UnmodifiableEntrySet$1(it); +} +; +_.toArray = function toArray_17(){ + var array; + array = this.coll.toArray(); + $wrap(array, array.length); + return array; +} +; +_.toArray_0 = function toArray_18(a){ + return $toArray_4(this, a); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet', 957); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(val$it){ + this.val$it2 = val$it; +} + +defineClass(958, 1, $intern_6, Collections$UnmodifiableMap$UnmodifiableEntrySet$1); +_.forEachRemaining = function forEachRemaining_25(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_28(){ + return new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(this.val$it2.next_1(), 44)); +} +; +_.hasNext_0 = function hasNext_27(){ + return this.val$it2.hasNext_0(); +} +; +_.remove = function remove_71(){ + throw toJs(new UnsupportedOperationException); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/1', 958); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(entry){ + this.entry = entry; +} + +defineClass(703, 1, $intern_70, Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry); +_.equals_0 = function equals_50(o){ + return this.entry.equals_0(o); +} +; +_.getKey = function getKey_5(){ + return this.entry.getKey(); +} +; +_.getValue = function getValue_7(){ + return this.entry.getValue(); +} +; +_.hashCode_1 = function hashCode_53(){ + return this.entry.hashCode_1(); +} +; +_.setValue = function setValue_8(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_64(){ + return toString_40(this.entry); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry', 703); +function Collections$UnmodifiableRandomAccessList(list){ + Collections$UnmodifiableList.call(this, list); +} + +defineClass(610, 540, {20:1, 16:1, 15:1, 59:1}, Collections$UnmodifiableRandomAccessList); +var Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableRandomAccessList', 610); +function Collections$UnmodifiableSortedSet(sortedSet){ + Collections$UnmodifiableSet.call(this, sortedSet); + this.sortedSet = sortedSet; +} + +defineClass(704, 396, $intern_31, Collections$UnmodifiableSortedSet); +_.spliterator_0 = function spliterator_32(){ + return new SortedSet$1(this); +} +; +_.equals_0 = function equals_51(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.sortedSet, o); +} +; +_.hashCode_1 = function hashCode_54(){ + return hashCode__I__devirtual$(this.sortedSet); +} +; +var Ljava_util_Collections$UnmodifiableSortedSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSortedSet', 704); +function Comparator$lambda$0$Type(){ +} + +defineClass(858, 1, $intern_74, Comparator$lambda$0$Type); +_.compare_1 = function compare_8(a, b){ + var c; + return c = lambda$0_26(castTo(a, 12), castTo(b, 12)) , c != 0?c:lambda$1_11(castTo(a, 12), castTo(b, 12)); +} +; +_.equals_0 = function equals_52(other){ + return this === other; +} +; +_.reversed = function reversed_0(){ + return new Comparators$ReversedComparator(this); +} +; +var Ljava_util_Comparator$lambda$0$Type_2_classLit = createForClass('java.util', 'Comparator/lambda$0$Type', 858); +function $clinit_Comparators(){ + $clinit_Comparators = emptyMethod; + INTERNAL_NATURAL_ORDER = new Comparators$NaturalOrderComparator; + NATURAL_ORDER = new Comparators$NaturalOrderComparator; + REVERSE_NATURAL_ORDER = new Comparators$ReverseNaturalOrderComparator; +} + +var INTERNAL_NATURAL_ORDER, NATURAL_ORDER, REVERSE_NATURAL_ORDER; +function $compare(a, b){ + return checkCriticalNotNull(a) , compareTo_Ljava_lang_Object__I__devirtual$(a, (checkCriticalNotNull(b) , b)); +} + +function Comparators$NaturalOrderComparator(){ +} + +defineClass(769, 1, $intern_74, Comparators$NaturalOrderComparator); +_.compare_1 = function compare_9(a, b){ + return $compare(castTo(a, 34), castTo(b, 34)); +} +; +_.equals_0 = function equals_53(other){ + return this === other; +} +; +_.reversed = function reversed_1(){ + return $clinit_Comparators() , REVERSE_NATURAL_ORDER; +} +; +var Ljava_util_Comparators$NaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/NaturalOrderComparator', 769); +function $compare_0(a, b){ + return checkCriticalNotNull(b) , compareTo_Ljava_lang_Object__I__devirtual$(b, (checkCriticalNotNull(a) , a)); +} + +function Comparators$ReverseNaturalOrderComparator(){ +} + +defineClass(1226, 1, $intern_74, Comparators$ReverseNaturalOrderComparator); +_.compare_1 = function compare_10(a, b){ + return $compare_0(castTo(a, 34), castTo(b, 34)); +} +; +_.equals_0 = function equals_54(other){ + return this === other; +} +; +_.reversed = function reversed_2(){ + return $clinit_Comparators() , NATURAL_ORDER; +} +; +var Ljava_util_Comparators$ReverseNaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/ReverseNaturalOrderComparator', 1226); +function Comparators$ReversedComparator(comparator){ + this.comparator = comparator; +} + +defineClass(52, 1, $intern_74, Comparators$ReversedComparator); +_.equals_0 = function equals_55(other){ + return this === other; +} +; +_.compare_1 = function compare_11(a, b){ + return this.comparator.compare_1(b, a); +} +; +_.reversed = function reversed_3(){ + return this.comparator; +} +; +var Ljava_util_Comparators$ReversedComparator_2_classLit = createForClass('java.util', 'Comparators/ReversedComparator', 52); +function ConcurrentModificationException(){ + RuntimeException.call(this); +} + +defineClass(175, 63, $intern_44, ConcurrentModificationException); +var Ljava_util_ConcurrentModificationException_2_classLit = createForClass('java.util', 'ConcurrentModificationException', 175); +function $clinit_Date$StringData(){ + $clinit_Date$StringData = emptyMethod; + DAYS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']); + MONTHS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); +} + +var DAYS, MONTHS; +function $accept(this$static, value_0){ + var compensatedValue, newSum; + this$static.count = add_20(this$static.count, 1); + this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); + this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); + this$static.naiveSum += value_0; + compensatedValue = value_0 - this$static.sumError; + newSum = this$static.sum + compensatedValue; + this$static.sumError = newSum - this$static.sum - compensatedValue; + this$static.sum = newSum; +} + +function $getSum(this$static){ + var compensatedSum; + compensatedSum = this$static.sum + this$static.sumError; + if (isNaN(compensatedSum) && isInfinite(this$static.naiveSum)) { + return this$static.naiveSum; + } + return compensatedSum; +} + +function DoubleSummaryStatistics(){ +} + +defineClass(1948, 1, $intern_75, DoubleSummaryStatistics); +_.accept_2 = function accept_15(value_0){ + $accept(this, value_0); +} +; +_.toString_0 = function toString_65(){ + return 'DoubleSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?$getSum(this) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + $getSum(this) + ']'; +} +; +_.count = 0; +_.max_0 = $intern_61; +_.min_0 = $intern_60; +_.naiveSum = 0; +_.sum = 0; +_.sumError = 0; +var Ljava_util_DoubleSummaryStatistics_2_classLit = createForClass('java.util', 'DoubleSummaryStatistics', 1948); +function EmptyStackException(){ + RuntimeException.call(this); +} + +defineClass(1868, 63, $intern_44, EmptyStackException); +var Ljava_util_EmptyStackException_2_classLit = createForClass('java.util', 'EmptyStackException', 1868); +function $clear_6(this$static){ + $clear_0(this$static.keySet); + this$static.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.values.length, 5, 1); +} + +function $containsKey_5(this$static, key){ + return $contains_5(this$static.keySet, key); +} + +function $get_14(this$static, k){ + return $contains_5(this$static.keySet, k)?this$static.values[castTo(k, 22).ordinal]:null; +} + +function $put_7(this$static, key, value_0){ + $add_5(this$static.keySet, key); + return setAt(this$static.values, key.ordinal, value_0); +} + +function $put_8(this$static, key, value_0){ + return $put_7(this$static, castTo(key, 22), value_0); +} + +function $remove_16(this$static, key){ + return $remove_17(this$static.keySet, key)?setAt(this$static.values, castTo(key, 22).ordinal, null):null; +} + +function EnumMap(type_0){ + var all; + this.keySet = (all = castTo(type_0.enumConstantsFunc && type_0.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.keySet.all.length, 5, 1); +} + +defineClass(461, 2065, $intern_7, EnumMap); +_.put = function put_7(key, value_0){ + return $put_8(this, key, value_0); +} +; +_.clear_0 = function clear_40(){ + $clear_6(this); +} +; +_.containsKey = function containsKey_13(key){ + return $containsKey_5(this, key); +} +; +_.containsValue = function containsValue_6(value_0){ + var key, key$iterator; + for (key$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this.keySet); key$iterator.i < key$iterator.this$11.all.length;) { + key = $next_7(key$iterator); + if (equals_57(value_0, this.values[key.ordinal])) { + return true; + } + } + return false; +} +; +_.entrySet_0 = function entrySet_6(){ + return new EnumMap$EntrySet(this); +} +; +_.get_3 = function get_43(k){ + return $get_14(this, k); +} +; +_.remove_0 = function remove_72(key){ + return $remove_16(this, key); +} +; +_.size_1 = function size_53(){ + return this.keySet.size_0; +} +; +var Ljava_util_EnumMap_2_classLit = createForClass('java.util', 'EnumMap', 461); +function $contains_4(this$static, o){ + if (instanceOf(o, 44)) { + return $containsEntry_0(this$static.this$01, castTo(o, 44)); + } + return false; +} + +function EnumMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1340, $intern_9, $intern_10, EnumMap$EntrySet); +_.clear_0 = function clear_41(){ + $clear_6(this.this$01); +} +; +_.contains = function contains_41(o){ + return $contains_4(this, o); +} +; +_.iterator_0 = function iterator_57(){ + return new EnumMap$EntrySetIterator(this.this$01); +} +; +_.remove_1 = function remove_73(entry){ + var key; + if ($contains_4(this, entry)) { + key = castTo(entry, 44).getKey(); + $remove_16(this.this$01, key); + return true; + } + return false; +} +; +_.size_1 = function size_54(){ + return this.this$01.keySet.size_0; +} +; +var Ljava_util_EnumMap$EntrySet_2_classLit = createForClass('java.util', 'EnumMap/EntrySet', 1340); +function EnumMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.it = new EnumSet$EnumSetImpl$IteratorImpl(this.this$01.keySet); +} + +defineClass(1341, 1, $intern_6, EnumMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_26(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_29(){ + return this.key = $next_7(this.it) , new EnumMap$MapEntry(this.this$01, this.key); +} +; +_.hasNext_0 = function hasNext_28(){ + return $hasNext_4(this.it); +} +; +_.remove = function remove_74(){ + checkCriticalState(!!this.key); + $remove_16(this.this$01, this.key); + this.key = null; +} +; +var Ljava_util_EnumMap$EntrySetIterator_2_classLit = createForClass('java.util', 'EnumMap/EntrySetIterator', 1341); +function EnumMap$MapEntry(this$0, key){ + this.this$01 = this$0; + this.key = key; +} + +defineClass(1342, 2082, $intern_70, EnumMap$MapEntry); +_.getKey = function getKey_6(){ + return this.key; +} +; +_.getValue = function getValue_8(){ + return this.this$01.values[this.key.ordinal]; +} +; +_.setValue = function setValue_9(value_0){ + return setAt(this.this$01.values, this.key.ordinal, value_0); +} +; +var Ljava_util_EnumMap$MapEntry_2_classLit = createForClass('java.util', 'EnumMap/MapEntry', 1342); +function allOf(elementType){ + var all, result, set_0; + all = castTo(elementType.enumConstantsFunc && elementType.enumConstantsFunc(), 9); + set_0 = (result = all.slice() , castTo(stampJavaTypeInfo_0(result, all), 9)); + return new EnumSet$EnumSetImpl(all, set_0, all.length); +} + +function of_1(first){ + var all, set_0, clazz, superclass; + set_0 = (all = castTo($getEnumConstants((clazz = first.___clazz , superclass = clazz.enumSuperclass , superclass == Ljava_lang_Enum_2_classLit?clazz:superclass)), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + $add_5(set_0, first); + return set_0; +} + +function of_2(first, rest){ + var set_0; + set_0 = of_1(first); + addAll_15(set_0, rest); + return set_0; +} + +defineClass(181, $intern_9, {20:1, 31:1, 16:1, 181:1, 21:1}); +var Ljava_util_EnumSet_2_classLit = createForClass('java.util', 'EnumSet', 181); +function $add_5(this$static, e){ + var ordinal; + checkCriticalNotNull(e); + ordinal = e.ordinal; + if (!this$static.set_0[ordinal]) { + setCheck(this$static.set_0, ordinal, e); + ++this$static.size_0; + return true; + } + return false; +} + +function $clone(this$static){ + var clonedSet; + clonedSet = castTo(clone_0(this$static.set_0), 9); + return new EnumSet$EnumSetImpl(this$static.all, clonedSet, this$static.size_0); +} + +function $contains_5(this$static, o){ + return instanceOf(o, 22) && $containsEnum(this$static, castTo(o, 22)); +} + +function $containsEnum(this$static, e){ + return !!e && this$static.set_0[e.ordinal] == e; +} + +function $remove_17(this$static, o){ + return instanceOf(o, 22) && $removeEnum(this$static, castTo(o, 22)); +} + +function $removeEnum(this$static, e){ + if (!!e && this$static.set_0[e.ordinal] == e) { + setCheck(this$static.set_0, e.ordinal, null); + --this$static.size_0; + return true; + } + return false; +} + +function EnumSet$EnumSetImpl(all, set_0, size_0){ + this.all = all; + this.set_0 = set_0; + this.size_0 = size_0; +} + +defineClass(162, 181, {20:1, 31:1, 16:1, 181:1, 162:1, 21:1}, EnumSet$EnumSetImpl); +_.add_2 = function add_34(e){ + return $add_5(this, castTo(e, 22)); +} +; +_.contains = function contains_42(o){ + return $contains_5(this, o); +} +; +_.iterator_0 = function iterator_58(){ + return new EnumSet$EnumSetImpl$IteratorImpl(this); +} +; +_.remove_1 = function remove_75(o){ + return $remove_17(this, o); +} +; +_.size_1 = function size_55(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_EnumSet$EnumSetImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl', 162); +function $findNext(this$static){ + var c; + ++this$static.i; + for (c = this$static.this$11.all.length; this$static.i < c; ++this$static.i) { + if (this$static.this$11.set_0[this$static.i]) { + return; + } + } +} + +function $hasNext_4(this$static){ + return this$static.i < this$static.this$11.all.length; +} + +function $next_7(this$static){ + checkCriticalElement(this$static.i < this$static.this$11.all.length); + this$static.last = this$static.i; + $findNext(this$static); + return this$static.this$11.set_0[this$static.last]; +} + +function EnumSet$EnumSetImpl$IteratorImpl(this$1){ + this.this$11 = this$1; + $findNext(this); +} + +defineClass(356, 1, $intern_6, EnumSet$EnumSetImpl$IteratorImpl); +_.forEachRemaining = function forEachRemaining_27(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_30(){ + return $next_7(this); +} +; +_.hasNext_0 = function hasNext_29(){ + return $hasNext_4(this); +} +; +_.remove = function remove_76(){ + checkCriticalState(this.last != -1); + setCheck(this.this$11.set_0, this.last, null); + --this.this$11.size_0; + this.last = -1; +} +; +_.i = -1; +_.last = -1; +var Ljava_util_EnumSet$EnumSetImpl$IteratorImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl/IteratorImpl', 356); +function HashMap(){ + $reset(this); +} + +function HashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); +} + +function HashMap_1(toBeCopied){ + $reset(this); + $putAll(this, toBeCopied); +} + +defineClass(45, 498, $intern_76, HashMap, HashMap_0, HashMap_1); +_.equals_1 = function equals_56(value1, value2){ + return maskUndefined(value1) === maskUndefined(value2) || value1 != null && equals_Ljava_lang_Object__Z__devirtual$(value1, value2); +} +; +_.getHashCode = function getHashCode(key){ + var hashCode; + if (key == null) { + return 0; + } + hashCode = hashCode__I__devirtual$(key); + return hashCode | 0; +} +; +var Ljava_util_HashMap_2_classLit = createForClass('java.util', 'HashMap', 45); +function $add_6(this$static, o){ + var old; + old = this$static.map_0.put(o, this$static); + return old == null; +} + +function $contains_6(this$static, o){ + return this$static.map_0.containsKey(o); +} + +function $remove_18(this$static, o){ + return this$static.map_0.remove_0(o) != null; +} + +function HashSet(){ + this.map_0 = new HashMap; +} + +function HashSet_0(initialCapacity){ + this.map_0 = new HashMap_0(initialCapacity); +} + +function HashSet_1(c){ + this.map_0 = new HashMap_0(c.size_1()); + $addAll(this, c); +} + +function HashSet_2(map_0){ + this.map_0 = map_0; +} + +defineClass(49, $intern_9, $intern_77, HashSet, HashSet_0, HashSet_1); +_.add_2 = function add_35(o){ + return $add_6(this, o); +} +; +_.clear_0 = function clear_42(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_43(o){ + return $contains_6(this, o); +} +; +_.isEmpty = function isEmpty_23(){ + return this.map_0.size_1() == 0; +} +; +_.iterator_0 = function iterator_59(){ + return this.map_0.keySet_0().iterator_0(); +} +; +_.remove_1 = function remove_77(o){ + return $remove_18(this, o); +} +; +_.size_1 = function size_56(){ + return this.map_0.size_1(); +} +; +var Ljava_util_HashSet_2_classLit = createForClass('java.util', 'HashSet', 49); +function $accept_0(this$static, value_0){ + this$static.count = add_20(this$static.count, 1); + this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); + this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); + this$static.sum = add_20(this$static.sum, value_0); +} + +function IntSummaryStatistics(){ +} + +defineClass(1897, 1, $intern_20, IntSummaryStatistics); +_.accept_0 = function accept_16(value_0){ + $accept_0(this, value_0); +} +; +_.toString_0 = function toString_66(){ + return 'IntSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?toDouble_0(this.sum) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + toString_39(this.sum) + ']'; +} +; +_.count = 0; +_.max_0 = $intern_43; +_.min_0 = $intern_0; +_.sum = 0; +var Ljava_util_IntSummaryStatistics_2_classLit = createForClass('java.util', 'IntSummaryStatistics', 1897); +function $findEntryInChain(this$static, key, chain){ + var entry, entry$array, entry$index, entry$max; + for (entry$array = chain , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { + entry = entry$array[entry$index]; + if (this$static.host.equals_1(key, entry.getKey())) { + return entry; + } + } + return null; +} + +function $getChainOrEmpty(this$static, hashCode){ + var chain; + chain = this$static.backingMap.get(hashCode); + return chain == null?initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1):chain; +} + +function $getEntry_0(this$static, key){ + return $findEntryInChain(this$static, key, $getChainOrEmpty(this$static, this$static.host.getHashCode(key))); +} + +function $put_9(this$static, key, value_0){ + var chain, chain0, entry, hashCode; + hashCode = this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1):chain); + if (chain0.length == 0) { + this$static.backingMap.set(hashCode, chain0); + } + else { + entry = $findEntryInChain(this$static, key, chain0); + if (entry) { + return entry.setValue(value_0); + } + } + setCheck(chain0, chain0.length, new AbstractMap$SimpleEntry(key, value_0)); + ++this$static.size_0; + ++this$static.host.modCount; + return null; +} + +function $remove_19(this$static, key){ + var chain, chain0, entry, hashCode, i; + hashCode = this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1):chain); + for (i = 0; i < chain0.length; i++) { + entry = chain0[i]; + if (this$static.host.equals_1(key, entry.getKey())) { + if (chain0.length == 1) { + chain0.length = 0; + $delete_0(this$static.backingMap, hashCode); + } + else { + chain0.splice(i, 1); + } + --this$static.size_0; + ++this$static.host.modCount; + return entry.getValue(); + } + } + return null; +} + +function InternalHashCodeMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1062, 1, $intern_23, InternalHashCodeMap); +_.forEach_0 = function forEach_21(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_60(){ + return new InternalHashCodeMap$1(this); +} +; +_.size_0 = 0; +var Ljava_util_InternalHashCodeMap_2_classLit = createForClass('java.util', 'InternalHashCodeMap', 1062); +function InternalHashCodeMap$1(this$0){ + this.this$01 = this$0; + this.chains = this.this$01.backingMap.entries(); + this.chain = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +defineClass(726, 1, $intern_6, InternalHashCodeMap$1); +_.forEachRemaining = function forEachRemaining_28(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_31(){ + return this.lastEntry = this.chain[this.itemIndex++] , this.lastEntry; +} +; +_.hasNext_0 = function hasNext_30(){ + var current; + if (this.itemIndex < this.chain.length) { + return true; + } + current = this.chains.next(); + if (!current.done) { + this.chain = current.value[1]; + this.itemIndex = 0; + return true; + } + return false; +} +; +_.remove = function remove_78(){ + $remove_19(this.this$01, this.lastEntry.getKey()); + this.itemIndex != 0 && --this.itemIndex; +} +; +_.itemIndex = 0; +_.lastEntry = null; +var Ljava_util_InternalHashCodeMap$1_2_classLit = createForClass('java.util', 'InternalHashCodeMap/1', 726); +function $delete_0(this$static, key){ + var fn; + fn = this$static['delete']; + fn.call(this$static, key); +} + +function $delete_1(this$static, key){ + var fn; + fn = this$static['delete']; + fn.call(this$static, key); +} + +function $clinit_InternalJsMapFactory(){ + $clinit_InternalJsMapFactory = emptyMethod; + jsMapCtor = getJsMapConstructor(); +} + +function canHandleObjectCreateAndProto(){ + if (!Object.create || !Object.getOwnPropertyNames) { + return false; + } + var protoField = '__proto__'; + var map_0 = Object.create(null); + if (map_0[protoField] !== undefined) { + return false; + } + var keys_0 = Object.getOwnPropertyNames(map_0); + if (keys_0.length != 0) { + return false; + } + map_0[protoField] = 42; + if (map_0[protoField] !== 42) { + return false; + } + if (Object.getOwnPropertyNames(map_0).length == 0) { + return false; + } + return true; +} + +function getJsMapConstructor(){ + function isCorrectIterationProtocol(){ + try { + return (new Map).entries().next().done; + } + catch (e) { + return false; + } + } + + if (typeof Map === 'function' && Map.prototype.entries && isCorrectIterationProtocol()) { + return Map; + } + else { + return getJsMapPolyFill(); + } +} + +function getJsMapPolyFill(){ + function Stringmap(){ + this.obj = this.createObject(); + } + + ; + Stringmap.prototype.createObject = function(key){ + return Object.create(null); + } + ; + Stringmap.prototype.get = function(key){ + return this.obj[key]; + } + ; + Stringmap.prototype.set = function(key, value_0){ + this.obj[key] = value_0; + } + ; + Stringmap.prototype['delete'] = function(key){ + delete this.obj[key]; + } + ; + Stringmap.prototype.keys = function(){ + return Object.getOwnPropertyNames(this.obj); + } + ; + Stringmap.prototype.entries = function(){ + var keys_0 = this.keys(); + var map_0 = this; + var nextIndex = 0; + return {next:function(){ + if (nextIndex >= keys_0.length) + return {done:true}; + var key = keys_0[nextIndex++]; + return {value:[key, map_0.get(key)], done:false}; + } + }; + } + ; + if (!canHandleObjectCreateAndProto()) { + Stringmap.prototype.createObject = function(){ + return {}; + } + ; + Stringmap.prototype.get = function(key){ + return this.obj[':' + key]; + } + ; + Stringmap.prototype.set = function(key, value_0){ + this.obj[':' + key] = value_0; + } + ; + Stringmap.prototype['delete'] = function(key){ + delete this.obj[':' + key]; + } + ; + Stringmap.prototype.keys = function(){ + var result = []; + for (var key in this.obj) { + key.charCodeAt(0) == 58 && result.push(key.substring(1)); + } + return result; + } + ; + } + return Stringmap; +} + +function newJsMap(){ + $clinit_InternalJsMapFactory(); + return new jsMapCtor; +} + +var jsMapCtor; +function $contains_7(this$static, key){ + return !(this$static.backingMap.get(key) === undefined); +} + +function $get_15(this$static, key){ + return this$static.backingMap.get(key); +} + +function $put_10(this$static, key, value_0){ + var oldValue; + oldValue = this$static.backingMap.get(key); + this$static.backingMap.set(key, value_0 === undefined?null:value_0); + if (oldValue === undefined) { + ++this$static.size_0; + ++this$static.host.modCount; + } + else { + ++this$static.valueMod; + } + return oldValue; +} + +function $remove_20(this$static, key){ + var value_0; + value_0 = this$static.backingMap.get(key); + if (value_0 === undefined) { + ++this$static.valueMod; + } + else { + $delete_1(this$static.backingMap, key); + --this$static.size_0; + ++this$static.host.modCount; + } + return value_0; +} + +function InternalStringMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1060, 1, $intern_23, InternalStringMap); +_.forEach_0 = function forEach_22(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_61(){ + return new InternalStringMap$1(this); +} +; +_.size_0 = 0; +_.valueMod = 0; +var Ljava_util_InternalStringMap_2_classLit = createForClass('java.util', 'InternalStringMap', 1060); +function InternalStringMap$1(this$0){ + this.this$01 = this$0; + this.entries_0 = this.this$01.backingMap.entries(); + this.current = this.entries_0.next(); +} + +defineClass(725, 1, $intern_6, InternalStringMap$1); +_.forEachRemaining = function forEachRemaining_29(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_32(){ + return this.last = this.current , this.current = this.entries_0.next() , new InternalStringMap$2(this.this$01, this.last, this.this$01.valueMod); +} +; +_.hasNext_0 = function hasNext_31(){ + return !this.current.done; +} +; +_.remove = function remove_79(){ + $remove_20(this.this$01, this.last.value[0]); +} +; +var Ljava_util_InternalStringMap$1_2_classLit = createForClass('java.util', 'InternalStringMap/1', 725); +function InternalStringMap$2(this$0, val$entry, val$lastValueMod){ + this.this$01 = this$0; + this.val$entry2 = val$entry; + this.val$lastValueMod3 = val$lastValueMod; +} + +defineClass(1061, 2082, $intern_70, InternalStringMap$2); +_.getKey = function getKey_7(){ + return this.val$entry2.value[0]; +} +; +_.getValue = function getValue_9(){ + if (this.this$01.valueMod != this.val$lastValueMod3) { + return $get_15(this.this$01, this.val$entry2.value[0]); + } + return this.val$entry2.value[1]; +} +; +_.setValue = function setValue_10(object){ + return $put_10(this.this$01, this.val$entry2.value[0], object); +} +; +_.val$lastValueMod3 = 0; +var Ljava_util_InternalStringMap$2_2_classLit = createForClass('java.util', 'InternalStringMap/2', 1061); +function $$init_2(this$static){ + this$static.head = new LinkedHashMap$ChainEntry(this$static); + this$static.map_0 = new HashMap; +} + +function $clear_7(this$static){ + $reset(this$static.map_0); + this$static.head.prev = this$static.head; + this$static.head.next_0 = this$static.head; +} + +function $containsKey_6(this$static, key){ + return $containsKey_3(this$static.map_0, key); +} + +function $get_16(this$static, key){ + var entry; + entry = castTo($get_10(this$static.map_0, key), 400); + if (entry) { + $recordAccess(this$static, entry); + return entry.value_0; + } + return null; +} + +function $put_11(this$static, key, value_0){ + var newEntry, old, oldValue; + old = castTo($get_10(this$static.map_0, key), 400); + if (!old) { + newEntry = new LinkedHashMap$ChainEntry_0(this$static, key, value_0); + $put_6(this$static.map_0, key, newEntry); + $addToEnd(newEntry); + return null; + } + else { + oldValue = $setValue_0(old, value_0); + $recordAccess(this$static, old); + return oldValue; + } +} + +function $recordAccess(this$static, entry){ + if (this$static.accessOrder) { + $remove_23(entry); + $addToEnd(entry); + } +} + +function $remove_22(this$static, key){ + var entry; + entry = castTo($remove_6(this$static.map_0, key), 400); + if (entry) { + $remove_23(entry); + return entry.value_0; + } + return null; +} + +function LinkedHashMap(){ + HashMap.call(this); + $$init_2(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +function LinkedHashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); + $$init_2(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +defineClass(215, 45, $intern_76, LinkedHashMap, LinkedHashMap_0); +_.clear_0 = function clear_43(){ + $clear_7(this); +} +; +_.containsKey = function containsKey_14(key){ + return $containsKey_6(this, key); +} +; +_.containsValue = function containsValue_7(value_0){ + var node; + node = this.head.next_0; + while (node != this.head) { + if (equals_57(node.value_0, value_0)) { + return true; + } + node = node.next_0; + } + return false; +} +; +_.entrySet_0 = function entrySet_7(){ + return new LinkedHashMap$EntrySet(this); +} +; +_.get_3 = function get_44(key){ + return $get_16(this, key); +} +; +_.put = function put_8(key, value_0){ + return $put_11(this, key, value_0); +} +; +_.remove_0 = function remove_80(key){ + return $remove_22(this, key); +} +; +_.size_1 = function size_57(){ + return $size_2(this.map_0); +} +; +_.accessOrder = false; +var Ljava_util_LinkedHashMap_2_classLit = createForClass('java.util', 'LinkedHashMap', 215); +function $addToEnd(this$static){ + var tail; + tail = this$static.this$01.head.prev; + this$static.prev = tail; + this$static.next_0 = this$static.this$01.head; + tail.next_0 = this$static.this$01.head.prev = this$static; +} + +function $remove_23(this$static){ + this$static.next_0.prev = this$static.prev; + this$static.prev.next_0 = this$static.next_0; + this$static.next_0 = this$static.prev = null; +} + +function LinkedHashMap$ChainEntry(this$0){ + LinkedHashMap$ChainEntry_0.call(this, this$0, null, null); +} + +function LinkedHashMap$ChainEntry_0(this$0, key, value_0){ + this.this$01 = this$0; + AbstractMap$SimpleEntry.call(this, key, value_0); +} + +defineClass(400, 397, {494:1, 397:1, 400:1, 44:1}, LinkedHashMap$ChainEntry, LinkedHashMap$ChainEntry_0); +var Ljava_util_LinkedHashMap$ChainEntry_2_classLit = createForClass('java.util', 'LinkedHashMap/ChainEntry', 400); +function $contains_8(this$static, o){ + if (instanceOf(o, 44)) { + return $containsEntry_0(this$static.this$01, castTo(o, 44)); + } + return false; +} + +function LinkedHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(715, $intern_9, $intern_10, LinkedHashMap$EntrySet); +_.clear_0 = function clear_44(){ + $clear_7(this.this$01); +} +; +_.contains = function contains_44(o){ + return $contains_8(this, o); +} +; +_.iterator_0 = function iterator_62(){ + return new LinkedHashMap$EntrySet$EntryIterator(this); +} +; +_.remove_1 = function remove_81(entry){ + var key; + if ($contains_8(this, entry)) { + key = castTo(entry, 44).getKey(); + $remove_22(this.this$01, key); + return true; + } + return false; +} +; +_.size_1 = function size_58(){ + return $size_2(this.this$01.map_0); +} +; +var Ljava_util_LinkedHashMap$EntrySet_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet', 715); +function $next_8(this$static){ + checkCriticalConcurrentModification(this$static.this$11.this$01.map_0.modCount, this$static.lastModCount); + checkCriticalElement(this$static.next_0 != this$static.this$11.this$01.head); + this$static.last = this$static.next_0; + this$static.next_0 = this$static.next_0.next_0; + return this$static.last; +} + +function LinkedHashMap$EntrySet$EntryIterator(this$1){ + this.this$11 = this$1; + this.next_0 = this$1.this$01.head.next_0; + this.lastModCount = this$1.this$01.map_0.modCount; +} + +defineClass(716, 1, $intern_6, LinkedHashMap$EntrySet$EntryIterator); +_.forEachRemaining = function forEachRemaining_30(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_33(){ + return $next_8(this); +} +; +_.hasNext_0 = function hasNext_32(){ + return this.next_0 != this.this$11.this$01.head; +} +; +_.remove = function remove_82(){ + checkCriticalState(!!this.last); + checkCriticalConcurrentModification(this.this$11.this$01.map_0.modCount, this.lastModCount); + $remove_23(this.last); + $remove_6(this.this$11.this$01.map_0, this.last.key); + this.lastModCount = this.this$11.this$01.map_0.modCount; + this.last = null; +} +; +_.lastModCount = 0; +var Ljava_util_LinkedHashMap$EntrySet$EntryIterator_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet/EntryIterator', 716); +function LinkedHashSet(){ + HashSet_2.call(this, new LinkedHashMap); +} + +function LinkedHashSet_0(ignored){ + HashSet_2.call(this, new LinkedHashMap_0(ignored)); +} + +function LinkedHashSet_1(c){ + HashSet_2.call(this, new LinkedHashMap); + $addAll(this, c); +} + +defineClass(174, 49, $intern_77, LinkedHashSet, LinkedHashSet_0, LinkedHashSet_1); +var Ljava_util_LinkedHashSet_2_classLit = createForClass('java.util', 'LinkedHashSet', 174); +function $$init_3(this$static){ + this$static.header = new LinkedList$Node; + this$static.tail = new LinkedList$Node; +} + +function $add_7(this$static, o){ + $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); + return true; +} + +function $addFirst_0(this$static, o){ + $addNode_0(this$static, o, this$static.header, this$static.header.next_0); +} + +function $addLast_0(this$static, o){ + $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); +} + +function $addNode_0(this$static, o, prev, next){ + var node; + node = new LinkedList$Node; + node.value_0 = o; + node.prev = prev; + node.next_0 = next; + next.prev = prev.next_0 = node; + ++this$static.size_0; +} + +function $getFirst(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return this$static.header.next_0.value_0; +} + +function $getLast(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return this$static.tail.prev.value_0; +} + +function $listIterator_2(this$static, index_0){ + var i, node; + checkCriticalPositionIndex(index_0, this$static.size_0); + if (index_0 >= this$static.size_0 >> 1) { + node = this$static.tail; + for (i = this$static.size_0; i > index_0; --i) { + node = node.prev; + } + } + else { + node = this$static.header.next_0; + for (i = 0; i < index_0; ++i) { + node = node.next_0; + } + } + return new LinkedList$ListIteratorImpl(this$static, index_0, node); +} + +function $poll(this$static){ + return this$static.size_0 == 0?null:(checkCriticalElement(this$static.size_0 != 0) , $removeNode_0(this$static, this$static.header.next_0)); +} + +function $removeFirst_0(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return $removeNode_0(this$static, this$static.header.next_0); +} + +function $removeLast_0(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return $removeNode_0(this$static, this$static.tail.prev); +} + +function $removeNode_0(this$static, node){ + var oldValue; + oldValue = node.value_0; + node.next_0.prev = node.prev; + node.prev.next_0 = node.next_0; + node.next_0 = node.prev = null; + node.value_0 = null; + --this$static.size_0; + return oldValue; +} + +function $reset_0(this$static){ + this$static.header.next_0 = this$static.tail; + this$static.tail.prev = this$static.header; + this$static.header.prev = this$static.tail.next_0 = null; + this$static.size_0 = 0; +} + +function LinkedList(){ + $$init_3(this); + $reset_0(this); +} + +function LinkedList_0(c){ + $$init_3(this); + $reset_0(this); + $addAll(this, c); +} + +defineClass(67, 2062, {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 67:1, 15:1}, LinkedList, LinkedList_0); +_.add_2 = function add_36(o){ + return $add_7(this, o); +} +; +_.clear_0 = function clear_45(){ + $reset_0(this); +} +; +_.listIterator_1 = function listIterator_14(index_0){ + return $listIterator_2(this, index_0); +} +; +_.size_1 = function size_59(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_LinkedList_2_classLit = createForClass('java.util', 'LinkedList', 67); +function $add_8(this$static, o){ + $addNode_0(this$static.this$01, o, this$static.currentNode.prev, this$static.currentNode); + ++this$static.currentIndex; + this$static.lastNode = null; +} + +function $hasNext_5(this$static){ + return this$static.currentNode != this$static.this$01.tail; +} + +function $next_9(this$static){ + checkCriticalElement(this$static.currentNode != this$static.this$01.tail); + this$static.lastNode = this$static.currentNode; + this$static.currentNode = this$static.currentNode.next_0; + ++this$static.currentIndex; + return this$static.lastNode.value_0; +} + +function $previous_0(this$static){ + checkCriticalElement(this$static.currentNode.prev != this$static.this$01.header); + this$static.lastNode = this$static.currentNode = this$static.currentNode.prev; + --this$static.currentIndex; + return this$static.lastNode.value_0; +} + +function $remove_24(this$static){ + var nextNode; + checkCriticalState(!!this$static.lastNode); + nextNode = this$static.lastNode.next_0; + $removeNode_0(this$static.this$01, this$static.lastNode); + this$static.currentNode == this$static.lastNode?(this$static.currentNode = nextNode):--this$static.currentIndex; + this$static.lastNode = null; +} + +function LinkedList$ListIteratorImpl(this$0, index_0, startNode){ + this.this$01 = this$0; + this.currentNode = startNode; + this.currentIndex = index_0; +} + +defineClass(981, 1, $intern_14, LinkedList$ListIteratorImpl); +_.forEachRemaining = function forEachRemaining_31(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_37(o){ + $add_8(this, o); +} +; +_.hasNext_0 = function hasNext_33(){ + return $hasNext_5(this); +} +; +_.hasPrevious = function hasPrevious_6(){ + return this.currentNode.prev != this.this$01.header; +} +; +_.next_1 = function next_34(){ + return $next_9(this); +} +; +_.nextIndex_0 = function nextIndex_7(){ + return this.currentIndex; +} +; +_.previous_0 = function previous_7(){ + return $previous_0(this); +} +; +_.previousIndex = function previousIndex_6(){ + return this.currentIndex - 1; +} +; +_.remove = function remove_83(){ + $remove_24(this); +} +; +_.set_1 = function set_18(o){ + checkCriticalState(!!this.lastNode); + this.lastNode.value_0 = o; +} +; +_.currentIndex = 0; +_.lastNode = null; +var Ljava_util_LinkedList$ListIteratorImpl_2_classLit = createForClass('java.util', 'LinkedList/ListIteratorImpl', 981); +function LinkedList$Node(){ +} + +defineClass(617, 1, {}, LinkedList$Node); +var Ljava_util_LinkedList$Node_2_classLit = createForClass('java.util', 'LinkedList/Node', 617); +function $clinit_Locale(){ + $clinit_Locale = emptyMethod; + ROOT = new Locale$1; + defaultLocale = new Locale$4; +} + +defineClass(2057, 1, {}); +var ROOT, defaultLocale; +var Ljava_util_Locale_2_classLit = createForClass('java.util', 'Locale', 2057); +function Locale$1(){ +} + +defineClass(873, 2057, {}, Locale$1); +_.toString_0 = function toString_67(){ + return ''; +} +; +var Ljava_util_Locale$1_2_classLit = createForClass('java.util', 'Locale/1', 873); +function Locale$4(){ +} + +defineClass(874, 2057, {}, Locale$4); +_.toString_0 = function toString_68(){ + return 'unknown'; +} +; +var Ljava_util_Locale$4_2_classLit = createForClass('java.util', 'Locale/4', 874); +function NoSuchElementException(){ + RuntimeException.call(this); +} + +function NoSuchElementException_0(){ + RuntimeException_0.call(this, 'There is no more element.'); +} + +defineClass(112, 63, {3:1, 103:1, 63:1, 82:1, 112:1}, NoSuchElementException, NoSuchElementException_0); +var Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util', 'NoSuchElementException', 112); +function equals_57(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function hashCode_55(o){ + return o != null?hashCode__I__devirtual$(o):0; +} + +function requireNonNull(obj){ + if (obj == null) { + throw toJs(new NullPointerException); + } + return obj; +} + +function requireNonNull_0(obj, message){ + if (obj == null) { + throw toJs(new NullPointerException_0(message)); + } + return obj; +} + +function $clinit_Optional(){ + $clinit_Optional = emptyMethod; + EMPTY_3 = new Optional(null); +} + +function $get_17(this$static){ + checkCriticalElement(this$static.ref != null); + return this$static.ref; +} + +function $ifPresent(this$static, consumer){ + this$static.ref != null && $accept_4(consumer, this$static.ref); +} + +function $orElse(this$static){ + return this$static.ref != null?this$static.ref:null; +} + +function Optional(ref){ + $clinit_Optional(); + this.ref = ref; +} + +defineClass(475, 1, {475:1}, Optional); +_.equals_0 = function equals_58(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 475)) { + return false; + } + other = castTo(obj, 475); + return equals_57(this.ref, other.ref); +} +; +_.hashCode_1 = function hashCode_56(){ + return hashCode_55(this.ref); +} +; +_.toString_0 = function toString_69(){ + return this.ref != null?'Optional.of(' + valueOf_6(this.ref) + ')':'Optional.empty()'; +} +; +var EMPTY_3; +var Ljava_util_Optional_2_classLit = createForClass('java.util', 'Optional', 475); +function $clinit_OptionalDouble(){ + $clinit_OptionalDouble = emptyMethod; + EMPTY_4 = new OptionalDouble; +} + +function $getAsDouble(this$static){ + checkCriticalElement(this$static.present); + return this$static.ref; +} + +function $orElse_0(this$static){ + return this$static.present?this$static.ref:0; +} + +function $orElseGet(this$static, other){ + return this$static.present?this$static.ref:other.getAsDouble(); +} + +function OptionalDouble(){ + this.ref = 0; + this.present = false; +} + +function OptionalDouble_0(value_0){ + $clinit_OptionalDouble(); + this.ref = value_0; + this.present = true; +} + +defineClass(414, 1, {414:1}, OptionalDouble, OptionalDouble_0); +_.equals_0 = function equals_59(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 414)) { + return false; + } + other = castTo(obj, 414); + return this.present == other.present && compare_4(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_57(){ + return this.present?round_int(this.ref):0; +} +; +_.toString_0 = function toString_70(){ + return this.present?'OptionalDouble.of(' + ('' + this.ref) + ')':'OptionalDouble.empty()'; +} +; +_.present = false; +_.ref = 0; +var EMPTY_4; +var Ljava_util_OptionalDouble_2_classLit = createForClass('java.util', 'OptionalDouble', 414); +function $clinit_OptionalInt(){ + $clinit_OptionalInt = emptyMethod; + EMPTY_5 = new OptionalInt; +} + +function $orElse_1(this$static){ + return this$static.present?this$static.ref:0; +} + +function OptionalInt(){ + this.ref = 0; + this.present = false; +} + +function OptionalInt_0(value_0){ + $clinit_OptionalInt(); + this.ref = value_0; + this.present = true; +} + +defineClass(524, 1, {524:1}, OptionalInt, OptionalInt_0); +_.equals_0 = function equals_60(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 524)) { + return false; + } + other = castTo(obj, 524); + return this.present == other.present && compare_5(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_58(){ + return this.present?this.ref:0; +} +; +_.toString_0 = function toString_71(){ + return this.present?'OptionalInt.of(' + ('' + this.ref) + ')':'OptionalInt.empty()'; +} +; +_.present = false; +_.ref = 0; +var EMPTY_5; +var Ljava_util_OptionalInt_2_classLit = createForClass('java.util', 'OptionalInt', 524); +function $addAll_4(this$static, c){ + var e, e$iterator, oldSize; + checkCriticalNotNull(c); + checkCriticalArgument(c != this$static); + oldSize = this$static.heap.array.length; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $add_3(this$static.heap, checkCriticalNotNull(e)); + } + if (oldSize != this$static.heap.array.length) { + $makeHeap(this$static, 0); + return true; + } + return false; +} + +function $makeHeap(this$static, node){ + var rightChild; + if (node * 2 + 1 >= this$static.heap.array.length) { + return; + } + $makeHeap(this$static, 2 * node + 1); + rightChild = 2 * node + 2; + rightChild < this$static.heap.array.length && $makeHeap(this$static, rightChild); + $mergeHeaps(this$static, node); +} + +function $mergeHeaps(this$static, node){ + var heapSize, smallestChild, value_0, leftChild, rightChild, smallestChild_0; + heapSize = this$static.heap.array.length; + value_0 = $get_11(this$static.heap, node); + while (node * 2 + 1 < heapSize) { + smallestChild = (leftChild = 2 * node + 1 , rightChild = leftChild + 1 , smallestChild_0 = leftChild , rightChild < heapSize && this$static.cmp.compare_1($get_11(this$static.heap, rightChild), $get_11(this$static.heap, leftChild)) < 0 && (smallestChild_0 = rightChild) , smallestChild_0); + if (this$static.cmp.compare_1(value_0, $get_11(this$static.heap, smallestChild)) < 0) { + break; + } + $set_1(this$static.heap, node, $get_11(this$static.heap, smallestChild)); + node = smallestChild; + } + $set_1(this$static.heap, node, value_0); +} + +function $offer(this$static, e){ + var childNode, node; + checkCriticalNotNull(e); + node = this$static.heap.array.length; + $add_3(this$static.heap, e); + while (node > 0) { + childNode = node; + node = (node - 1) / 2 | 0; + if (this$static.cmp.compare_1($get_11(this$static.heap, node), e) <= 0) { + $set_1(this$static.heap, childNode, e); + return true; + } + $set_1(this$static.heap, childNode, $get_11(this$static.heap, node)); + } + $set_1(this$static.heap, node, e); + return true; +} + +function $poll_0(this$static){ + var value_0; + value_0 = this$static.heap.array.length == 0?null:$get_11(this$static.heap, 0); + value_0 != null && $removeAtIndex_0(this$static, 0); + return value_0; +} + +function $remove_25(this$static, o){ + var index_0; + index_0 = o == null?-1:$indexOf_3(this$static.heap, o, 0); + if (index_0 < 0) { + return false; + } + $removeAtIndex_0(this$static, index_0); + return true; +} + +function $removeAtIndex_0(this$static, index_0){ + var lastValue; + lastValue = $remove_11(this$static.heap, this$static.heap.array.length - 1); + if (index_0 < this$static.heap.array.length) { + $set_1(this$static.heap, index_0, lastValue); + $mergeHeaps(this$static, index_0); + } +} + +function PriorityQueue(comparator){ + this.heap = new ArrayList_0(11); + this.cmp = ($clinit_Comparators() , comparator); +} + +defineClass(510, 2103, $intern_8, PriorityQueue); +_.addAll = function addAll_18(c){ + return $addAll_4(this, c); +} +; +_.clear_0 = function clear_46(){ + setLength(this.heap.array, 0); +} +; +_.contains = function contains_45(o){ + return (o == null?-1:$indexOf_3(this.heap, o, 0)) != -1; +} +; +_.iterator_0 = function iterator_63(){ + return new PriorityQueue$1(this); +} +; +_.remove_1 = function remove_84(o){ + return $remove_25(this, o); +} +; +_.size_1 = function size_60(){ + return this.heap.array.length; +} +; +_.spliterator_0 = function spliterator_33(){ + return new Spliterators$IteratorSpliterator(this, 256); +} +; +_.toArray = function toArray_19(){ + return clone_0(this.heap.array); +} +; +_.toArray_0 = function toArray_20(a){ + return $toArray_1(this.heap, a); +} +; +var Ljava_util_PriorityQueue_2_classLit = createForClass('java.util', 'PriorityQueue', 510); +function PriorityQueue$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1296, 1, $intern_6, PriorityQueue$1); +_.forEachRemaining = function forEachRemaining_32(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_34(){ + return this.i < this.this$01.heap.array.length; +} +; +_.next_1 = function next_35(){ + checkCriticalElement(this.i < this.this$01.heap.array.length); + this.last = this.i++; + return $get_11(this.this$01.heap, this.last); +} +; +_.remove = function remove_85(){ + checkCriticalState(this.last != -1); + $removeAtIndex_0(this.this$01, this.i = this.last); + this.last = -1; +} +; +_.i = 0; +_.last = -1; +var Ljava_util_PriorityQueue$1_2_classLit = createForClass('java.util', 'PriorityQueue/1', 1296); +function $clinit_Random(){ + $clinit_Random = emptyMethod; + var i, i0, twoToTheXMinus24Tmp, twoToTheXMinus48Tmp; + twoToTheXMinus24 = initUnidimensionalArray(D_classLit, $intern_66, 28, 25, 15, 1); + twoToTheXMinus48 = initUnidimensionalArray(D_classLit, $intern_66, 28, 33, 15, 1); + twoToTheXMinus48Tmp = 1.52587890625E-5; + for (i0 = 32; i0 >= 0; i0--) { + twoToTheXMinus48[i0] = twoToTheXMinus48Tmp; + twoToTheXMinus48Tmp *= 0.5; + } + twoToTheXMinus24Tmp = 1; + for (i = 24; i >= 0; i--) { + twoToTheXMinus24[i] = twoToTheXMinus24Tmp; + twoToTheXMinus24Tmp *= 0.5; + } +} + +function $nextDouble(this$static){ + return $nextInternal(this$static, 26) * $intern_78 + $nextInternal(this$static, 27) * $intern_79; +} + +function $nextInt(this$static, n){ + var bits, val; + checkCriticalArgument(n > 0); + if ((n & -n) == n) { + return round_int(n * $nextInternal(this$static, 31) * 4.6566128730773926E-10); + } + do { + bits = $nextInternal(this$static, 31); + val = bits % n; + } + while (bits - val + (n - 1) < 0); + return round_int(val); +} + +function $nextInternal(this$static, bits){ + var carry, dval, h, hi, l, lo; + hi = this$static.seedhi * $intern_80 + this$static.seedlo * 1502; + lo = this$static.seedlo * $intern_80 + 11; + carry = $wnd.Math.floor(lo * $intern_81); + hi += carry; + lo -= carry * $intern_82; + hi %= $intern_82; + this$static.seedhi = hi; + this$static.seedlo = lo; + if (bits <= 24) { + return $wnd.Math.floor(this$static.seedhi * twoToTheXMinus24[bits]); + } + else { + h = this$static.seedhi * (1 << bits - 24); + l = $wnd.Math.floor(this$static.seedlo * twoToTheXMinus48[bits]); + dval = h + l; + dval >= 2147483648 && (dval -= 4294967296); + return dval; + } +} + +function $nextLong(this$static){ + return add_20(shl_0(fromDouble_0($nextInternal(this$static, 32)), 32), fromDouble_0($nextInternal(this$static, 32))); +} + +function $setSeed(this$static, seedhi, seedlo){ + this$static.seedhi = seedhi ^ 1502; + this$static.seedlo = seedlo ^ $intern_80; +} + +function $setSeed_0(this$static, seed){ + $setSeed(this$static, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); +} + +function Random(){ + $clinit_Random(); + var hi, lo, seed; + seed = uniqueSeed++ + Date.now(); + hi = round_int($wnd.Math.floor(seed * $intern_81)) & $intern_83; + lo = round_int(seed - hi * $intern_82); + this.seedhi = hi ^ 1502; + this.seedlo = lo ^ $intern_80; +} + +function Random_0(seed){ + $clinit_Random(); + $setSeed(this, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); +} + +defineClass(234, 1, {234:1}, Random, Random_0); +_.seedhi = 0; +_.seedlo = 0; +var twoToTheXMinus24, twoToTheXMinus48, uniqueSeed = 0; +var Ljava_util_Random_2_classLit = createForClass('java.util', 'Random', 234); +function $initIterator(this$static){ + if (!this$static.it) { + this$static.it = this$static.collection.iterator_0(); + this$static.estimateSize = this$static.collection.size_1(); + } +} + +function $tryAdvance(this$static, consumer){ + checkCriticalNotNull(consumer); + $initIterator(this$static); + if (this$static.it.hasNext_0()) { + consumer.accept(this$static.it.next_1()); + return true; + } + return false; +} + +function Spliterators$IteratorSpliterator(collection, characteristics){ + this.collection = (checkCriticalNotNull(collection) , collection); + this.characteristics = (characteristics & $intern_62) == 0?characteristics | 64 | $intern_17:characteristics; +} + +function Spliterators$IteratorSpliterator_0(it){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 0; + this.estimateSize = $intern_21; +} + +function Spliterators$IteratorSpliterator_1(it, size_0){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 16449; + this.estimateSize = size_0; +} + +defineClass(25, 1, $intern_18, Spliterators$IteratorSpliterator, Spliterators$IteratorSpliterator_0, Spliterators$IteratorSpliterator_1); +_.hasCharacteristics = function hasCharacteristics_2(characteristics){ + return (this.characteristics & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_3(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_2(){ + $initIterator(this); + return this.estimateSize; +} +; +_.forEachRemaining = function forEachRemaining_33(consumer){ + $initIterator(this); + this.it.forEachRemaining(consumer); +} +; +_.tryAdvance = function tryAdvance_2(consumer){ + return $tryAdvance(this, consumer); +} +; +_.characteristics = 0; +_.estimateSize = 0; +var Ljava_util_Spliterators$IteratorSpliterator_2_classLit = createForClass('java.util', 'Spliterators/IteratorSpliterator', 25); +function SortedSet$1($anonymous0){ + Spliterators$IteratorSpliterator.call(this, $anonymous0, 21); +} + +defineClass(495, 25, $intern_18, SortedSet$1); +var Ljava_util_SortedSet$1_2_classLit = createForClass('java.util', 'SortedSet/1', 495); +function $forEachRemaining_1(this$static, consumer){ + while (this$static.tryAdvance_0(consumer)) + ; +} + +function Spliterator$OfDouble$0methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(611, 1, $intern_75, Spliterator$OfDouble$0methodref$accept$Type); +_.accept_2 = function accept_17(arg0){ + this.$$outer_0.accept(arg0); +} +; +var Ljava_util_Spliterator$OfDouble$0methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/0methodref$accept$Type', 611); +function Spliterator$OfDouble$1methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(612, 1, $intern_75, Spliterator$OfDouble$1methodref$accept$Type); +_.accept_2 = function accept_18(arg0){ + this.$$outer_0.accept(arg0); +} +; +var Ljava_util_Spliterator$OfDouble$1methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/1methodref$accept$Type', 612); +function Spliterator$OfInt$2methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(613, 1, $intern_20, Spliterator$OfInt$2methodref$accept$Type); +_.accept_0 = function accept_19(arg0){ + this.$$outer_0.accept(valueOf_3(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$2methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/2methodref$accept$Type', 613); +function Spliterator$OfInt$3methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(614, 1, $intern_20, Spliterator$OfInt$3methodref$accept$Type); +_.accept_0 = function accept_20(arg0){ + this.$$outer_0.accept(valueOf_3(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$3methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/3methodref$accept$Type', 614); +function checkCriticalArrayBounds(end, length_0){ + if (0 > end || end > length_0) { + throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: 0, toIndex: ' + end + ', length: ' + length_0)); + } +} + +function Spliterators$BaseSpliterator(size_0, characteristics){ + this.sizeEstimate = size_0; + this.characteristics = (characteristics & 64) != 0?characteristics | $intern_17:characteristics; +} + +defineClass(625, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_34(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.hasCharacteristics = function hasCharacteristics_3(characteristics){ + return (this.characteristics & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_4(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_3(){ + return this.sizeEstimate; +} +; +_.characteristics = 0; +_.sizeEstimate = 0; +var Ljava_util_Spliterators$BaseSpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseSpliterator', 625); +function Spliterators$AbstractDoubleSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(736, 625, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_35(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_36(consumer){ + instanceOf(consumer, 189)?$forEachRemaining_1(this, castTo(consumer, 189)):$forEachRemaining_1(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_3(consumer){ + return instanceOf(consumer, 189)?this.tryAdvance_0(castTo(consumer, 189)):this.tryAdvance_0(new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractDoubleSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractDoubleSpliterator', 736); +function Spliterators$AbstractIntSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(735, 625, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_37(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_38(consumer){ + instanceOf(consumer, 202)?$forEachRemaining_1(this, castTo(consumer, 202)):$forEachRemaining_1(this, new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_4(consumer){ + return instanceOf(consumer, 202)?this.tryAdvance_0(castTo(consumer, 202)):this.tryAdvance_0(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractIntSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractIntSpliterator', 735); +function Spliterators$AbstractSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(500, 625, $intern_18); +var Ljava_util_Spliterators$AbstractSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractSpliterator', 500); +function $forEachRemaining_2(this$static, consumer){ + checkCriticalNotNull(consumer); + while (this$static.index_0 < this$static.limit) { + this$static.consume(consumer, this$static.index_0++); + } +} + +function $tryAdvance_0(this$static, consumer){ + checkCriticalNotNull(consumer); + if (this$static.index_0 < this$static.limit) { + this$static.consume(consumer, this$static.index_0++); + return true; + } + return false; +} + +function Spliterators$BaseArraySpliterator(limit, characteristics){ + this.index_0 = 0; + this.limit = limit; + this.characteristics = characteristics | 64 | $intern_17; +} + +defineClass(706, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_39(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.hasCharacteristics = function hasCharacteristics_4(characteristics){ + return (this.characteristics & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_5(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_4(){ + return this.limit - this.index_0; +} +; +_.characteristics = 0; +_.index_0 = 0; +_.limit = 0; +var Ljava_util_Spliterators$BaseArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseArraySpliterator', 706); +function $consume(this$static, consumer, index_0){ + consumer.accept(this$static.array[index_0]); +} + +function Spliterators$ArraySpliterator(array, limit){ + Spliterators$BaseArraySpliterator.call(this, limit, 1040); + this.array = array; +} + +defineClass(960, 706, $intern_18, Spliterators$ArraySpliterator); +_.consume = function consume(consumer, index_0){ + $consume(this, castTo(consumer, 41), index_0); +} +; +_.forEachRemaining = function forEachRemaining_40(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.tryAdvance = function tryAdvance_5(consumer){ + return $tryAdvance_0(this, consumer); +} +; +var Ljava_util_Spliterators$ArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/ArraySpliterator', 960); +function $consume_0(this$static, consumer, index_0){ + consumer.accept_2(this$static.array[index_0]); +} + +function Spliterators$DoubleArraySpliterator(array, characteristics){ + Spliterators$DoubleArraySpliterator_0.call(this, array, array.length, characteristics); +} + +function Spliterators$DoubleArraySpliterator_0(array, limit, characteristics){ + Spliterators$BaseArraySpliterator.call(this, limit, characteristics); + this.array = array; +} + +defineClass(707, 706, $intern_18, Spliterators$DoubleArraySpliterator); +_.consume = function consume_0(consumer, index_0){ + $consume_0(this, castTo(consumer, 189), index_0); +} +; +_.forEachRemaining_0 = function forEachRemaining_41(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_42(consumer){ + instanceOf(consumer, 189)?$forEachRemaining_2(this, castTo(consumer, 189)):$forEachRemaining_2(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance_0 = function tryAdvance_6(consumer){ + return $tryAdvance_0(this, consumer); +} +; +_.tryAdvance = function tryAdvance_7(consumer){ + return instanceOf(consumer, 189)?$tryAdvance_0(this, castTo(consumer, 189)):$tryAdvance_0(this, new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$DoubleArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/DoubleArraySpliterator', 707); +function $clinit_Spliterators$EmptySpliterator(){ + $clinit_Spliterators$EmptySpliterator = emptyMethod; + $clinit_Spliterators$EmptySpliterator(); + OF_INT = new Spliterators$EmptySpliterator$OfInt; +} + +defineClass(2066, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_43(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.hasCharacteristics = function hasCharacteristics_5(characteristics){ + return (16448 & characteristics) != 0; +} +; +_.characteristics_0 = function characteristics_6(){ + return 16448; +} +; +_.estimateSize_0 = function estimateSize_5(){ + return 0; +} +; +var OF_INT; +var Ljava_util_Spliterators$EmptySpliterator_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator', 2066); +function $forEachRemaining_3(consumer){ + checkCriticalNotNull(consumer); +} + +function $tryAdvance_1(consumer){ + return checkCriticalNotNull(consumer) , false; +} + +function Spliterators$EmptySpliterator$OfInt(){ +} + +defineClass(959, 2066, $intern_18, Spliterators$EmptySpliterator$OfInt); +_.forEachRemaining_0 = function forEachRemaining_44(consumer){ + $forEachRemaining_3(consumer); +} +; +_.forEachRemaining = function forEachRemaining_45(consumer){ + instanceOf(consumer, 202)?$forEachRemaining_3(castTo(consumer, 202)):$forEachRemaining_3(new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance_0 = function tryAdvance_8(consumer){ + return $tryAdvance_1(consumer); +} +; +_.tryAdvance = function tryAdvance_9(consumer){ + return instanceOf(consumer, 202)?$tryAdvance_1(castTo(consumer, 202)):$tryAdvance_1(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$EmptySpliterator$OfInt_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator/OfInt', 959); +function $addElement(this$static, o){ + $add_3(this$static.arrayList, o); +} + +function $elementAt(this$static, index_0){ + return checkArrayElementIndex(index_0, this$static.arrayList.array.length) , $get_11(this$static.arrayList, index_0); +} + +function $setElementAt(this$static, o, index_0){ + checkArrayElementIndex(index_0, this$static.arrayList.array.length); + $set_1(this$static.arrayList, index_0, o); +} + +function Vector(){ + this.arrayList = new ArrayList; +} + +function checkArrayElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new ArrayIndexOutOfBoundsException); + } +} + +defineClass(588, 56, $intern_84, Vector); +_.add_3 = function add_38(index_0, o){ + checkArrayElementIndex(index_0, this.arrayList.array.length + 1); + $add_2(this.arrayList, index_0, o); +} +; +_.add_2 = function add_39(o){ + return $add_3(this.arrayList, o); +} +; +_.addAll_0 = function addAll_19(index_0, c){ + checkArrayElementIndex(index_0, this.arrayList.array.length + 1); + return $addAll_1(this.arrayList, index_0, c); +} +; +_.addAll = function addAll_20(c){ + return $addAll_2(this.arrayList, c); +} +; +_.clear_0 = function clear_47(){ + setLength(this.arrayList.array, 0); +} +; +_.contains = function contains_46(elem){ + return $indexOf_3(this.arrayList, elem, 0) != -1; +} +; +_.containsAll = function containsAll_9(c){ + return $containsAll(this.arrayList, c); +} +; +_.forEach_0 = function forEach_23(consumer){ + $forEach_1(this.arrayList, consumer); +} +; +_.get_0 = function get_45(index_0){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $get_11(this.arrayList, index_0); +} +; +_.indexOf_0 = function indexOf_6(elem){ + return $indexOf_3(this.arrayList, elem, 0); +} +; +_.isEmpty = function isEmpty_24(){ + return this.arrayList.array.length == 0; +} +; +_.iterator_0 = function iterator_64(){ + return new ArrayList$1(this.arrayList); +} +; +_.remove_2 = function remove_86(index_0){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $remove_11(this.arrayList, index_0); +} +; +_.removeRange = function removeRange_2(fromIndex, endIndex){ + $removeRange(this.arrayList, fromIndex, endIndex); +} +; +_.set_2 = function set_19(index_0, elem){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $set_1(this.arrayList, index_0, elem); +} +; +_.size_1 = function size_61(){ + return this.arrayList.array.length; +} +; +_.sort_0 = function sort_8(c){ + $sort(this.arrayList, c); +} +; +_.subList = function subList_8(fromIndex, toIndex){ + return new AbstractList$SubList(this.arrayList, fromIndex, toIndex); +} +; +_.toArray = function toArray_21(){ + return clone_0(this.arrayList.array); +} +; +_.toArray_0 = function toArray_22(a){ + return $toArray_1(this.arrayList, a); +} +; +_.toString_0 = function toString_72(){ + return $toString_2(this.arrayList); +} +; +var Ljava_util_Vector_2_classLit = createForClass('java.util', 'Vector', 588); +function $pop(this$static){ + var sz; + sz = this$static.arrayList.array.length; + if (sz > 0) { + return checkArrayElementIndex(sz - 1, this$static.arrayList.array.length) , $remove_11(this$static.arrayList, sz - 1); + } + else { + throw toJs(new EmptyStackException); + } +} + +function $push(this$static, o){ + $add_3(this$static.arrayList, o); + return o; +} + +function Stack(){ + Vector.call(this); +} + +defineClass(824, 588, $intern_84, Stack); +var Ljava_util_Stack_2_classLit = createForClass('java.util', 'Stack', 824); +function $add_9(this$static, newElement){ + !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); + $append_8(this$static.builder, newElement); + return this$static; +} + +function $merge_0(this$static, other){ + var otherLength; + if (other.builder) { + otherLength = other.builder.string.length; + !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); + $append_9(this$static.builder, other.builder, other.prefix.length, otherLength); + } + return this$static; +} + +function $toString_9(this$static){ + return !this$static.builder?this$static.emptyValue:this$static.suffix.length == 0?this$static.builder.string:this$static.builder.string + ('' + this$static.suffix); +} + +function StringJoiner(delimiter, prefix, suffix){ + this.delimiter = (checkCriticalNotNull(delimiter) , delimiter); + this.prefix = (checkCriticalNotNull(prefix) , prefix); + this.suffix = (checkCriticalNotNull(suffix) , suffix); + this.emptyValue = this.prefix + ('' + this.suffix); +} + +defineClass(213, 1, {213:1}, StringJoiner); +_.toString_0 = function toString_73(){ + return $toString_9(this); +} +; +var Ljava_util_StringJoiner_2_classLit = createForClass('java.util', 'StringJoiner', 213); +function $clear_8(this$static){ + this$static.root = null; + this$static.size_0 = 0; +} + +function $getEntry_1(this$static, key){ + var c, childNum, tree; + tree = this$static.root; + while (tree) { + c = this$static.cmp.compare_1(key, tree.key); + if (c == 0) { + return tree; + } + childNum = c < 0?0:1; + tree = tree.child[childNum]; + } + return null; +} + +function $getFirstEntry(this$static){ + var nextNode, node; + if (!this$static.root) { + return null; + } + node = this$static.root; + while (nextNode = node.child[0]) { + node = nextNode; + } + return node; +} + +function $getLastEntry(this$static){ + var nextNode, node; + if (!this$static.root) { + return null; + } + node = this$static.root; + while (nextNode = node.child[1]) { + node = nextNode; + } + return node; +} + +function $getNodeAfter(this$static, key, inclusive){ + var c, foundNode, node; + foundNode = null; + node = this$static.root; + while (node) { + c = this$static.cmp.compare_1(key, node.key); + if (inclusive && c == 0) { + return node; + } + if (c >= 0) { + node = node.child[1]; + } + else { + foundNode = node; + node = node.child[0]; + } + } + return foundNode; +} + +function $getNodeBefore(this$static, key, inclusive){ + var c, foundNode, node; + foundNode = null; + node = this$static.root; + while (node) { + c = this$static.cmp.compare_1(key, node.key); + if (inclusive && c == 0) { + return node; + } + if (c <= 0) { + node = node.child[0]; + } + else { + foundNode = node; + node = node.child[1]; + } + } + return foundNode; +} + +function $headMap(this$static, toKey, inclusive){ + return new TreeMap$SubMap(this$static, ($clinit_TreeMap$SubMapType() , Head), null, false, toKey, inclusive); +} + +function $inOrderAdd(this$static, list, type_0, current, fromKey, fromInclusive, toKey, toInclusive){ + var leftNode, rightNode; + if (!current) { + return; + } + leftNode = current.child[0]; + !!leftNode && $inOrderAdd(this$static, list, type_0, leftNode, fromKey, fromInclusive, toKey, toInclusive); + $inRange(this$static, type_0, current.key, fromKey, fromInclusive, toKey, toInclusive) && list.add_2(current); + rightNode = current.child[1]; + !!rightNode && $inOrderAdd(this$static, list, type_0, rightNode, fromKey, fromInclusive, toKey, toInclusive); +} + +function $inRange(this$static, type_0, key, fromKey, fromInclusive, toKey, toInclusive){ + var compare, compare0; + if (type_0.fromKeyValid() && (compare0 = this$static.cmp.compare_1(key, fromKey) , compare0 < 0 || !fromInclusive && compare0 == 0)) { + return false; + } + if (type_0.toKeyValid() && (compare = this$static.cmp.compare_1(key, toKey) , compare > 0 || !toInclusive && compare == 0)) { + return false; + } + return true; +} + +function $insert_1(this$static, tree, newNode, state){ + var c, childNum; + if (!tree) { + return newNode; + } + else { + c = this$static.cmp.compare_1(newNode.key, tree.key); + if (c == 0) { + state.value_0 = $setValue_0(tree, newNode.value_0); + state.found = true; + return tree; + } + childNum = c < 0?0:1; + tree.child[childNum] = $insert_1(this$static, tree.child[childNum], newNode, state); + if ($isRed(tree.child[childNum])) { + if ($isRed(tree.child[1 - childNum])) { + tree.isRed = true; + tree.child[0].isRed = false; + tree.child[1].isRed = false; + } + else { + $isRed(tree.child[childNum].child[childNum])?(tree = $rotateSingle(tree, 1 - childNum)):$isRed(tree.child[childNum].child[1 - childNum]) && (tree = $rotateDouble(tree, 1 - childNum)); + } + } + } + return tree; +} + +function $isRed(node){ + return !!node && node.isRed; +} + +function $put_12(this$static, key, value_0){ + var node, state; + node = new TreeMap$Node(key, value_0); + state = new TreeMap$State; + this$static.root = $insert_1(this$static, this$static.root, node, state); + state.found || ++this$static.size_0; + this$static.root.isRed = false; + return state.value_0; +} + +function $remove_26(this$static, k){ + var key, state; + key = k; + state = new TreeMap$State; + $removeWithState(this$static, key, state); + return state.value_0; +} + +function $removeEntry(this$static, entry){ + var state; + state = new TreeMap$State; + state.matchValue = true; + state.value_0 = entry.getValue(); + return $removeWithState(this$static, entry.getKey(), state); +} + +function $removeWithState(this$static, key, state){ + var c, dir_0, dir2, found, grandparent, head, last, newNode, node, parent_0, sibling; + if (!this$static.root) { + return false; + } + found = null; + parent_0 = null; + head = new TreeMap$Node(null, null); + dir_0 = 1; + head.child[1] = this$static.root; + node = head; + while (node.child[dir_0]) { + last = dir_0; + grandparent = parent_0; + parent_0 = node; + node = node.child[dir_0]; + c = this$static.cmp.compare_1(key, node.key); + dir_0 = c < 0?0:1; + c == 0 && (!state.matchValue || equals_57(node.value_0, state.value_0)) && (found = node); + if (!(!!node && node.isRed) && !$isRed(node.child[dir_0])) { + if ($isRed(node.child[1 - dir_0])) { + parent_0 = parent_0.child[last] = $rotateSingle(node, dir_0); + } + else if (!$isRed(node.child[1 - dir_0])) { + sibling = parent_0.child[1 - last]; + if (sibling) { + if (!$isRed(sibling.child[1 - last]) && !$isRed(sibling.child[last])) { + parent_0.isRed = false; + sibling.isRed = true; + node.isRed = true; + } + else { + dir2 = grandparent.child[1] == parent_0?1:0; + $isRed(sibling.child[last])?(grandparent.child[dir2] = $rotateDouble(parent_0, last)):$isRed(sibling.child[1 - last]) && (grandparent.child[dir2] = $rotateSingle(parent_0, last)); + node.isRed = grandparent.child[dir2].isRed = true; + grandparent.child[dir2].child[0].isRed = false; + grandparent.child[dir2].child[1].isRed = false; + } + } + } + } + } + if (found) { + state.found = true; + state.value_0 = found.value_0; + if (node != found) { + newNode = new TreeMap$Node(node.key, node.value_0); + $replaceNode(this$static, head, found, newNode); + parent_0 == found && (parent_0 = newNode); + } + parent_0.child[parent_0.child[1] == node?1:0] = node.child[!node.child[0]?1:0]; + --this$static.size_0; + } + this$static.root = head.child[1]; + !!this$static.root && (this$static.root.isRed = false); + return state.found; +} + +function $replaceNode(this$static, head, node, newNode){ + var direction, parent_0; + parent_0 = head; + direction = parent_0.key == null || this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; + while (parent_0.child[direction] != node) { + parent_0 = parent_0.child[direction]; + direction = this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; + } + parent_0.child[direction] = newNode; + newNode.isRed = node.isRed; + newNode.child[0] = node.child[0]; + newNode.child[1] = node.child[1]; + node.child[0] = null; + node.child[1] = null; +} + +function $rotateDouble(tree, rotateDirection){ + var otherChildDir; + otherChildDir = 1 - rotateDirection; + tree.child[otherChildDir] = $rotateSingle(tree.child[otherChildDir], otherChildDir); + return $rotateSingle(tree, rotateDirection); +} + +function $rotateSingle(tree, rotateDirection){ + var otherChildDir, save; + otherChildDir = 1 - rotateDirection; + save = tree.child[otherChildDir]; + tree.child[otherChildDir] = save.child[rotateDirection]; + save.child[rotateDirection] = tree; + tree.isRed = true; + save.isRed = false; + return save; +} + +function $subMap(this$static, fromKey, fromInclusive, toKey, toInclusive){ + return new TreeMap$SubMap(this$static, ($clinit_TreeMap$SubMapType() , Range_1), fromKey, fromInclusive, toKey, toInclusive); +} + +function $tailMap(this$static, fromKey, inclusive){ + return new TreeMap$SubMap(this$static, ($clinit_TreeMap$SubMapType() , Tail), fromKey, inclusive, null, false); +} + +function TreeMap(){ + TreeMap_0.call(this, null); +} + +function TreeMap_0(c){ + this.root = null; + this.cmp = ($clinit_Comparators() , !c?INTERNAL_NATURAL_ORDER:c); +} + +defineClass(553, 2090, {3:1, 85:1, 139:1, 133:1}, TreeMap, TreeMap_0); +_.clear_0 = function clear_48(){ + $clear_8(this); +} +; +_.entryIterator_0 = function entryIterator_5(){ + return new TreeMap$EntryIterator(this); +} +; +_.entrySet_0 = function entrySet_8(){ + return new TreeMap$EntrySet(this); +} +; +_.getCeilingEntry = function getCeilingEntry(key){ + return $getNodeAfter(this, key, true); +} +; +_.getEntry = function getEntry(key){ + return $getEntry_1(this, key); +} +; +_.getFirstEntry = function getFirstEntry(){ + return $getFirstEntry(this); +} +; +_.getFloorEntry = function getFloorEntry(key){ + return $getNodeBefore(this, key, true); +} +; +_.getHigherEntry = function getHigherEntry(key){ + return $getNodeAfter(this, key, false); +} +; +_.getLastEntry = function getLastEntry(){ + return $getLastEntry(this); +} +; +_.getLowerEntry = function getLowerEntry(key){ + return $getNodeBefore(this, key, false); +} +; +_.headMap = function headMap_0(toKey, inclusive){ + return $headMap(this, toKey, inclusive); +} +; +_.put = function put_9(key, value_0){ + return $put_12(this, key, value_0); +} +; +_.remove_0 = function remove_87(k){ + return $remove_26(this, k); +} +; +_.removeEntry = function removeEntry(entry){ + return $removeEntry(this, entry); +} +; +_.size_1 = function size_62(){ + return this.size_0; +} +; +_.tailMap = function tailMap_0(fromKey, inclusive){ + return $tailMap(this, fromKey, inclusive); +} +; +_.size_0 = 0; +var Ljava_util_TreeMap_2_classLit = createForClass('java.util', 'TreeMap', 553); +function $next_10(this$static){ + return this$static.last = castTo($next_4(this$static.iter), 44); +} + +function $remove_27(this$static){ + $remove_8(this$static.iter); + $removeEntry(this$static.this$01, this$static.last); + this$static.last = null; +} + +function TreeMap$EntryIterator(this$0){ + TreeMap$EntryIterator_0.call(this, this$0, ($clinit_TreeMap$SubMapType() , All), null, false, null, false); +} + +function TreeMap$EntryIterator_0(this$0, type_0, fromKey, fromInclusive, toKey, toInclusive){ + var list; + this.this$01 = this$0; + list = new ArrayList; + $inOrderAdd(this$0, list, type_0, this$0.root, fromKey, fromInclusive, toKey, toInclusive); + this.iter = new AbstractList$ListIteratorImpl(list, 0); +} + +defineClass(554, 1, $intern_6, TreeMap$EntryIterator, TreeMap$EntryIterator_0); +_.forEachRemaining = function forEachRemaining_46(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_36(){ + return $next_10(this); +} +; +_.hasNext_0 = function hasNext_35(){ + return $hasNext_2(this.iter); +} +; +_.remove = function remove_88(){ + $remove_27(this); +} +; +var Ljava_util_TreeMap$EntryIterator_2_classLit = createForClass('java.util', 'TreeMap/EntryIterator', 554); +function TreeMap$EntrySet(this$0){ + this.this$01 = this$0; + AbstractNavigableMap$EntrySet.call(this, this$0); +} + +defineClass(1142, 629, $intern_10, TreeMap$EntrySet); +_.clear_0 = function clear_49(){ + $clear_8(this.this$01); +} +; +var Ljava_util_TreeMap$EntrySet_2_classLit = createForClass('java.util', 'TreeMap/EntrySet', 1142); +function TreeMap$Node(key, value_0){ + AbstractMap$SimpleEntry.call(this, key, value_0); + this.child = initUnidimensionalArray(Ljava_util_TreeMap$Node_2_classLit, $intern_27, 447, 2, 0, 1); + this.isRed = true; +} + +defineClass(447, 397, {494:1, 397:1, 44:1, 447:1}, TreeMap$Node); +_.isRed = false; +var Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util', 'TreeMap/Node', 447); +function TreeMap$State(){ +} + +defineClass(630, 1, {}, TreeMap$State); +_.toString_0 = function toString_74(){ + return 'State: mv=' + this.matchValue + ' value=' + this.value_0 + ' done=' + this.done_0 + ' found=' + this.found; +} +; +_.done_0 = false; +_.found = false; +_.matchValue = false; +var Ljava_util_TreeMap$State_2_classLit = createForClass('java.util', 'TreeMap/State', 630); +function $guardInRange(this$static, entry){ + return !!entry && $inRange_0(this$static, entry.key)?entry:null; +} + +function $inRange_0(this$static, key){ + return $inRange(this$static.this$01, this$static.type_0, key, this$static.fromKey, this$static.fromInclusive, this$static.toKey, this$static.toInclusive); +} + +function TreeMap$SubMap(this$0, type_0, fromKey, fromInclusive, toKey, toInclusive){ + this.this$01 = this$0; + switch (type_0.ordinal) { + case 2: + if (this$0.cmp.compare_1(toKey, fromKey) < 0) { + throw toJs(new IllegalArgumentException_0('subMap: ' + toKey + ' less than ' + fromKey)); + } + + break; + case 1: + this$0.cmp.compare_1(toKey, toKey); + break; + case 3: + this$0.cmp.compare_1(fromKey, fromKey); + } + this.type_0 = type_0; + this.fromKey = fromKey; + this.fromInclusive = fromInclusive; + this.toKey = toKey; + this.toInclusive = toInclusive; +} + +defineClass(631, 2090, $intern_11, TreeMap$SubMap); +_.entryIterator_0 = function entryIterator_6(){ + return new TreeMap$EntryIterator_0(this.this$01, this.type_0, this.fromKey, this.fromInclusive, this.toKey, this.toInclusive); +} +; +_.entrySet_0 = function entrySet_9(){ + return new AbstractNavigableMap$EntrySet(this); +} +; +_.getCeilingEntry = function getCeilingEntry_0(key){ + return $guardInRange(this, $getNodeAfter(this.this$01, key, true)); +} +; +_.getEntry = function getEntry_0(key){ + return $guardInRange(this, $getEntry_1(this.this$01, key)); +} +; +_.getFirstEntry = function getFirstEntry_0(){ + var entry; + return this.type_0.fromKeyValid()?this.fromInclusive?(entry = $getNodeAfter(this.this$01, this.fromKey, true)):(entry = $getNodeAfter(this.this$01, this.fromKey, false)):(entry = $getFirstEntry(this.this$01)) , !!entry && $inRange_0(this, entry.key)?entry:null; +} +; +_.getFloorEntry = function getFloorEntry_0(key){ + return $guardInRange(this, $getNodeBefore(this.this$01, key, true)); +} +; +_.getHigherEntry = function getHigherEntry_0(key){ + return $guardInRange(this, $getNodeAfter(this.this$01, key, false)); +} +; +_.getLastEntry = function getLastEntry_0(){ + var entry; + this.type_0.toKeyValid()?this.toInclusive?(entry = $getNodeBefore(this.this$01, this.toKey, true)):(entry = $getNodeBefore(this.this$01, this.toKey, false)):(entry = $getLastEntry(this.this$01)); + return !!entry && $inRange_0(this, entry.key)?entry:null; +} +; +_.getLowerEntry = function getLowerEntry_0(key){ + return $guardInRange(this, $getNodeBefore(this.this$01, key, false)); +} +; +_.headMap = function headMap_1(toKey, toInclusive){ + if (this.type_0.toKeyValid() && this.this$01.cmp.compare_1(toKey, this.toKey) > 0) { + throw toJs(new IllegalArgumentException_0('subMap: ' + toKey + ' greater than ' + this.toKey)); + } + return this.type_0.fromKeyValid()?$subMap(this.this$01, this.fromKey, this.fromInclusive, toKey, toInclusive):$headMap(this.this$01, toKey, toInclusive); +} +; +_.put = function put_10(key, value_0){ + if (!$inRange(this.this$01, this.type_0, key, this.fromKey, this.fromInclusive, this.toKey, this.toInclusive)) { + throw toJs(new IllegalArgumentException_0(key + ' outside the range ' + this.fromKey + ' to ' + this.toKey)); + } + return $put_12(this.this$01, key, value_0); +} +; +_.remove_0 = function remove_89(k){ + var key; + key = k; + if (!$inRange(this.this$01, this.type_0, key, this.fromKey, this.fromInclusive, this.toKey, this.toInclusive)) { + return null; + } + return $remove_26(this.this$01, key); +} +; +_.removeEntry = function removeEntry_0(entry){ + return $inRange_0(this, entry.getKey()) && $removeEntry(this.this$01, entry); +} +; +_.size_1 = function size_63(){ + var count, entry, it; + this.type_0.fromKeyValid()?this.fromInclusive?(entry = $getNodeAfter(this.this$01, this.fromKey, true)):(entry = $getNodeAfter(this.this$01, this.fromKey, false)):(entry = $getFirstEntry(this.this$01)); + if (!(!!entry && $inRange_0(this, entry.key)?entry:null)) { + return 0; + } + count = 0; + for (it = new TreeMap$EntryIterator_0(this.this$01, this.type_0, this.fromKey, this.fromInclusive, this.toKey, this.toInclusive); $hasNext_2(it.iter); it.last = castTo($next_4(it.iter), 44)) { + ++count; + } + return count; +} +; +_.tailMap = function tailMap_1(fromKey, fromInclusive){ + if (this.type_0.fromKeyValid() && this.this$01.cmp.compare_1(fromKey, this.fromKey) < 0) { + throw toJs(new IllegalArgumentException_0('subMap: ' + fromKey + ' less than ' + this.fromKey)); + } + return this.type_0.toKeyValid()?$subMap(this.this$01, fromKey, fromInclusive, this.toKey, this.toInclusive):$tailMap(this.this$01, fromKey, fromInclusive); +} +; +_.fromInclusive = false; +_.toInclusive = false; +var Ljava_util_TreeMap$SubMap_2_classLit = createForClass('java.util', 'TreeMap/SubMap', 631); +function $clinit_TreeMap$SubMapType(){ + $clinit_TreeMap$SubMapType = emptyMethod; + All = new TreeMap$SubMapType('All', 0); + Head = new TreeMap$SubMapType$1; + Range_1 = new TreeMap$SubMapType$2; + Tail = new TreeMap$SubMapType$3; +} + +function TreeMap$SubMapType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_10(name_0){ + $clinit_TreeMap$SubMapType(); + return valueOf(($clinit_TreeMap$SubMapType$Map() , $MAP_0), name_0); +} + +function values_18(){ + $clinit_TreeMap$SubMapType(); + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_37, 304, 0, [All, Head, Range_1, Tail]); +} + +defineClass(304, 22, $intern_85, TreeMap$SubMapType); +_.fromKeyValid = function fromKeyValid(){ + return false; +} +; +_.toKeyValid = function toKeyValid(){ + return false; +} +; +var All, Head, Range_1, Tail; +var Ljava_util_TreeMap$SubMapType_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType', 304, Ljava_lang_Enum_2_classLit, values_18, valueOf_10); +function TreeMap$SubMapType$1(){ + TreeMap$SubMapType.call(this, 'Head', 1); +} + +defineClass(1143, 304, $intern_85, TreeMap$SubMapType$1); +_.toKeyValid = function toKeyValid_0(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$1_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/1', 1143, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$2(){ + TreeMap$SubMapType.call(this, 'Range', 2); +} + +defineClass(1144, 304, $intern_85, TreeMap$SubMapType$2); +_.fromKeyValid = function fromKeyValid_0(){ + return true; +} +; +_.toKeyValid = function toKeyValid_1(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$2_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/2', 1144, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$3(){ + TreeMap$SubMapType.call(this, 'Tail', 3); +} + +defineClass(1145, 304, $intern_85, TreeMap$SubMapType$3); +_.fromKeyValid = function fromKeyValid_1(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$3_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/3', 1145, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function $clinit_TreeMap$SubMapType$Map(){ + $clinit_TreeMap$SubMapType$Map = emptyMethod; + $MAP_0 = createValueOfMap(($clinit_TreeMap$SubMapType() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_37, 304, 0, [All, Head, Range_1, Tail]))); +} + +var $MAP_0; +function $add_10(this$static, o){ + return this$static.map_0.put(o, ($clinit_Boolean() , FALSE_0)) == null; +} + +function $ceiling(this$static, e){ + return this$static.map_0.ceilingKey(e); +} + +function $floor(this$static, e){ + return this$static.map_0.floorKey(e); +} + +function $higher(this$static, e){ + return this$static.map_0.higherKey(e); +} + +function $lower(this$static, e){ + return this$static.map_0.lowerKey(e); +} + +function $remove_28(this$static, o){ + return this$static.map_0.remove_0(o) != null; +} + +function TreeSet(){ + this.map_0 = new TreeMap; +} + +function TreeSet_0(c){ + this.map_0 = new TreeMap_0(c); +} + +function TreeSet_1(map_0){ + this.map_0 = map_0; +} + +defineClass(157, $intern_9, {3:1, 20:1, 31:1, 16:1, 277:1, 21:1, 87:1, 157:1}, TreeSet, TreeSet_0, TreeSet_1); +_.spliterator_0 = function spliterator_34(){ + return new SortedSet$1(this); +} +; +_.add_2 = function add_40(o){ + return $add_10(this, o); +} +; +_.clear_0 = function clear_50(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_47(o){ + return this.map_0.containsKey(o); +} +; +_.iterator_0 = function iterator_65(){ + return this.map_0.keySet_0().iterator_0(); +} +; +_.remove_1 = function remove_90(o){ + return $remove_28(this, o); +} +; +_.size_1 = function size_64(){ + return this.map_0.size_1(); +} +; +var Ljava_util_TreeSet_2_classLit = createForClass('java.util', 'TreeSet', 157); +function lambda$0_2(comparator_0, t_1, u_2){ + return comparator_0.compare_1(t_1, u_2) <= 0?u_2:t_1; +} + +function lambda$1_2(comparator_0, t_1, u_2){ + return comparator_0.compare_1(t_1, u_2) <= 0?t_1:u_2; +} + +function BinaryOperator$lambda$0$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(1082, 1, {}, BinaryOperator$lambda$0$Type); +_.apply_3 = function apply_20(arg0, arg1){ + return lambda$0_2(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$0$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$0$Type', 1082); +function BinaryOperator$lambda$1$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(1083, 1, {}, BinaryOperator$lambda$1$Type); +_.apply_3 = function apply_21(arg0, arg1){ + return lambda$1_2(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$1$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$1$Type', 1083); +function Function$lambda$0$Type(){ +} + +defineClass(952, 1, {}, Function$lambda$0$Type); +_.apply_0 = function apply_22(t){ + return t; +} +; +var Ljava_util_function_Function$lambda$0$Type_2_classLit = createForClass('java.util.function', 'Function/lambda$0$Type', 952); +function Predicate$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(395, 1, $intern_40, Predicate$lambda$2$Type); +_.test_0 = function test_4(t){ + return !this.$$outer_0.test_0(t); +} +; +var Ljava_util_function_Predicate$lambda$2$Type_2_classLit = createForClass('java.util.function', 'Predicate/lambda$2$Type', 395); +defineClass(581, 1, {581:1}); +var Ljava_util_logging_Handler_2_classLit = createForClass('java.util.logging', 'Handler', 581); +function $clinit_Level(){ + $clinit_Level = emptyMethod; + INFO = new Level$LevelInfo; +} + +defineClass(2107, 1, $intern_1); +_.getName = function getName_0(){ + return 'DUMMY'; +} +; +_.toString_0 = function toString_75(){ + return this.getName(); +} +; +var INFO; +var Ljava_util_logging_Level_2_classLit = createForClass('java.util.logging', 'Level', 2107); +function Level$LevelInfo(){ +} + +defineClass(1706, 2107, $intern_1, Level$LevelInfo); +_.getName = function getName_1(){ + return 'INFO'; +} +; +var Ljava_util_logging_Level$LevelInfo_2_classLit = createForClass('java.util.logging', 'Level/LevelInfo', 1706); +function $addLoggerImpl(this$static, logger){ + (($clinit_Logger() , LOGGING_OFF)?null:logger.name_0).length == 0 && $addHandler(logger, new SimpleConsoleLogHandler); + $putStringValue(this$static.loggerMap, LOGGING_OFF?null:logger.name_0, logger); +} + +function $ensureLogger(this$static, name_0){ + var logger, newLogger, name_1, parentName; + logger = castTo($getStringValue(this$static.loggerMap, name_0), 525); + if (!logger) { + newLogger = new Logger(name_0); + name_1 = ($clinit_Logger() , LOGGING_OFF)?null:newLogger.name_0; + parentName = $substring_1(name_1, 0, $wnd.Math.max(0, $lastIndexOf(name_1, fromCodePoint(46)))); + $setParent(newLogger, $ensureLogger(this$static, parentName)); + (LOGGING_OFF?null:newLogger.name_0).length == 0 && $addHandler(newLogger, new SimpleConsoleLogHandler); + $putStringValue(this$static.loggerMap, LOGGING_OFF?null:newLogger.name_0, newLogger); + return newLogger; + } + return logger; +} + +function LogManager(){ + this.loggerMap = new HashMap; +} + +function getLogManager(){ + var rootLogger; + if (!singleton) { + singleton = new LogManager; + rootLogger = new Logger(''); + $setLevel(rootLogger, ($clinit_Level() , INFO)); + $addLoggerImpl(singleton, rootLogger); + } + return singleton; +} + +defineClass(1843, 1, {}, LogManager); +var singleton; +var Ljava_util_logging_LogManager_2_classLit = createForClass('java.util.logging', 'LogManager', 1843); +function LogRecord(msg){ + this.msg = msg; + $clinit_System(); + fromDouble_0(Date.now()); +} + +defineClass(1896, 1, $intern_1, LogRecord); +_.thrown = null; +var Ljava_util_logging_LogRecord_2_classLit = createForClass('java.util.logging', 'LogRecord', 1896); +function $clinit_Logger(){ + $clinit_Logger = emptyMethod; + LOGGING_OFF = true; + ALL_ENABLED = false; + INFO_ENABLED = false; + WARNING_ENABLED = false; + SEVERE_ENABLED = false; +} + +function $actuallyLog(this$static, record){ + var handler$array, handler$array0, handler$index, handler$index0, handler$max, handler$max0, logger; + for (handler$array0 = $getHandlers(this$static) , handler$index0 = 0 , handler$max0 = handler$array0.length; handler$index0 < handler$max0; ++handler$index0) { + $publish(record); + } + logger = !LOGGING_OFF && this$static.useParentHandlers?LOGGING_OFF?null:this$static.parent_0:null; + while (logger) { + for (handler$array = $getHandlers(logger) , handler$index = 0 , handler$max = handler$array.length; handler$index < handler$max; ++handler$index) { + $publish(record); + } + logger = !LOGGING_OFF && logger.useParentHandlers?LOGGING_OFF?null:logger.parent_0:null; + } +} + +function $addHandler(this$static, handler){ + if (LOGGING_OFF) { + return; + } + $add_3(this$static.handlers, handler); +} + +function $getEffectiveLevel(this$static){ + var effectiveLevel, logger; + if (this$static.level) { + return this$static.level; + } + logger = LOGGING_OFF?null:this$static.parent_0; + while (logger) { + effectiveLevel = LOGGING_OFF?null:logger.level; + if (effectiveLevel) { + return effectiveLevel; + } + logger = LOGGING_OFF?null:logger.parent_0; + } + return $clinit_Level() , INFO; +} + +function $getHandlers(this$static){ + if (LOGGING_OFF) { + return initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 581, 0, 0, 1); + } + return castTo($toArray_1(this$static.handlers, initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 581, this$static.handlers.array.length, 0, 1)), 856); +} + +function $log(this$static, msg, thrown){ + var record; + (ALL_ENABLED?($getEffectiveLevel(this$static) , true):INFO_ENABLED?($clinit_Level() , true):WARNING_ENABLED?($clinit_Level() , true):SEVERE_ENABLED && ($clinit_Level() , false)) && (record = new LogRecord(msg) , record.thrown = thrown , $actuallyLog(this$static, record) , undefined); +} + +function $setLevel(this$static, newLevel){ + if (LOGGING_OFF) { + return; + } + this$static.level = newLevel; +} + +function $setParent(this$static, newParent){ + if (LOGGING_OFF) { + return; + } + !!newParent && (this$static.parent_0 = newParent); +} + +function Logger(name_0){ + $clinit_Logger(); + if (LOGGING_OFF) { + return; + } + this.name_0 = name_0; + this.useParentHandlers = true; + this.handlers = new ArrayList; +} + +function getLogger(){ + $clinit_Logger(); + if (LOGGING_OFF) { + return new Logger(null); + } + return $ensureLogger(getLogManager(), 'com.google.common.base.Strings'); +} + +defineClass(525, 1, {525:1}, Logger); +_.useParentHandlers = false; +var ALL_ENABLED = false, INFO_ENABLED = false, LOGGING_OFF = false, SEVERE_ENABLED = false, WARNING_ENABLED = false; +var Ljava_util_logging_Logger_2_classLit = createForClass('java.util.logging', 'Logger', 525); +function $publish(record){ + var console_0, level, val; + console_0 = $equals_5(typeof(console_0), 'undefined')?null:new ConsoleLogger; + if (!console_0) { + return; + } + $clinit_Level(); + level = (val = 900 , val >= $intern_46?'error':val >= 900?'warn':val >= 800?'info':'log'); + $log_0(level, record.msg); + !!record.thrown && $log_1(console_0, level, record.thrown, 'Exception: ', true); +} + +function SimpleConsoleLogHandler(){ +} + +defineClass(835, 581, {581:1}, SimpleConsoleLogHandler); +var Ljava_util_logging_SimpleConsoleLogHandler_2_classLit = createForClass('java.util.logging', 'SimpleConsoleLogHandler', 835); +function of_3(supplier, accumulator, combiner, finisher, characteristics){ + checkCriticalNotNull(supplier); + checkCriticalNotNull(accumulator); + checkCriticalNotNull(combiner); + checkCriticalNotNull(finisher); + checkCriticalNotNull(characteristics); + return new CollectorImpl(supplier, accumulator, finisher); +} + +function of_4(supplier, accumulator, combiner, characteristics){ + checkCriticalNotNull(supplier); + checkCriticalNotNull(accumulator); + checkCriticalNotNull(combiner); + checkCriticalNotNull(characteristics); + return new CollectorImpl(supplier, accumulator, new Function$lambda$0$Type); +} + +function $clinit_Collector$Characteristics(){ + $clinit_Collector$Characteristics = emptyMethod; + CONCURRENT = new Collector$Characteristics('CONCURRENT', 0); + IDENTITY_FINISH = new Collector$Characteristics('IDENTITY_FINISH', 1); + UNORDERED = new Collector$Characteristics('UNORDERED', 2); +} + +function Collector$Characteristics(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_11(name_0){ + $clinit_Collector$Characteristics(); + return valueOf(($clinit_Collector$Characteristics$Map() , $MAP_1), name_0); +} + +function values_19(){ + $clinit_Collector$Characteristics(); + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]); +} + +defineClass(108, 22, {3:1, 34:1, 22:1, 108:1}, Collector$Characteristics); +var CONCURRENT, IDENTITY_FINISH, UNORDERED; +var Ljava_util_stream_Collector$Characteristics_2_classLit = createForEnum('java.util.stream', 'Collector/Characteristics', 108, Ljava_lang_Enum_2_classLit, values_19, valueOf_11); +function $clinit_Collector$Characteristics$Map(){ + $clinit_Collector$Characteristics$Map = emptyMethod; + $MAP_1 = createValueOfMap(($clinit_Collector$Characteristics() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]))); +} + +var $MAP_1; +function CollectorImpl(supplier, accumulator, finisher){ + this.supplier = supplier; + this.accumulator = accumulator; + $clinit_Collections(); + this.finisher = finisher; +} + +defineClass(758, 1, {}, CollectorImpl); +var Ljava_util_stream_CollectorImpl_2_classLit = createForClass('java.util.stream', 'CollectorImpl', 758); +function addAll_21(collection, items){ + collection.addAll(items); + return collection; +} + +function groupingBy0(supplier, classifier, downstream){ + return of_3(supplier, new Collectors$lambda$7$Type(classifier), new Collectors$lambda$8$Type, new Collectors$lambda$9$Type(downstream), stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [])); +} + +function lambda$26(op_0, u_2){ + return setCheck(u_2, 0, $apply_2(u_2[0], valueOf_4(1))); +} + +function lambda$27(op_0, u1_1, u2_2){ + setCheck(u1_1, 0, $apply_2(u1_1[0], u2_2[0])); + return u1_1; +} + +function lambda$4(a_0, b_1){ + return valueOf_4(add_20(valueOf_4(a_0.value_0).value_0, b_1.value_0)); +} + +function lambda$42(c1_0, c2_1){ + return c1_0.addAll(c2_1) , c1_0; +} + +function lambda$50(c1_0, c2_1){ + return $addAll(c1_0, c2_1) , c1_0; +} + +function lambda$7(classifier_0, m_1, o_2){ + var k, l; + k = ($clinit_Boolean() , $test(o_2)?true:false); + l = castTo(m_1.get_3(k), 15); + if (!l) { + l = new ArrayList; + m_1.put(k, l); + } + l.add_2(o_2); +} + +function lambda$9(downstream_1, m_2){ + var entry, entry$iterator, result; + result = new HashMap; + for (entry$iterator = m_2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + $put_6(result, entry.getKey(), streamAndCollect(downstream_1, castTo(entry.getValue(), 15))); + } + return result; +} + +function mergeAll(m1, m2, mergeFunction){ + var entry, entry$iterator; + for (entry$iterator = m2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + m1.merge(entry.getKey(), entry.getValue(), mergeFunction); + } + return m1; +} + +function partitioningBy(predicate, downstream){ + return groupingBy0(new Collectors$lambda$22$Type, new Collectors$12methodref$test$Type(predicate), downstream); +} + +function reducing(identity, op){ + return of_3(new Collectors$lambda$25$Type(identity), new Collectors$lambda$26$Type(op), new Collectors$lambda$27$Type(op), new Collectors$lambda$28$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [])); +} + +function streamAndCollect(downstream, list){ + var a, t, t$iterator; + a = downstream.supplier.get_5(); + for (t$iterator = list.iterator_0(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + downstream.accumulator.accept_1(a, t); + } + return downstream.finisher.apply_0(a); +} + +function Collectors$10methodref$merge$Type(){ +} + +defineClass(1074, 1, {}, Collectors$10methodref$merge$Type); +_.apply_3 = function apply_23(arg0, arg1){ + return $merge_0(castTo(arg0, 213), castTo(arg1, 213)); +} +; +var Ljava_util_stream_Collectors$10methodref$merge$Type_2_classLit = createForClass('java.util.stream', 'Collectors/10methodref$merge$Type', 1074); +function Collectors$11methodref$toString$Type(){ +} + +defineClass(1075, 1, {}, Collectors$11methodref$toString$Type); +_.apply_0 = function apply_24(arg0){ + return $toString_9(castTo(arg0, 213)); +} +; +var Ljava_util_stream_Collectors$11methodref$toString$Type_2_classLit = createForClass('java.util.stream', 'Collectors/11methodref$toString$Type', 1075); +function Collectors$12methodref$test$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1076, 1, {}, Collectors$12methodref$test$Type); +_.apply_0 = function apply_25(arg0){ + return $clinit_Boolean() , $test(arg0)?true:false; +} +; +var Ljava_util_stream_Collectors$12methodref$test$Type_2_classLit = createForClass('java.util.stream', 'Collectors/12methodref$test$Type', 1076); +function Collectors$20methodref$add$Type(){ +} + +defineClass(144, 1, {}, Collectors$20methodref$add$Type); +_.accept_1 = function accept_21(arg0, arg1){ + castTo(arg0, 16).add_2(arg1); +} +; +var Ljava_util_stream_Collectors$20methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/20methodref$add$Type', 144); +function Collectors$21methodref$ctor$Type(){ +} + +defineClass(146, 1, {}, Collectors$21methodref$ctor$Type); +_.get_5 = function get_46(){ + return new ArrayList; +} +; +var Ljava_util_stream_Collectors$21methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/21methodref$ctor$Type', 146); +function Collectors$23methodref$ctor$Type(){ +} + +defineClass(359, 1, {}, Collectors$23methodref$ctor$Type); +_.get_5 = function get_47(){ + return new HashSet; +} +; +var Ljava_util_stream_Collectors$23methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/23methodref$ctor$Type', 359); +function Collectors$24methodref$add$Type(){ +} + +defineClass(360, 1, {}, Collectors$24methodref$add$Type); +_.accept_1 = function accept_22(arg0, arg1){ + $add_6(castTo(arg0, 49), arg1); +} +; +var Ljava_util_stream_Collectors$24methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/24methodref$add$Type', 360); +function Collectors$4methodref$addAll$Type(){ +} + +defineClass(1069, 1, {}, Collectors$4methodref$addAll$Type); +_.apply_3 = function apply_26(arg0, arg1){ + return addAll_21(castTo(arg0, 15), castTo(arg1, 16)); +} +; +var Ljava_util_stream_Collectors$4methodref$addAll$Type_2_classLit = createForClass('java.util.stream', 'Collectors/4methodref$addAll$Type', 1069); +function Collectors$9methodref$add$Type(){ +} + +defineClass(1073, 1, {}, Collectors$9methodref$add$Type); +_.accept_1 = function accept_23(arg0, arg1){ + $add_9(castTo(arg0, 213), castTo(arg1, 484)); +} +; +var Ljava_util_stream_Collectors$9methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/9methodref$add$Type', 1073); +function Collectors$lambda$15$Type(){ + this.delimiter_0 = ';,;'; + this.prefix_1 = ''; + this.suffix_2 = ''; +} + +defineClass(1072, 1, {}, Collectors$lambda$15$Type); +_.get_5 = function get_48(){ + return new StringJoiner(this.delimiter_0, this.prefix_1, this.suffix_2); +} +; +var Ljava_util_stream_Collectors$lambda$15$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$15$Type', 1072); +function Collectors$lambda$22$Type(){ +} + +defineClass(1077, 1, {}, Collectors$lambda$22$Type); +_.get_5 = function get_49(){ + var partition; + return partition = new LinkedHashMap , $put_11(partition, ($clinit_Boolean() , false), new ArrayList) , $put_11(partition, true, new ArrayList) , partition; +} +; +var Ljava_util_stream_Collectors$lambda$22$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$22$Type', 1077); +function Collectors$lambda$25$Type(identity_0){ + this.identity_0 = identity_0; +} + +defineClass(1078, 1, {}, Collectors$lambda$25$Type); +_.get_5 = function get_50(){ + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.identity_0]); +} +; +var Ljava_util_stream_Collectors$lambda$25$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$25$Type', 1078); +function Collectors$lambda$26$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1079, 1, {}, Collectors$lambda$26$Type); +_.accept_1 = function accept_24(arg0, arg1){ + lambda$26(this.op_0, castToArray(arg0)); +} +; +var Ljava_util_stream_Collectors$lambda$26$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$26$Type', 1079); +function Collectors$lambda$27$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1080, 1, {}, Collectors$lambda$27$Type); +_.apply_3 = function apply_27(arg0, arg1){ + return lambda$27(this.op_0, castToArray(arg0), castToArray(arg1)); +} +; +var Ljava_util_stream_Collectors$lambda$27$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$27$Type', 1080); +function Collectors$lambda$28$Type(){ +} + +defineClass(1081, 1, {}, Collectors$lambda$28$Type); +_.apply_0 = function apply_28(arg0){ + return castToArray(arg0)[0]; +} +; +var Ljava_util_stream_Collectors$lambda$28$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$28$Type', 1081); +function $apply_2(arg0, arg1){ + return lambda$4(castTo(arg0, 168), castTo(arg1, 168)); +} + +function Collectors$lambda$4$Type(){ +} + +defineClass(728, 1, {}, Collectors$lambda$4$Type); +_.apply_3 = function apply_29(arg0, arg1){ + return $apply_2(arg0, arg1); +} +; +var Ljava_util_stream_Collectors$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$4$Type', 728); +function Collectors$lambda$42$Type(){ +} + +defineClass(145, 1, {}, Collectors$lambda$42$Type); +_.apply_3 = function apply_30(arg0, arg1){ + return lambda$42(castTo(arg0, 16), castTo(arg1, 16)); +} +; +var Ljava_util_stream_Collectors$lambda$42$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$42$Type', 145); +function Collectors$lambda$50$Type(){ +} + +defineClass(361, 1, {}, Collectors$lambda$50$Type); +_.apply_3 = function apply_31(arg0, arg1){ + return lambda$50(castTo(arg0, 49), castTo(arg1, 49)); +} +; +var Ljava_util_stream_Collectors$lambda$50$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$50$Type', 361); +function Collectors$lambda$51$Type(){ +} + +defineClass(362, 1, {}, Collectors$lambda$51$Type); +_.apply_0 = function apply_32(arg0){ + return castTo(arg0, 49); +} +; +var Ljava_util_stream_Collectors$lambda$51$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$51$Type', 362); +function Collectors$lambda$7$Type(classifier_0){ + this.classifier_0 = classifier_0; +} + +defineClass(1068, 1, {}, Collectors$lambda$7$Type); +_.accept_1 = function accept_25(arg0, arg1){ + lambda$7(this.classifier_0, castTo(arg0, 85), arg1); +} +; +var Ljava_util_stream_Collectors$lambda$7$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$7$Type', 1068); +function Collectors$lambda$8$Type(){ +} + +defineClass(1070, 1, {}, Collectors$lambda$8$Type); +_.apply_3 = function apply_33(arg0, arg1){ + return mergeAll(castTo(arg0, 85), castTo(arg1, 85), new Collectors$4methodref$addAll$Type); +} +; +var Ljava_util_stream_Collectors$lambda$8$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$8$Type', 1070); +function Collectors$lambda$9$Type(downstream_1){ + this.downstream_1 = downstream_1; +} + +defineClass(1071, 1, {}, Collectors$lambda$9$Type); +_.apply_0 = function apply_34(arg0){ + return lambda$9(this.downstream_1, castTo(arg0, 85)); +} +; +var Ljava_util_stream_Collectors$lambda$9$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$9$Type', 1071); +function $close(this$static){ + if (!this$static.root) { + this$static.terminated = true; + $runClosers(this$static); + } + else { + this$static.root.close_0(); + } +} + +function $onClose(this$static, closeHandler){ + !this$static.root?$add_3(this$static.onClose, closeHandler):$onClose(this$static.root, closeHandler); + return this$static; +} + +function $runClosers(this$static){ + var e, i, size_0, suppressed, throwables; + throwables = new ArrayList; + $forEach_1(this$static.onClose, new TerminatableStream$lambda$0$Type(throwables)); + this$static.onClose.array.length = 0; + if (throwables.array.length != 0) { + e = (checkCriticalElementIndex(0, throwables.array.length) , castTo(throwables.array[0], 82)); + for (i = 1 , size_0 = throwables.array.length; i < size_0; ++i) { + suppressed = (checkCriticalElementIndex(i, throwables.array.length) , castTo(throwables.array[i], 82)); + suppressed != e && $addSuppressed(e, suppressed); + } + if (instanceOf(e, 63)) { + throw toJs(castTo(e, 63)); + } + if (instanceOf(e, 296)) { + throw toJs(castTo(e, 296)); + } + } +} + +function $terminate(this$static){ + if (!this$static.root) { + $throwIfTerminated(this$static); + this$static.terminated = true; + } + else { + $terminate(this$static.root); + } +} + +function $throwIfTerminated(this$static){ + if (this$static.root) { + $throwIfTerminated(this$static.root); + } + else if (this$static.terminated) { + throw toJs(new IllegalStateException_0("Stream already terminated, can't be modified or used")); + } +} + +function TerminatableStream(previous){ + if (!previous) { + this.root = null; + this.onClose = new ArrayList; + } + else { + this.root = previous; + this.onClose = null; + } +} + +function lambda$0_3(throwables_0, runnable_1){ + var e; + try { + runnable_1.run(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 82)) { + e = $e0; + push_1(throwables_0.array, e); + } + else + throw toJs($e0); + } +} + +defineClass(550, 1, {}); +_.close_0 = function close_0(){ + $close(this); +} +; +_.terminated = false; +var Ljava_util_stream_TerminatableStream_2_classLit = createForClass('java.util.stream', 'TerminatableStream', 550); +function $average(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(gt(stats.count, 0)?$getSum(stats) / toDouble_0(stats.count):0); +} + +function $collect(this$static){ + var acc; + $terminate(this$static); + acc = new DoubleSummaryStatistics; + $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$2$Type(acc)); + return acc; +} + +function $max(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(stats.max_0); +} + +function $min(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(stats.min_0); +} + +function $sorted(this$static){ + var sortingSpliterator; + $throwIfTerminated(this$static); + sortingSpliterator = new DoubleStreamImpl$2(this$static, this$static.spliterator.sizeEstimate, this$static.spliterator.characteristics | 4); + return new DoubleStreamImpl(this$static, sortingSpliterator); +} + +function $toArray_5(this$static){ + var entries; + $terminate(this$static); + entries = initUnidimensionalArray(D_classLit, $intern_66, 28, 0, 15, 1); + $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$0$Type(entries)); + return entries; +} + +function DoubleStreamImpl(previous, spliterator){ + TerminatableStream.call(this, previous); + this.spliterator = spliterator; +} + +function lambda$0_4(entries_0, value_1){ + return entries_0[entries_0.length] = value_1; +} + +defineClass(827, 550, $intern_87, DoubleStreamImpl); +_.close_0 = function close_1(){ + $close(this); +} +; +var Ljava_util_stream_DoubleStreamImpl_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl', 827); +function $tryAdvance_2(this$static, action){ + var list; + if (!this$static.ordered) { + list = initUnidimensionalArray(D_classLit, $intern_66, 28, 0, 15, 1); + $forEachRemaining_1(this$static.this$01.spliterator, new DoubleStreamImpl$2$lambda$0$Type(list)); + sort_9(list, makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); + this$static.ordered = new Spliterators$DoubleArraySpliterator(list, this$static.characteristics); + } + return $tryAdvance_0(this$static.ordered, action); +} + +function DoubleStreamImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + Spliterators$AbstractDoubleSpliterator.call(this, $anonymous0, $anonymous1); +} + +function lambda$0_5(list_0, item_1){ + return list_0[list_0.length] = item_1; +} + +defineClass(1847, 736, $intern_18, DoubleStreamImpl$2); +_.tryAdvance_0 = function tryAdvance_10(action){ + return $tryAdvance_2(this, castTo(action, 189)); +} +; +_.ordered = null; +var Ljava_util_stream_DoubleStreamImpl$2_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2', 1847); +function DoubleStreamImpl$2$lambda$0$Type(list_0){ + this.list_0 = list_0; +} + +defineClass(1848, 1, $intern_75, DoubleStreamImpl$2$lambda$0$Type); +_.accept_2 = function accept_26(arg0){ + lambda$0_5(this.list_0, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$2$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2/lambda$0$Type', 1848); +function DoubleStreamImpl$lambda$0$Type(entries_0){ + this.entries_0 = entries_0; +} + +defineClass(1845, 1, $intern_75, DoubleStreamImpl$lambda$0$Type); +_.accept_2 = function accept_27(arg0){ + lambda$0_4(this.entries_0, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$0$Type', 1845); +function DoubleStreamImpl$lambda$2$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1846, 1, $intern_75, DoubleStreamImpl$lambda$2$Type); +_.accept_2 = function accept_28(arg0){ + $accept(this.acc_1, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$2$Type', 1846); +function range_0(endExclusive){ + if (0 >= endExclusive) { + return new IntStreamImpl$Empty; + } + return rangeClosed(endExclusive - 1); +} + +function rangeClosed(endInclusive){ + var count, spliterator; + if (0 > endInclusive) { + return new IntStreamImpl$Empty; + } + count = endInclusive + 1; + spliterator = new IntStream$5(count, endInclusive); + return new IntStreamImpl(null, spliterator); +} + +function $tryAdvance_3(this$static, action){ + if (this$static.next_0 <= this$static.val$endInclusive5) { + action.accept_0(this$static.next_0++); + return true; + } + return false; +} + +function IntStream$5($anonymous0, val$endInclusive){ + this.val$startInclusive4 = 0; + this.val$endInclusive5 = val$endInclusive; + Spliterators$AbstractIntSpliterator.call(this, $anonymous0, 17493); + this.next_0 = this.val$startInclusive4; +} + +defineClass(1397, 735, $intern_18, IntStream$5); +_.tryAdvance_0 = function tryAdvance_11(action){ + return $tryAdvance_3(this, castTo(action, 202)); +} +; +_.next_0 = 0; +_.val$endInclusive5 = 0; +_.val$startInclusive4 = 0; +var Ljava_util_stream_IntStream$5_2_classLit = createForClass('java.util.stream', 'IntStream/5', 1397); +function $collect_0(this$static){ + var acc; + $terminate(this$static); + acc = new IntSummaryStatistics; + $forEachRemaining_1(this$static.spliterator, new IntStreamImpl$lambda$4$Type(acc)); + return acc; +} + +function $max_0(this$static){ + var stats; + stats = $collect_0(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalInt() , $clinit_OptionalInt() , EMPTY_5; + } + return $clinit_OptionalInt() , new OptionalInt_0(stats.max_0); +} + +function IntStreamImpl(previous, spliterator){ + TerminatableStream.call(this, previous); + this.spliterator = spliterator; +} + +defineClass(806, 550, $intern_87, IntStreamImpl); +_.close_0 = function close_2(){ + $close(this); +} +; +_.spliterator_1 = function spliterator_35(){ + return $terminate(this) , this.spliterator; +} +; +var Ljava_util_stream_IntStreamImpl_2_classLit = createForClass('java.util.stream', 'IntStreamImpl', 806); +function IntStreamImpl$Empty(){ + TerminatableStream.call(this, null); +} + +defineClass(807, 550, $intern_87, IntStreamImpl$Empty); +_.close_0 = function close_3(){ + $close(this); +} +; +_.spliterator_1 = function spliterator_36(){ + return $terminate(this) , $clinit_Spliterators$EmptySpliterator() , OF_INT; +} +; +var Ljava_util_stream_IntStreamImpl$Empty_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/Empty', 807); +function IntStreamImpl$lambda$4$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1687, 1, $intern_20, IntStreamImpl$lambda$4$Type); +_.accept_0 = function accept_29(arg0){ + $accept_0(this.acc_1, arg0); +} +; +var Ljava_util_stream_IntStreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/lambda$4$Type', 1687); +var Ljava_util_stream_Stream_2_classLit = createForInterface('java.util.stream', 'Stream'); +function $clinit_StreamImpl(){ + $clinit_StreamImpl = emptyMethod; + NULL_CONSUMER = new StreamImpl$lambda$0$Type; +} + +function $anyMatch(this$static, predicate){ + return ($throwIfTerminated(this$static) , $spliterator(new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)))).tryAdvance(NULL_CONSUMER); +} + +function $collect_1(this$static, collector){ + var lastArg; + return collector.finisher.apply_0($reduce(this$static, collector.supplier.get_5(), (lastArg = new StreamImpl$lambda$4$Type(collector) , lastArg))); +} + +function $count_0(this$static){ + var count; + $terminate(this$static); + count = 0; + while (this$static.spliterator.tryAdvance(new StreamImpl$lambda$1$Type)) { + count = add_20(count, 1); + } + return count; +} + +function $distinct(this$static){ + var seen; + $throwIfTerminated(this$static); + seen = new HashSet; + return $filter(this$static, new StreamImpl$1methodref$add$Type(seen)); +} + +function $filter(this$static, predicate){ + $throwIfTerminated(this$static); + return new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)); +} + +function $findFirst(this$static){ + var holder; + $terminate(this$static); + holder = new StreamImpl$ValueConsumer; + if (this$static.spliterator.tryAdvance(holder)) { + return $clinit_Optional() , new Optional(checkCriticalNotNull(holder.value_0)); + } + return $clinit_Optional() , $clinit_Optional() , EMPTY_3; +} + +function $flatMap(this$static, mapper){ + var flatMapSpliterator, spliteratorOfStreams; + $throwIfTerminated(this$static); + spliteratorOfStreams = new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator); + flatMapSpliterator = new StreamImpl$1(spliteratorOfStreams); + return new StreamImpl(this$static, flatMapSpliterator); +} + +function $forEach_3(this$static, action){ + $terminate(this$static); + this$static.spliterator.forEachRemaining(action); +} + +function $map(this$static, mapper){ + $throwIfTerminated(this$static); + return new StreamImpl(this$static, new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator)); +} + +function $mapToDouble(this$static, mapper){ + $throwIfTerminated(this$static); + return new DoubleStreamImpl(this$static, new StreamImpl$MapToDoubleSpliterator(mapper, this$static.spliterator)); +} + +function $mapToInt(this$static, mapper){ + $throwIfTerminated(this$static); + return new IntStreamImpl(this$static, new StreamImpl$MapToIntSpliterator(mapper, this$static.spliterator)); +} + +function $max_1(this$static, comparator){ + return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$0$Type(comparator))); +} + +function $min_0(this$static, comparator){ + return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$1$Type(comparator))); +} + +function $reduce(this$static, identity, accumulator){ + var consumer; + $terminate(this$static); + consumer = new StreamImpl$ValueConsumer; + consumer.value_0 = identity; + this$static.spliterator.forEachRemaining(new StreamImpl$lambda$5$Type(consumer, accumulator)); + return consumer.value_0; +} + +function $reduce_0(this$static, accumulator){ + var consumer; + consumer = new StreamImpl$ValueConsumer; + if (!this$static.spliterator.tryAdvance(consumer)) { + $terminate(this$static); + return $clinit_Optional() , $clinit_Optional() , EMPTY_3; + } + return $clinit_Optional() , new Optional(checkCriticalNotNull($reduce(this$static, consumer.value_0, accumulator))); +} + +function $skip(this$static){ + $throwIfTerminated(this$static); + checkCriticalState_0(true, 'n may not be negative'); + return new StreamImpl(this$static, new StreamImpl$SkipSpliterator(this$static.spliterator)); +} + +function $sorted_0(this$static){ + var c; + $throwIfTerminated(this$static); + c = ($clinit_Comparators() , $clinit_Comparators() , NATURAL_ORDER); + return $sorted_1(this$static, c); +} + +function $sorted_1(this$static, comparator){ + var sortedSpliterator; + $throwIfTerminated(this$static); + sortedSpliterator = new StreamImpl$5(this$static, this$static.spliterator.estimateSize_0(), this$static.spliterator.characteristics_0() | 4, comparator); + return new StreamImpl(this$static, sortedSpliterator); +} + +function $spliterator(this$static){ + $terminate(this$static); + return this$static.spliterator; +} + +function $toArray_6(this$static, generator){ + var collected; + collected = castTo($collect_1(this$static, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + return collected.toArray_0($apply_19(collected.size_1())); +} + +function StreamImpl(prev, spliterator){ + $clinit_StreamImpl(); + TerminatableStream.call(this, prev); + this.spliterator = spliterator; +} + +function lambda$4_0(collector_0, a_1, t_2){ + $clinit_StreamImpl(); + collector_0.accumulator.accept_1(a_1, t_2); + return a_1; +} + +function lambda$5(consumer_0, accumulator_1, item_2){ + $clinit_StreamImpl(); + $accept_1(consumer_0, accumulator_1.apply_3(consumer_0.value_0, item_2)); +} + +defineClass(26, 550, {533:1, 687:1, 848:1}, StreamImpl); +_.close_0 = function close_4(){ + $close(this); +} +; +var NULL_CONSUMER; +var Ljava_util_stream_StreamImpl_2_classLit = createForClass('java.util.stream', 'StreamImpl', 26); +function $advanceToNextSpliterator(this$static){ + while (!this$static.next_0) { + if (!$tryAdvance_6(this$static.val$spliteratorOfStreams5, new StreamImpl$1$lambda$0$Type(this$static))) { + return false; + } + } + return true; +} + +function $lambda$0_0(this$static, n_0){ + if (n_0) { + this$static.nextStream = n_0; + this$static.next_0 = ($terminate(n_0) , n_0.spliterator); + } +} + +function StreamImpl$1(val$spliteratorOfStreams){ + this.val$spliteratorOfStreams5 = val$spliteratorOfStreams; + Spliterators$AbstractSpliterator.call(this, $intern_21, 0); +} + +defineClass(1102, 500, $intern_18, StreamImpl$1); +_.tryAdvance = function tryAdvance_12(action){ + while ($advanceToNextSpliterator(this)) { + if (this.next_0.tryAdvance(action)) { + return true; + } + else { + $close(this.nextStream); + this.nextStream = null; + this.next_0 = null; + } + } + return false; +} +; +var Ljava_util_stream_StreamImpl$1_2_classLit = createForClass('java.util.stream', 'StreamImpl/1', 1102); +function StreamImpl$1$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1103, 1, $intern_19, StreamImpl$1$lambda$0$Type); +_.accept = function accept_30(arg0){ + $lambda$0_0(this.$$outer_0, castTo(arg0, 848)); +} +; +var Ljava_util_stream_StreamImpl$1$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1/lambda$0$Type', 1103); +function StreamImpl$1methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1104, 1, $intern_40, StreamImpl$1methodref$add$Type); +_.test_0 = function test_5(arg0){ + return $add_6(this.$$outer_0, arg0); +} +; +var Ljava_util_stream_StreamImpl$1methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1methodref$add$Type', 1104); +function StreamImpl$5(this$0, $anonymous0, $anonymous1, val$comparator){ + this.this$01 = this$0; + this.val$comparator5 = val$comparator; + Spliterators$AbstractSpliterator.call(this, $anonymous0, $anonymous1); +} + +defineClass(1105, 500, $intern_18, StreamImpl$5); +_.tryAdvance = function tryAdvance_13(action){ + var list; + if (!this.ordered) { + list = new ArrayList; + this.this$01.spliterator.forEachRemaining(new StreamImpl$5$2methodref$add$Type(list)); + $clinit_Collections(); + $sort(list, this.val$comparator5); + this.ordered = new Spliterators$IteratorSpliterator(list, 16); + } + return $tryAdvance(this.ordered, action); +} +; +_.ordered = null; +var Ljava_util_stream_StreamImpl$5_2_classLit = createForClass('java.util.stream', 'StreamImpl/5', 1105); +function StreamImpl$5$2methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1106, 1, $intern_19, StreamImpl$5$2methodref$add$Type); +_.accept = function accept_31(arg0){ + $add_3(this.$$outer_0, arg0); +} +; +var Ljava_util_stream_StreamImpl$5$2methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/5/2methodref$add$Type', 1106); +function $lambda$0_1(this$static, action_1, item_1){ + if (this$static.filter.test_0(item_1)) { + this$static.found = true; + action_1.accept(item_1); + } +} + +function StreamImpl$FilterSpliterator(filter, original){ + Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -16449); + checkCriticalNotNull(filter); + this.filter = filter; + this.original = original; +} + +defineClass(737, 500, $intern_18, StreamImpl$FilterSpliterator); +_.tryAdvance = function tryAdvance_14(action){ + this.found = false; + while (!this.found && this.original.tryAdvance(new StreamImpl$FilterSpliterator$lambda$0$Type(this, action))) + ; + return this.found; +} +; +_.found = false; +var Ljava_util_stream_StreamImpl$FilterSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator', 737); +function StreamImpl$FilterSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1096, 1, $intern_19, StreamImpl$FilterSpliterator$lambda$0$Type); +_.accept = function accept_32(arg0){ + $lambda$0_1(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$FilterSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator/lambda$0$Type', 1096); +function $lambda$0_2(this$static, action_1, u_1){ + action_1.accept_2(this$static.map_0.applyAsDouble(u_1)); +} + +function $tryAdvance_4(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToDoubleSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToDoubleSpliterator(map_0, original){ + Spliterators$AbstractDoubleSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(1091, 736, $intern_18, StreamImpl$MapToDoubleSpliterator); +_.tryAdvance_0 = function tryAdvance_15(action){ + return $tryAdvance_4(this, castTo(action, 189)); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator', 1091); +function StreamImpl$MapToDoubleSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1095, 1, $intern_19, StreamImpl$MapToDoubleSpliterator$lambda$0$Type); +_.accept = function accept_33(arg0){ + $lambda$0_2(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator/lambda$0$Type', 1095); +function $lambda$0_3(this$static, action_1, u_1){ + action_1.accept_0(this$static.map_0.applyAsInt(u_1)); +} + +function $tryAdvance_5(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToIntSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToIntSpliterator(map_0, original){ + Spliterators$AbstractIntSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(1090, 735, $intern_18, StreamImpl$MapToIntSpliterator); +_.tryAdvance_0 = function tryAdvance_16(action){ + return $tryAdvance_5(this, castTo(action, 202)); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator', 1090); +function StreamImpl$MapToIntSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1094, 1, $intern_19, StreamImpl$MapToIntSpliterator$lambda$0$Type); +_.accept = function accept_34(arg0){ + $lambda$0_3(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator/lambda$0$Type', 1094); +function $lambda$0_4(this$static, action_1, u_1){ + action_1.accept(this$static.map_0.apply_0(u_1)); +} + +function $tryAdvance_6(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToObjSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToObjSpliterator(map_0, original){ + Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(734, 500, $intern_18, StreamImpl$MapToObjSpliterator); +_.tryAdvance = function tryAdvance_17(action){ + return $tryAdvance_6(this, action); +} +; +var Ljava_util_stream_StreamImpl$MapToObjSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator', 734); +function StreamImpl$MapToObjSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1093, 1, $intern_19, StreamImpl$MapToObjSpliterator$lambda$0$Type); +_.accept = function accept_35(arg0){ + $lambda$0_4(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToObjSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator/lambda$0$Type', 1093); +function StreamImpl$SkipSpliterator(original){ + Spliterators$AbstractSpliterator.call(this, original.hasCharacteristics(64)?max_1(0, sub_2(original.estimateSize_0(), 1)):$intern_21, original.characteristics_0()); + this.skip = 1; + this.original = original; +} + +defineClass(1092, 500, $intern_18, StreamImpl$SkipSpliterator); +_.tryAdvance = function tryAdvance_18(action){ + while (gt(this.skip, 0)) { + if (!this.original.tryAdvance(new StreamImpl$SkipSpliterator$lambda$0$Type)) { + return false; + } + this.skip = sub_2(this.skip, 1); + } + return this.original.tryAdvance(action); +} +; +_.skip = 0; +var Ljava_util_stream_StreamImpl$SkipSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/SkipSpliterator', 1092); +function StreamImpl$SkipSpliterator$lambda$0$Type(){ +} + +defineClass(1097, 1, $intern_19, StreamImpl$SkipSpliterator$lambda$0$Type); +_.accept = function accept_36(arg0){ +} +; +var Ljava_util_stream_StreamImpl$SkipSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/SkipSpliterator/lambda$0$Type', 1097); +function $accept_1(this$static, value_0){ + this$static.value_0 = value_0; +} + +function StreamImpl$ValueConsumer(){ +} + +defineClass(626, 1, $intern_19, StreamImpl$ValueConsumer); +_.accept = function accept_37(value_0){ + $accept_1(this, value_0); +} +; +var Ljava_util_stream_StreamImpl$ValueConsumer_2_classLit = createForClass('java.util.stream', 'StreamImpl/ValueConsumer', 626); +function StreamImpl$lambda$0$Type(){ +} + +defineClass(1098, 1, $intern_19, StreamImpl$lambda$0$Type); +_.accept = function accept_38(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$0$Type', 1098); +function StreamImpl$lambda$1$Type(){ +} + +defineClass(1099, 1, $intern_19, StreamImpl$lambda$1$Type); +_.accept = function accept_39(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$1$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$1$Type', 1099); +function StreamImpl$lambda$4$Type(collector_0){ + this.collector_0 = collector_0; +} + +defineClass(1100, 1, {}, StreamImpl$lambda$4$Type); +_.apply_3 = function apply_35(arg0, arg1){ + return lambda$4_0(this.collector_0, arg0, arg1); +} +; +var Ljava_util_stream_StreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$4$Type', 1100); +function StreamImpl$lambda$5$Type(consumer_0, accumulator_1){ + this.consumer_0 = consumer_0; + this.accumulator_1 = accumulator_1; +} + +defineClass(1101, 1, $intern_19, StreamImpl$lambda$5$Type); +_.accept = function accept_40(arg0){ + lambda$5(this.consumer_0, this.accumulator_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$lambda$5$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$5$Type', 1101); +function TerminatableStream$lambda$0$Type(throwables_0){ + this.throwables_0 = throwables_0; +} + +defineClass(1107, 1, $intern_19, TerminatableStream$lambda$0$Type); +_.accept = function accept_41(arg0){ + lambda$0_3(this.throwables_0, castTo(arg0, 380)); +} +; +var Ljava_util_stream_TerminatableStream$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'TerminatableStream/lambda$0$Type', 1107); +function clone_0(array){ + var result; + result = array.slice(); + return stampJavaTypeInfo_0(result, array); +} + +function copy_0(src_0, srcOfs, dest, destOfs, len, overwrite){ + var batchEnd, batchStart, destArray, end, spliceArgs; + if (len == 0) { + return; + } + if (maskUndefined(src_0) === maskUndefined(dest)) { + src_0 = src_0.slice(srcOfs, srcOfs + len); + srcOfs = 0; + } + destArray = dest; + for (batchStart = srcOfs , end = srcOfs + len; batchStart < end;) { + batchEnd = $wnd.Math.min(batchStart + 10000, end); + len = batchEnd - batchStart; + spliceArgs = src_0.slice(batchStart, batchEnd); + spliceArgs.splice(0, 0, destOfs, overwrite?len:0); + Array.prototype.splice.apply(destArray, spliceArgs); + batchStart = batchEnd; + destOfs += len; + } +} + +function createFrom(array, length_0){ + return stampJavaTypeInfo_1(new Array(length_0), array); +} + +function insertTo(array, index_0, value_0){ + array.splice(index_0, 0, value_0); +} + +function insertTo_0(array, index_0, values){ + copy_0(values, 0, array, index_0, values.length, false); +} + +function push_1(array, o){ + array.push(o); +} + +function removeFrom(array, index_0, deleteCount){ + array.splice(index_0, deleteCount); +} + +function setAt(array, index_0, value_0){ + var originalValue; + originalValue = array[index_0]; + array[index_0] = value_0; + return originalValue; +} + +function setLength(array, length_0){ + array.length = length_0; +} + +function sort_9(array, fn){ + array.sort(fn); +} + +defineClass(2142, 1, {}); +function stampJavaTypeInfo_1(array, referenceType){ + return stampJavaTypeInfo_0(array, referenceType); +} + +function $groupStart(msg, expanded){ + (!expanded && console.groupCollapsed != null?console.groupCollapsed:console.group != null?console.group:console.log).call(console, msg); +} + +function $log_0(level, message){ + var logFn; + logFn = console[level]; + logFn.call(console, message); +} + +function $log_1(this$static, level, t, label_0, expanded){ + var cause, suppressed, suppressed$array, suppressed$index, suppressed$max; + $groupStart(label_0 + $toString_4(t, t.getMessage()), expanded); + $log_0(level, getBackingErrorStack(t)); + cause = t.cause_0; + !!cause && $log_1(this$static, level, cause, 'Caused by: ', false); + for (suppressed$array = (t.suppressedExceptions == null && (t.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 82, 0, 0, 1)) , t.suppressedExceptions) , suppressed$index = 0 , suppressed$max = suppressed$array.length; suppressed$index < suppressed$max; ++suppressed$index) { + suppressed = suppressed$array[suppressed$index]; + $log_1(this$static, level, suppressed, 'Suppressed: ', false); + } + console.groupEnd != null && console.groupEnd.call(console); +} + +function ConsoleLogger(){ +} + +function getBackingErrorStack(t){ + var backingError = t.backingJsObject; + function stringify(fnStack){ + if (!fnStack || fnStack.length == 0) { + return ''; + } + return '\t' + fnStack.join('\n\t'); + } + + return backingError && (backingError.stack || stringify(t['fnStack'])); +} + +defineClass(2014, 1, {}, ConsoleLogger); +var Ljavaemul_internal_ConsoleLogger_2_classLit = createForClass('javaemul.internal', 'ConsoleLogger', 2014); +function getIdentityHashCode(o){ + switch (typeof(o)) { + case 'string': + return $hashCode_2(o); + case 'number': + return $hashCode_1(o); + case 'boolean': + return $hashCode_0(o); + default:return o == null?0:getObjectIdentityHashCode(o); + } +} + +function getObjectIdentityHashCode(o){ + return o.$H || (o.$H = ++nextHash); +} + +var nextHash = 0; +function checkCriticalArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkCriticalArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkCriticalArrayBounds_0(start_0, end, length_0){ + if (start_0 > end) { + throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); + } + if (start_0 < 0 || end > length_0) { + throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); + } +} + +function checkCriticalArraySize(size_0){ + if (size_0 < 0) { + throw toJs(new NegativeArraySizeException('Negative array size: ' + size_0)); + } +} + +function checkCriticalArrayType(expression){ + if (!expression) { + throw toJs(new ArrayStoreException); + } +} + +function checkCriticalArrayType_0(expression, errorMessage){ + if (!expression) { + throw toJs(new ArrayStoreException_0(errorMessage)); + } +} + +function checkCriticalConcurrentModification(currentModCount, recordedModCount){ + if (currentModCount != recordedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function checkCriticalElement(expression){ + if (!expression) { + throw toJs(new NoSuchElementException); + } +} + +function checkCriticalElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalNotNull(reference){ + if (reference == null) { + throw toJs(new NullPointerException); + } + return reference; +} + +function checkCriticalNotNull_0(reference, errorMessage){ + if (reference == null) { + throw toJs(new NullPointerException_0(errorMessage)); + } +} + +function checkCriticalPositionIndex(index_0, size_0){ + if (index_0 < 0 || index_0 > size_0) { + throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || end > size_0) { + throw toJs(new IndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', size: ' + size_0)); + } + if (start_0 > end) { + throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); + } +} + +function checkCriticalState(expression){ + if (!expression) { + throw toJs(new IllegalStateException); + } +} + +function checkCriticalState_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalStateException_0(errorMessage)); + } +} + +function checkCriticalStringBounds(start_0, end, length_0){ + if (start_0 < 0 || end > length_0 || end < start_0) { + throw toJs(new StringIndexOutOfBoundsException('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); + } +} + +function checkCriticalStringElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new StringIndexOutOfBoundsException('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalType(expression){ + if (!expression) { + throw toJs(new ClassCastException_0(null)); + } +} + +defineClass(2134, 1, {}); +function fromBits_0(lowBits, highBits){ + var highBitsLong, lowBitsLong; + lowBitsLong = and_0(lowBits, $intern_69); + highBitsLong = shl_0(highBits, 32); + return or_0(highBitsLong, lowBitsLong); +} + +function triangulate(vertices){ + var bottomright, boundary, c, i, invalidTriangles, onBoundary, other, other$iterator, sa, sb, sc, size_0, superTriangle, tEdge, tEdge$iterator, tEdge$iterator0, tEdges, topleft, triangle, triangle$iterator, triangle$iterator0, triangulation, v, v$iterator, vertex, vertex$iterator; + topleft = new KVector_1($intern_60, $intern_60); + bottomright = new KVector_1($intern_61, $intern_61); + for (v$iterator = new ArrayList$1(vertices); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_6(v$iterator), 8); + topleft.x_0 = $wnd.Math.min(topleft.x_0, v.x_0); + topleft.y_0 = $wnd.Math.min(topleft.y_0, v.y_0); + bottomright.x_0 = $wnd.Math.max(bottomright.x_0, v.x_0); + bottomright.y_0 = $wnd.Math.max(bottomright.y_0, v.y_0); + } + size_0 = new KVector_1(bottomright.x_0 - topleft.x_0, bottomright.y_0 - topleft.y_0); + sa = new KVector_1(topleft.x_0 - 50, topleft.y_0 - size_0.x_0 - 50); + sb = new KVector_1(topleft.x_0 - 50, bottomright.y_0 + size_0.x_0 + 50); + sc = new KVector_1(bottomright.x_0 + size_0.y_0 / 2 + 50, topleft.y_0 + size_0.y_0 / 2); + superTriangle = new TTriangle(sa, sb, sc); + triangulation = new HashSet; + invalidTriangles = new ArrayList; + boundary = new ArrayList; + triangulation.map_0.put(superTriangle, triangulation); + for (vertex$iterator = new ArrayList$1(vertices); vertex$iterator.i < vertex$iterator.this$01.array.length;) { + vertex = castTo($next_6(vertex$iterator), 8); + invalidTriangles.array.length = 0; + for (triangle$iterator0 = triangulation.map_0.keySet_0().iterator_0(); triangle$iterator0.hasNext_0();) { + triangle = castTo(triangle$iterator0.next_1(), 317); + c = triangle.circumcenter; + $distance_0(c, triangle.a); + fuzzyCompare($distance_0(triangle.circumcenter, vertex), $distance_0(triangle.circumcenter, triangle.a)) < 0 && (push_1(invalidTriangles.array, triangle) , true); + } + boundary.array.length = 0; + for (triangle$iterator = new ArrayList$1(invalidTriangles); triangle$iterator.i < triangle$iterator.this$01.array.length;) { + triangle = castTo($next_6(triangle$iterator), 317); + for (tEdge$iterator0 = new ArrayList$1(triangle.tEdges); tEdge$iterator0.i < tEdge$iterator0.this$01.array.length;) { + tEdge = castTo($next_6(tEdge$iterator0), 177); + onBoundary = true; + for (other$iterator = new ArrayList$1(invalidTriangles); other$iterator.i < other$iterator.this$01.array.length;) { + other = castTo($next_6(other$iterator), 317); + other != triangle && (equals_57(tEdge, $get_11(other.tEdges, 0)) || equals_57(tEdge, $get_11(other.tEdges, 1)) || equals_57(tEdge, $get_11(other.tEdges, 2))) && (onBoundary = false); + } + onBoundary && (push_1(boundary.array, tEdge) , true); + } + } + $removeAll_1(triangulation, invalidTriangles); + $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$0$Type); + for (tEdge$iterator = new ArrayList$1(boundary); tEdge$iterator.i < tEdge$iterator.this$01.array.length;) { + tEdge = castTo($next_6(tEdge$iterator), 177); + $add_6(triangulation, new TTriangle(vertex, tEdge.u, tEdge.v)); + } + } + tEdges = new HashSet; + $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$1$Type(tEdges)); + i = tEdges.map_0.keySet_0().iterator_0(); + while (i.hasNext_0()) { + tEdge = castTo(i.next_1(), 177); + ($contains_9(superTriangle, tEdge.u) || $contains_9(superTriangle, tEdge.v)) && i.remove(); + } + $forEach_0(tEdges, new BowyerWatsonTriangulation$lambda$2$Type); + return tEdges; +} + +function BowyerWatsonTriangulation$lambda$0$Type(){ +} + +defineClass(1830, 1, $intern_19, BowyerWatsonTriangulation$lambda$0$Type); +_.accept = function accept_42(arg0){ + castTo(arg0, 317); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$0$Type', 1830); +function BowyerWatsonTriangulation$lambda$1$Type(tEdges_0){ + this.tEdges_0 = tEdges_0; +} + +defineClass(1831, 1, $intern_19, BowyerWatsonTriangulation$lambda$1$Type); +_.accept = function accept_43(arg0){ + $addAll(this.tEdges_0, castTo(arg0, 317).tEdges); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$1$Type', 1831); +function BowyerWatsonTriangulation$lambda$2$Type(){ +} + +defineClass(1832, 1, $intern_19, BowyerWatsonTriangulation$lambda$2$Type); +_.accept = function accept_44(arg0){ + castTo(arg0, 177); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$2$Type', 1832); +function createSpanningTree(tEdges, root, costFunction){ + var edge, edge$iterator, edge$iterator0, edgeList, edges, minST, nextEdge, nextNode, nodeInTree, subTree, treeNodes, weight; + weight = new HashMap; + for (edge$iterator0 = tEdges.map_0.keySet_0().iterator_0(); edge$iterator0.hasNext_0();) { + edge = castTo(edge$iterator0.next_1(), 177); + $put_6(weight, edge, costFunction.cost(edge)); + } + edgeList = (checkNotNull(tEdges) , tEdges?new ArrayList_1(tEdges):newArrayList_0(tEdges.map_0.keySet_0().iterator_0())); + $sort(edgeList, new NaiveMinST$lambda$0$Type(weight)); + edges = newLinkedHashSet(edgeList); + minST = new Tree(root); + treeNodes = new HashMap; + $put_9(treeNodes.hashCodeMap, root, minST); + while (edges.map_0.size_1() != 0) { + nextEdge = null; + nextNode = null; + nodeInTree = null; + for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 177); + if ($doubleValue(castToDouble(getEntryValueOrNull($getEntry_0(weight.hashCodeMap, edge)))) <= $intern_60) { + if ($containsKey_3(treeNodes, edge.u) && !$containsKey_3(treeNodes, edge.v)) { + nextNode = edge.v; + nodeInTree = edge.u; + nextEdge = edge; + break; + } + if ($containsKey_3(treeNodes, edge.v)) { + if (!$containsKey_3(treeNodes, edge.u)) { + nextNode = edge.u; + nodeInTree = edge.v; + nextEdge = edge; + break; + } + } + } + } + if (!nextEdge) { + break; + } + subTree = new Tree(nextNode); + $add_3(castTo(getEntryValueOrNull($getEntry_0(treeNodes.hashCodeMap, nodeInTree)), 225).children, subTree); + $put_9(treeNodes.hashCodeMap, nextNode, subTree); + edges.map_0.remove_0(nextEdge) != null; + } + return minST; +} + +function lambda$0_6(weight_0, e1_1, e2_2){ + return $compareTo_4(castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e1_1))), castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e2_2)))); +} + +function NaiveMinST$lambda$0$Type(weight_0){ + this.weight_0 = weight_0; +} + +defineClass(1827, 1, $intern_88, NaiveMinST$lambda$0$Type); +_.compare_1 = function compare_12(arg0, arg1){ + return lambda$0_6(this.weight_0, castTo(arg0, 177), castTo(arg1, 177)); +} +; +_.equals_0 = function equals_61(other){ + return this === other; +} +; +_.reversed = function reversed_4(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_NaiveMinST$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NaiveMinST/lambda$0$Type', 1827); +function $execute(this$static){ + var calcu; + sortPortLists(this$static.adapter); + calculateLabelAndNodeSizes(this$static.adapter); + calcu = new NodeMarginCalculator(this$static.adapter); + $process(calcu); +} + +function NodeMicroLayout(adapter){ + this.adapter = adapter; +} + +defineClass(449, 1, {}, NodeMicroLayout); +var Lorg_eclipse_elk_alg_common_NodeMicroLayout_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NodeMicroLayout', 449); +function TEdge(u, v){ + this.u = u; + this.v = v; +} + +defineClass(177, 1, {177:1}, TEdge); +_.equals_0 = function equals_62(obj){ + var other; + if (instanceOf(obj, 177)) { + other = castTo(obj, 177); + return equals_57(this.u, other.u) && equals_57(this.v, other.v) || equals_57(this.u, other.v) && equals_57(this.v, other.u); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_59(){ + return hashCode_55(this.u) + hashCode_55(this.v); +} +; +var Lorg_eclipse_elk_alg_common_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TEdge', 177); +function $contains_9(this$static, vertex){ + return equals_57(vertex, $get_11(this$static.vertices, 0)) || equals_57(vertex, $get_11(this$static.vertices, 1)) || equals_57(vertex, $get_11(this$static.vertices, 2)); +} + +function TTriangle(a, b, c){ + var ab, ac, bc, e, f, g, px, py; + this.a = a; + this.b = b; + this.c = c; + this.tEdges = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_TEdge_2_classLit, 1), $intern_2, 177, 0, [new TEdge(a, b), new TEdge(b, c), new TEdge(c, a)])); + this.vertices = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [a, b, c])); + this.circumcenter = (ab = $sub_0($clone_1(this.b), this.a) , ac = $sub_0($clone_1(this.c), this.a) , bc = $sub_0($clone_1(this.c), this.b) , e = ab.x_0 * (this.a.x_0 + this.b.x_0) + ab.y_0 * (this.a.y_0 + this.b.y_0) , f = ac.x_0 * (this.a.x_0 + this.c.x_0) + ac.y_0 * (this.a.y_0 + this.c.y_0) , g = 2 * (ab.x_0 * bc.y_0 - ab.y_0 * bc.x_0) , px = (ac.y_0 * e - ab.y_0 * f) / g , py = (ab.x_0 * f - ac.x_0 * e) / g , new KVector_1(px, py)); +} + +defineClass(317, 1, {317:1}, TTriangle); +_.equals_0 = function equals_63(obj){ + var other; + if (instanceOf(obj, 317)) { + other = castTo(obj, 317); + return $contains_9(this, other.a) && $contains_9(this, other.b) && $contains_9(this, other.c); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_60(){ + return hashCode_55(this.a) + hashCode_55(this.b) + hashCode_55(this.c); +} +; +var Lorg_eclipse_elk_alg_common_TTriangle_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TTriangle', 317); +function Tree(n){ + this.node = n; + this.children = new ArrayList; +} + +defineClass(225, 1, {225:1}, Tree); +var Lorg_eclipse_elk_alg_common_Tree_2_classLit = createForClass('org.eclipse.elk.alg.common', 'Tree', 225); +function $go(this$static){ + var h, h$iterator, p, p$iterator; + $clinit_Collections(); + $sort(this$static.points, this$static.comparator); + for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { + p = $next_6(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_6(h$iterator), 693); + h.handle(p); + } + } +} + +function Scanline(points, comparator, eventHandlers){ + this.comparator = comparator; + this.points = points; + this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); +} + +function execute(points, comparator, eventHandlers){ + var copy; + copy = (checkNotNull(points) , new ArrayList_1(points)); + $go(new Scanline(copy, comparator, eventHandlers)); +} + +defineClass(1218, 1, {}, Scanline); +var Lorg_eclipse_elk_alg_common_compaction_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction', 'Scanline', 1218); +var Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.common.compaction', 'Scanline/EventHandler'); +function $supports(this$static, direction){ + return $containsEnum(this$static.supportedDirections, direction); +} + +function CGraph(supportedDirections){ + this.cNodes = new ArrayList; + this.cGroups = new ArrayList; + this.predefinedHorizontalConstraints = new ArrayList; + this.predefinedVerticalConstraints = new ArrayList; + this.supportedDirections = supportedDirections; +} + +defineClass(1758, 1, {}, CGraph); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGraph', 1758); +function $addCNode(this$static, cNode){ + if (cNode.cGroup) { + throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); + } + $add_6(this$static.cNodes, cNode); + cNode.cGroup = this$static; + !this$static.reference && (this$static.reference = cNode); +} + +function CGroup(){ + this.cNodes = new LinkedHashSet; + this.incomingConstraints = new HashSet; + this.outDegree = 0; + this.outDegreeReal = 0; +} + +defineClass(316, 1, {316:1}, CGroup); +_.delta = 0; +_.deltaNormalized = 0; +_.id_0 = 0; +_.outDegree = 0; +_.outDegreeReal = 0; +_.startPos = $intern_61; +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup', 316); +function $create(this$static, graph){ + $add_3(graph.cGroups, this$static.group_0); + return this$static.group_0; +} + +function $master(this$static, master){ + this$static.group_0.master = master; + return this$static; +} + +function $nodes(this$static, nodes){ + var n, n$array, n$index, n$max; + for (n$array = nodes , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { + n = n$array[n$index]; + $addCNode(this$static.group_0, n); + } + return this$static; +} + +function CGroup$CGroupBuilder(){ + this.group_0 = new CGroup; +} + +defineClass(830, 1, {}, CGroup$CGroupBuilder); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup$CGroupBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup/CGroupBuilder', 830); +function CNode(){ + this.cGroupOffset = new KVector; + this.constraints = new ArrayList; +} + +defineClass(60, 1, {60:1}, CNode); +_.toString_0 = function toString_76(){ + var number; + if (this.toStringDelegate) { + return castToString(this.toStringDelegate.apply_0(this)); + } + return $ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit) , Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit.typeName + '@' + (number = getObjectIdentityHashCode(this) >>> 0 , number.toString(16)); +} +; +_.id_0 = 0; +_.startPos = $intern_61; +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode', 60); +function $create_0(this$static, graph){ + $add_3(graph.cNodes, this$static.node); + return this$static.node; +} + +function $hitbox(this$static, hitbox){ + this$static.node.hitbox = hitbox; + return this$static; +} + +function $origin(this$static, origin_0){ + this$static.node.origin_0 = origin_0; + return this$static; +} + +function $toStringDelegate(this$static, delegate){ + this$static.node.toStringDelegate = delegate; + return this$static; +} + +function CNode$CNodeBuilder(){ + this.node = new CNode; +} + +defineClass(829, 1, {}, CNode$CNodeBuilder); +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode$CNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode/CNodeBuilder', 829); +function eq_0(d1, d2){ + return $clinit_DoubleMath() , checkNonNegative($intern_42) , $wnd.Math.abs(d1 - d2) <= $intern_42 || d1 == d2 || isNaN(d1) && isNaN(d2); +} + +function gt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_42) , ($wnd.Math.abs(d1 - d2) <= $intern_42 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) > 0; +} + +function le(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_42) , ($wnd.Math.abs(d1 - d2) <= $intern_42 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) <= 0; +} + +function lt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_42) , ($wnd.Math.abs(d1 - d2) <= $intern_42 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) < 0; +} + +function $clinit_ISpacingsHandler(){ + $clinit_ISpacingsHandler = emptyMethod; + DEFAULT_SPACING_HANDLER = new ISpacingsHandler$1; +} + +var DEFAULT_SPACING_HANDLER; +function ISpacingsHandler$1(){ +} + +defineClass(1590, 1, {}, ISpacingsHandler$1); +_.getHorizontalSpacing = function getHorizontalSpacing(cNode1, cNode2){ + return 0; +} +; +_.getVerticalSpacing = function getVerticalSpacing(cNode1, cNode2){ + return 0; +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ISpacingsHandler/1', 1590); +function LongestPathCompaction(){ +} + +defineClass(1853, 1, {}, LongestPathCompaction); +_.compact = function compact(compactor){ + var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; + minStartPos = $intern_60; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator0), 60); + minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); + } + sinks = new LinkedList; + for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 316); + group.startPos = minStartPos; + group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 316); + diff = group.reference.hitbox.x_0; + for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { + node = castTo(node$iterator0.next_1(), 60); + suggestedX = group.startPos + node.cGroupOffset.x_0; + !$isLocked(compactor, group, compactor.direction) || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); + } + diff -= group.reference.startPos; + group.delta += diff; + compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); + for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 60); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 60); + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing(node, incNode)); + incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); + $isLocked_0(compactor, incNode, compactor.direction) && (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); + --incNode.cGroup.outDegree; + incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); + } + } + } + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + cNode.hitbox.x_0 = cNode.startPos; + } +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_LongestPathCompaction_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'LongestPathCompaction', 1853); +function $clinit_OneDimensionalCompactor(){ + $clinit_OneDimensionalCompactor = emptyMethod; + LONGEST_PATH_COMPACTION = new LongestPathCompaction; + SCANLINE_CONSTRAINTS = new ScanlineConstraintCalculator; + QUADRATIC_CONSTRAINTS = new QuadraticConstraintCalculation; +} + +function $calculateConstraints(this$static){ + var cNode, cNode$iterator, cstrs; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + cNode.constraints.clear_0(); + } + $isHorizontal(this$static.direction)?(cstrs = this$static.cGraph.predefinedHorizontalConstraints):(cstrs = this$static.cGraph.predefinedVerticalConstraints); + $forEach_1(cstrs, new OneDimensionalCompactor$lambda$0$Type(this$static)); + this$static.constraintAlgorithm.calculateConstraints(this$static); + $calculateConstraintsForCGroups(this$static); +} + +function $calculateConstraintsForCGroups(this$static){ + var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; + for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_6(group$iterator0), 316); + group.outDegree = 0; + group.outDegreeReal = 0; + group.incomingConstraints.map_0.clear_0(); + } + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 316); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 60); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 60); + if (inc.cGroup != group) { + $add_6(group.incomingConstraints, inc); + ++inc.cGroup.outDegree; + ++inc.cGroup.outDegreeReal; + } + } + } + } +} + +function $calculateGroupOffsets(this$static){ + var group, group$iterator, n, n$iterator, n$iterator0; + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 316); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 60); + $reset_5(n.cGroupOffset); + (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); + } + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 60); + n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; + n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; + } + } + return this$static; +} + +function $changeDirection(this$static, dir_0){ + var oldDirection; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + if (!$supports(this$static.cGraph, dir_0)) { + throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); + } + if (dir_0 == this$static.direction) { + return this$static; + } + oldDirection = this$static.direction; + this$static.direction = dir_0; + switch (oldDirection.ordinal) { + case 0: + switch (dir_0.ordinal) { + case 2: + $calculateConstraints(this$static); + break; + case 1: + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 4: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 2: + switch (dir_0.ordinal) { + case 1: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + break; + case 4: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 1: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + break; + case 4: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 4: + switch (dir_0.ordinal) { + case 2: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 1: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + } + + break; + case 3: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 1: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 4: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + } + + } + return this$static; +} + +function $compact(this$static){ + var g, g$iterator, n, n$iterator; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection(this$static, LEFT_6); + for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 316); + g.outDegree = g.outDegreeReal; + } + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 60); + n.startPos = $intern_61; + } + this$static.compactionAlgorithm.compact(this$static); + return this$static; +} + +function $isLocked(this$static, group, dir_0){ + var n, n$iterator; + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 60); + if ($isLocked_0(this$static, n, dir_0)) { + return true; + } + } + return false; +} + +function $isLocked_0(this$static, node, dir_0){ + if (this$static.lockFun) { + return this$static.lockFun.isLocked(node, dir_0); + } + return false; +} + +function $lambda$0_5(this$static, p_0){ + this$static.direction == ($clinit_Direction_0() , LEFT_6) || this$static.direction == UP_1?castTo(p_0.first, 60).constraints.add_2(castTo(p_0.second, 60)):castTo(p_0.second, 60).constraints.add_2(castTo(p_0.first, 60)); +} + +function $mirrorHitboxes(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; + } + $calculateGroupOffsets(this$static); +} + +function $reverseConstraints(this$static){ + var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; + incMap = new HashMap; + for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator0), 60); + $put_6(incMap, cNode, new ArrayList); + } + for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator1), 60); + cNode.startPos = $intern_61; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 60); + castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); + } + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + cNode.constraints.clear_0(); + cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); + } + $calculateConstraintsForCGroups(this$static); +} + +function $setCompactionAlgorithm(this$static, compactor){ + this$static.compactionAlgorithm = compactor; + return this$static; +} + +function $setConstraintAlgorithm(this$static, theConstraintAlgorithm){ + this$static.constraintAlgorithm = theConstraintAlgorithm; + return this$static; +} + +function $setLockFunction(this$static, fun){ + this$static.lockFun = fun; + return this$static; +} + +function $setSpacingsHandler(this$static, handler){ + this$static.spacingsHandler = handler; + return this$static; +} + +function $transposeHitboxes(this$static){ + var cNode, cNode$iterator, tmp; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + tmp = cNode.hitbox.x_0; + cNode.hitbox.x_0 = cNode.hitbox.y_0; + cNode.hitbox.y_0 = tmp; + tmp = cNode.hitbox.width_0; + cNode.hitbox.width_0 = cNode.hitbox.height; + cNode.hitbox.height = tmp; + tmp = cNode.cGroupOffset.x_0; + cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; + cNode.cGroupOffset.y_0 = tmp; + } + $calculateGroupOffsets(this$static); +} + +function OneDimensionalCompactor(cGraph){ + $clinit_OneDimensionalCompactor(); + var n, n$iterator; + this.compactionAlgorithm = LONGEST_PATH_COMPACTION; + this.constraintAlgorithm = SCANLINE_CONSTRAINTS; + this.spacingsHandler = ($clinit_ISpacingsHandler() , DEFAULT_SPACING_HANDLER); + this.direction = ($clinit_Direction_0() , UNDEFINED_2); + this.cGraph = cGraph; + $calculateGroupOffsets(this); + for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 60); + !n.cGroup && $create($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 60, 0, [n])), cGraph); + n.hitboxPreCompaction = new ElkRectangle_1(n.hitbox); + } +} + +defineClass(1756, 1, {}, OneDimensionalCompactor); +_.finished = false; +var LONGEST_PATH_COMPACTION, QUADRATIC_CONSTRAINTS, SCANLINE_CONSTRAINTS; +var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor', 1756); +function OneDimensionalCompactor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1757, 1, $intern_19, OneDimensionalCompactor$lambda$0$Type); +_.accept = function accept_45(arg0){ + $lambda$0_5(this.$$outer_0, castTo(arg0, 42)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1757); +function QuadraticConstraintCalculation(){ +} + +defineClass(1854, 1, {}, QuadraticConstraintCalculation); +_.calculateConstraints = function calculateConstraints(compactor){ + var cNode, cNode$iterator, cNode1, cNode1$iterator, cNode2, cNode2$iterator, spacing; + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + cNode.constraints.clear_0(); + } + for (cNode1$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode1$iterator.i < cNode1$iterator.this$01.array.length;) { + cNode1 = castTo($next_6(cNode1$iterator), 60); + for (cNode2$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode2$iterator.i < cNode2$iterator.this$01.array.length;) { + cNode2 = castTo($next_6(cNode2$iterator), 60); + if (cNode1 == cNode2) { + continue; + } + if (!!cNode1.cGroup && cNode1.cGroup == cNode2.cGroup) { + continue; + } + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getVerticalSpacing(cNode1, cNode2)):(spacing = compactor.spacingsHandler.getHorizontalSpacing(cNode1, cNode2)); + (cNode2.hitbox.x_0 > cNode1.hitbox.x_0 || cNode1.hitbox.x_0 == cNode2.hitbox.x_0 && cNode1.hitbox.width_0 < cNode2.hitbox.width_0) && gt_0(cNode2.hitbox.y_0 + cNode2.hitbox.height + spacing, cNode1.hitbox.y_0) && lt_0(cNode2.hitbox.y_0, cNode1.hitbox.y_0 + cNode1.hitbox.height + spacing) && cNode1.constraints.add_2(cNode2); + } + } +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_QuadraticConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'QuadraticConstraintCalculation', 1854); +function $applyOr(this$static, other){ + this$static.left = this$static.left | other.left; + this$static.right = this$static.right | other.right; + this$static.up = this$static.up | other.up; + this$static.down = this$static.down | other.down; +} + +function $get_18(this$static, direction){ + switch (direction.ordinal) { + case 2: + return this$static.left; + case 1: + return this$static.right; + case 4: + return this$static.up; + case 3: + return this$static.down; + default:return false; + } +} + +function $set_2(this$static, value_0, direction){ + switch (direction.ordinal) { + case 2: + this$static.left = value_0; + break; + case 1: + this$static.right = value_0; + break; + case 4: + this$static.up = value_0; + break; + case 3: + this$static.down = value_0; + } +} + +function $set_3(this$static){ + this$static.left = false; + this$static.right = false; + this$static.up = false; + this$static.down = false; +} + +function Quadruplet(){ + $set_3(this); +} + +defineClass(529, 1, {529:1}, Quadruplet); +_.down = false; +_.left = false; +_.right = false; +_.up = false; +var Lorg_eclipse_elk_alg_common_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'Quadruplet', 529); +function $overlap(n1, n2){ + if (!n1 || !n2 || n1 == n2) { + return false; + } + return le(n1.hitbox.x_0, n2.hitbox.x_0 + n2.hitbox.width_0) && le(n2.hitbox.x_0, n1.hitbox.x_0 + n1.hitbox.width_0); +} + +function $sweep(this$static, filterFun){ + var n, n$iterator, points; + points = new ArrayList; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 60); + if (filterFun.apply_1(n)) { + $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, true)); + $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, false)); + } + } + $reset_1(this$static.constraintsScanlineHandler); + execute(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 693, 0, [this$static.constraintsScanlineHandler]))); +} + +function ScanlineConstraintCalculator(){ + this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type; + this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler(this); +} + +function lambda$0_7(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.hitbox.y_0; + p1_0.low || (y1 += p1_0.node.hitbox.height); + y2 = p2_1.node.hitbox.y_0; + p2_1.low || (y2 += p2_1.node.hitbox.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(817, 1, {}, ScanlineConstraintCalculator); +_.calculateConstraints = function calculateConstraints_0(theCompactor){ + this.compactor = theCompactor; + $sweep(this, new ScanlineConstraintCalculator$lambda$1$Type); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator', 817); +function $handle(this$static, p){ + var left, right; + p.low?$insert_2(this$static, p):(left = castTo($lower(this$static.intervals, p.node), 60) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right = castTo($higher(this$static.intervals, p.node), 60) , !!right && this$static.cand[right.id_0] == p.node && !!right.cGroup && right.cGroup != p.node.cGroup && p.node.constraints.add_2(right) , $remove_28(this$static.intervals, p.node) , undefined); +} + +function $insert_2(this$static, p){ + var right, success; + success = $add_10(this$static.intervals, p.node); + if (!success) { + throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline constraint calculation.')); + } + ($overlap(p.node, castTo($floor(this$static.intervals, p.node), 60)) || $overlap(p.node, castTo($ceiling(this$static.intervals, p.node), 60))) && ($clinit_System() , String.fromCharCode(10)); + this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 60); + right = castTo($higher(this$static.intervals, p.node), 60); + !!right && (this$static.cand[right.id_0] = p.node); +} + +function $reset_1(this$static){ + var index_0, n, n$iterator; + this$static.intervals.map_0.clear_0(); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, $intern_2, 60, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); + index_0 = 0; + for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 60); + n.id_0 = index_0++; + } +} + +function ScanlineConstraintCalculator$ConstraintsScanlineHandler(this$0){ + this.this$01 = this$0; + this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type), 50)); +} + +function lambda$0_8(c1_0, c2_1){ + return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); +} + +defineClass(1784, 1, {693:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler); +_.handle = function handle(p){ + $handle(this, castTo(p, 473)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1784); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1785, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_13(arg0, arg1){ + return lambda$0_8(castTo(arg0, 60), castTo(arg1, 60)); +} +; +_.equals_0 = function equals_64(other){ + return this === other; +} +; +_.reversed = function reversed_5(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1785); +function ScanlineConstraintCalculator$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(473, 1, {473:1}, ScanlineConstraintCalculator$Timestamp); +_.low = false; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/Timestamp', 473); +function ScanlineConstraintCalculator$lambda$0$Type(){ +} + +defineClass(1786, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type); +_.compare_1 = function compare_14(arg0, arg1){ + return lambda$0_7(castTo(arg0, 473), castTo(arg1, 473)); +} +; +_.equals_0 = function equals_65(other){ + return this === other; +} +; +_.reversed = function reversed_6(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$0$Type', 1786); +function ScanlineConstraintCalculator$lambda$1$Type(){ +} + +defineClass(1787, 1, $intern_89, ScanlineConstraintCalculator$lambda$1$Type); +_.apply_1 = function apply_36(arg0){ + return castTo(arg0, 60) , true; +} +; +_.equals_0 = function equals_66(other){ + return this === other; +} +; +_.test_0 = function test_6(input_0){ + return castTo(input_0, 60) , true; +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$1$Type', 1787); +function $clinit_HighLevelSortingCriterion(){ + $clinit_HighLevelSortingCriterion = emptyMethod; + NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST = new HighLevelSortingCriterion('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST', 0); + CORNER_CASES_THAN_SINGLE_SIDE_LAST = new HighLevelSortingCriterion('CORNER_CASES_THAN_SINGLE_SIDE_LAST', 1); +} + +function HighLevelSortingCriterion(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_12(name_0){ + $clinit_HighLevelSortingCriterion(); + return valueOf(($clinit_HighLevelSortingCriterion$Map() , $MAP_2), name_0); +} + +function values_20(){ + $clinit_HighLevelSortingCriterion(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_37, 436, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]); +} + +defineClass(436, 22, {3:1, 34:1, 22:1, 436:1}, HighLevelSortingCriterion); +var CORNER_CASES_THAN_SINGLE_SIDE_LAST, NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST; +var Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'HighLevelSortingCriterion', 436, Ljava_lang_Enum_2_classLit, values_20, valueOf_12); +function $clinit_HighLevelSortingCriterion$Map(){ + $clinit_HighLevelSortingCriterion$Map = emptyMethod; + $MAP_2 = createValueOfMap(($clinit_HighLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_37, 436, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]))); +} + +var $MAP_2; +function $clinit_LowLevelSortingCriterion(){ + $clinit_LowLevelSortingCriterion = emptyMethod; + BY_SIZE = new LowLevelSortingCriterion('BY_SIZE', 0); + BY_SIZE_AND_SHAPE = new LowLevelSortingCriterion('BY_SIZE_AND_SHAPE', 1); +} + +function LowLevelSortingCriterion(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_13(name_0){ + $clinit_LowLevelSortingCriterion(); + return valueOf(($clinit_LowLevelSortingCriterion$Map() , $MAP_3), name_0); +} + +function values_21(){ + $clinit_LowLevelSortingCriterion(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_37, 435, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]); +} + +defineClass(435, 22, {3:1, 34:1, 22:1, 435:1}, LowLevelSortingCriterion); +var BY_SIZE, BY_SIZE_AND_SHAPE; +var Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'LowLevelSortingCriterion', 435, Ljava_lang_Enum_2_classLit, values_21, valueOf_13); +function $clinit_LowLevelSortingCriterion$Map(){ + $clinit_LowLevelSortingCriterion$Map = emptyMethod; + $MAP_3 = createValueOfMap(($clinit_LowLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_37, 435, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]))); +} + +var $MAP_3; +var Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit = createForInterface('org.eclipse.elk.core.data', 'ILayoutMetaDataProvider'); +function $clinit_PolyominoOptions(){ + $clinit_PolyominoOptions = emptyMethod; + POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT = ($clinit_TraversalStrategy() , QUADRANTS_LINE_BY_LINE); + POLYOMINO_TRAVERSAL_STRATEGY = new Property_1('org.eclipse.elk.polyomino.traversalStrategy', POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT); + POLYOMINO_LOW_LEVEL_SORT_DEFAULT = ($clinit_LowLevelSortingCriterion() , BY_SIZE_AND_SHAPE); + POLYOMINO_LOW_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.lowLevelSort', POLYOMINO_LOW_LEVEL_SORT_DEFAULT); + POLYOMINO_HIGH_LEVEL_SORT_DEFAULT = ($clinit_HighLevelSortingCriterion() , NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST); + POLYOMINO_HIGH_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.highLevelSort', POLYOMINO_HIGH_LEVEL_SORT_DEFAULT); + POLYOMINO_FILL = new Property_1('org.eclipse.elk.polyomino.fill', ($clinit_Boolean() , true)); +} + +function PolyominoOptions(){ + $clinit_PolyominoOptions(); +} + +defineClass(864, 1, $intern_90, PolyominoOptions); +_.apply_4 = function apply_37(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.traversalStrategy'), 'polyomino'), 'Polyomino Traversal Strategy'), 'Traversal strategy for trying different candidate positions for polyominoes.'), POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.lowLevelSort'), 'polyomino'), 'Polyomino Secondary Sorting Criterion'), 'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'), POLYOMINO_LOW_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.highLevelSort'), 'polyomino'), 'Polyomino Primary Sorting Criterion'), 'Possible primary sorting criteria for the processing order of polyominoes.'), POLYOMINO_HIGH_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.fill'), 'polyomino'), 'Fill Polyominoes'), 'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); +} +; +var POLYOMINO_FILL, POLYOMINO_HIGH_LEVEL_SORT, POLYOMINO_HIGH_LEVEL_SORT_DEFAULT, POLYOMINO_LOW_LEVEL_SORT, POLYOMINO_LOW_LEVEL_SORT_DEFAULT, POLYOMINO_TRAVERSAL_STRATEGY, POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT; +var Lorg_eclipse_elk_alg_common_compaction_options_PolyominoOptions_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.options', 'PolyominoOptions', 864); +function $clinit_TraversalStrategy(){ + $clinit_TraversalStrategy = emptyMethod; + SPIRAL = new TraversalStrategy('SPIRAL', 0); + LINE_BY_LINE = new TraversalStrategy('LINE_BY_LINE', 1); + MANHATTAN = new TraversalStrategy('MANHATTAN', 2); + JITTER = new TraversalStrategy('JITTER', 3); + QUADRANTS_LINE_BY_LINE = new TraversalStrategy('QUADRANTS_LINE_BY_LINE', 4); + QUADRANTS_MANHATTAN = new TraversalStrategy('QUADRANTS_MANHATTAN', 5); + QUADRANTS_JITTER = new TraversalStrategy('QUADRANTS_JITTER', 6); + COMBINE_LINE_BY_LINE_MANHATTAN = new TraversalStrategy('COMBINE_LINE_BY_LINE_MANHATTAN', 7); + COMBINE_JITTER_MANHATTAN = new TraversalStrategy('COMBINE_JITTER_MANHATTAN', 8); +} + +function TraversalStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_14(name_0){ + $clinit_TraversalStrategy(); + return valueOf(($clinit_TraversalStrategy$Map() , $MAP_4), name_0); +} + +function values_22(){ + $clinit_TraversalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_37, 257, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]); +} + +defineClass(257, 22, {3:1, 34:1, 22:1, 257:1}, TraversalStrategy); +var COMBINE_JITTER_MANHATTAN, COMBINE_LINE_BY_LINE_MANHATTAN, JITTER, LINE_BY_LINE, MANHATTAN, QUADRANTS_JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, SPIRAL; +var Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'TraversalStrategy', 257, Ljava_lang_Enum_2_classLit, values_22, valueOf_14); +function $clinit_TraversalStrategy$Map(){ + $clinit_TraversalStrategy$Map = emptyMethod; + $MAP_4 = createValueOfMap(($clinit_TraversalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_37, 257, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]))); +} + +var $MAP_4; +function $getOther(this$static, some_0){ + if (some_0 == this$static.source) { + return this$static.target; + } + else if (some_0 == this$static.target) { + return this$static.source; + } + else { + throw toJs(new IllegalArgumentException_0('Node ' + some_0 + ' not part of edge ' + this$static)); + } +} + +function NEdge(){ +} + +defineClass(218, 1, {218:1}, NEdge); +_.toString_0 = function toString_77(){ + return 'NEdge[id=' + this.id_0 + ' w=' + this.weight + ' d=' + this.delta + ']'; +} +; +_.delta = 1; +_.id_0 = 0; +_.internalId = 0; +_.treeEdge = false; +_.weight = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge', 218); +function $create_1(this$static){ + if (!this$static.edge.source || !this$static.edge.target) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit.simpleName + ' must have a source and target ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit.simpleName) + ' specified.'))); + } + if (this$static.edge.source == this$static.edge.target) { + throw toJs(new IllegalStateException_0('Network simplex does not support self-loops: ' + this$static.edge + ' ' + this$static.edge.source + ' ' + this$static.edge.target)); + } + $add_11(this$static.edge.source.outgoingEdges, this$static.edge); + $add_11(this$static.edge.target.incomingEdges, this$static.edge); + return this$static.edge; +} + +function $delta(this$static, delta){ + this$static.edge.delta = delta; + return this$static; +} + +function $source(this$static, source){ + this$static.edge.source = source; + return this$static; +} + +function $target(this$static, target){ + this$static.edge.target = target; + return this$static; +} + +function $weight(this$static, weight){ + this$static.edge.weight = weight; + return this$static; +} + +function NEdge$NEdgeBuilder(){ + this.edge = new NEdge; +} + +defineClass(182, 1, {}, NEdge$NEdgeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge$NEdgeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge/NEdgeBuilder', 182); +function $createArtificialRootAndConnect(this$static, nodesToConnect){ + var root, src_0, src$iterator; + root = $create_2(new NNode$NNodeBuilder, this$static); + for (src$iterator = new ArrayList$1(nodesToConnect); src$iterator.i < src$iterator.this$01.array.length;) { + src_0 = castTo($next_6(src$iterator), 125); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0), root), src_0)); + } + return root; +} + +function $dfs(this$static, node, mark){ + var edge, edge$iterator, other; + if (mark[node.internalId]) { + return; + } + mark[node.internalId] = true; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + other = $getOther(edge, node); + $dfs(this$static, other, mark); + } +} + +function $findConCompRepresentatives(this$static){ + var ccRep, mark, node, node$iterator; + ccRep = new ArrayList; + mark = initUnidimensionalArray(Z_classLit, $intern_91, 28, this$static.nodes.array.length, 16, 1); + fill0_3(mark, mark.length); + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + if (!mark[node.internalId]) { + push_1(ccRep.array, node); + $dfs(this$static, node, mark); + } + } + return ccRep; +} + +function $makeConnected(this$static){ + var ccRep, id_0, n, n$iterator, root; + id_0 = 0; + for (n$iterator = new ArrayList$1(this$static.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 125); + n.internalId = id_0++; + } + ccRep = $findConCompRepresentatives(this$static); + root = null; + ccRep.array.length > 1 && (root = $createArtificialRootAndConnect(this$static, ccRep)); + return root; +} + +function NGraph(){ + this.nodes = new ArrayList; +} + +defineClass(662, 1, {}, NGraph); +var Lorg_eclipse_elk_alg_common_networksimplex_NGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NGraph', 662); +function $getConnectedEdges(this$static){ + if (this$static.incomingEdgesModCnt != this$static.incomingEdges.modCount || this$static.outgoingEdgesModCnt != this$static.outgoingEdges.modCount) { + setLength(this$static.allEdges.array, 0); + $addAll_2(this$static.allEdges, this$static.incomingEdges); + $addAll_2(this$static.allEdges, this$static.outgoingEdges); + this$static.incomingEdgesModCnt = this$static.incomingEdges.modCount; + this$static.outgoingEdgesModCnt = this$static.outgoingEdges.modCount; + } + return this$static.allEdges; +} + +function NNode(){ + this.outgoingEdges = new NNode$ChangeAwareArrayList; + this.incomingEdges = new NNode$ChangeAwareArrayList; + this.allEdges = new ArrayList; + this.unknownCutvalues = new ArrayList; +} + +defineClass(125, 1, {125:1}, NNode); +_.incomingEdgesModCnt = -1; +_.internalId = 0; +_.layer = 0; +_.outgoingEdgesModCnt = -1; +_.treeNode = false; +var Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode', 125); +function $add_11(this$static, e){ + ++this$static.modCount; + return $add_3(this$static.list, e); +} + +function $remove_29(this$static, o){ + ++this$static.modCount; + return $remove_12(this$static.list, o); +} + +function NNode$ChangeAwareArrayList(){ + this.list = new ArrayList; +} + +defineClass(808, 1, $intern_73, NNode$ChangeAwareArrayList); +_.forEach_0 = function forEach_24(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_4(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.sort_0 = function sort_10(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_37(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_6(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.add_3 = function add_41(index_0, element){ + ++this.modCount; + $add_2(this.list, index_0, element); +} +; +_.add_2 = function add_42(e){ + return $add_11(this, e); +} +; +_.addAll_0 = function addAll_22(index_0, c){ + ++this.modCount; + return $addAll_1(this.list, index_0, c); +} +; +_.addAll = function addAll_23(c){ + ++this.modCount; + return $addAll_2(this.list, c); +} +; +_.clear_0 = function clear_51(){ + ++this.modCount; + setLength(this.list.array, 0); +} +; +_.contains = function contains_48(o){ + return $indexOf_3(this.list, o, 0) != -1; +} +; +_.containsAll = function containsAll_10(c){ + return $containsAll(this.list, c); +} +; +_.get_0 = function get_51(index_0){ + return $get_11(this.list, index_0); +} +; +_.indexOf_0 = function indexOf_7(o){ + return $indexOf_3(this.list, o, 0); +} +; +_.isEmpty = function isEmpty_25(){ + return this.list.array.length == 0; +} +; +_.iterator_0 = function iterator_66(){ + return unmodifiableIterator(new ArrayList$1(this.list)); +} +; +_.listIterator_0 = function listIterator_15(){ + throw toJs(new UnsupportedOperationException); +} +; +_.listIterator_1 = function listIterator_16(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_2 = function remove_91(index_0){ + ++this.modCount; + return $remove_11(this.list, index_0); +} +; +_.remove_1 = function remove_92(o){ + return $remove_29(this, o); +} +; +_.set_2 = function set_20(index_0, element){ + ++this.modCount; + return $set_1(this.list, index_0, element); +} +; +_.size_1 = function size_65(){ + return this.list.array.length; +} +; +_.subList = function subList_9(fromIndex, toIndex){ + return new AbstractList$SubList(this.list, fromIndex, toIndex); +} +; +_.toArray = function toArray_23(){ + return clone_0(this.list.array); +} +; +_.toArray_0 = function toArray_24(a){ + return $toArray_1(this.list, a); +} +; +_.modCount = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$ChangeAwareArrayList_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/ChangeAwareArrayList', 808); +function $create_2(this$static, graph){ + $add_3(graph.nodes, this$static.node); + return this$static.node; +} + +function $origin_0(this$static, origin_0){ + this$static.node.origin_0 = origin_0; + return this$static; +} + +function NNode$NNodeBuilder(){ + this.node = new NNode; +} + +defineClass(275, 1, {}, NNode$NNodeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$NNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/NNodeBuilder', 275); +function $balance(this$static, filling){ + var i, newLayer, node, node$iterator, range; + range = null; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + if (node.incomingEdges.list.array.length == node.outgoingEdges.list.array.length) { + newLayer = node.layer; + range = $minimalSpan(node); + for (i = node.layer - castTo(range.first, 17).value_0 + 1; i < node.layer + castTo(range.second, 17).value_0; i++) { + filling[i] < filling[newLayer] && (newLayer = i); + } + if (filling[newLayer] < filling[node.layer]) { + --filling[node.layer]; + ++filling[newLayer]; + node.layer = newLayer; + } + } + } +} + +function $cutvalues(this$static){ + var edge, edge$iterator, leafs, node, node$iterator, node$iterator0, source, target, toDetermine, treeEdgeCount; + leafs = new ArrayList; + for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 125); + treeEdgeCount = 0; + node.unknownCutvalues.array.length = 0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + if (edge.treeEdge) { + $add_3(node.unknownCutvalues, edge); + ++treeEdgeCount; + } + } + treeEdgeCount == 1 && (push_1(leafs.array, node) , true); + } + for (node$iterator = new ArrayList$1(leafs); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + while (node.unknownCutvalues.array.length == 1) { + toDetermine = castTo($next_6(new ArrayList$1(node.unknownCutvalues)), 218); + this$static.cutvalue[toDetermine.internalId] = toDetermine.weight; + source = toDetermine.source; + target = toDetermine.target; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + equals_Ljava_lang_Object__Z__devirtual$(edge, toDetermine) || (edge.treeEdge?source == edge.source || target == edge.target?(this$static.cutvalue[toDetermine.internalId] -= this$static.cutvalue[edge.internalId] - edge.weight):(this$static.cutvalue[toDetermine.internalId] += this$static.cutvalue[edge.internalId] - edge.weight):node == source?edge.source == node?(this$static.cutvalue[toDetermine.internalId] += edge.weight):(this$static.cutvalue[toDetermine.internalId] -= edge.weight):edge.source == node?(this$static.cutvalue[toDetermine.internalId] -= edge.weight):(this$static.cutvalue[toDetermine.internalId] += edge.weight)); + } + $remove_12(source.unknownCutvalues, toDetermine); + $remove_12(target.unknownCutvalues, toDetermine); + source == node?(node = toDetermine.target):(node = toDetermine.source); + } + } +} + +function $enterEdge(this$static, leave){ + var edge, edge$iterator, repSlack, replace, slack, source, target; + if (!leave.treeEdge) { + throw toJs(new IllegalArgumentException_0('The input edge is not a tree edge.')); + } + replace = null; + repSlack = $intern_0; + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + source = edge.source; + target = edge.target; + if ($isInHead(this$static, source, leave) && !$isInHead(this$static, target, leave)) { + slack = target.layer - source.layer - edge.delta; + if (slack < repSlack) { + repSlack = slack; + replace = edge; + } + } + } + return replace; +} + +function $exchange(this$static, leave, enter){ + var delta, node, node$iterator; + if (!leave.treeEdge) { + throw toJs(new IllegalArgumentException_0('Given leave edge is no tree edge.')); + } + if (enter.treeEdge) { + throw toJs(new IllegalArgumentException_0('Given enter edge is a tree edge already.')); + } + leave.treeEdge = false; + $remove_18(this$static.treeEdges, leave); + enter.treeEdge = true; + $add_6(this$static.treeEdges, enter); + delta = enter.target.layer - enter.source.layer - enter.delta; + $isInHead(this$static, enter.target, leave) || (delta = -delta); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + $isInHead(this$static, node, leave) || (node.layer += delta); + } + this$static.postOrder = 1; + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_6(new ArrayList$1(this$static.graph_0.nodes)), 125)); + $cutvalues(this$static); +} + +function $execute_0(this$static, monitor){ + var e, iter, node, node$iterator, removeSubtrees; + monitor.begin('Network simplex', 1); + if (this$static.graph_0.nodes.array.length < 1) { + monitor.done_1(); + return; + } + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + node.layer = 0; + } + removeSubtrees = this$static.graph_0.nodes.array.length >= 40; + removeSubtrees && $removeSubtrees(this$static); + $initialize(this$static); + $feasibleTree(this$static); + e = $leaveEdge(this$static); + iter = 0; + while (!!e && iter < this$static.iterationLimit) { + $exchange(this$static, e, $enterEdge(this$static, e)); + e = $leaveEdge(this$static); + ++iter; + } + removeSubtrees && $reattachSubtrees(this$static); + this$static.balance?$balance(this$static, $normalize(this$static)):$normalize(this$static); + this$static.cutvalue = null; + this$static.edges = null; + this$static.treeEdges = null; + this$static.edgeVisited = null; + this$static.lowestPoID = null; + this$static.poID = null; + this$static.sources = null; + this$static.subtreeNodesStack = null; + monitor.done_1(); +} + +function $feasibleTree(this$static){ + var e, node, node$iterator, slack; + $layeringTopologicalNumbering(this$static, this$static.sources); + if (this$static.edges.array.length > 0) { + fill_3(this$static.edgeVisited); + while ($tightTreeDFS(this$static, castTo($next_6(new ArrayList$1(this$static.graph_0.nodes)), 125)) < this$static.graph_0.nodes.array.length) { + e = $minimalSlack(this$static); + slack = e.target.layer - e.source.layer - e.delta; + e.target.treeNode && (slack = -slack); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + node.treeNode && (node.layer += slack); + } + fill_3(this$static.edgeVisited); + } + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_6(new ArrayList$1(this$static.graph_0.nodes)), 125)); + $cutvalues(this$static); + } +} + +function $initialize(this$static){ + var counter, edge, edge$iterator, index_0, n, n$iterator, node, node$iterator, numEdges, numNodes, theEdges; + numNodes = this$static.graph_0.nodes.array.length; + for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 125); + n.treeNode = false; + } + this$static.poID = initUnidimensionalArray(I_classLit, $intern_49, 28, numNodes, 15, 1); + this$static.lowestPoID = initUnidimensionalArray(I_classLit, $intern_49, 28, numNodes, 15, 1); + this$static.sources = new ArrayList; + index_0 = 0; + theEdges = new ArrayList; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + node.internalId = index_0++; + node.incomingEdges.list.array.length == 0 && $add_3(this$static.sources, node); + $addAll_2(theEdges, node.outgoingEdges); + } + counter = 0; + for (edge$iterator = new ArrayList$1(theEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + edge.internalId = counter++; + edge.treeEdge = false; + } + numEdges = theEdges.array.length; + if (this$static.cutvalue == null || this$static.cutvalue.length < numEdges) { + this$static.cutvalue = initUnidimensionalArray(D_classLit, $intern_66, 28, numEdges, 15, 1); + this$static.edgeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 28, numEdges, 16, 1); + } + else { + fill_3(this$static.edgeVisited); + } + this$static.edges = theEdges; + this$static.treeEdges = new LinkedHashSet_0(capacity_0(this$static.edges.array.length)); + this$static.postOrder = 1; +} + +function $isInHead(this$static, node, edge){ + var source, target; + source = edge.source; + target = edge.target; + if (this$static.lowestPoID[source.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[source.internalId] && this$static.lowestPoID[target.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[target.internalId]) { + if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { + return false; + } + return true; + } + if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { + return true; + } + return false; +} + +function $layeringTopologicalNumbering(this$static, initialRootNodes){ + var edge, edge$iterator, incident, node, node$iterator, roots, target; + incident = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.graph_0.nodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + incident[node.internalId] += node.incomingEdges.list.array.length; + } + roots = newLinkedList(initialRootNodes); + while (roots.size_0 != 0) { + node = castTo(roots.size_0 == 0?null:(checkCriticalElement(roots.size_0 != 0) , $removeNode_0(roots, roots.header.next_0)), 125); + for (edge$iterator = unmodifiableIterator(new ArrayList$1(node.outgoingEdges.list)); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 218); + target = edge.target; + target.layer = $wnd.Math.max(target.layer, node.layer + edge.delta); + --incident[target.internalId]; + incident[target.internalId] == 0 && ($addNode_0(roots, target, roots.tail.prev, roots.tail) , true); + } + } +} + +function $leaveEdge(this$static){ + var edge, edge$iterator; + for (edge$iterator = this$static.treeEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 218); + if (edge.treeEdge && this$static.cutvalue[edge.internalId] < -1.0E-10) { + return edge; + } + } + return null; +} + +function $minimalSlack(this$static){ + var curSlack, edge, edge$iterator, minSlack, minSlackEdge; + minSlack = $intern_0; + minSlackEdge = null; + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + if (edge.source.treeNode ^ edge.target.treeNode) { + curSlack = edge.target.layer - edge.source.layer - edge.delta; + if (curSlack < minSlack) { + minSlack = curSlack; + minSlackEdge = edge; + } + } + } + return minSlackEdge; +} + +function $minimalSpan(node){ + var currentSpan, edge, edge$iterator, minSpanIn, minSpanOut; + minSpanOut = $intern_0; + minSpanIn = $intern_0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + currentSpan = edge.target.layer - edge.source.layer; + edge.target == node && currentSpan < minSpanIn?(minSpanIn = currentSpan):currentSpan < minSpanOut && (minSpanOut = currentSpan); + } + minSpanIn == $intern_0 && (minSpanIn = -1); + minSpanOut == $intern_0 && (minSpanOut = -1); + return new Pair(valueOf_3(minSpanIn), valueOf_3(minSpanOut)); +} + +function $normalize(this$static){ + var filling, highest, layerID, lowest, node, node$iterator, node$iterator0, nodeCntInLayer, nodeCntInLayer$array, nodeCntInLayer$index, nodeCntInLayer$max; + highest = $intern_43; + lowest = $intern_0; + for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 125); + lowest = $wnd.Math.min(lowest, node.layer); + highest = $wnd.Math.max(highest, node.layer); + } + filling = initUnidimensionalArray(I_classLit, $intern_49, 28, highest - lowest + 1, 15, 1); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + node.layer -= lowest; + ++filling[node.layer]; + } + layerID = 0; + if (this$static.previousLayeringNodeCounts != null) { + for (nodeCntInLayer$array = this$static.previousLayeringNodeCounts , nodeCntInLayer$index = 0 , nodeCntInLayer$max = nodeCntInLayer$array.length; nodeCntInLayer$index < nodeCntInLayer$max; ++nodeCntInLayer$index) { + nodeCntInLayer = nodeCntInLayer$array[nodeCntInLayer$index]; + filling[layerID++] += nodeCntInLayer; + if (filling.length == layerID) { + break; + } + } + } + return filling; +} + +function $postorderTraversal(this$static, node){ + var edge, edge$iterator, lowest; + lowest = $intern_0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + if (edge.treeEdge && !this$static.edgeVisited[edge.internalId]) { + this$static.edgeVisited[edge.internalId] = true; + lowest = $wnd.Math.min(lowest, $postorderTraversal(this$static, $getOther(edge, node))); + } + } + this$static.poID[node.internalId] = this$static.postOrder; + this$static.lowestPoID[node.internalId] = $wnd.Math.min(lowest, this$static.postOrder++); + return this$static.lowestPoID[node.internalId]; +} + +function $reattachSubtrees(this$static){ + var edge, leafy, node, placed; + while (!$isEmpty(this$static.subtreeNodesStack)) { + leafy = castTo($removeFirst(this$static.subtreeNodesStack), 42); + node = castTo(leafy.first, 125); + edge = castTo(leafy.second, 218); + placed = $getOther(edge, node); + if (edge.target == node) { + $add_11(placed.outgoingEdges, edge); + node.layer = placed.layer + edge.delta; + } + else { + $add_11(placed.incomingEdges, edge); + node.layer = placed.layer - edge.delta; + } + $add_3(this$static.graph_0.nodes, node); + } +} + +function $removeSubtrees(this$static){ + var edge, isOutEdge, leafs, leafy, node, node$iterator, other; + this$static.subtreeNodesStack = new ArrayDeque; + leafs = new LinkedList; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 125); + $getConnectedEdges(node).array.length == 1 && ($addNode_0(leafs, node, leafs.tail.prev, leafs.tail) , true); + } + while (leafs.size_0 != 0) { + node = castTo(leafs.size_0 == 0?null:(checkCriticalElement(leafs.size_0 != 0) , $removeNode_0(leafs, leafs.header.next_0)), 125); + if ($getConnectedEdges(node).array.length == 0) { + continue; + } + edge = castTo($get_11($getConnectedEdges(node), 0), 218); + isOutEdge = node.outgoingEdges.list.array.length > 0; + other = $getOther(edge, node); + isOutEdge?$remove_29(other.incomingEdges, edge):$remove_29(other.outgoingEdges, edge); + $getConnectedEdges(other).array.length == 1 && ($addNode_0(leafs, other, leafs.tail.prev, leafs.tail) , true); + leafy = new Pair(node, edge); + $addFirst(this$static.subtreeNodesStack, leafy); + $remove_12(this$static.graph_0.nodes, node); + } +} + +function $tightTreeDFS(this$static, node){ + var edge, edge$iterator, nodeCount, opposite; + nodeCount = 1; + node.treeNode = true; + opposite = null; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 218); + if (!this$static.edgeVisited[edge.internalId]) { + this$static.edgeVisited[edge.internalId] = true; + opposite = $getOther(edge, node); + if (edge.treeEdge) { + nodeCount += $tightTreeDFS(this$static, opposite); + } + else if (!opposite.treeNode && edge.delta == edge.target.layer - edge.source.layer) { + edge.treeEdge = true; + $add_6(this$static.treeEdges, edge); + nodeCount += $tightTreeDFS(this$static, opposite); + } + } + } + return nodeCount; +} + +function $withBalancing(this$static, doBalance){ + this$static.balance = doBalance; + return this$static; +} + +function $withIterationLimit(this$static, limit){ + this$static.iterationLimit = limit; + return this$static; +} + +function $withPreviousLayering(this$static, considerPreviousLayering){ + this$static.previousLayeringNodeCounts = considerPreviousLayering; + return this$static; +} + +function NetworkSimplex(){ +} + +function forGraph(graph){ + var ns; + ns = new NetworkSimplex; + ns.graph_0 = graph; + return ns; +} + +defineClass(1695, 1, {}, NetworkSimplex); +_.balance = false; +_.iterationLimit = $intern_0; +_.postOrder = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NetworkSimplex_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NetworkSimplex', 1695); +function calculateLabelAndNodeSizes(adapter){ + $forEach_1(adapter.getNodes(), new NodeLabelAndSizeCalculator$lambda$0$Type(adapter)); +} + +function sortPortLists(adapter){ + var node, node$iterator; + for (node$iterator = new ArrayList$1($getNodes(adapter)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 695); + node.sortPortList(); + } +} + +function computeInsideNodeLabelPadding(node, layoutDirection){ + var col, col$array, col$array0, col$index, col$index0, col$max, col$max0, labelCell, labelCellContainer, nodeContext, padding, row, row$array, row$array0, row$index, row$index0, row$max, row$max0; + nodeContext = new NodeContext(node); + createNodeLabelCells(nodeContext, !(layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1)); + labelCellContainer = nodeContext.insideNodeLabelContainer; + padding = new ElkPadding; + for (col$array0 = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END])) , col$index0 = 0 , col$max0 = col$array0.length; col$index0 < col$max0; ++col$index0) { + col = col$array0[col$index0]; + labelCell = $getCell(labelCellContainer, BEGIN, col); + !!labelCell && (padding.top_0 = $wnd.Math.max(padding.top_0, labelCell.getMinimumHeight())); + } + for (col$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END]) , col$index = 0 , col$max = col$array.length; col$index < col$max; ++col$index) { + col = col$array[col$index]; + labelCell = $getCell(labelCellContainer, END, col); + !!labelCell && (padding.bottom = $wnd.Math.max(padding.bottom, labelCell.getMinimumHeight())); + } + for (row$array0 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END]) , row$index0 = 0 , row$max0 = row$array0.length; row$index0 < row$max0; ++row$index0) { + row = row$array0[row$index0]; + labelCell = $getCell(labelCellContainer, row, BEGIN); + !!labelCell && (padding.left = $wnd.Math.max(padding.left, labelCell.getMinimumWidth())); + } + for (row$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END]) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + labelCell = $getCell(labelCellContainer, row, END); + !!labelCell && (padding.right = $wnd.Math.max(padding.right, labelCell.getMinimumWidth())); + } + if (padding.top_0 > 0) { + padding.top_0 += labelCellContainer.padding.top_0; + padding.top_0 += labelCellContainer.gap; + } + if (padding.bottom > 0) { + padding.bottom += labelCellContainer.padding.bottom; + padding.bottom += labelCellContainer.gap; + } + if (padding.left > 0) { + padding.left += labelCellContainer.padding.left; + padding.left += labelCellContainer.gap; + } + if (padding.right > 0) { + padding.right += labelCellContainer.padding.right; + padding.right += labelCellContainer.gap; + } + return padding; +} + +function process(graph, node, applyStuff, ignoreInsidePortLabels){ + var horizontalLayoutMode, layoutDirection, minSize, nodeContext, outerNodeLabelsOverhang; + nodeContext = new NodeContext(node); + createPortContexts(nodeContext, ignoreInsidePortLabels); + horizontalLayoutMode = true; + if (!!graph && graph.hasProperty(($clinit_CoreOptions() , DIRECTION_1))) { + layoutDirection = castTo(graph.getProperty(($clinit_CoreOptions() , DIRECTION_1)), 88); + horizontalLayoutMode = layoutDirection == ($clinit_Direction_0() , UNDEFINED_2) || layoutDirection == LEFT_6 || layoutDirection == RIGHT_6; + } + createNodeLabelCellContainers(nodeContext, false); + $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, false, horizontalLayoutMode)); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, ($clinit_ContainerArea() , BEGIN), ($clinit_PortSide() , NORTH_3)); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, END, SOUTH_2); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, BEGIN, WEST_2); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, END, EAST_2); + setupNorthOrSouthPortLabelCell(nodeContext, NORTH_3); + setupNorthOrSouthPortLabelCell(nodeContext, SOUTH_2); + setupEastOrWestPortLabelCell(nodeContext, EAST_2); + setupEastOrWestPortLabelCell(nodeContext, WEST_2); + $clinit_NodeLabelAndSizeUtilities(); + minSize = nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE)) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))?getMinimumNodeOrClientAreaSize(nodeContext):null; + !!minSize && $setCenterCellMinimumSize(nodeContext.insideNodeLabelContainer, minSize); + setupNodePaddingForPortsWithOffset(nodeContext); + calculateHorizontalPortPlacementSize(nodeContext); + calculateVerticalPortPlacementSize(nodeContext); + configureCellSystemSizeContributions(nodeContext); + setNodeWidth(nodeContext); + placeHorizontalPorts(nodeContext); + placePortLabels(nodeContext, NORTH_3); + placePortLabels(nodeContext, SOUTH_2); + updateVerticalInsidePortLabelCellPadding(nodeContext); + setNodeHeight(nodeContext); + if (!applyStuff) { + return nodeContext.nodeSize; + } + offsetSouthernPortsByNodeSize(nodeContext); + placeVerticalPorts(nodeContext); + placePortLabels(nodeContext, EAST_2); + placePortLabels(nodeContext, WEST_2); + outerNodeLabelsOverhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); + placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, NORTH_3); + placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, SOUTH_2); + placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, EAST_2); + placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, WEST_2); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$2(nodeContext.nodeLabelCells), 0)), new LabelPlacer$lambda$0$Type); + $forEach_3($filter(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new LabelPlacer$lambda$1$Type), new LabelPlacer$lambda$2$Type); + setNodePadding(nodeContext); + nodeContext.node.setSize(nodeContext.nodeSize); + $forEach_3(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new NodeLabelAndSizeUtilities$lambda$0$Type); + return nodeContext.nodeSize; +} + +function NodeLabelAndSizeCalculator$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1314, 1, $intern_19, NodeLabelAndSizeCalculator$lambda$0$Type); +_.accept = function accept_46(arg0){ + process(this.graph_0, castTo(arg0, 695), true, false); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_NodeLabelAndSizeCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeLabelAndSizeCalculator/lambda$0$Type', 1314); +function $computeLabelBox(labelBox, label_0, incomingEdge, node, port, portLabelSpace, labelSpacing){ + labelBox.x_0 = node.getPosition().x_0; + labelBox.y_0 = node.getPosition().y_0; + if (port) { + labelBox.x_0 += port.getPosition().x_0; + labelBox.y_0 += port.getPosition().y_0; + } + labelBox.width_0 = label_0.getSize().x_0; + labelBox.height = label_0.getSize().y_0; + if (!port) { + incomingEdge?(labelBox.x_0 -= labelSpacing + label_0.getSize().x_0):(labelBox.x_0 += node.getSize().x_0 + labelSpacing); + } + else { + switch (port.getSide().ordinal) { + case 0: + case 2: + labelBox.x_0 += port.getSize().x_0 + labelSpacing + portLabelSpace.x_0 + labelSpacing; + break; + case 4: + labelBox.x_0 -= labelSpacing + portLabelSpace.x_0 + labelSpacing + label_0.getSize().x_0; + break; + case 1: + labelBox.x_0 += port.getSize().x_0 + labelSpacing; + labelBox.y_0 -= labelSpacing + portLabelSpace.y_0 + labelSpacing + label_0.getSize().y_0; + break; + case 3: + labelBox.x_0 += port.getSize().x_0 + labelSpacing; + labelBox.y_0 += port.getSize().y_0 + labelSpacing + portLabelSpace.y_0 + labelSpacing; + } + } +} + +function $excludeEdgeHeadTailLabels(this$static){ + this$static.includeEdgeHeadTailLabels = false; + return this$static; +} + +function $process(this$static){ + var node, node$iterator, spacing; + spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); + for (node$iterator = new ArrayList$1(this$static.adapter.getNodes()); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 695); + $processNode_0(this$static, node, spacing); + } +} + +function $processEdgeHeadTailLabels(boundingBox, outgoingEdges, incomingEdges, node, port, portLabelSpace, labelSpacing){ + var edge, edge$iterator, edge$iterator0, label_0, label$iterator, labelBox; + labelBox = new ElkRectangle; + for (edge$iterator0 = outgoingEdges.iterator_0(); edge$iterator0.hasNext_0();) { + edge = castTo(edge$iterator0.next_1(), 853); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL))) { + $computeLabelBox(labelBox, label_0, false, node, port, portLabelSpace, labelSpacing); + $union(boundingBox, labelBox); + } + } + } + for (edge$iterator = incomingEdges.iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 853); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { + $computeLabelBox(labelBox, label_0, true, node, port, portLabelSpace, labelSpacing); + $union(boundingBox, labelBox); + } + } + } +} + +function $processNode(this$static, node){ + var spacing; + spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); + $processNode_0(this$static, node, spacing); +} + +function $processNode_0(this$static, node, labelSpacing){ + var boundingBox, elementBox, label_0, label$iterator, margin, port, port$iterator, portX, portY, requiredPortLabelSpace; + boundingBox = new ElkRectangle_0(node.getPosition().x_0, node.getPosition().y_0, node.getSize().x_0, node.getSize().y_0); + elementBox = new ElkRectangle; + if (this$static.includeLabels) { + for (label$iterator = new ArrayList$1(node.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + elementBox.x_0 = label_0.getPosition().x_0 + node.getPosition().x_0; + elementBox.y_0 = label_0.getPosition().y_0 + node.getPosition().y_0; + elementBox.width_0 = label_0.getSize().x_0; + elementBox.height = label_0.getSize().y_0; + $union(boundingBox, elementBox); + } + } + for (port$iterator = new ArrayList$1(node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 852); + portX = port.getPosition().x_0 + node.getPosition().x_0; + portY = port.getPosition().y_0 + node.getPosition().y_0; + if (this$static.includePorts) { + elementBox.x_0 = portX; + elementBox.y_0 = portY; + elementBox.width_0 = port.getSize().x_0; + elementBox.height = port.getSize().y_0; + $union(boundingBox, elementBox); + } + if (this$static.includePortLabels) { + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + elementBox.x_0 = label_0.getPosition().x_0 + portX; + elementBox.y_0 = label_0.getPosition().y_0 + portY; + elementBox.width_0 = label_0.getSize().x_0; + elementBox.height = label_0.getSize().y_0; + $union(boundingBox, elementBox); + } + } + if (this$static.includeEdgeHeadTailLabels) { + requiredPortLabelSpace = new KVector_1(-labelSpacing, -labelSpacing); + if (castTo(node.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 181).contains(($clinit_PortLabelPlacement() , OUTSIDE_0))) { + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + requiredPortLabelSpace.x_0 += label_0.getSize().x_0 + labelSpacing; + requiredPortLabelSpace.y_0 += label_0.getSize().y_0 + labelSpacing; + } + } + requiredPortLabelSpace.x_0 = $wnd.Math.max(requiredPortLabelSpace.x_0, 0); + requiredPortLabelSpace.y_0 = $wnd.Math.max(requiredPortLabelSpace.y_0, 0); + $processEdgeHeadTailLabels(boundingBox, port.getOutgoingEdges(), port.getIncomingEdges(), node, port, requiredPortLabelSpace, labelSpacing); + } + } + this$static.includeEdgeHeadTailLabels && $processEdgeHeadTailLabels(boundingBox, node.getOutgoingEdges(), node.getIncomingEdges(), node, null, null, labelSpacing); + margin = new ElkMargin_2(node.getMargin()); + margin.top_0 = $wnd.Math.max(0, node.getPosition().y_0 - boundingBox.y_0); + margin.bottom = $wnd.Math.max(0, boundingBox.y_0 + boundingBox.height - (node.getPosition().y_0 + node.getSize().y_0)); + margin.left = $wnd.Math.max(0, node.getPosition().x_0 - boundingBox.x_0); + margin.right = $wnd.Math.max(0, boundingBox.x_0 + boundingBox.width_0 - (node.getPosition().x_0 + node.getSize().x_0)); + node.setMargin(margin); +} + +function NodeMarginCalculator(adapter){ + this.adapter = adapter; +} + +defineClass(565, 1, {}, NodeMarginCalculator); +_.includeEdgeHeadTailLabels = true; +_.includeLabels = true; +_.includePortLabels = true; +_.includePorts = true; +var Lorg_eclipse_elk_alg_common_nodespacing_NodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeMarginCalculator', 565); +function $setContributesToMinimumHeight(this$static, contributesToMinimumHeight){ + this$static.contributesToMinimumHeight = contributesToMinimumHeight; +} + +function Cell(){ + this.padding = new ElkPadding; + this.cellRectangle = new ElkRectangle; +} + +defineClass(217, 1, {217:1}); +_.contributesToMinimumHeight = false; +_.contributesToMinimumWidth = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'Cell', 217); +function $getMinimumHeight(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; +} + +function AtomicCell(){ + Cell.call(this); + this.minimumContentAreaSize = new KVector; +} + +defineClass(127, 217, {127:1, 217:1}, AtomicCell); +_.getMinimumHeight = function getMinimumHeight(){ + return $getMinimumHeight(this); +} +; +_.getMinimumWidth = function getMinimumWidth(){ + var padding; + padding = this.padding; + return this.minimumContentAreaSize.x_0 + padding.left + padding.right; +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_AtomicCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'AtomicCell', 127); +function $clinit_ContainerArea(){ + $clinit_ContainerArea = emptyMethod; + BEGIN = new ContainerArea('BEGIN', 0); + CENTER = new ContainerArea('CENTER', 1); + END = new ContainerArea('END', 2); +} + +function ContainerArea(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_15(name_0){ + $clinit_ContainerArea(); + return valueOf(($clinit_ContainerArea$Map() , $MAP_5), name_0); +} + +function values_23(){ + $clinit_ContainerArea(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END]); +} + +defineClass(237, 22, {3:1, 34:1, 22:1, 237:1}, ContainerArea); +var BEGIN, CENTER, END; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerArea', 237, Ljava_lang_Enum_2_classLit, values_23, valueOf_15); +function $clinit_ContainerArea$Map(){ + $clinit_ContainerArea$Map = emptyMethod; + $MAP_5 = createValueOfMap(($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END]))); +} + +var $MAP_5; +function $applyHorizontalLayout(cell, x_0, width_0){ + var cellRect; + if (cell) { + cellRect = cell.cellRectangle; + cellRect.x_0 = x_0; + cellRect.width_0 = width_0; + } +} + +function $applyVerticalLayout(cell, y_0, height){ + var cellRect; + if (cell) { + cellRect = cell.cellRectangle; + cellRect.y_0 = y_0; + cellRect.height = height; + } +} + +function ContainerCell(){ + Cell.call(this); +} + +function minHeightOfCell(cell, respectContributionFlag){ + if (!cell) { + return 0; + } + if (respectContributionFlag && !cell.contributesToMinimumHeight) { + return 0; + } + if (instanceOf(cell, 127)) { + if (castTo(cell, 127).minimumContentAreaSize.y_0 == 0) { + return 0; + } + } + return cell.getMinimumHeight(); +} + +function minWidthOfCell(cell, respectContributionFlag){ + if (!cell) { + return 0; + } + if (respectContributionFlag && !cell.contributesToMinimumWidth) { + return 0; + } + if (instanceOf(cell, 127)) { + if (castTo(cell, 127).minimumContentAreaSize.x_0 == 0) { + return 0; + } + } + return cell.getMinimumWidth(); +} + +defineClass(336, 217, $intern_92); +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerCell', 336); +function $clinit_GridContainerCell(){ + $clinit_GridContainerCell = emptyMethod; + ROWS = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END])).length; + COLUMNS = ROWS; +} + +function $applyHeightToRow(this$static, row, y_0, rowHeights){ + var column; + for (column = 0; column < COLUMNS; column++) { + $applyVerticalLayout(this$static.cells_0[row.ordinal][column], y_0, rowHeights[row.ordinal]); + } +} + +function $applyWidthToColumn(this$static, column, x_0, colWidths){ + var row; + for (row = 0; row < ROWS; row++) { + $applyHorizontalLayout(this$static.cells_0[row][column.ordinal], x_0, colWidths[column.ordinal]); + } +} + +function $applyWidthsToRow(this$static, row, colWidths){ + var cellPadding, cellRectangle, centerWidth, freeContentAreaWidth; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + $applyWidthToColumn(this$static, ($clinit_ContainerArea() , BEGIN), cellRectangle.x_0 + cellPadding.left, colWidths); + $applyWidthToColumn(this$static, END, cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - colWidths[2], colWidths); + freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + if (colWidths[0] > 0) { + colWidths[0] += this$static.gap; + freeContentAreaWidth -= colWidths[0]; + } + if (colWidths[2] > 0) { + colWidths[2] += this$static.gap; + freeContentAreaWidth -= colWidths[2]; + } + centerWidth = $wnd.Math.max(0, freeContentAreaWidth); + colWidths[1] = $wnd.Math.max(colWidths[1], freeContentAreaWidth); + $applyWidthToColumn(this$static, CENTER, cellRectangle.x_0 + cellPadding.left + colWidths[0] - (colWidths[1] - freeContentAreaWidth) / 2, colWidths); + if (row == CENTER) { + this$static.centerCellRect.width_0 = centerWidth; + this$static.centerCellRect.x_0 = cellRectangle.x_0 + cellPadding.left + (centerWidth - freeContentAreaWidth) / 2; + } +} + +function $getCell(this$static, row, col){ + return this$static.cells_0[row.ordinal][col.ordinal]; +} + +function $minColumnWidths(this$static, row, respectContributionFlag){ + var colWidths; + colWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [$minWidthOfColumn(this$static, ($clinit_ContainerArea() , BEGIN), row, respectContributionFlag), $minWidthOfColumn(this$static, CENTER, row, respectContributionFlag), $minWidthOfColumn(this$static, END, row, respectContributionFlag)]); + if (this$static.symmetrical) { + colWidths[0] = $wnd.Math.max(colWidths[0], colWidths[2]); + colWidths[2] = colWidths[0]; + } + return colWidths; +} + +function $minHeightOfRow(this$static, row, respectContributionFlag){ + var column, maxMinHeight; + maxMinHeight = 0; + for (column = 0; column < COLUMNS; column++) { + maxMinHeight = $wnd.Math.max(maxMinHeight, minHeightOfCell(this$static.cells_0[row.ordinal][column], respectContributionFlag)); + } + row == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinHeight = $wnd.Math.max(maxMinHeight, this$static.centerCellMinimumSize.y_0)); + return maxMinHeight; +} + +function $minRowHeights(this$static, respectContributionFlag){ + var rowHeights; + rowHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [$minHeightOfRow(this$static, ($clinit_ContainerArea() , BEGIN), respectContributionFlag), $minHeightOfRow(this$static, CENTER, respectContributionFlag), $minHeightOfRow(this$static, END, respectContributionFlag)]); + if (this$static.symmetrical) { + rowHeights[0] = $wnd.Math.max(rowHeights[0], rowHeights[2]); + rowHeights[2] = rowHeights[0]; + } + return rowHeights; +} + +function $minWidthOfColumn(this$static, column, row, respectContributionFlag){ + var maxMinWidth, rowIndex; + maxMinWidth = 0; + if (!row) { + for (rowIndex = 0; rowIndex < ROWS; rowIndex++) { + maxMinWidth = $wnd.Math.max(maxMinWidth, minWidthOfCell(this$static.cells_0[rowIndex][column.ordinal], respectContributionFlag)); + } + } + else { + maxMinWidth = minWidthOfCell(this$static.cells_0[row.ordinal][column.ordinal], respectContributionFlag); + } + column == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinWidth = $wnd.Math.max(maxMinWidth, this$static.centerCellMinimumSize.x_0)); + return maxMinWidth; +} + +function $setCell(this$static, row, col, cell){ + setCheck(this$static.cells_0[row.ordinal], col.ordinal, cell); +} + +function $setCenterCellMinimumSize(this$static, minimumSize){ + this$static.centerCellMinimumSize = new KVector_2(minimumSize); +} + +function $sumWithGaps(this$static, values){ + var activeComponents, sum, val, val$array, val$index, val$max; + sum = 0; + activeComponents = 0; + for (val$array = values , val$index = 0 , val$max = val$array.length; val$index < val$max; ++val$index) { + val = val$array[val$index]; + if (val > 0) { + sum += val; + ++activeComponents; + } + } + activeComponents > 1 && (sum += this$static.gap * (activeComponents - 1)); + return sum; +} + +function GridContainerCell(tabular, symmetrical, gap){ + $clinit_GridContainerCell(); + ContainerCell.call(this); + this.cells_0 = initMultidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, [$intern_16, $intern_93], [603, 217], 0, [ROWS, COLUMNS], 2); + this.centerCellRect = new ElkRectangle; + this.tabular = tabular; + this.symmetrical = symmetrical; + this.gap = gap; +} + +defineClass(1538, 336, $intern_92, GridContainerCell); +_.getMinimumHeight = function getMinimumHeight_0(){ + var height; + height = 0; + this.onlyCenterCellContributesToMinimumSize?this.centerCellMinimumSize?(height = this.centerCellMinimumSize.y_0):!!this.cells_0[1][1] && (height = this.cells_0[1][1].getMinimumHeight()):(height = $sumWithGaps(this, $minRowHeights(this, true))); + return height > 0?height + this.padding.top_0 + this.padding.bottom:0; +} +; +_.getMinimumWidth = function getMinimumWidth_0(){ + var area, area$array, area$index, area$max, width_0; + width_0 = 0; + if (this.onlyCenterCellContributesToMinimumSize) { + this.centerCellMinimumSize?(width_0 = this.centerCellMinimumSize.x_0):!!this.cells_0[1][1] && (width_0 = this.cells_0[1][1].getMinimumWidth()); + } + else if (this.tabular) { + width_0 = $sumWithGaps(this, $minColumnWidths(this, null, true)); + } + else { + for (area$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END])) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { + area = area$array[area$index]; + width_0 = $wnd.Math.max(width_0, $sumWithGaps(this, $minColumnWidths(this, area, true))); + } + } + return width_0 > 0?width_0 + this.padding.left + this.padding.right:0; +} +; +_.layoutChildrenHorizontally = function layoutChildrenHorizontally(){ + var colWidths, row, row$array, row$index, row$max; + if (this.tabular) { + colWidths = $minColumnWidths(this, null, false); + for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + $applyWidthsToRow(this, row, colWidths); + } + } + else { + for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + colWidths = $minColumnWidths(this, row, false); + $applyWidthsToRow(this, row, colWidths); + } + } +} +; +_.layoutChildrenVertically = function layoutChildrenVertically(){ + var cellPadding, cellRectangle, freeContentAreaHeight, rowHeights; + cellRectangle = this.cellRectangle; + cellPadding = this.padding; + rowHeights = $minRowHeights(this, false); + $applyHeightToRow(this, ($clinit_ContainerArea() , BEGIN), cellRectangle.y_0 + cellPadding.top_0, rowHeights); + $applyHeightToRow(this, END, cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - rowHeights[2], rowHeights); + freeContentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + if (rowHeights[0] > 0) { + rowHeights[0] += this.gap; + freeContentAreaHeight -= rowHeights[0]; + } + if (rowHeights[2] > 0) { + rowHeights[2] += this.gap; + freeContentAreaHeight -= rowHeights[2]; + } + this.centerCellRect.height = $wnd.Math.max(0, freeContentAreaHeight); + this.centerCellRect.y_0 = cellRectangle.y_0 + cellPadding.top_0 + (this.centerCellRect.height - freeContentAreaHeight) / 2; + rowHeights[1] = $wnd.Math.max(rowHeights[1], freeContentAreaHeight); + $applyHeightToRow(this, CENTER, cellRectangle.y_0 + cellPadding.top_0 + rowHeights[0] - (rowHeights[1] - freeContentAreaHeight) / 2, rowHeights); +} +; +_.centerCellMinimumSize = null; +_.gap = 0; +_.onlyCenterCellContributesToMinimumSize = false; +_.symmetrical = false; +_.tabular = false; +var COLUMNS = 0, ROWS = 0; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_GridContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'GridContainerCell', 1538); +function $clinit_HorizontalLabelAlignment(){ + $clinit_HorizontalLabelAlignment = emptyMethod; + LEFT = new HorizontalLabelAlignment('LEFT', 0); + CENTER_0 = new HorizontalLabelAlignment('CENTER', 1); + RIGHT = new HorizontalLabelAlignment('RIGHT', 2); +} + +function HorizontalLabelAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_16(name_0){ + $clinit_HorizontalLabelAlignment(); + return valueOf(($clinit_HorizontalLabelAlignment$Map() , $MAP_6), name_0); +} + +function values_24(){ + $clinit_HorizontalLabelAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_37, 471, 0, [LEFT, CENTER_0, RIGHT]); +} + +defineClass(471, 22, {3:1, 34:1, 22:1, 471:1}, HorizontalLabelAlignment); +var CENTER_0, LEFT, RIGHT; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'HorizontalLabelAlignment', 471, Ljava_lang_Enum_2_classLit, values_24, valueOf_16); +function $clinit_HorizontalLabelAlignment$Map(){ + $clinit_HorizontalLabelAlignment$Map = emptyMethod; + $MAP_6 = createValueOfMap(($clinit_HorizontalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_37, 471, 0, [LEFT, CENTER_0, RIGHT]))); +} + +var $MAP_6; +function $$init_4(this$static){ + this$static.horizontalAlignment = ($clinit_HorizontalLabelAlignment() , CENTER_0); + this$static.verticalAlignment = ($clinit_VerticalLabelAlignment() , CENTER_1); + this$static.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this$static.minimumContentAreaSize = new KVector; +} + +function $addLabel(this$static, label_0){ + var labelSize; + $add_3(this$static.labels, label_0); + labelSize = label_0.getSize(); + if (this$static.horizontalLayoutMode) { + this$static.minimumContentAreaSize.x_0 = $wnd.Math.max(this$static.minimumContentAreaSize.x_0, labelSize.x_0); + this$static.minimumContentAreaSize.y_0 += labelSize.y_0; + this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.y_0 += this$static.gap); + } + else { + this$static.minimumContentAreaSize.x_0 += labelSize.x_0; + this$static.minimumContentAreaSize.y_0 = $wnd.Math.max(this$static.minimumContentAreaSize.y_0, labelSize.y_0); + this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.x_0 += this$static.gap); + } +} + +function $applyHorizontalModeLabelLayout(this$static){ + var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, yPos; + cellRect = this$static.cellRectangle; + cellPadding = this$static.padding; + yPos = cellRect.y_0; + this$static.verticalAlignment == ($clinit_VerticalLabelAlignment() , CENTER_1)?(yPos += (cellRect.height - this$static.minimumContentAreaSize.y_0) / 2):this$static.verticalAlignment == BOTTOM && (yPos += cellRect.height - this$static.minimumContentAreaSize.y_0); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + labelSize = label_0.getSize(); + labelPos = new KVector; + labelPos.y_0 = yPos; + yPos += labelSize.y_0 + this$static.gap; + switch (this$static.horizontalAlignment.ordinal) { + case 0: + labelPos.x_0 = cellRect.x_0 + cellPadding.left; + break; + case 1: + labelPos.x_0 = cellRect.x_0 + cellPadding.left + (cellRect.width_0 - labelSize.x_0) / 2; + break; + case 2: + labelPos.x_0 = cellRect.x_0 + cellRect.width_0 - cellPadding.right - labelSize.x_0; + } + label_0.setPosition(labelPos); + } +} + +function $applyLabelLayout(this$static){ + this$static.horizontalLayoutMode?$applyHorizontalModeLabelLayout(this$static):$applyVerticalModeLabelLayout(this$static); +} + +function $applyVerticalModeLabelLayout(this$static){ + var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, xPos; + cellRect = this$static.cellRectangle; + cellPadding = this$static.padding; + xPos = cellRect.x_0; + this$static.horizontalAlignment == ($clinit_HorizontalLabelAlignment() , CENTER_0)?(xPos += (cellRect.width_0 - this$static.minimumContentAreaSize.x_0) / 2):this$static.horizontalAlignment == RIGHT && (xPos += cellRect.width_0 - this$static.minimumContentAreaSize.x_0); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + labelSize = label_0.getSize(); + labelPos = new KVector; + labelPos.x_0 = xPos; + xPos += labelSize.x_0 + this$static.gap; + switch (this$static.verticalAlignment.ordinal) { + case 0: + labelPos.y_0 = cellRect.y_0 + cellPadding.top_0; + break; + case 1: + labelPos.y_0 = cellRect.y_0 + cellPadding.top_0 + (cellRect.height - labelSize.y_0) / 2; + break; + case 2: + labelPos.y_0 = cellRect.y_0 + cellRect.height - cellPadding.bottom - labelSize.y_0; + } + label_0.setPosition(labelPos); + } +} + +function $getMinimumHeight_0(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; +} + +function $getMinimumWidth(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.x_0 + padding.left + padding.right; +} + +function $setHorizontalAlignment(this$static, newHorizontalAlignment){ + requireNonNull_0(newHorizontalAlignment, 'Horizontal alignment cannot be null'); + this$static.horizontalAlignment = newHorizontalAlignment; + return this$static; +} + +function $setVerticalAlignment(this$static, newVerticalAlignment){ + requireNonNull_0(newVerticalAlignment, 'Vertical alignment cannot be null'); + this$static.verticalAlignment = newVerticalAlignment; + return this$static; +} + +function LabelCell(gap){ + Cell.call(this); + $$init_4(this); + this.gap = gap; + this.horizontalLayoutMode = true; +} + +function LabelCell_0(gap, nodeLabelLocation, horizontalLayoutMode){ + Cell.call(this); + $$init_4(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; + this.horizontalAlignment = nodeLabelLocation.horizontalAlignment; + this.verticalAlignment = nodeLabelLocation.verticalAlignment; +} + +function LabelCell_1(gap, horizontalLayoutMode){ + Cell.call(this); + $$init_4(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; +} + +defineClass(314, 217, {217:1, 314:1}, LabelCell, LabelCell_0, LabelCell_1); +_.getMinimumHeight = function getMinimumHeight_1(){ + return $getMinimumHeight_0(this); +} +; +_.getMinimumWidth = function getMinimumWidth_1(){ + return $getMinimumWidth(this); +} +; +_.gap = 0; +_.horizontalLayoutMode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'LabelCell', 314); +function $getMinimumHeight_1(this$static){ + var activeCells, cellHeight, cellHeight$array, cellHeight$index, cellHeight$max, cellHeights, height; + height = 0; + if (this$static.containerMode == 0) { + cellHeights = $minCellHeights(this$static, true); + activeCells = 0; + for (cellHeight$array = cellHeights , cellHeight$index = 0 , cellHeight$max = cellHeight$array.length; cellHeight$index < cellHeight$max; ++cellHeight$index) { + cellHeight = cellHeight$array[cellHeight$index]; + if (cellHeight > 0) { + height += cellHeight; + ++activeCells; + } + } + activeCells > 1 && (height += this$static.gap * (activeCells - 1)); + } + else { + height = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$2$Type), new StripContainerCell$lambda$3$Type))); + } + return height > 0?height + this$static.padding.top_0 + this$static.padding.bottom:0; +} + +function $getMinimumWidth_0(this$static){ + var activeCells, cellWidth, cellWidth$array, cellWidth$index, cellWidth$max, cellWidths, width_0; + width_0 = 0; + if (this$static.containerMode == 0) { + width_0 = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$0$Type), new StripContainerCell$lambda$1$Type))); + } + else { + cellWidths = $minCellWidths(this$static, true); + activeCells = 0; + for (cellWidth$array = cellWidths , cellWidth$index = 0 , cellWidth$max = cellWidth$array.length; cellWidth$index < cellWidth$max; ++cellWidth$index) { + cellWidth = cellWidth$array[cellWidth$index]; + if (cellWidth > 0) { + width_0 += cellWidth; + ++activeCells; + } + } + activeCells > 1 && (width_0 += this$static.gap * (activeCells - 1)); + } + return width_0 > 0?width_0 + this$static.padding.left + this$static.padding.right:0; +} + +function $layoutChildrenHorizontally(this$static){ + var cellPadding, cellRectangle, cellWidths, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, freeContentAreaWidth, width_0, xPos; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + if (this$static.containerMode == 0) { + xPos = cellRectangle.x_0 + cellPadding.left; + width_0 = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { + childCell = childCell$array0[childCell$index0]; + $applyHorizontalLayout(childCell, xPos, width_0); + } + } + else { + cellWidths = $minCellWidths(this$static, false); + $applyHorizontalLayout(this$static.cells_0[0], cellRectangle.x_0 + cellPadding.left, cellWidths[0]); + $applyHorizontalLayout(this$static.cells_0[2], cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - cellWidths[2], cellWidths[2]); + freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + if (cellWidths[0] > 0) { + freeContentAreaWidth -= cellWidths[0] + this$static.gap; + cellWidths[0] += this$static.gap; + } + cellWidths[2] > 0 && (freeContentAreaWidth -= cellWidths[2] + this$static.gap); + cellWidths[1] = $wnd.Math.max(cellWidths[1], freeContentAreaWidth); + $applyHorizontalLayout(this$static.cells_0[1], cellRectangle.x_0 + cellPadding.left + cellWidths[0] - (cellWidths[1] - freeContentAreaWidth) / 2, cellWidths[1]); + } + for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { + childCell = childCell$array[childCell$index]; + instanceOf(childCell, 336) && castTo(childCell, 336).layoutChildrenHorizontally(); + } +} + +function $layoutChildrenVertically(this$static){ + var cellHeights, cellPadding, cellRectangle, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, contentAreaFreeHeight, contentAreaHeight, height, yPos; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + if (this$static.containerMode == 0) { + cellHeights = $minCellHeights(this$static, false); + $applyVerticalLayout(this$static.cells_0[0], cellRectangle.y_0 + cellPadding.top_0, cellHeights[0]); + $applyVerticalLayout(this$static.cells_0[2], cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - cellHeights[2], cellHeights[2]); + contentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + contentAreaFreeHeight = contentAreaHeight; + if (cellHeights[0] > 0) { + cellHeights[0] += this$static.gap; + contentAreaFreeHeight -= cellHeights[0]; + } + cellHeights[2] > 0 && (contentAreaFreeHeight -= cellHeights[2] + this$static.gap); + cellHeights[1] = $wnd.Math.max(cellHeights[1], contentAreaFreeHeight); + $applyVerticalLayout(this$static.cells_0[1], cellRectangle.y_0 + cellPadding.top_0 + cellHeights[0] - (cellHeights[1] - contentAreaFreeHeight) / 2, cellHeights[1]); + } + else { + yPos = cellRectangle.y_0 + cellPadding.top_0; + height = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { + childCell = childCell$array0[childCell$index0]; + $applyVerticalLayout(childCell, yPos, height); + } + } + for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { + childCell = childCell$array[childCell$index]; + instanceOf(childCell, 336) && castTo(childCell, 336).layoutChildrenVertically(); + } +} + +function $minCellHeights(this$static, respectContributionFlag){ + var cellHeights; + cellHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [minHeightOfCell(this$static.cells_0[0], respectContributionFlag), minHeightOfCell(this$static.cells_0[1], respectContributionFlag), minHeightOfCell(this$static.cells_0[2], respectContributionFlag)]); + if (this$static.symmetrical) { + cellHeights[0] = $wnd.Math.max(cellHeights[0], cellHeights[2]); + cellHeights[2] = cellHeights[0]; + } + return cellHeights; +} + +function $minCellWidths(this$static, respectContributionFlag){ + var cellWidths; + cellWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [minWidthOfCell(this$static.cells_0[0], respectContributionFlag), minWidthOfCell(this$static.cells_0[1], respectContributionFlag), minWidthOfCell(this$static.cells_0[2], respectContributionFlag)]); + if (this$static.symmetrical) { + cellWidths[0] = $wnd.Math.max(cellWidths[0], cellWidths[2]); + cellWidths[2] = cellWidths[0]; + } + return cellWidths; +} + +function $setCell_0(this$static, area, cell){ + this$static.cells_0[area.ordinal] = cell; +} + +function StripContainerCell(mode, symmetrical, gap){ + ContainerCell.call(this); + this.cells_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, $intern_93, 217, ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_37, 237, 0, [BEGIN, CENTER, END])).length, 0, 1); + this.containerMode = mode; + this.symmetrical = symmetrical; + this.gap = gap; +} + +function lambda$0_9(cell_0){ + return !!cell_0 && cell_0.contributesToMinimumWidth; +} + +function lambda$2(cell_0){ + return !!cell_0 && cell_0.contributesToMinimumHeight; +} + +defineClass(252, 336, {217:1, 336:1, 252:1}, StripContainerCell); +_.getMinimumHeight = function getMinimumHeight_2(){ + return $getMinimumHeight_1(this); +} +; +_.getMinimumWidth = function getMinimumWidth_2(){ + return $getMinimumWidth_0(this); +} +; +_.layoutChildrenHorizontally = function layoutChildrenHorizontally_0(){ + $layoutChildrenHorizontally(this); +} +; +_.layoutChildrenVertically = function layoutChildrenVertically_0(){ + $layoutChildrenVertically(this); +} +; +_.containerMode = 0; +_.gap = 0; +_.symmetrical = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell', 252); +function StripContainerCell$lambda$0$Type(){ +} + +defineClass(1691, 1, $intern_40, StripContainerCell$lambda$0$Type); +_.test_0 = function test_7(arg0){ + return lambda$0_9(castTo(arg0, 217)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$0$Type', 1691); +function StripContainerCell$lambda$1$Type(){ +} + +defineClass(1692, 1, {}, StripContainerCell$lambda$1$Type); +_.applyAsDouble = function applyAsDouble(arg0){ + return castTo(arg0, 217).getMinimumWidth(); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$1$Type', 1692); +function StripContainerCell$lambda$2$Type(){ +} + +defineClass(1693, 1, $intern_40, StripContainerCell$lambda$2$Type); +_.test_0 = function test_8(arg0){ + return lambda$2(castTo(arg0, 217)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$2$Type', 1693); +function StripContainerCell$lambda$3$Type(){ +} + +defineClass(1694, 1, {}, StripContainerCell$lambda$3$Type); +_.applyAsDouble = function applyAsDouble_0(arg0){ + return castTo(arg0, 217).getMinimumHeight(); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$3$Type', 1694); +function $clinit_VerticalLabelAlignment(){ + $clinit_VerticalLabelAlignment = emptyMethod; + TOP = new VerticalLabelAlignment('TOP', 0); + CENTER_1 = new VerticalLabelAlignment('CENTER', 1); + BOTTOM = new VerticalLabelAlignment('BOTTOM', 2); +} + +function VerticalLabelAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_17(name_0){ + $clinit_VerticalLabelAlignment(); + return valueOf(($clinit_VerticalLabelAlignment$Map() , $MAP_7), name_0); +} + +function values_25(){ + $clinit_VerticalLabelAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_37, 472, 0, [TOP, CENTER_1, BOTTOM]); +} + +defineClass(472, 22, {3:1, 34:1, 22:1, 472:1}, VerticalLabelAlignment); +var BOTTOM, CENTER_1, TOP; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'VerticalLabelAlignment', 472, Ljava_lang_Enum_2_classLit, values_25, valueOf_17); +function $clinit_VerticalLabelAlignment$Map(){ + $clinit_VerticalLabelAlignment$Map = emptyMethod; + $MAP_7 = createValueOfMap(($clinit_VerticalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_37, 472, 0, [TOP, CENTER_1, BOTTOM]))); +} + +var $MAP_7; +function $getPortAlignment(this$static, portSide){ + var alignment; + alignment = null; + switch (portSide.ordinal) { + case 1: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_NORTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_NORTH_0), 256)); + break; + case 3: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_SOUTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_SOUTH_0), 256)); + break; + case 2: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_EAST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_EAST_0), 256)); + break; + case 4: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_WEST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_WEST_0), 256)); + } + !alignment && (alignment = castTo(this$static.node.getProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_DEFAULT)), 256)); + return alignment; +} + +function NodeContext(node){ + var symmetry; + this.portContexts = create(new NodeContext$0methodref$comparePortSides$Type, new NodeContext$1methodref$comparePortContexts$Type); + this.insidePortLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 297)); + this.outsideNodeLabelContainers = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 297)); + this.nodeLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit), 297)); + this.node = node; + this.nodeSize = new KVector_2(node.getSize()); + this.topdownLayout = $booleanValue(castToBoolean(node.getProperty(($clinit_CoreOptions() , TOPDOWN_LAYOUT_2)))); + this.treatAsCompoundNode = node.isCompoundNode() || $booleanValue(castToBoolean(node.getProperty(INSIDE_SELF_LOOPS_ACTIVATE_0))); + this.sizeConstraints = castTo(node.getProperty(NODE_SIZE_CONSTRAINTS_6), 21); + this.sizeOptions = castTo(node.getProperty(NODE_SIZE_OPTIONS_6), 21); + this.portConstraints = castTo(node.getProperty(PORT_CONSTRAINTS_1), 101); + this.portLabelsPlacement = castTo(node.getProperty(PORT_LABELS_PLACEMENT_5), 21); + if (!isValid_1(this.portLabelsPlacement)) { + throw toJs(new UnsupportedConfigurationException_0('Invalid port label placement: ' + this.portLabelsPlacement)); + } + this.portLabelsTreatAsGroup = $booleanValue(castToBoolean(node.getProperty(PORT_LABELS_TREAT_AS_GROUP_0))); + this.nodeLabelPlacement = castTo(node.getProperty(NODE_LABELS_PLACEMENT_5), 21); + if (!isValid_0(this.nodeLabelPlacement)) { + throw toJs(new UnsupportedConfigurationException_0('Invalid node label placement: ' + this.nodeLabelPlacement)); + } + this.nodeLabelsPadding = castTo(getIndividualOrInherited_0(node, NODE_LABELS_PADDING_0), 107); + this.nodeLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_NODE_0))); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_LABEL_0))); + this.portPortSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_PORT_PORT_0))); + this.portLabelSpacingHorizontal = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_HORIZONTAL_0))); + this.portLabelSpacingVertical = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_VERTICAL_0))); + this.surroundingPortMargins = castTo(getIndividualOrInherited_0(node, SPACING_PORTS_SURROUNDING_0), 140); + this.labelCellSpacing = 2 * this.labelLabelSpacing; + symmetry = !this.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); + this.nodeContainer = new StripContainerCell(0, symmetry, 0); + this.nodeContainerMiddleRow = new StripContainerCell(1, symmetry, 0); + $setCell_0(this.nodeContainer, ($clinit_ContainerArea() , CENTER), this.nodeContainerMiddleRow); +} + +function comparePortContexts(portContext1, portContext2){ + var portSideComparison; + portSideComparison = comparePortSides(portContext1.port.getSide(), portContext2.port.getSide()); + if (portSideComparison != 0) { + return portSideComparison; + } + switch (portContext1.port.getSide().ordinal) { + case 1: + case 2: + return compare_5(portContext1.port.getVolatileId(), portContext2.port.getVolatileId()); + case 3: + case 4: + return compare_5(portContext2.port.getVolatileId(), portContext1.port.getVolatileId()); + } + return 0; +} + +function comparePortSides(portSide1, portSide2){ + return compare_5(portSide1.ordinal, portSide2.ordinal); +} + +defineClass(800, 1, {}, NodeContext); +_.labelCellSpacing = 0; +_.labelLabelSpacing = 0; +_.nodeLabelSpacing = 0; +_.portLabelSpacingHorizontal = 0; +_.portLabelSpacingVertical = 0; +_.portLabelsTreatAsGroup = false; +_.portPortSpacing = 0; +_.topdownLayout = false; +_.treatAsCompoundNode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext', 800); +function NodeContext$0methodref$comparePortSides$Type(){ +} + +defineClass(1536, 1, $intern_88, NodeContext$0methodref$comparePortSides$Type); +_.compare_1 = function compare_15(arg0, arg1){ + return comparePortSides(castTo(arg0, 64), castTo(arg1, 64)); +} +; +_.equals_0 = function equals_67(other){ + return this === other; +} +; +_.reversed = function reversed_7(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$0methodref$comparePortSides$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/0methodref$comparePortSides$Type', 1536); +function NodeContext$1methodref$comparePortContexts$Type(){ +} + +defineClass(1537, 1, $intern_88, NodeContext$1methodref$comparePortContexts$Type); +_.compare_1 = function compare_16(arg0, arg1){ + return comparePortContexts(castTo(arg0, 117), castTo(arg1, 117)); +} +; +_.equals_0 = function equals_68(other){ + return this === other; +} +; +_.reversed = function reversed_8(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$1methodref$comparePortContexts$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/1methodref$comparePortContexts$Type', 1537); +function $clinit_NodeLabelLocation(){ + $clinit_NodeLabelLocation = emptyMethod; + OUT_T_L = new NodeLabelLocation('OUT_T_L', 0, ($clinit_HorizontalLabelAlignment() , LEFT), ($clinit_VerticalLabelAlignment() , BOTTOM), ($clinit_ContainerArea() , BEGIN), BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(($clinit_NodeLabelPlacement() , OUTSIDE), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_LEFT_0]))])); + OUT_T_C = new NodeLabelLocation('OUT_T_C', 1, CENTER_0, BOTTOM, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); + OUT_T_R = new NodeLabelLocation('OUT_T_R', 2, RIGHT, BOTTOM, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_RIGHT_0]))])); + OUT_B_L = new NodeLabelLocation('OUT_B_L', 3, LEFT, TOP, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_LEFT_0]))])); + OUT_B_C = new NodeLabelLocation('OUT_B_C', 4, CENTER_0, TOP, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); + OUT_B_R = new NodeLabelLocation('OUT_B_R', 5, RIGHT, TOP, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_RIGHT_0]))])); + OUT_L_T = new NodeLabelLocation('OUT_L_T', 6, RIGHT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_LEFT_0, V_TOP_0, H_PRIORITY]))])); + OUT_L_C = new NodeLabelLocation('OUT_L_C', 7, RIGHT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_LEFT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_LEFT_0, V_CENTER_0, H_PRIORITY]))])); + OUT_L_B = new NodeLabelLocation('OUT_L_B', 8, RIGHT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_LEFT_0, V_BOTTOM_0, H_PRIORITY]))])); + OUT_R_T = new NodeLabelLocation('OUT_R_T', 9, LEFT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_RIGHT_0, V_TOP_0, H_PRIORITY]))])); + OUT_R_C = new NodeLabelLocation('OUT_R_C', 10, LEFT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_RIGHT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_RIGHT_0, V_CENTER_0, H_PRIORITY]))])); + OUT_R_B = new NodeLabelLocation('OUT_R_B', 11, LEFT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_RIGHT_0, V_BOTTOM_0, H_PRIORITY]))])); + IN_T_L = new NodeLabelLocation('IN_T_L', 12, LEFT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_LEFT_0, H_PRIORITY]))])); + IN_T_C = new NodeLabelLocation('IN_T_C', 13, CENTER_0, TOP, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); + IN_T_R = new NodeLabelLocation('IN_T_R', 14, RIGHT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_TOP_0, H_RIGHT_0, H_PRIORITY]))])); + IN_C_L = new NodeLabelLocation('IN_C_L', 15, LEFT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, H_LEFT_0, H_PRIORITY]))])); + IN_C_C = new NodeLabelLocation('IN_C_C', 16, CENTER_0, CENTER_1, CENTER, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, H_CENTER_0, H_PRIORITY]))])); + IN_C_R = new NodeLabelLocation('IN_C_R', 17, RIGHT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, H_RIGHT_0, H_PRIORITY]))])); + IN_B_L = new NodeLabelLocation('IN_B_L', 18, LEFT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_LEFT_0, H_PRIORITY]))])); + IN_B_C = new NodeLabelLocation('IN_B_C', 19, CENTER_0, BOTTOM, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); + IN_B_R = new NodeLabelLocation('IN_B_R', 20, RIGHT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_BOTTOM_0, H_RIGHT_0, H_PRIORITY]))])); + UNDEFINED = new NodeLabelLocation('UNDEFINED', 21, null, null, null, null, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [])); +} + +function $getOutsideSide(this$static){ + switch (this$static.ordinal) { + case 0: + case 1: + case 2: + return $clinit_PortSide() , NORTH_3; + case 3: + case 4: + case 5: + return $clinit_PortSide() , SOUTH_2; + case 6: + case 7: + case 8: + return $clinit_PortSide() , WEST_2; + case 9: + case 10: + case 11: + return $clinit_PortSide() , EAST_2; + default:return $clinit_PortSide() , UNDEFINED_5; + } +} + +function $isInsideLocation(this$static){ + switch (this$static.ordinal) { + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + return true; + default:return false; + } +} + +function NodeLabelLocation(enum$name, enum$ordinal, horizontalAlignment, verticalAlignment, row, column, assignedPlacements){ + Enum.call(this, enum$name, enum$ordinal); + this.horizontalAlignment = horizontalAlignment; + this.verticalAlignment = verticalAlignment; + this.containerRow = row; + this.containerColumn = column; + this.assignedPlacements = newArrayList_1(assignedPlacements); +} + +function fromNodeLabelPlacement(labelPlacement){ + $clinit_NodeLabelLocation(); + var location_0, location$array, location$index, location$max; + for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { + location_0 = location$array[location$index]; + if ($indexOf_3(location_0.assignedPlacements, labelPlacement, 0) != -1) { + return location_0; + } + } + return UNDEFINED; +} + +function valueOf_18(name_0){ + $clinit_NodeLabelLocation(); + return valueOf(($clinit_NodeLabelLocation$Map() , $MAP_8), name_0); +} + +function values_26(){ + $clinit_NodeLabelLocation(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit, 1), $intern_37, 164, 0, [OUT_T_L, OUT_T_C, OUT_T_R, OUT_B_L, OUT_B_C, OUT_B_R, OUT_L_T, OUT_L_C, OUT_L_B, OUT_R_T, OUT_R_C, OUT_R_B, IN_T_L, IN_T_C, IN_T_R, IN_C_L, IN_C_C, IN_C_R, IN_B_L, IN_B_C, IN_B_R, UNDEFINED]); +} + +defineClass(164, 22, {3:1, 34:1, 22:1, 164:1}, NodeLabelLocation); +var IN_B_C, IN_B_L, IN_B_R, IN_C_C, IN_C_L, IN_C_R, IN_T_C, IN_T_L, IN_T_R, OUT_B_C, OUT_B_L, OUT_B_R, OUT_L_B, OUT_L_C, OUT_L_T, OUT_R_B, OUT_R_C, OUT_R_T, OUT_T_C, OUT_T_L, OUT_T_R, UNDEFINED; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeLabelLocation', 164, Ljava_lang_Enum_2_classLit, values_26, valueOf_18); +function $clinit_NodeLabelLocation$Map(){ + $clinit_NodeLabelLocation$Map = emptyMethod; + $MAP_8 = createValueOfMap(values_26()); +} + +var $MAP_8; +function $applyPortPosition(this$static){ + this$static.port.setPosition(this$static.portPosition); +} + +function PortContext(parentNodeContext, port){ + var portLabelsNextToPort; + this.portMargin = new ElkMargin; + this.port = port; + this.portPosition = new KVector_2(port.getPosition()); + portLabelsNextToPort = parentNodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + parentNodeContext.portLabelsPlacement.contains(INSIDE_0)?parentNodeContext.treatAsCompoundNode?(this.labelsNextToPort = portLabelsNextToPort && !port.hasCompoundConnections()):(this.labelsNextToPort = true):parentNodeContext.portLabelsPlacement.contains(OUTSIDE_0)?portLabelsNextToPort?(this.labelsNextToPort = !(port.getIncomingEdges().iterator_0().hasNext_0() || port.getOutgoingEdges().iterator_0().hasNext_0())):(this.labelsNextToPort = false):(this.labelsNextToPort = false); +} + +defineClass(117, 1, {117:1}, PortContext); +_.labelsNextToPort = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_PortContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'PortContext', 117); +function configureCellSystemSizeContributions(nodeContext){ + var freePortPlacement, labelCell, location_0, location$array, location$index, location$max, overhang; + if (nodeContext.sizeConstraints.isEmpty()) { + return; + } + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORTS_0))) { + castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 127).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 127).contributesToMinimumWidth = true; + freePortPlacement = nodeContext.portConstraints != ($clinit_PortConstraints() , FIXED_RATIO) && nodeContext.portConstraints != FIXED_POS; + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 127), freePortPlacement); + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 127), freePortPlacement); + $setContributesToMinimumHeight(nodeContext.nodeContainerMiddleRow, freePortPlacement); + if (nodeContext.sizeConstraints.contains(PORT_LABELS)) { + castTo($get_14(nodeContext.insidePortLabelCells, NORTH_3), 127).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 127).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 127).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 127).contributesToMinimumWidth = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; + } + } + if (nodeContext.sizeConstraints.contains(NODE_LABELS)) { + nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; + nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; + overhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); + for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { + location_0 = location$array[location$index]; + labelCell = castTo($get_14(nodeContext.nodeLabelCells, location_0), 314); + if (labelCell) { + if ($isInsideLocation(location_0)) { + labelCell.contributesToMinimumHeight = true; + labelCell.contributesToMinimumWidth = true; + } + else { + labelCell.contributesToMinimumHeight = !overhang; + labelCell.contributesToMinimumWidth = !overhang; + } + } + } + } + if (nodeContext.sizeConstraints.contains(MINIMUM_SIZE) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + if (!nodeContext.insideNodeLabelContainer.contributesToMinimumHeight) { + nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; + nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; + nodeContext.insideNodeLabelContainer.onlyCenterCellContributesToMinimumSize = true; + } + } +} + +function updateVerticalInsidePortLabelCellPadding(nodeContext){ + var bottomBorderOffset, bottomPadding, eastCell, topBorderOffset, topPadding, westCell; + if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { + return; + } + topBorderOffset = nodeContext.nodeContainer.padding.top_0 + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 127)) + nodeContext.labelCellSpacing; + bottomBorderOffset = nodeContext.nodeContainer.padding.bottom + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 127)) + nodeContext.labelCellSpacing; + eastCell = castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 127); + westCell = castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 127); + topPadding = $wnd.Math.max(0, eastCell.padding.top_0 - topBorderOffset); + topPadding = $wnd.Math.max(topPadding, westCell.padding.top_0 - topBorderOffset); + bottomPadding = $wnd.Math.max(0, eastCell.padding.bottom - bottomBorderOffset); + bottomPadding = $wnd.Math.max(bottomPadding, westCell.padding.bottom - bottomBorderOffset); + eastCell.padding.top_0 = topPadding; + westCell.padding.top_0 = topPadding; + eastCell.padding.bottom = bottomPadding; + westCell.padding.bottom = bottomPadding; +} + +function calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ + var cell, portContext, portContext$iterator, rightmostPortBorder; + rightmostPortBorder = 0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + rightmostPortBorder = $wnd.Math.max(rightmostPortBorder, portContext.portPosition.x_0 + portContext.port.getSize().x_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + cell.padding.left = 0; + cell.minimumContentAreaSize.x_0 = rightmostPortBorder; +} + +function calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ + var cell, currentPortContext, currentPortRatio, currentPortWidth, minWidth, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortRatio, previousPortWidth, requiredSpace; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + if (portContexts.isEmpty()) { + cell.padding.left = 0; + cell.padding.right = 0; + return; + } + portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + minWidth = 0; + portContextIterator = portContexts.iterator_0(); + previousPortContext = null; + previousPortRatio = 0; + previousPortWidth = 0; + while (portContextIterator.hasNext_0()) { + currentPortContext = castTo(portContextIterator.next_1(), 117); + currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); + currentPortWidth = currentPortContext.port.getSize().x_0; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); + if (!previousPortContext) { + !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.left > 0 && (minWidth = $wnd.Math.max(minWidth, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.left + currentPortContext.portMargin.left, currentPortRatio))); + } + else { + requiredSpace = previousPortWidth + previousPortContext.portMargin.right + nodeContext.portPortSpacing + currentPortContext.portMargin.left; + minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); + } + previousPortContext = currentPortContext; + previousPortRatio = currentPortRatio; + previousPortWidth = currentPortWidth; + } + if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.right > 0) { + requiredSpace = previousPortWidth + nodeContext.surroundingPortMargins.right; + portLabelsInside && (requiredSpace += previousPortContext.portMargin.right); + minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); + } + cell.padding.left = 0; + cell.minimumContentAreaSize.x_0 = minWidth; +} + +function calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, portSide){ + var cell, width_0; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).isEmpty()) { + cell.padding.left = 0; + cell.padding.right = 0; + return; + } + cell.padding.left = nodeContext.surroundingPortMargins.left; + cell.padding.right = nodeContext.surroundingPortMargins.right; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); + width_0 = portWidthPlusPortPortSpacing(nodeContext, portSide); + $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (width_0 += 2 * nodeContext.portPortSpacing); + cell.minimumContentAreaSize.x_0 = width_0; +} + +function calculateHorizontalPortPlacementSize(nodeContext){ + switch (nodeContext.portConstraints.ordinal) { + case 5: + calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, SOUTH_2); + break; + case 4: + calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, SOUTH_2); + break; + default:calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, SOUTH_2); + } +} + +function computeHorizontalPortMargins(nodeContext, portSide){ + var labelWidth, labelsBounds, overhang, portContext, portContext$iterator, portWidth; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + labelWidth = portContext.portLabelCell?$getMinimumWidth(portContext.portLabelCell):0; + if (labelWidth > 0) { + if (portContext.labelsNextToPort) { + portWidth = portContext.port.getSize().x_0; + if (labelWidth > portWidth) { + overhang = (labelWidth - portWidth) / 2; + portContext.portMargin.left = overhang; + portContext.portMargin.right = overhang; + } + } + else { + portContext.portMargin.right = nodeContext.portLabelSpacingHorizontal + labelWidth; + } + } + else if (isFixed(nodeContext.portLabelsPlacement)) { + labelsBounds = getLabelsBounds(portContext.port); + labelsBounds.x_0 < 0 && (portContext.portMargin.left = -labelsBounds.x_0); + labelsBounds.x_0 + labelsBounds.width_0 > portContext.port.getSize().x_0 && (portContext.portMargin.right = labelsBounds.x_0 + labelsBounds.width_0 - portContext.port.getSize().x_0); + } + } +} + +function minSizeRequiredToRespectSpacing(spacing, secondRatio){ + return $clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(0 - secondRatio) <= $intern_94 || 0 == secondRatio || isNaN(0) && isNaN(secondRatio)?0:spacing / secondRatio; +} + +function portWidthPlusPortPortSpacing(nodeContext, portSide){ + var portContext, portContextIterator, result; + result = 0; + portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 117); + result += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right; + portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); + } + return result; +} + +function setupPortMargins(nodeContext, portSide){ + var alwaysSameSide, alwaysSameSideAbove, leftmostPortContext, portContextIterator, portContexts, portLabelsOutside, rightmostPortContext, spaceEfficient, spaceEfficientPortLabels, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); + computeHorizontalPortMargins(nodeContext, portSide); + leftmostPortContext = null; + rightmostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + leftmostPortContext = castTo(portContextIterator.next_1(), 117); + rightmostPortContext = leftmostPortContext; + while (portContextIterator.hasNext_0()) { + rightmostPortContext = castTo(portContextIterator.next_1(), 117); + } + leftmostPortContext.portMargin.left = 0; + rightmostPortContext.portMargin.right = 0; + spaceEfficientPortLabels && !leftmostPortContext.labelsNextToPort && (leftmostPortContext.portMargin.right = 0); + } + if (uniformPortSpacing) { + unifyPortMargins(portContexts); + if (portLabelsOutside) { + leftmostPortContext.portMargin.left = 0; + rightmostPortContext.portMargin.right = 0; + } + } +} + +function unifyPortMargins(portContexts){ + var maxLeft, maxRight, portContext, portContext$iterator, portContext$iterator0; + maxLeft = 0; + maxRight = 0; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 117); + maxLeft = $wnd.Math.max(maxLeft, portContext.portMargin.left); + maxRight = $wnd.Math.max(maxRight, portContext.portMargin.right); + } + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portMargin.left = maxLeft; + portContext.portMargin.right = maxRight; + } +} + +function calculateWidthDueToLabels(nodeContext, portSide){ + var minCellSize, portContext, portContext$iterator, theAppropriateCell; + theAppropriateCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + minCellSize = theAppropriateCell.minimumContentAreaSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + !!portContext.portLabelCell && (minCellSize.x_0 = $wnd.Math.max(minCellSize.x_0, $getMinimumWidth(portContext.portLabelCell))); + } + if (minCellSize.x_0 > 0) { + switch (portSide.ordinal) { + case 2: + theAppropriateCell.padding.right = nodeContext.portLabelSpacingHorizontal; + break; + case 4: + theAppropriateCell.padding.left = nodeContext.portLabelSpacingHorizontal; + } + } +} + +function createInsidePortLabelCell(nodeContext, container, containerArea, portSide){ + var portLabelCell; + portLabelCell = new AtomicCell; + container.cells_0[containerArea.ordinal] = portLabelCell; + $put_7(nodeContext.insidePortLabelCells, portSide, portLabelCell); +} + +function setupEastOrWestPortLabelCell(nodeContext, portSide){ + nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && calculateWidthDueToLabels(nodeContext, portSide); + setupTopAndBottomPadding(nodeContext, portSide); +} + +function setupNorthOrSouthPortLabelCell(nodeContext, portSide){ + var padding; + padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127).padding; + switch (portSide.ordinal) { + case 1: + nodeContext.portLabelSpacingVertical >= 0 && (padding.top_0 = nodeContext.portLabelSpacingVertical); + break; + case 3: + nodeContext.portLabelSpacingVertical >= 0 && (padding.bottom = nodeContext.portLabelSpacingVertical); + } + if (nodeContext.surroundingPortMargins) { + padding.left = nodeContext.surroundingPortMargins.left; + padding.right = nodeContext.surroundingPortMargins.right; + } +} + +function setupTopAndBottomPadding(nodeContext, portSide){ + var padding; + if (nodeContext.surroundingPortMargins) { + padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127).padding; + padding.top_0 = nodeContext.surroundingPortMargins.top_0; + padding.bottom = nodeContext.surroundingPortMargins.bottom; + } +} + +function placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ + var nodeLabelContainer, nodeLabelContainerRect, nodeSize; + nodeSize = nodeContext.nodeSize; + nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 252); + nodeLabelContainerRect = nodeLabelContainer.cellRectangle; + nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); + nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); + nodeLabelContainerRect.width_0 = $wnd.Math.max(nodeLabelContainerRect.width_0, nodeSize.x_0); + nodeLabelContainerRect.width_0 > nodeSize.x_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.width_0 = nodeSize.x_0); + nodeLabelContainerRect.x_0 = -(nodeLabelContainerRect.width_0 - nodeSize.x_0) / 2; + switch (portSide.ordinal) { + case 1: + nodeLabelContainerRect.y_0 = -nodeLabelContainerRect.height; + break; + case 3: + nodeLabelContainerRect.y_0 = nodeSize.y_0; + } + $layoutChildrenHorizontally(nodeLabelContainer); + $layoutChildrenVertically(nodeLabelContainer); +} + +function placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ + var nodeLabelContainer, nodeLabelContainerRect, nodeSize; + nodeSize = nodeContext.nodeSize; + nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 252); + nodeLabelContainerRect = nodeLabelContainer.cellRectangle; + nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); + nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); + nodeLabelContainerRect.height = $wnd.Math.max(nodeLabelContainerRect.height, nodeSize.y_0); + nodeLabelContainerRect.height > nodeSize.y_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.height = nodeSize.y_0); + nodeLabelContainerRect.y_0 = -(nodeLabelContainerRect.height - nodeSize.y_0) / 2; + switch (portSide.ordinal) { + case 4: + nodeLabelContainerRect.x_0 = -nodeLabelContainerRect.width_0; + break; + case 2: + nodeLabelContainerRect.x_0 = nodeSize.x_0; + } + $layoutChildrenHorizontally(nodeLabelContainer); + $layoutChildrenVertically(nodeLabelContainer); +} + +function LabelPlacer$lambda$0$Type(){ +} + +defineClass(1541, 1, $intern_19, LabelPlacer$lambda$0$Type); +_.accept = function accept_47(arg0){ + $applyLabelLayout(castTo(arg0, 314)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$0$Type', 1541); +function LabelPlacer$lambda$1$Type(){ +} + +defineClass(1542, 1, $intern_40, LabelPlacer$lambda$1$Type); +_.test_0 = function test_9(arg0){ + return !!castTo(arg0, 117).portLabelCell; +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$1$Type', 1542); +function LabelPlacer$lambda$2$Type(){ +} + +defineClass(1543, 1, $intern_19, LabelPlacer$lambda$2$Type); +_.accept = function accept_48(arg0){ + $applyLabelLayout(castTo(arg0, 117).portLabelCell); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$2$Type', 1543); +function $clinit_NodeLabelAndSizeUtilities(){ + $clinit_NodeLabelAndSizeUtilities = emptyMethod; + EFFECTIVELY_FIXED_SIZE_CONSTRAINTS = of_1(($clinit_SizeConstraint() , PORT_LABELS)); +} + +function getMinimumNodeOrClientAreaSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var minSize; + minSize = new KVector_2(castTo(nodeContext.node.getProperty(($clinit_CoreOptions() , NODE_SIZE_MINIMUM_5)), 8)); + if (nodeContext.sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + return minSize; +} + +function getMinimumNodeSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { + return getMinimumNodeOrClientAreaSize(nodeContext); + } + } + return null; +} + +function isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide){ + $clinit_NodeLabelAndSizeUtilities(); + var alwaysSameSide, firstPort, portContexts, spaceEfficient; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + if (portContexts.size_1() >= 2) { + firstPort = castTo(portContexts.iterator_0().next_1(), 117); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_SAME_SIDE)); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + return !firstPort.labelsNextToPort && !alwaysSameSide && (portContexts.size_1() == 2 || spaceEfficient); + } + else { + return false; + } +} + +function offsetSouthernPortsByNodeSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var nodeHeight, portContext, portContext$iterator, portPosition; + nodeHeight = nodeContext.nodeSize.y_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, ($clinit_PortSide() , SOUTH_2)), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portPosition = portContext.portPosition; + portPosition.y_0 += nodeHeight; + } +} + +function setNodePadding(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var clientArea, nodePadding, nodeRect; + if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , COMPUTE_PADDING))) { + return; + } + nodeRect = nodeContext.nodeContainer.cellRectangle; + clientArea = new ElkRectangle_1(nodeContext.insideNodeLabelContainer.centerCellRect); + nodePadding = new ElkPadding; + nodePadding.left = clientArea.x_0 - nodeRect.x_0; + nodePadding.top_0 = clientArea.y_0 - nodeRect.y_0; + nodePadding.right = nodeRect.x_0 + nodeRect.width_0 - (clientArea.x_0 + clientArea.width_0); + nodePadding.bottom = nodeRect.y_0 + nodeRect.height - (clientArea.y_0 + clientArea.height); + nodeContext.node.setPadding(nodePadding); +} + +function setupNodePaddingForPortsWithOffset(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var insidePart, insidePartIsBigger, nodeCellPadding, portBorderOffset, portContext, portContext$iterator, symmetry; + nodeCellPadding = nodeContext.nodeContainer.padding; + for (portContext$iterator = $values_0(nodeContext.portContexts).this$01.valueIterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portBorderOffset = 0; + if (portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { + portBorderOffset = $doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))); + if (portBorderOffset < 0) { + switch (portContext.port.getSide().ordinal) { + case 1: + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, -portBorderOffset); + break; + case 3: + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, -portBorderOffset); + break; + case 2: + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, -portBorderOffset); + break; + case 4: + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, -portBorderOffset); + } + } + } + if (isFixed(nodeContext.portLabelsPlacement)) { + insidePart = computeInsidePart_0(portContext.port, portBorderOffset); + symmetry = !castTo(nodeContext.node.getProperty(NODE_SIZE_OPTIONS_6), 181).contains(($clinit_SizeOptions() , ASYMMETRICAL)); + insidePartIsBigger = false; + switch (portContext.port.getSide().ordinal) { + case 1: + insidePartIsBigger = insidePart > nodeCellPadding.top_0; + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, nodeCellPadding.bottom); + nodeCellPadding.bottom = nodeCellPadding.top_0 + portBorderOffset; + } + + break; + case 3: + insidePartIsBigger = insidePart > nodeCellPadding.bottom; + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, nodeCellPadding.top_0); + nodeCellPadding.top_0 = nodeCellPadding.bottom + portBorderOffset; + } + + break; + case 2: + insidePartIsBigger = insidePart > nodeCellPadding.right; + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); + nodeCellPadding.left = nodeCellPadding.right + portBorderOffset; + } + + break; + case 4: + insidePartIsBigger = insidePart > nodeCellPadding.left; + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); + nodeCellPadding.right = nodeCellPadding.left + portBorderOffset; + } + + } + } + } +} + +var EFFECTIVELY_FIXED_SIZE_CONSTRAINTS; +function NodeLabelAndSizeUtilities$lambda$0$Type(){ +} + +defineClass(1540, 1, $intern_19, NodeLabelAndSizeUtilities$lambda$0$Type); +_.accept = function accept_49(arg0){ + $clinit_NodeLabelAndSizeUtilities(); + $applyPortPosition(castTo(arg0, 117)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelAndSizeUtilities$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelAndSizeUtilities/lambda$0$Type', 1540); +function createNodeLabelCellContainers(nodeContext, onlyInside){ + var eastContainer, northContainer, southContainer, symmetry, tabularNodeLabels, westContainer; + symmetry = !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); + tabularNodeLabels = nodeContext.sizeOptions.contains(FORCE_TABULAR_NODE_LABELS); + nodeContext.insideNodeLabelContainer = new GridContainerCell(tabularNodeLabels, symmetry, nodeContext.labelCellSpacing); + !!nodeContext.nodeLabelsPadding && $copy(nodeContext.insideNodeLabelContainer.padding, nodeContext.nodeLabelsPadding); + $setCell_0(nodeContext.nodeContainerMiddleRow, ($clinit_ContainerArea() , CENTER), nodeContext.insideNodeLabelContainer); + if (!onlyInside) { + northContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); + northContainer.padding.bottom = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3), northContainer); + southContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); + southContainer.padding.top_0 = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, SOUTH_2, southContainer); + westContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); + westContainer.padding.right = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, WEST_2, westContainer); + eastContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); + eastContainer.padding.left = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, EAST_2, eastContainer); + } +} + +function createNodeLabelCells(nodeContext, horizontalLayoutMode){ + createNodeLabelCellContainers(nodeContext, true); + $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, true, horizontalLayoutMode)); +} + +function handleNodeLabel(nodeContext, label_0, onlyInside, horizontalLayoutMode){ + var labelLocation, labelPlacement; + labelPlacement = label_0.hasProperty(($clinit_CoreOptions() , NODE_LABELS_PLACEMENT_5))?castTo(label_0.getProperty(NODE_LABELS_PLACEMENT_5), 21):nodeContext.nodeLabelPlacement; + labelLocation = fromNodeLabelPlacement(labelPlacement); + if (labelLocation == ($clinit_NodeLabelLocation() , UNDEFINED)) { + return; + } + if (onlyInside && !$isInsideLocation(labelLocation)) { + return; + } + $addLabel(retrieveNodeLabelCell(nodeContext, labelLocation, horizontalLayoutMode), label_0); +} + +function lambda$0_10(nodeContext_0, onlyInside_1, horizontalLayoutMode_2, label_3){ + handleNodeLabel(nodeContext_0, label_3, onlyInside_1, horizontalLayoutMode_2); +} + +function retrieveNodeLabelCell(nodeContext, nodeLabelLocation, horizontalLayoutMode){ + var containerCell, nodeLabelCell, outsideSide; + nodeLabelCell = castTo($get_14(nodeContext.nodeLabelCells, nodeLabelLocation), 314); + if (!nodeLabelCell) { + nodeLabelCell = new LabelCell_0(nodeContext.labelLabelSpacing, nodeLabelLocation, horizontalLayoutMode); + $put_7(nodeContext.nodeLabelCells, nodeLabelLocation, nodeLabelCell); + if ($isInsideLocation(nodeLabelLocation)) { + $setCell(nodeContext.insideNodeLabelContainer, nodeLabelLocation.containerRow, nodeLabelLocation.containerColumn, nodeLabelCell); + } + else { + outsideSide = $getOutsideSide(nodeLabelLocation); + containerCell = castTo($get_14(nodeContext.outsideNodeLabelContainers, outsideSide), 252); + switch (outsideSide.ordinal) { + case 1: + case 3: + nodeLabelCell.contributesToMinimumHeight = true; + $setCell_0(containerCell, nodeLabelLocation.containerColumn, nodeLabelCell); + break; + case 4: + case 2: + nodeLabelCell.contributesToMinimumWidth = true; + $setCell_0(containerCell, nodeLabelLocation.containerRow, nodeLabelCell); + } + } + } + return nodeLabelCell; +} + +function NodeLabelCellCreator$lambda$0$Type(nodeContext_0, onlyInside_1, horizontalLayoutMode_2){ + this.nodeContext_0 = nodeContext_0; + this.onlyInside_1 = onlyInside_1; + this.horizontalLayoutMode_2 = horizontalLayoutMode_2; +} + +defineClass(801, 1, $intern_19, NodeLabelCellCreator$lambda$0$Type); +_.accept = function accept_50(arg0){ + lambda$0_10(this.nodeContext_0, this.onlyInside_1, this.horizontalLayoutMode_2, castTo(arg0, 187)); +} +; +_.horizontalLayoutMode_2 = false; +_.onlyInside_1 = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelCellCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelCellCreator/lambda$0$Type', 801); +function setNodeHeight(nodeContext){ + var height, minNodeSize, nodeCellRectangle, nodeSize; + nodeSize = nodeContext.nodeSize; + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { + height = nodeSize.y_0; + } + else { + nodeContext.topdownLayout?(height = $wnd.Math.max(nodeSize.y_0, $getMinimumHeight_1(nodeContext.nodeContainer))):(height = $getMinimumHeight_1(nodeContext.nodeContainer)); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , EAST_2)), 252))); + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, WEST_2), 252))); + } + minNodeSize = getMinimumNodeSize(nodeContext); + !!minNodeSize && (height = $wnd.Math.max(height, minNodeSize.y_0)); + if (nodeContext.sizeConstraints.contains(PORTS_0)) { + if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , EAST_2)), 127))); + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 127))); + } + } + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_3))))?(nodeSize.y_0 = $wnd.Math.max(nodeSize.y_0, height)):(nodeSize.y_0 = height); + nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; + nodeCellRectangle.y_0 = 0; + nodeCellRectangle.height = height; + $layoutChildrenVertically(nodeContext.nodeContainer); +} + +function setNodeWidth(nodeContext){ + var minNodeSize, nodeCellRectangle, nodeSize, width_0; + nodeSize = nodeContext.nodeSize; + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { + width_0 = nodeSize.x_0; + } + else { + nodeContext.topdownLayout?(width_0 = $wnd.Math.max(nodeSize.x_0, $getMinimumWidth_0(nodeContext.nodeContainer))):(width_0 = $getMinimumWidth_0(nodeContext.nodeContainer)); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3)), 252))); + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, SOUTH_2), 252))); + } + minNodeSize = getMinimumNodeSize(nodeContext); + !!minNodeSize && (width_0 = $wnd.Math.max(width_0, minNodeSize.x_0)); + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_3))))?(nodeSize.x_0 = $wnd.Math.max(nodeSize.x_0, width_0)):(nodeSize.x_0 = width_0); + nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; + nodeCellRectangle.x_0 = 0; + nodeCellRectangle.width_0 = width_0; + $layoutChildrenHorizontally(nodeContext.nodeContainer); +} + +function createPortContext(nodeContext, port, imPortLabels){ + var portContext; + portContext = new PortContext(nodeContext, port); + $put(nodeContext.portContexts, port.getSide(), portContext); + if (imPortLabels && !isFixed(nodeContext.portLabelsPlacement)) { + portContext.portLabelCell = new LabelCell(nodeContext.labelLabelSpacing); + $forEach_1(port.getLabels(), new PortContextCreator$lambda$0$Type(portContext)); + } +} + +function createPortContexts(nodeContext, ignoreInsidePortLabels){ + var imPortLabels, port, port$iterator, volatileId; + imPortLabels = !ignoreInsidePortLabels || !nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + volatileId = 0; + for (port$iterator = new ArrayList$1(nodeContext.node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 852); + if (port.getSide() == ($clinit_PortSide() , UNDEFINED_5)) { + throw toJs(new IllegalArgumentException_0('Label and node size calculator can only be used with ports that have port sides assigned.')); + } + port.setVolatileId(volatileId++); + createPortContext(nodeContext, port, imPortLabels); + } +} + +function lambda$0_11(portContext_0, label_1){ + $addLabel(portContext_0.portLabelCell, label_1); +} + +function PortContextCreator$lambda$0$Type(portContext_0){ + this.portContext_0 = portContext_0; +} + +defineClass(1539, 1, $intern_19, PortContextCreator$lambda$0$Type); +_.accept = function accept_51(arg0){ + lambda$0_11(this.portContext_0, castTo(arg0, 187)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_PortContextCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'PortContextCreator/lambda$0$Type', 1539); +function constrainedInsidePortLabelPlacement(nodeContext, portSide){ + var insidePortLabelContainer, labelContainerRect, leftBorder, overlapRemovalDirection, overlapRemover, padding, padding0, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, rightBorder, startCoordinate, stripHeight, verticalLabelAlignment, actualMinX, actualMaxX; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + if (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) { + simpleInsidePortLabelPlacement(nodeContext, portSide); + return; + } + overlapRemovalDirection = portSide == NORTH_3?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP); + verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , TOP):($clinit_VerticalLabelAlignment() , BOTTOM); + insidePortLabelContainer = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + labelContainerRect = insidePortLabelContainer.cellRectangle; + leftBorder = labelContainerRect.x_0 + maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [insidePortLabelContainer.padding.left, nodeContext.surroundingPortMargins.left, nodeContext.nodeLabelSpacing])); + rightBorder = labelContainerRect.x_0 + labelContainerRect.width_0 - maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [insidePortLabelContainer.padding.right, nodeContext.surroundingPortMargins.right, nodeContext.nodeLabelSpacing])); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingVertical); + startCoordinate = portSide == NORTH_3?$intern_61:$intern_60; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 117); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portPosition = portContext.portPosition; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + requireNonNull_0(verticalLabelAlignment, 'Vertical alignment cannot be null'); + portLabelCell.verticalAlignment = verticalLabelAlignment; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + portLabelCellRect.x_0 = portPosition.x_0 - (portLabelCellRect.width_0 - portSize.x_0) / 2; + actualMinX = $wnd.Math.min(leftBorder, portPosition.x_0); + actualMaxX = $wnd.Math.max(rightBorder, portPosition.x_0 + portSize.x_0); + portLabelCellRect.x_0 < actualMinX?(portLabelCellRect.x_0 = actualMinX):portLabelCellRect.x_0 + portLabelCellRect.width_0 > actualMaxX && (portLabelCellRect.x_0 = actualMaxX - portLabelCellRect.width_0); + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); + startCoordinate = portSide == NORTH_3?$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0):$wnd.Math.min(startCoordinate, portPosition.y_0); + } + startCoordinate += portSide == NORTH_3?nodeContext.portLabelSpacingVertical:-nodeContext.portLabelSpacingVertical; + stripHeight = $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); + stripHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127).minimumContentAreaSize.y_0 = stripHeight); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portLabelCellRect = portContext.portLabelCell.cellRectangle; + portLabelCellRect.x_0 -= portContext.portPosition.x_0; + portLabelCellRect.y_0 -= portContext.portPosition.y_0; + } +} + +function constrainedOutsidePortLabelPlacement(nodeContext, portSide){ + var overlapRemovalDirection, overlapRemover, padding, padding0, padding1, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, portWithSpecialNeeds, startCoordinate, verticalLabelAlignment; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + if (portContexts.size_1() <= 2 || portSide == ($clinit_PortSide() , EAST_2) || portSide == ($clinit_PortSide() , WEST_2)) { + simpleOutsidePortLabelPlacement(nodeContext, portSide); + return; + } + portWithSpecialNeeds = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + overlapRemovalDirection = portSide == ($clinit_PortSide() , NORTH_3)?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN); + verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , BOTTOM):($clinit_VerticalLabelAlignment() , TOP); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingHorizontal); + startCoordinate = portSide == NORTH_3?$intern_60:$intern_61; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 117); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portPosition = portContext.portPosition; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding1 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding1.top_0 + padding1.bottom); + if (portWithSpecialNeeds) { + portLabelCellRect.x_0 = portPosition.x_0 - (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding.left + padding.right) - nodeContext.portLabelSpacingHorizontal; + portWithSpecialNeeds = false; + } + else { + portLabelCellRect.x_0 = portPosition.x_0 + portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + } + requireNonNull_0(verticalLabelAlignment, 'Vertical alignment cannot be null'); + portLabelCell.verticalAlignment = verticalLabelAlignment; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); + startCoordinate = portSide == NORTH_3?$wnd.Math.min(startCoordinate, portPosition.y_0):$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0); + } + startCoordinate += portSide == NORTH_3?-nodeContext.portLabelSpacingVertical:nodeContext.portLabelSpacingVertical; + $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portLabelCellRect = portContext.portLabelCell.cellRectangle; + portLabelCellRect.x_0 -= portContext.portPosition.x_0; + portLabelCellRect.y_0 -= portContext.portPosition.y_0; + } +} + +function placePortLabels(nodeContext, portSide){ + var constrainedPlacement; + constrainedPlacement = !nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) || nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_POS); + nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))?constrainedPlacement?constrainedInsidePortLabelPlacement(nodeContext, portSide):simpleInsidePortLabelPlacement(nodeContext, portSide):nodeContext.portLabelsPlacement.contains(OUTSIDE_0) && (constrainedPlacement?constrainedOutsidePortLabelPlacement(nodeContext, portSide):simpleOutsidePortLabelPlacement(nodeContext, portSide)); +} + +function portLabelBorderOffsetForPortSide(nodeContext, portSide){ + switch (portSide.ordinal) { + case 1: + return nodeContext.nodeContainer.padding.top_0 + nodeContext.portLabelSpacingVertical; + case 3: + return nodeContext.nodeContainer.padding.bottom + nodeContext.portLabelSpacingVertical; + case 2: + return nodeContext.nodeContainer.padding.right + nodeContext.portLabelSpacingHorizontal; + case 4: + return nodeContext.nodeContainer.padding.left + nodeContext.portLabelSpacingHorizontal; + default:return 0; + } +} + +function simpleInsidePortLabelPlacement(nodeContext, portSide){ + var insideNorthOrSouthPortLabelAreaHeight, labelBorderOffset, labelHeight, padding, padding0, portBorderOffset, portContext, portContext$iterator, portLabelCell, portLabelCellRect, portLabelSpacingHorizontal, portLabelSpacingVertical, portSize; + insideNorthOrSouthPortLabelAreaHeight = 0; + labelBorderOffset = portLabelBorderOffsetForPortSide(nodeContext, portSide); + portLabelSpacingHorizontal = nodeContext.portLabelSpacingHorizontal; + portLabelSpacingVertical = nodeContext.portLabelSpacingVertical; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portBorderOffset = portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?$doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))):0; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + switch (portSide.ordinal) { + case 1: + portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; + portLabelCellRect.y_0 = portSize.y_0 + portBorderOffset + labelBorderOffset; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + break; + case 3: + portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; + portLabelCellRect.y_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.height; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + break; + case 2: + portLabelCellRect.x_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.width_0; + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 187).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + } + else { + portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; + } + + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + break; + case 4: + portLabelCellRect.x_0 = portSize.x_0 + portBorderOffset + labelBorderOffset; + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 187).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + } + else { + portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; + } + + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && (insideNorthOrSouthPortLabelAreaHeight = $wnd.Math.max(insideNorthOrSouthPortLabelAreaHeight, portLabelCellRect.height)); + } + insideNorthOrSouthPortLabelAreaHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127).minimumContentAreaSize.y_0 = insideNorthOrSouthPortLabelAreaHeight); +} + +function simpleOutsidePortLabelPlacement(nodeContext, portSide){ + var alwaysAbove, labelHeight, padding, padding0, placeFirstPortDifferently, portContext, portContext$iterator, portContexts, portLabelCell, portLabelCellRect, portSize; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + placeFirstPortDifferently = isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide); + alwaysAbove = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_OTHER_SAME_SIDE)); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + switch (portSide.ordinal) { + case 1: + if (portContext.labelsNextToPort) { + portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + else { + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + } + + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + break; + case 3: + if (portContext.labelsNextToPort) { + portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + else { + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + } + + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + break; + case 2: + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 187).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + } + else { + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + } + + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + break; + case 4: + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 187).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + } + else { + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + } + + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + placeFirstPortDifferently = false; + } +} + +function $clinit_PortPlacementCalculator(){ + $clinit_PortPlacementCalculator = emptyMethod; + PORT_RATIO_OR_POSITION = new Property_0('portRatioOrPosition', 0); +} + +function calculateVerticalPortXCoordinate(portContext, nodeWidth){ + var port; + port = portContext.port; + return port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth; +} + +function placeHorizontalFixedPosPorts(nodeContext, portSide){ + var port, portContext, portContext$iterator; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + } +} + +function placeHorizontalFixedRatioPorts(nodeContext, portSide){ + var nodeWidth, port, portContext, portContext$iterator; + nodeWidth = nodeContext.nodeSize.x_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portPosition.x_0 = nodeWidth * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + } +} + +function placeHorizontalFreePorts(nodeContext, portSide){ + var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementWidth, currentXPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; + insidePortLabelCellPadding = insidePortLabelCell.padding; + portAlignment = $getPortAlignment(nodeContext, portSide); + availableSpace = insidePortLabelCellRectangle.width_0 - insidePortLabelCellPadding.left - insidePortLabelCellPadding.right; + calculatedPortPlacementWidth = insidePortLabelCell.minimumContentAreaSize.x_0; + currentXPos = insidePortLabelCellRectangle.x_0 + insidePortLabelCellPadding.left; + spaceBetweenPorts = nodeContext.portPortSpacing; + if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() == 1) { + calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; + portAlignment = CENTER_6; + } + if (availableSpace < calculatedPortPlacementWidth && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { + if (portAlignment == DISTRIBUTED) { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() + 1); + currentXPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() - 1); + } + } + else { + if (availableSpace < calculatedPortPlacementWidth) { + calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; + portAlignment = CENTER_6; + } + switch (portAlignment.ordinal) { + case 3: + currentXPos += (availableSpace - calculatedPortPlacementWidth) / 2; + break; + case 4: + currentXPos += availableSpace - calculatedPortPlacementWidth; + break; + case 0: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentXPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portPosition.x_0 = currentXPos + portContext.portMargin.left; + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + currentXPos += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right + spaceBetweenPorts; + } +} + +function placeHorizontalPorts(nodeContext){ + $clinit_PortPlacementCalculator(); + switch (nodeContext.portConstraints.ordinal) { + case 5: + placeHorizontalFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFixedPosPorts(nodeContext, SOUTH_2); + break; + case 4: + placeHorizontalFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFixedRatioPorts(nodeContext, SOUTH_2); + break; + default:placeHorizontalFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFreePorts(nodeContext, SOUTH_2); + } +} + +function placeVerticalFixedPosPorts(nodeContext, portSide){ + var nodeWidth, port, portContext, portContext$iterator; + nodeWidth = nodeContext.nodeSize.x_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); + } +} + +function placeVerticalFixedRatioPorts(nodeContext, portSide){ + var nodeSize, portContext, portContext$iterator; + nodeSize = nodeContext.nodeSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portPosition.x_0 = calculateVerticalPortXCoordinate(portContext, nodeSize.x_0); + portContext.portPosition.y_0 = nodeSize.y_0 * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); + } +} + +function placeVerticalFreePorts(nodeContext, portSide){ + var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementHeight, currentYPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, nodeWidth, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; + insidePortLabelCellPadding = insidePortLabelCell.padding; + portAlignment = $getPortAlignment(nodeContext, portSide); + availableSpace = insidePortLabelCellRectangle.height - insidePortLabelCellPadding.top_0 - insidePortLabelCellPadding.bottom; + calculatedPortPlacementHeight = insidePortLabelCell.minimumContentAreaSize.y_0; + currentYPos = insidePortLabelCellRectangle.y_0 + insidePortLabelCellPadding.top_0; + spaceBetweenPorts = nodeContext.portPortSpacing; + nodeWidth = nodeContext.nodeSize.x_0; + if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() == 1) { + calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; + portAlignment = CENTER_6; + } + if (availableSpace < calculatedPortPlacementHeight && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { + if (portAlignment == DISTRIBUTED) { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() + 1); + currentYPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() - 1); + } + } + else { + if (availableSpace < calculatedPortPlacementHeight) { + calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; + portAlignment = CENTER_6; + } + switch (portAlignment.ordinal) { + case 3: + currentYPos += (availableSpace - calculatedPortPlacementHeight) / 2; + break; + case 4: + currentYPos += availableSpace - calculatedPortPlacementHeight; + break; + case 0: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentYPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); + portContext.portPosition.y_0 = currentYPos + portContext.portMargin.top_0; + currentYPos += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom + spaceBetweenPorts; + } +} + +function placeVerticalPorts(nodeContext){ + $clinit_PortPlacementCalculator(); + switch (nodeContext.portConstraints.ordinal) { + case 5: + placeVerticalFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFixedPosPorts(nodeContext, WEST_2); + break; + case 4: + placeVerticalFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFixedRatioPorts(nodeContext, WEST_2); + break; + default:placeVerticalFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFreePorts(nodeContext, WEST_2); + } +} + +var PORT_RATIO_OR_POSITION; +function calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ + var bottommostPortBorder, cell, portContext, portContext$iterator; + bottommostPortBorder = 0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + bottommostPortBorder = $wnd.Math.max(bottommostPortBorder, portContext.portPosition.y_0 + portContext.port.getSize().y_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + cell.padding.top_0 = 0; + cell.minimumContentAreaSize.y_0 = bottommostPortBorder; +} + +function calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ + var cell, currentPortContext, currentPortHeight, currentPortRatio, minHeight, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortHeight, previousPortRatio, requiredSpace; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + if (portContexts.isEmpty()) { + cell.padding.top_0 = 0; + cell.padding.bottom = 0; + return; + } + portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + minHeight = 0; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); + portContextIterator = portContexts.iterator_0(); + previousPortContext = null; + previousPortRatio = 0; + previousPortHeight = 0; + while (portContextIterator.hasNext_0()) { + currentPortContext = castTo(portContextIterator.next_1(), 117); + currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); + currentPortHeight = currentPortContext.port.getSize().y_0; + if (!previousPortContext) { + !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.top_0 > 0 && (minHeight = $wnd.Math.max(minHeight, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.top_0 + currentPortContext.portMargin.top_0, currentPortRatio))); + } + else { + requiredSpace = previousPortHeight + previousPortContext.portMargin.bottom + nodeContext.portPortSpacing + currentPortContext.portMargin.top_0; + minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); + } + previousPortContext = currentPortContext; + previousPortRatio = currentPortRatio; + previousPortHeight = currentPortHeight; + } + if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.bottom > 0) { + requiredSpace = previousPortHeight + nodeContext.surroundingPortMargins.bottom; + portLabelsInside && (requiredSpace += previousPortContext.portMargin.bottom); + minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); + } + cell.padding.top_0 = 0; + cell.minimumContentAreaSize.y_0 = minHeight; +} + +function calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, portSide){ + var cell, height; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 127); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).isEmpty()) { + cell.padding.top_0 = 0; + cell.padding.bottom = 0; + return; + } + cell.padding.top_0 = nodeContext.surroundingPortMargins.top_0; + cell.padding.bottom = nodeContext.surroundingPortMargins.bottom; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); + height = portHeightPlusPortPortSpacing(nodeContext, portSide); + $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (height += 2 * nodeContext.portPortSpacing); + cell.minimumContentAreaSize.y_0 = height; +} + +function calculateVerticalPortPlacementSize(nodeContext){ + switch (nodeContext.portConstraints.ordinal) { + case 5: + calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, WEST_2); + break; + case 4: + calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, WEST_2); + break; + default:calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, WEST_2); + } +} + +function computeVerticalPortMargins(nodeContext, portSide){ + var firstLabelHeight, firstLabelOverhang, labelHeight, labelsBounds, overhang, portContext, portContext$iterator, portHeight; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + labelHeight = portContext.portLabelCell?$getMinimumHeight_0(portContext.portLabelCell):0; + if (labelHeight > 0) { + if (portContext.labelsNextToPort) { + portHeight = portContext.port.getSize().y_0; + if (labelHeight > portHeight) { + if (nodeContext.portLabelsTreatAsGroup || portContext.portLabelCell.labels.array.length == 1) { + overhang = (labelHeight - portHeight) / 2; + portContext.portMargin.top_0 = overhang; + portContext.portMargin.bottom = overhang; + } + else { + firstLabelHeight = castTo($get_11(portContext.portLabelCell.labels, 0), 187).getSize().y_0; + firstLabelOverhang = (firstLabelHeight - portHeight) / 2; + portContext.portMargin.top_0 = $wnd.Math.max(0, firstLabelOverhang); + portContext.portMargin.bottom = labelHeight - firstLabelOverhang - portHeight; + } + } + } + else { + portContext.portMargin.bottom = nodeContext.portLabelSpacingVertical + labelHeight; + } + } + else if (isFixed(nodeContext.portLabelsPlacement)) { + labelsBounds = getLabelsBounds(portContext.port); + labelsBounds.y_0 < 0 && (portContext.portMargin.top_0 = -labelsBounds.y_0); + labelsBounds.y_0 + labelsBounds.height > portContext.port.getSize().y_0 && (portContext.portMargin.bottom = labelsBounds.y_0 + labelsBounds.height - portContext.port.getSize().y_0); + } + } +} + +function portHeightPlusPortPortSpacing(nodeContext, portSide){ + var portContext, portContextIterator, result; + result = 0; + portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 117); + result += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom; + portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); + } + return result; +} + +function setupPortMargins_0(nodeContext, portSide){ + var alwaysSameSide, alwaysSameSideAbove, bottommostPortContext, portContextIterator, portContexts, portLabelsOutside, spaceEfficient, spaceEfficientPortLabels, topmostPortContext, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 87); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); + computeVerticalPortMargins(nodeContext, portSide); + topmostPortContext = null; + bottommostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + topmostPortContext = castTo(portContextIterator.next_1(), 117); + bottommostPortContext = topmostPortContext; + while (portContextIterator.hasNext_0()) { + bottommostPortContext = castTo(portContextIterator.next_1(), 117); + } + topmostPortContext.portMargin.top_0 = 0; + bottommostPortContext.portMargin.bottom = 0; + spaceEfficientPortLabels && !topmostPortContext.labelsNextToPort && (topmostPortContext.portMargin.bottom = 0); + } + if (uniformPortSpacing) { + unifyPortMargins_0(portContexts); + if (portLabelsOutside) { + topmostPortContext.portMargin.top_0 = 0; + bottommostPortContext.portMargin.bottom = 0; + } + } +} + +function unifyPortMargins_0(portContexts){ + var maxBottom, maxTop, portContext, portContext$iterator, portContext$iterator0; + maxTop = 0; + maxBottom = 0; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 117); + maxTop = $wnd.Math.max(maxTop, portContext.portMargin.top_0); + maxBottom = $wnd.Math.max(maxBottom, portContext.portMargin.bottom); + } + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 117); + portContext.portMargin.top_0 = maxTop; + portContext.portMargin.bottom = maxBottom; + } +} + +function $removeOverlaps(overlapRemover){ + var alreadyPlacedNodes, currNode, currNode$iterator, currRect, overlapNode, overlapNode$iterator, overlapRect, stripSize, verticalGap, yPos; + verticalGap = overlapRemover.gapVertical; + alreadyPlacedNodes = new HashSet; + stripSize = 0; + for (currNode$iterator = new ArrayList$1(overlapRemover.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_6(currNode$iterator), 226); + yPos = 0; + $sort_0(currNode.overlappingNodes, new GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); + for (overlapNode$iterator = $listIterator_2(currNode.overlappingNodes, 0); overlapNode$iterator.currentNode != overlapNode$iterator.this$01.tail;) { + overlapNode = castTo($next_9(overlapNode$iterator), 226); + if (alreadyPlacedNodes.map_0.containsKey(overlapNode)) { + currRect = currNode.rectangle; + overlapRect = overlapNode.rectangle; + yPos < overlapRect.y_0 + overlapRect.height + verticalGap && yPos + currRect.height + verticalGap > overlapRect.y_0 && (yPos = overlapRect.y_0 + overlapRect.height + verticalGap); + } + } + currNode.rectangle.y_0 = yPos; + alreadyPlacedNodes.map_0.put(currNode, alreadyPlacedNodes); + stripSize = $wnd.Math.max(stripSize, currNode.rectangle.y_0 + currNode.rectangle.height); + } + return stripSize; +} + +function GreedyRectangleStripOverlapRemover(){ +} + +function compareByYCoordinate(node1, node2){ + return compare_4(node1.rectangle.y_0, node2.rectangle.y_0); +} + +defineClass(1902, 1, {}, GreedyRectangleStripOverlapRemover); +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover', 1902); +function GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type(){ +} + +defineClass(1903, 1, $intern_88, GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); +_.compare_1 = function compare_17(arg0, arg1){ + return compareByYCoordinate(castTo(arg0, 226), castTo(arg1, 226)); +} +; +_.equals_0 = function equals_69(other){ + return this === other; +} +; +_.reversed = function reversed_9(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type', 1903); +function $computeOverlaps(this$static){ + var currNode, currNode$iterator, intersectingNode, intersectingNode$iterator, intersectingNodes, intersectingRectangle, scanlinePos; + intersectingNodes = new TreeSet_0(castTo(checkNotNull(new RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type), 50)); + scanlinePos = $intern_61; + for (currNode$iterator = new ArrayList$1(this$static.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_6(currNode$iterator), 226); + scanlinePos = currNode.rectangle.x_0; + while (intersectingNodes.map_0.size_1() != 0) { + intersectingRectangle = castTo(intersectingNodes.map_0.firstKey(), 226); + if (intersectingRectangle.rectangle.x_0 + intersectingRectangle.rectangle.width_0 < scanlinePos) { + intersectingNodes.map_0.remove_0(intersectingRectangle) != null; + } + else { + break; + } + } + for (intersectingNode$iterator = intersectingNodes.map_0.keySet_0().iterator_0(); intersectingNode$iterator.hasNext_0();) { + intersectingNode = castTo(intersectingNode$iterator.next_1(), 226); + $add_7(intersectingNode.overlappingNodes, currNode); + $add_7(currNode.overlappingNodes, intersectingNode); + } + intersectingNodes.map_0.put(currNode, ($clinit_Boolean() , FALSE_0)) == null; + } +} + +function $exportRectangle(this$static, rectangleNode){ + var originalRectangle, rectangle; + rectangle = rectangleNode.rectangle; + originalRectangle = rectangleNode.originalRectangle; + switch (this$static.overlapRemovalDirection.ordinal) { + case 0: + originalRectangle.y_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; + break; + case 1: + originalRectangle.y_0 += this$static.startCoordinate; + break; + case 2: + originalRectangle.x_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; + break; + case 3: + originalRectangle.x_0 = this$static.startCoordinate + rectangle.y_0; + } +} + +function $importRectangle(this$static, rectangle){ + switch (this$static.overlapRemovalDirection.ordinal) { + case 0: + case 1: + return rectangle; + case 2: + case 3: + return new ElkRectangle_0(rectangle.y_0, 0, rectangle.height, rectangle.width_0); + default:return null; + } +} + +function $removeOverlaps_0(this$static){ + var stripSize; + !this$static.overlapRemovalStrategy && (this$static.overlapRemovalStrategy = new GreedyRectangleStripOverlapRemover); + $sort(this$static.rectangleNodes, new RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); + $computeOverlaps(this$static); + stripSize = $removeOverlaps(this$static); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.rectangleNodes, 16)), new RectangleStripOverlapRemover$lambda$1$Type(this$static)); + return stripSize; +} + +function $withGap(this$static, theVerticalGap){ + this$static.gapVertical = theVerticalGap; + return this$static; +} + +function $withStartCoordinate(this$static, coordinate){ + this$static.startCoordinate = coordinate; + return this$static; +} + +function RectangleStripOverlapRemover(){ + this.rectangleNodes = new ArrayList; +} + +function compareLeftRectangleBorders(rn1, rn2){ + return compare_4(rn1.rectangle.x_0, rn2.rectangle.x_0); +} + +function compareRightRectangleBorders(rn1, rn2){ + return compare_4(rn1.rectangle.x_0 + rn1.rectangle.width_0, rn2.rectangle.x_0 + rn2.rectangle.width_0); +} + +function createForDirection(direction){ + var remover; + remover = new RectangleStripOverlapRemover; + remover.overlapRemovalDirection = direction; + return remover; +} + +defineClass(1849, 1, {}, RectangleStripOverlapRemover); +_.gapVertical = 5; +_.startCoordinate = 0; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover', 1849); +function RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type(){ +} + +defineClass(1850, 1, $intern_88, RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); +_.compare_1 = function compare_18(arg0, arg1){ + return compareLeftRectangleBorders(castTo(arg0, 226), castTo(arg1, 226)); +} +; +_.equals_0 = function equals_70(other){ + return this === other; +} +; +_.reversed = function reversed_10(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type', 1850); +function RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type(){ +} + +defineClass(1852, 1, $intern_88, RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type); +_.compare_1 = function compare_19(arg0, arg1){ + return compareRightRectangleBorders(castTo(arg0, 226), castTo(arg1, 226)); +} +; +_.equals_0 = function equals_71(other){ + return this === other; +} +; +_.reversed = function reversed_11(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type', 1852); +function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection = emptyMethod; + UP = new RectangleStripOverlapRemover$OverlapRemovalDirection('UP', 0); + DOWN = new RectangleStripOverlapRemover$OverlapRemovalDirection('DOWN', 1); + LEFT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('LEFT', 2); + RIGHT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('RIGHT', 3); +} + +function RectangleStripOverlapRemover$OverlapRemovalDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_19(name_0){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); + return valueOf(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map() , $MAP_9), name_0); +} + +function values_27(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_37, 417, 0, [UP, DOWN, LEFT_0, RIGHT_0]); +} + +defineClass(417, 22, {3:1, 34:1, 22:1, 417:1}, RectangleStripOverlapRemover$OverlapRemovalDirection); +var DOWN, LEFT_0, RIGHT_0, UP; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit = createForEnum('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/OverlapRemovalDirection', 417, Ljava_lang_Enum_2_classLit, values_27, valueOf_19); +function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map = emptyMethod; + $MAP_9 = createValueOfMap(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_37, 417, 0, [UP, DOWN, LEFT_0, RIGHT_0]))); +} + +var $MAP_9; +function RectangleStripOverlapRemover$RectangleNode(originalRectangle, rectangle){ + this.overlappingNodes = new LinkedList; + this.originalRectangle = originalRectangle; + this.rectangle = rectangle; +} + +defineClass(226, 1, {226:1}, RectangleStripOverlapRemover$RectangleNode); +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$RectangleNode_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/RectangleNode', 226); +function RectangleStripOverlapRemover$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1851, 1, $intern_19, RectangleStripOverlapRemover$lambda$1$Type); +_.accept = function accept_52(arg0){ + $exportRectangle(this.$$outer_0, castTo(arg0, 226)); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/lambda$1$Type', 1851); +function $packPolyominoes(polyHolder){ + var grid, next, offX, offY, poly, poly$iterator, polys, successorBasedOnCost; + polys = polyHolder.polys; + grid = polyHolder.grid; + switch (castTo($getProperty(polyHolder, ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT)), 435).ordinal) { + case 0: + $sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparator)); + break; + case 1: + default:$sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparatorWithShape)); + } + switch (castTo($getProperty(polyHolder, POLYOMINO_HIGH_LEVEL_SORT), 436).ordinal) { + case 1: + $sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); + $sort(polys, new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); + $sort(polys, new PolyominoCompactor$CornerCasesGreaterThanRestComparator); + break; + case 0: + default:$sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); + $sort(polys, new PolyominoCompactor$MinNumOfExtensionDirectionsComparator); + } + switch (castTo($getProperty(polyHolder, POLYOMINO_TRAVERSAL_STRATEGY), 257).ordinal) { + case 0: + successorBasedOnCost = new SuccessorMaxNormWindingInMathPosSense; + break; + case 1: + successorBasedOnCost = new SuccessorLineByLine; + break; + case 2: + successorBasedOnCost = new SuccessorManhattan; + break; + case 3: + successorBasedOnCost = new SuccessorJitter; + break; + case 5: + successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorManhattan); + break; + case 4: + successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorLineByLine); + break; + case 7: + successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorLineByLine), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); + break; + case 8: + successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorJitter), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); + break; + case 6: + default:successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorJitter); + } + for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_6(poly$iterator), 176); + offX = 0; + offY = 0; + next = new Pair(valueOf_3(offX), valueOf_3(offY)); + while ($intersectsWithCenterBased_0(grid, poly, offX, offY)) { + next = castTo(successorBasedOnCost.apply_3(next, poly), 42); + offX = castTo(next.first, 17).value_0; + offY = castTo(next.second, 17).value_0; + } + $addFilledCellsFrom_0(grid, poly, offX, offY); + } +} + +function $compare_1(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + numDir1 = numDir1 == 2?1:0; + numDir1 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type), reducing(valueOf_4(0), new Collectors$lambda$4$Type)), 168).value_0, 2), 0) && (numDir1 = 0); + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + numDir2 = numDir2 == 2?1:0; + numDir2 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type), reducing(valueOf_4(0), new Collectors$lambda$4$Type)), 168).value_0, 2), 0) && (numDir2 = 0); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$CornerCasesGreaterThanRestComparator(){ +} + +defineClass(1323, 1, $intern_88, PolyominoCompactor$CornerCasesGreaterThanRestComparator); +_.compare_1 = function compare_20(o1, o2){ + return $compare_1(castTo(o1, 176), castTo(o2, 176)); +} +; +_.equals_0 = function equals_72(other){ + return this === other; +} +; +_.reversed = function reversed_12(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator', 1323); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1326, 1, {}, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_38(arg0){ + return castTo(arg0, 334).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type', 1326); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type(){ +} + +defineClass(1327, 1, $intern_40, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type); +_.test_0 = function test_10(arg0){ + return castTo(arg0, 332).horizontal; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type', 1327); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type(){ +} + +defineClass(1328, 1, $intern_40, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type); +_.test_0 = function test_11(arg0){ + return castTo(arg0, 332).horizontal; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type', 1328); +function $compare_2(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type; + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator(){ +} + +defineClass(1321, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionDirectionsComparator); +_.compare_1 = function compare_21(o1, o2){ + return $compare_2(castTo(o1, 176), castTo(o2, 176)); +} +; +_.equals_0 = function equals_73(other){ + return this === other; +} +; +_.reversed = function reversed_13(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator', 1321); +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type(){ +} + +defineClass(1324, 1, {}, PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type); +_.apply_0 = function apply_39(arg0){ + return castTo(arg0, 334).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type', 1324); +function $compare_3(o1, o2){ + var numExt1, numExt2; + numExt1 = o1.polyominoExtensions.array.length; + numExt2 = o2.polyominoExtensions.array.length; + if (numExt1 < numExt2) { + return -1; + } + if (numExt1 == numExt2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinNumOfExtensionsComparator(){ +} + +defineClass(781, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionsComparator); +_.compare_1 = function compare_22(o1, o2){ + return $compare_3(castTo(o1, 176), castTo(o2, 176)); +} +; +_.equals_0 = function equals_74(other){ + return this === other; +} +; +_.reversed = function reversed_14(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionsComparator', 781); +function $compare_4(o1, o2){ + var halfPeri1, halfPeri2; + halfPeri1 = o1.xSize + o1.ySize; + halfPeri2 = o2.xSize + o2.ySize; + if (halfPeri1 < halfPeri2) { + return -1; + } + if (halfPeri1 == halfPeri2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinPerimeterComparator(){ +} + +defineClass(1319, 1, $intern_88, PolyominoCompactor$MinPerimeterComparator); +_.compare_1 = function compare_23(o1, o2){ + return $compare_4(castTo(o1, 330), castTo(o2, 330)); +} +; +_.equals_0 = function equals_75(other){ + return this === other; +} +; +_.reversed = function reversed_15(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparator', 1319); +function $compare_5(o1, o2){ + var height, val1, val2, width_0; + width_0 = o1.xSize; + height = o1.ySize; + width_0 < height?(width_0 *= width_0):(height *= height); + val1 = width_0 + height; + width_0 = o2.xSize; + height = o2.ySize; + width_0 < height?(width_0 *= width_0):(height *= height); + val2 = width_0 + height; + if (val1 < val2) { + return -1; + } + if (val1 == val2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinPerimeterComparatorWithShape(){ +} + +defineClass(1320, 1, $intern_88, PolyominoCompactor$MinPerimeterComparatorWithShape); +_.compare_1 = function compare_24(o1, o2){ + return $compare_5(castTo(o1, 330), castTo(o2, 330)); +} +; +_.equals_0 = function equals_76(other){ + return this === other; +} +; +_.reversed = function reversed_16(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparatorWithShape_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparatorWithShape', 1320); +function $compare_6(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + numDir1 = numDir1 == 1?1:0; + numDir2 = numDir2 == 1?1:0; + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator(){ +} + +defineClass(1322, 1, $intern_88, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); +_.compare_1 = function compare_25(o1, o2){ + return $compare_6(castTo(o1, 176), castTo(o2, 176)); +} +; +_.equals_0 = function equals_77(other){ + return this === other; +} +; +_.reversed = function reversed_17(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator', 1322); +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1325, 1, {}, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_40(arg0){ + return castTo(arg0, 334).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type', 1325); +function fillPolyomino(poly){ + var eastProfile, height, northProfile, southProfile, westProfile, width_0, x_0, xi, xi0, xi1, y_0, yi, yi0, yi1; + width_0 = poly.xSize; + northProfile = initUnidimensionalArray(I_classLit, $intern_49, 28, width_0, 15, 1); + southProfile = initUnidimensionalArray(I_classLit, $intern_49, 28, width_0, 15, 1); + height = poly.ySize; + eastProfile = initUnidimensionalArray(I_classLit, $intern_49, 28, height, 15, 1); + westProfile = initUnidimensionalArray(I_classLit, $intern_49, 28, height, 15, 1); + for (xi0 = 0; xi0 < width_0; xi0++) { + y_0 = 0; + while (y_0 < height && !$isBlocked(poly, xi0, y_0)) { + ++y_0; + } + northProfile[xi0] = y_0; + } + for (xi1 = 0; xi1 < width_0; xi1++) { + y_0 = height - 1; + while (y_0 >= 0 && !$isBlocked(poly, xi1, y_0)) { + --y_0; + } + southProfile[xi1] = y_0; + } + for (yi0 = 0; yi0 < height; yi0++) { + x_0 = 0; + while (x_0 < width_0 && !$isBlocked(poly, x_0, yi0)) { + ++x_0; + } + eastProfile[yi0] = x_0; + } + for (yi1 = 0; yi1 < height; yi1++) { + x_0 = width_0 - 1; + while (x_0 >= 0 && !$isBlocked(poly, x_0, yi1)) { + --x_0; + } + westProfile[yi1] = x_0; + } + for (xi = 0; xi < width_0; xi++) { + for (yi = 0; yi < height; yi++) { + xi < westProfile[yi] && xi > eastProfile[yi] && yi < southProfile[xi] && yi > northProfile[xi] && $set_4(poly, xi, yi, false, true); + } + } +} + +function $apply_3(this$static, coords, poly){ + return poly.polyominoExtensions.array.length > 0?$apply_8(this$static.externalFun, coords, poly):$apply_8(this$static.normalFun, coords, poly); +} + +function SuccessorCombination(normalFun, externalFun){ + this.normalFun = normalFun; + this.externalFun = externalFun; +} + +defineClass(782, 1, {}, SuccessorCombination); +_.apply_3 = function apply_41(coords, poly){ + return $apply_3(this, castTo(coords, 42), castTo(poly, 176)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorCombination_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorCombination', 782); +function $apply_4(coords){ + var cost, newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 17).value_0; + y_0 = castTo(coords.second, 17).value_0; + newX = x_0; + newY = y_0; + cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); + if (x_0 <= 0 && x_0 == y_0) { + newX = 0; + newY = y_0 - 1; + } + else { + if (x_0 == -cost && y_0 != cost) { + newX = y_0; + newY = x_0; + y_0 >= 0 && ++newX; + } + else { + newX = -y_0; + newY = x_0; + } + } + return new Pair(valueOf_3(newX), valueOf_3(newY)); +} + +function SuccessorJitter(){ +} + +defineClass(649, 1, {}, SuccessorJitter); +_.apply_3 = function apply_42(coords, poly){ + var lastArg; + return $apply_4((lastArg = castTo(coords, 42) , castTo(poly, 176) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorJitter_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorJitter', 649); +function $apply_5(coords){ + var x_0, y_0; + x_0 = castTo(coords.first, 17).value_0; + y_0 = castTo(coords.second, 17).value_0; + if (x_0 >= 0) { + if (x_0 == y_0) { + return new Pair(valueOf_3(-x_0 - 1), valueOf_3(-x_0 - 1)); + } + if (x_0 == -y_0) { + return new Pair(valueOf_3(-x_0), valueOf_3(y_0 + 1)); + } + } + if ($wnd.Math.abs(x_0) > $wnd.Math.abs(y_0)) { + if (x_0 < 0) { + return new Pair(valueOf_3(-x_0), valueOf_3(y_0)); + } + return new Pair(valueOf_3(-x_0), valueOf_3(y_0 + 1)); + } + return new Pair(valueOf_3(x_0 + 1), valueOf_3(y_0)); +} + +function SuccessorLineByLine(){ +} + +defineClass(648, 1, {}, SuccessorLineByLine); +_.apply_3 = function apply_43(coords, poly){ + var lastArg; + return $apply_5((lastArg = castTo(coords, 42) , castTo(poly, 176) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorLineByLine_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorLineByLine', 648); +function $apply_6(coords){ + var newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 17).value_0; + y_0 = castTo(coords.second, 17).value_0; + newX = x_0; + newY = y_0; + if (x_0 == 0 && y_0 == 0) { + newY -= 1; + } + else { + if (x_0 == -1 && y_0 <= 0) { + newX = 0; + newY -= 2; + } + else { + if (x_0 <= 0 && y_0 > 0) { + newX -= 1; + newY -= 1; + } + else { + if (x_0 >= 0 && y_0 < 0) { + newX += 1; + newY += 1; + } + else { + if (x_0 > 0 && y_0 >= 0) { + newX -= 1; + newY += 1; + } + else { + newX += 1; + newY -= 1; + } + } + } + } + } + return new Pair(valueOf_3(newX), valueOf_3(newY)); +} + +function SuccessorManhattan(){ +} + +defineClass(573, 1, {}, SuccessorManhattan); +_.apply_3 = function apply_44(coords, poly){ + var lastArg; + return $apply_6((lastArg = castTo(coords, 42) , castTo(poly, 176) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorManhattan_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorManhattan', 573); +function $apply_7(coords){ + var cost, x_0, y_0; + x_0 = castTo(coords.first, 17).value_0; + y_0 = castTo(coords.second, 17).value_0; + cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); + if (x_0 < cost && y_0 == -cost) { + return new Pair(valueOf_3(x_0 + 1), valueOf_3(y_0)); + } + if (x_0 == cost && y_0 < cost) { + return new Pair(valueOf_3(x_0), valueOf_3(y_0 + 1)); + } + if (x_0 >= -cost && y_0 == cost) { + return new Pair(valueOf_3(x_0 - 1), valueOf_3(y_0)); + } + return new Pair(valueOf_3(x_0), valueOf_3(y_0 - 1)); +} + +function SuccessorMaxNormWindingInMathPosSense(){ +} + +defineClass(1344, 1, {}, SuccessorMaxNormWindingInMathPosSense); +_.apply_3 = function apply_45(coords, poly){ + var lastArg; + return $apply_7((lastArg = castTo(coords, 42) , castTo(poly, 176) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorMaxNormWindingInMathPosSense_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorMaxNormWindingInMathPosSense', 1344); +function $apply_8(this$static, coords, poly){ + return $apply_9(this$static, castTo(coords, 42), castTo(poly, 176)); +} + +function $apply_9(this$static, coords, poly){ + var containsNeg, containsPos, detectDirections, dirSet, invalid, newX, newY, nextCoords; + if (!equals_Ljava_lang_Object__Z__devirtual$(poly, this$static.lastPoly)) { + this$static.lastPoly = poly; + detectDirections = new SuccessorQuadrantsGeneric$lambda$0$Type; + dirSet = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(poly.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + this$static.posX = true; + this$static.posY = true; + this$static.negX = true; + this$static.negY = true; + containsPos = dirSet.contains(($clinit_Direction() , NORTH)); + containsNeg = dirSet.contains(SOUTH); + containsPos && !containsNeg && (this$static.posY = false); + !containsPos && containsNeg && (this$static.negY = false); + containsPos = dirSet.contains(EAST); + containsNeg = dirSet.contains(WEST); + containsPos && !containsNeg && (this$static.negX = false); + !containsPos && containsNeg && (this$static.posX = false); + } + nextCoords = castTo(this$static.costFun.apply_3(coords, poly), 42); + newX = castTo(nextCoords.first, 17).value_0; + newY = castTo(nextCoords.second, 17).value_0; + invalid = false; + newX < 0?this$static.negX || (invalid = true):this$static.posX || (invalid = true); + newY < 0?this$static.negY || (invalid = true):this$static.posY || (invalid = true); + return invalid?$apply_9(this$static, nextCoords, poly):nextCoords; +} + +function SuccessorQuadrantsGeneric(costFun){ + this.costFun = costFun; +} + +defineClass(409, 1, {}, SuccessorQuadrantsGeneric); +_.apply_3 = function apply_46(coords, poly){ + return $apply_8(this, coords, poly); +} +; +_.negX = false; +_.negY = false; +_.posX = false; +_.posY = false; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric', 409); +function SuccessorQuadrantsGeneric$lambda$0$Type(){ +} + +defineClass(1345, 1, {}, SuccessorQuadrantsGeneric$lambda$0$Type); +_.apply_0 = function apply_47(arg0){ + return castTo(arg0, 334).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric/lambda$0$Type', 1345); +function $clinit_Direction(){ + $clinit_Direction = emptyMethod; + NORTH = new Direction('NORTH', 0); + EAST = new Direction('EAST', 1); + SOUTH = new Direction('SOUTH', 2); + WEST = new Direction('WEST', 3); + NORTH.horizontal = false; + EAST.horizontal = true; + SOUTH.horizontal = false; + WEST.horizontal = true; +} + +function Direction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_20(name_0){ + $clinit_Direction(); + return valueOf(($clinit_Direction$Map() , $MAP_10), name_0); +} + +function values_28(){ + $clinit_Direction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_37, 332, 0, [NORTH, EAST, SOUTH, WEST]); +} + +defineClass(332, 22, {3:1, 34:1, 22:1, 332:1}, Direction); +_.horizontal = false; +var EAST, NORTH, SOUTH, WEST; +var Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit = createForEnum('org.eclipse.elk.alg.common.polyomino.structures', 'Direction', 332, Ljava_lang_Enum_2_classLit, values_28, valueOf_20); +function $clinit_Direction$Map(){ + $clinit_Direction$Map = emptyMethod; + $MAP_10 = createValueOfMap(($clinit_Direction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_37, 332, 0, [NORTH, EAST, SOUTH, WEST]))); +} + +var $MAP_10; +function $incModTen(num){ + if (num > 8) { + return 0; + } + return num + 1; +} + +function $isBlocked(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 1); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 333)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $isEmpty_0(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 333)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $isWeaklyBlocked(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 2); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 333)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $retrieve(this$static, x_0, y_0){ + var value_0, xRest, xWord; + xWord = x_0 >> 5; + xRest = x_0 & 31; + value_0 = and_0(shru_0(this$static.grid[y_0][xWord], toInt_0(shl_0(xRest, 1))), 3); + return value_0; +} + +function $set_4(this$static, x_0, y_0, msb, lsb){ + var mask, xRest, xWord; + try { + if (x_0 >= this$static.xSize) { + throw toJs(new ArrayIndexOutOfBoundsException); + } + xWord = x_0 >> 5; + xRest = x_0 & 31; + mask = shl_0(1, toInt_0(shl_0(xRest, 1))); + lsb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); + mask = shl_0(mask, 1); + msb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 333)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +defineClass(1317, 1, {}); +_.toString_0 = function toString_78(){ + var count, item_0, output, x_0, x0, y_0; + output = ' '; + count = valueOf_3(0); + for (x0 = 0; x0 < this.xSize; x0++) { + output += '' + count.value_0; + count = valueOf_3($incModTen(count.value_0)); + } + output += '\n'; + count = valueOf_3(0); + for (y_0 = 0; y_0 < this.ySize; y_0++) { + output += '' + count.value_0; + count = valueOf_3($incModTen(count.value_0)); + for (x_0 = 0; x_0 < this.xSize; x_0++) { + item_0 = $retrieve(this, x_0, y_0); + compare_2(item_0, 0) == 0?(output += '_'):compare_2(item_0, 1) == 0?(output += 'X'):(output += '0'); + } + output += '\n'; + } + return $substring_1(output, 0, output.length - 1); +} +; +_.xSize = 0; +_.ySize = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_TwoBitGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'TwoBitGrid', 1317); +function $addFilledCellsFrom(this$static, other, xOffset, yOffset){ + var x_0, xTranslated, y_0, yTranslated; + for (x_0 = 0; x_0 < other.xSize; x_0++) { + xTranslated = x_0 - other.xCenter + xOffset; + for (y_0 = 0; y_0 < other.ySize; y_0++) { + yTranslated = y_0 - other.yCenter + yOffset; + $isBlocked(other, x_0, y_0)?$isWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated) || $setBlockedCenterBased(this$static, xTranslated, yTranslated):$isWeaklyBlocked(other, x_0, y_0) && ($isBlockedCenterBased(this$static, xTranslated, yTranslated) || $setWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated)); + } + } +} + +function $addFilledCellsFrom_0(this$static, other, xOffset, yOffset){ + var ext, ext$iterator; + $addFilledCellsFrom(this$static, other, xOffset, yOffset); + $setX(other, this$static.xCenter - other.xCenter + xOffset); + $setY(other, this$static.yCenter - other.yCenter + yOffset); + for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_6(ext$iterator), 334); + switch (ext.first.ordinal) { + case 0: + $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, 0, other.x_0 + ext.third.value_0, other.y_0 - 1); + break; + case 1: + $weaklyBlockArea(this$static, other.x_0 + other.xSize, other.y_0 + ext.second.value_0, this$static.xSize - 1, other.y_0 + ext.third.value_0); + break; + case 2: + $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, other.y_0 + other.ySize, other.x_0 + ext.third.value_0, this$static.ySize - 1); + break; + default:$weaklyBlockArea(this$static, 0, other.y_0 + ext.second.value_0, other.x_0 - 1, other.y_0 + ext.third.value_0); + } + } +} + +function $getFilledBounds(this$static){ + var gridHeight, gridWidth, height, maxX, maxY, minX, minY, width_0, xi, yi; + gridWidth = this$static.xSize; + gridHeight = this$static.ySize; + minX = $intern_0; + maxX = $intern_43; + minY = $intern_0; + maxY = $intern_43; + for (xi = 0; xi < gridWidth; ++xi) { + for (yi = 0; yi < gridHeight; ++yi) { + if ($isBlocked(this$static, xi, yi)) { + minX = $wnd.Math.min(minX, xi); + maxX = $wnd.Math.max(maxX, xi); + minY = $wnd.Math.min(minY, yi); + maxY = $wnd.Math.max(maxY, yi); + } + } + } + width_0 = maxX - minX + 1; + height = maxY - minY + 1; + return new Quadruple(valueOf_3(minX), valueOf_3(minY), valueOf_3(width_0), valueOf_3(height)); +} + +function $intersectsWithCenterBased(this$static, other, xOffset, yOffset){ + var x_0, xTranslated, y_0, yTranslated, xt, yt; + for (x_0 = 0; x_0 < other.xSize; x_0++) { + xTranslated = x_0 - other.xCenter + xOffset; + for (y_0 = 0; y_0 < other.ySize; y_0++) { + yTranslated = y_0 - other.yCenter + yOffset; + if ((xt = xTranslated , yt = yTranslated , xt += this$static.xCenter , yt += this$static.yCenter , xt >= 0 && yt >= 0 && xt < this$static.xSize && yt < this$static.ySize) && (!$isEmpty_0(other, x_0, y_0) && $isBlockedCenterBased(this$static, xTranslated, yTranslated) || $isBlocked(other, x_0, y_0) && !$isEmptyCenterBased(this$static, xTranslated, yTranslated))) { + return true; + } + } + } + return false; +} + +function $intersectsWithCenterBased_0(this$static, other, xOffset, yOffset){ + var bottomY, ext, ext$iterator, intersects, leftX, rightX, topY; + if ($intersectsWithCenterBased(this$static, other, xOffset, yOffset)) { + return true; + } + else { + for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_6(ext$iterator), 334); + intersects = false; + leftX = this$static.xCenter - other.xCenter + xOffset; + rightX = leftX + other.xSize; + topY = this$static.yCenter - other.yCenter + yOffset; + bottomY = topY + other.ySize; + switch (ext.first.ordinal) { + case 0: + intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, 0, leftX + ext.third.value_0, topY - 1); + break; + case 1: + intersects = $weaklyIntersectsArea(this$static, rightX, topY + ext.second.value_0, this$static.xSize - 1, topY + ext.third.value_0); + break; + case 2: + intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, bottomY, leftX + ext.third.value_0, this$static.ySize - 1); + break; + default:intersects = $weaklyIntersectsArea(this$static, 0, topY + ext.second.value_0, leftX - 1, topY + ext.third.value_0); + } + if (intersects) { + return true; + } + } + } + return false; +} + +function $isBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $isEmptyCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isEmpty_0(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $isWeaklyBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isWeaklyBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $reinitialize(this$static, width_0, height){ + this$static.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_63], [376, 28], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); + this$static.xSize = width_0; + this$static.ySize = height; + this$static.xCenter = width_0 - 1 >> 1; + this$static.yCenter = height - 1 >> 1; +} + +function $setBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + $set_4(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, false, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $setWeaklyBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + $set_4(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, true, false); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $weaklyBlockArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ + var xi, yi; + for (yi = yUpperleft; yi <= yBottomRight; yi++) { + for (xi = xUpperLeft; xi <= xBottomRight; xi++) { + $isBlocked(this$static, xi, yi) || $set_4(this$static, xi, yi, true, false); + } + } +} + +function $weaklyIntersectsArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ + var xi, yi; + for (yi = yUpperleft; yi <= yBottomRight; yi++) { + for (xi = xUpperLeft; xi <= xBottomRight; xi++) { + if ($isBlocked(this$static, xi, yi)) { + return true; + } + } + } + return false; +} + +function PlanarGrid(width_0, height){ + this.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_63], [376, 28], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); + this.xSize = width_0; + this.ySize = height; + this.xCenter = width_0 - 1 >> 1; + this.yCenter = height - 1 >> 1; +} + +defineClass(330, 1317, {330:1}, PlanarGrid); +_.xCenter = 0; +_.yCenter = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_PlanarGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'PlanarGrid', 330); +function $setX(this$static, val){ + this$static.x_0 = val; +} + +function $setY(this$static, val){ + this$static.y_0 = val; +} + +function Polyomino(extensions){ + PlanarGrid.call(this, 0, 0); + this.polyominoExtensions = extensions; +} + +defineClass(176, 330, {330:1, 176:1}); +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyomino_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyomino', 176); +var Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IPropertyHolder'); +function $copyProperties(this$static, other){ + var otherMap; + if (!other) { + return this$static; + } + otherMap = other.getAllProperties(); + otherMap.isEmpty() || (!this$static.propertyMap?(this$static.propertyMap = new HashMap_1(otherMap)):$putAll(this$static.propertyMap, otherMap)); + return this$static; +} + +function $getAllProperties(this$static){ + return !this$static.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this$static.propertyMap; +} + +function $getProperty(this$static, property){ + var defaultValue, value_0; + value_0 = (!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $get_10(this$static.propertyMap, property)); + if (value_0 != null) { + return value_0; + } + defaultValue = property.getDefault(); + instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, defaultValue)) , this$static); + return defaultValue; +} + +function $hasProperty(this$static, property){ + return !!this$static.propertyMap && $containsKey_3(this$static.propertyMap, property); +} + +function $setProperty(this$static, property, value_0){ + return value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)) , this$static; +} + +function $setProperty_0(this$static, property, value_0){ + value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)); + return this$static; +} + +function MapPropertyHolder(){ +} + +defineClass(137, 1, $intern_95, MapPropertyHolder); +_.setProperty = function setProperty(property, value_0){ + return $setProperty(this, property, value_0); +} +; +_.getAllProperties = function getAllProperties(){ + return $getAllProperties(this); +} +; +_.getProperty = function getProperty(property){ + return $getProperty(this, property); +} +; +_.hasProperty = function hasProperty(property){ + return $hasProperty(this, property); +} +; +var Lorg_eclipse_elk_graph_properties_MapPropertyHolder_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'MapPropertyHolder', 137); +function Polyominoes(polys, aspectRatio, fill){ + var gridHeight, gridWidth, poly, poly$iterator; + this.polys = new ArrayList; + gridWidth = 0; + gridHeight = 0; + for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_6(poly$iterator), 176); + fill && fillPolyomino(poly); + $add_3(this.polys, poly); + gridWidth += poly.xSize; + gridHeight += poly.ySize; + } + if (this.polys.array.length > 0) { + poly = castTo($get_11(this.polys, 0), 176); + gridWidth += poly.xSize; + gridHeight += poly.ySize; + } + gridWidth *= 2; + gridHeight *= 2; + aspectRatio > 1?(gridWidth = round_int($wnd.Math.ceil(gridWidth * aspectRatio))):(gridHeight = round_int($wnd.Math.ceil(gridHeight / aspectRatio))); + this.grid = new PlanarGrid(gridWidth, gridHeight); +} + +defineClass(1318, 137, $intern_95, Polyominoes); +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyominoes_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyominoes', 1318); +function compact_0(tree, orthogonal){ + svg_0 = new SVGImage; + orthogonalCompaction = orthogonal; + root_0 = tree; + castTo(root_0.node, 68); + drawTree(root_0, svg_0, null); + compactTree(root_0); +} + +function compactTree(tree){ + var child, child$iterator, compactionVector, minUnderlap, rc, rt; + $forEach_1(tree.children, new DepthFirstCompaction$0methodref$compactTree$Type); + for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 225); + compactionVector = $sub_0($clone_1(castTo(tree.node, 68).vertex), castTo(child.node, 68).vertex); + if (orthogonalCompaction) { + rt = castTo(tree.node, 68).rect; + rc = castTo(child.node, 68).rect; + if ($wnd.Math.abs(compactionVector.x_0) >= $wnd.Math.abs(compactionVector.y_0)) { + compactionVector.y_0 = 0; + rc.y_0 + rc.height > rt.y_0 && rc.y_0 < rt.y_0 + rt.height && $scaleToLength(compactionVector, $wnd.Math.max(rt.x_0 - (rc.x_0 + rc.width_0), rc.x_0 - (rt.x_0 + rt.width_0))); + } + else { + compactionVector.x_0 = 0; + rc.x_0 + rc.width_0 > rt.x_0 && rc.x_0 < rt.x_0 + rt.width_0 && $scaleToLength(compactionVector, $wnd.Math.max(rt.y_0 - (rc.y_0 + rc.height), rc.y_0 - (rt.y_0 + rt.height))); + } + } + else { + $scaleToLength(compactionVector, $underlap(castTo(tree.node, 68), castTo(child.node, 68))); + } + minUnderlap = $wnd.Math.sqrt(compactionVector.x_0 * compactionVector.x_0 + compactionVector.y_0 * compactionVector.y_0); + minUnderlap = getMinUnderlap(root_0, child, minUnderlap, compactionVector); + $scaleToLength(compactionVector, minUnderlap); + $translate(castTo(child.node, 68), compactionVector); + $forEach_1(child.children, new DepthFirstCompaction$lambda$1$Type(compactionVector)); + castTo(root_0.node, 68); + drawTree(root_0, svg_0, child); + } +} + +function drawTree(t, svgImage, mark){ + castTo(t.node, 68); + castTo(t.node, 68); + castTo(t.node, 68); + $forEach_1(t.children, new DepthFirstCompaction$lambda$2$Type(mark, svgImage, t)); +} + +function getMinUnderlap(tree, child, currentMinUnderlap, compactionVector){ + var c, c$iterator, minUnderlap; + minUnderlap = $wnd.Math.min(currentMinUnderlap, minUnderlapWithSubtree(castTo(tree.node, 68), child, currentMinUnderlap, compactionVector)); + for (c$iterator = new ArrayList$1(tree.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_6(c$iterator), 225); + c != child && (minUnderlap = $wnd.Math.min(minUnderlap, getMinUnderlap(c, child, minUnderlap, compactionVector))); + } + return minUnderlap; +} + +function lambda$1_3(compactionVector_0, c_1){ + $translate(castTo(c_1.node, 68), compactionVector_0); + $forEach_1(c_1.children, new DepthFirstCompaction$lambda$1$Type(compactionVector_0)); +} + +function lambda$2_0(mark_0, svgImage_1, t_2, c_3){ + c_3 == mark_0?(castTo(t_2.node, 68) , castTo(t_2.node, 68) , castTo(c_3.node, 68) , castTo(c_3.node, 68).vertex.y_0):(castTo(t_2.node, 68) , castTo(t_2.node, 68) , castTo(c_3.node, 68) , castTo(c_3.node, 68).vertex.y_0); + drawTree(c_3, svgImage_1, mark_0); +} + +function minUnderlapWithSubtree(r, tree, currentMinUnderlap, compactionVector){ + var c, child, child$iterator, minUnderlap; + minUnderlap = currentMinUnderlap; + for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 225); + c = castTo(child.node, 68); + if (fuzzyCompare(r.rect.x_0, c.rect.x_0 + c.rect.width_0) <= 0 && fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) <= 0 && fuzzyCompare(r.rect.y_0, c.rect.y_0 + c.rect.height) <= 0 && fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) <= 0) { + if (fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) == 0 && compactionVector.x_0 < 0 || fuzzyCompare(c.rect.x_0 + c.rect.width_0, r.rect.x_0) == 0 && compactionVector.x_0 > 0 || fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) == 0 && compactionVector.y_0 < 0 || fuzzyCompare(c.rect.y_0 + c.rect.height, r.rect.y_0) == 0 && compactionVector.y_0 > 0) { + minUnderlap = 0; + break; + } + } + else { + minUnderlap = $wnd.Math.min(minUnderlap, $distance(r, c, compactionVector)); + } + minUnderlap = $wnd.Math.min(minUnderlap, minUnderlapWithSubtree(r, child, minUnderlap, compactionVector)); + } + return minUnderlap; +} + +var orthogonalCompaction = false, root_0, svg_0; +function DepthFirstCompaction$0methodref$compactTree$Type(){ +} + +defineClass(1828, 1, $intern_19, DepthFirstCompaction$0methodref$compactTree$Type); +_.accept = function accept_53(arg0){ + compactTree(castTo(arg0, 225)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$0methodref$compactTree$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/0methodref$compactTree$Type', 1828); +function DepthFirstCompaction$lambda$1$Type(compactionVector_0){ + this.compactionVector_0 = compactionVector_0; +} + +defineClass(825, 1, $intern_19, DepthFirstCompaction$lambda$1$Type); +_.accept = function accept_54(arg0){ + lambda$1_3(this.compactionVector_0, castTo(arg0, 225)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$1$Type', 825); +function DepthFirstCompaction$lambda$2$Type(mark_0, svgImage_1, t_2){ + this.mark_0 = mark_0; + this.svgImage_1 = svgImage_1; + this.t_2 = t_2; +} + +defineClass(1829, 1, $intern_19, DepthFirstCompaction$lambda$2$Type); +_.accept = function accept_55(arg0){ + lambda$2_0(this.mark_0, this.svgImage_1, this.t_2, castTo(arg0, 225)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$2$Type', 1829); +function $clinit_InternalProperties(){ + $clinit_InternalProperties = emptyMethod; + DEBUG_SVG = new Property_0('debugSVG', ($clinit_Boolean() , false)); + OVERLAPS_EXISTED = new Property_0('overlapsExisted', true); +} + +var DEBUG_SVG, OVERLAPS_EXISTED; +function $distance(this$static, other, v){ + var distance, e1, e1$iterator, e2, e2$iterator, result; + result = $intern_60; + for (e1$iterator = new ArrayList$1(getRectEdges(this$static.rect)); e1$iterator.i < e1$iterator.this$01.array.length;) { + e1 = castTo($next_6(e1$iterator), 177); + for (e2$iterator = new ArrayList$1(getRectEdges(other.rect)); e2$iterator.i < e2$iterator.this$01.array.length;) { + e2 = castTo($next_6(e2$iterator), 177); + distance = distance_0(e1.u, e1.v, e2.u, e2.v, v); + result = $wnd.Math.min(result, distance); + } + } + return result; +} + +function $setCenterPosition(this$static, p){ + $translate(this$static, $sub_0(new KVector_1(p.x_0, p.y_0), this$static.vertex)); +} + +function $translate(this$static, v){ + $add_19(this$static.vertex, v); + this$static.rect.x_0 += v.x_0; + this$static.rect.y_0 += v.y_0; +} + +function $underlap(this$static, other){ + var hScale, horizontalCenterDistance, horizontalUnderlap, scale, vScale, verticalCenterDistance, verticalUnderlap; + horizontalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).x_0 - $getCenter(other.rect).x_0); + verticalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).y_0 - $getCenter(other.rect).y_0); + horizontalUnderlap = 0; + verticalUnderlap = 0; + hScale = 1; + vScale = 1; + if (horizontalCenterDistance > this$static.rect.width_0 / 2 + other.rect.width_0 / 2) { + horizontalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.x_0 - (other.rect.x_0 + other.rect.width_0)), $wnd.Math.abs(this$static.rect.x_0 + this$static.rect.width_0 - other.rect.x_0)); + hScale = 1 - horizontalUnderlap / horizontalCenterDistance; + } + if (verticalCenterDistance > this$static.rect.height / 2 + other.rect.height / 2) { + verticalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.y_0 - (other.rect.y_0 + other.rect.height)), $wnd.Math.abs(this$static.rect.y_0 + this$static.rect.height - other.rect.y_0)); + vScale = 1 - verticalUnderlap / verticalCenterDistance; + } + scale = $wnd.Math.min(hScale, vScale); + return (1 - scale) * $wnd.Math.sqrt(horizontalCenterDistance * horizontalCenterDistance + verticalCenterDistance * verticalCenterDistance); +} + +function Node_0(v, r){ + this.originalVertex = v; + this.vertex = $clone_1(this.originalVertex); + this.rect = new ElkRectangle_1(r); +} + +defineClass(68, 1, {68:1}, Node_0); +var Lorg_eclipse_elk_alg_common_spore_Node_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'Node', 68); +function $overlap_0(n1, n2){ + if (!n1 || !n2 || n1 == n2) { + return false; + } + return fuzzyCompare(n1.rect.x_0, n2.rect.x_0 + n2.rect.width_0) < 0 && fuzzyCompare(n2.rect.x_0, n1.rect.x_0 + n1.rect.width_0) < 0; +} + +function $sweep_0(this$static, nodes){ + var n, n$iterator, overlapsScanlineHandler, points; + points = new ArrayList; + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 68); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, true)); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, false)); + } + overlapsScanlineHandler = new ScanlineOverlapCheck$OverlapsScanlineHandler(this$static); + overlapsScanlineHandler.intervalsSortLeft.map_0.clear_0(); + execute(points, this$static.overlapsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 693, 0, [overlapsScanlineHandler]))); +} + +function ScanlineOverlapCheck(oh){ + this.overlapsScanlineComparator = new ScanlineOverlapCheck$lambda$0$Type; + this.overlapHandler = oh; +} + +function lambda$0_12(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.rect.y_0; + p1_0.low || (y1 += p1_0.node.rect.height); + y2 = p2_1.node.rect.y_0; + p2_1.low || (y2 += p2_1.node.rect.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(1214, 1, {}, ScanlineOverlapCheck); +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck', 1214); +function $handle_0(this$static, p){ + p.low?$insert_3(this$static, p):$remove_28(this$static.intervalsSortLeft, p.node); +} + +function $insert_3(this$static, p){ + var other, other$iterator, overlapsFound, success; + success = $add_10(this$static.intervalsSortLeft, p.node); + if (!success) { + throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline overlap calculation.')); + } + overlapsFound = false; + for (other$iterator = this$static.intervalsSortLeft.map_0.keySet_0().iterator_0(); other$iterator.hasNext_0();) { + other = castTo(other$iterator.next_1(), 68); + if ($overlap_0(p.node, other)) { + $handle_4(this$static.this$01.overlapHandler, p.node, other); + overlapsFound = true; + } + else { + if (overlapsFound) { + break; + } + } + } +} + +function ScanlineOverlapCheck$OverlapsScanlineHandler(this$0){ + this.this$01 = this$0; + this.intervalsSortLeft = new TreeSet_0(castTo(checkNotNull(new ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type), 50)); +} + +function lambda$0_13(n1_0, n2_1){ + var cmp; + cmp = compare_4(n1_0.rect.x_0, n2_1.rect.x_0); + if (cmp != 0) { + return cmp; + } + cmp = compare_4(n1_0.originalVertex.x_0, n2_1.originalVertex.x_0); + if (cmp != 0) { + return cmp; + } + return compare_4(n1_0.originalVertex.y_0, n2_1.originalVertex.y_0); +} + +defineClass(1215, 1, {693:1}, ScanlineOverlapCheck$OverlapsScanlineHandler); +_.handle = function handle_0(p){ + $handle_0(this, castTo(p, 451)); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler', 1215); +function ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1216, 1, $intern_88, ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_26(arg0, arg1){ + return lambda$0_13(castTo(arg0, 68), castTo(arg1, 68)); +} +; +_.equals_0 = function equals_78(other){ + return this === other; +} +; +_.reversed = function reversed_18(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type', 1216); +function ScanlineOverlapCheck$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(451, 1, {451:1}, ScanlineOverlapCheck$Timestamp); +_.low = false; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/Timestamp', 451); +function ScanlineOverlapCheck$lambda$0$Type(){ +} + +defineClass(1217, 1, $intern_88, ScanlineOverlapCheck$lambda$0$Type); +_.compare_1 = function compare_27(arg0, arg1){ + return lambda$0_12(castTo(arg0, 451), castTo(arg1, 451)); +} +; +_.equals_0 = function equals_79(other){ + return this === other; +} +; +_.reversed = function reversed_19(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/lambda$0$Type', 1217); +function SVGImage(){ +} + +defineClass(557, 1, {}, SVGImage); +var Lorg_eclipse_elk_alg_common_utils_SVGImage_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'SVGImage', 557); +function UniqueTriple(f, s, t){ + this.first = f; + this.second = s; + this.third = t; +} + +defineClass(334, 1, {334:1}, UniqueTriple); +_.toString_0 = function toString_79(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; +} +; +var Lorg_eclipse_elk_alg_common_utils_UniqueTriple_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'UniqueTriple', 334); +function getRectEdges(r){ + var rectEdegs; + rectEdegs = new ArrayList; + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0 + r.width_0, r.y_0))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0, r.y_0 + r.height))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0 + r.width_0, r.y_0))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0, r.y_0 + r.height))); + return rectEdegs; +} + +function overlap_0(r1, r2){ + var horizontalCenterDistance, horizontalOverlap, verticalCenterDistance, verticalOverlap; + horizontalOverlap = $wnd.Math.min($wnd.Math.abs(r1.x_0 - (r2.x_0 + r2.width_0)), $wnd.Math.abs(r1.x_0 + r1.width_0 - r2.x_0)); + verticalOverlap = $wnd.Math.min($wnd.Math.abs(r1.y_0 - (r2.y_0 + r2.height)), $wnd.Math.abs(r1.y_0 + r1.height - r2.y_0)); + horizontalCenterDistance = $wnd.Math.abs(r1.x_0 + r1.width_0 / 2 - (r2.x_0 + r2.width_0 / 2)); + if (horizontalCenterDistance > r1.width_0 / 2 + r2.width_0 / 2) { + return 1; + } + verticalCenterDistance = $wnd.Math.abs(r1.y_0 + r1.height / 2 - (r2.y_0 + r2.height / 2)); + if (verticalCenterDistance > r1.height / 2 + r2.height / 2) { + return 1; + } + if (horizontalCenterDistance == 0 && verticalCenterDistance == 0) { + return 0; + } + if (horizontalCenterDistance == 0) { + return verticalOverlap / verticalCenterDistance + 1; + } + if (verticalCenterDistance == 0) { + return horizontalOverlap / horizontalCenterDistance + 1; + } + return $wnd.Math.min(horizontalOverlap / horizontalCenterDistance, verticalOverlap / verticalCenterDistance) + 1; +} + +defineClass(205, 1, $intern_96); +var Lorg_eclipse_elk_core_AbstractLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core', 'AbstractLayoutProvider', 205); +function DisCoLayoutProvider(){ +} + +defineClass(1114, 205, $intern_96, DisCoLayoutProvider); +_.layout = function layout(layoutGraph, progressMonitor){ + var lad, layoutProvider, requestedAlgorithm, transformer; + progressMonitor.begin('Connected Components Compaction', 1); + this.componentSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_DisCoOptions() , SPACING_COMPONENT_COMPONENT)))); + if ($hasProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 205); + layoutProvider.layout(layoutGraph, progressMonitor.subTask(1)); + } + } + transformer = new ElkGraphTransformer(this.componentSpacing); + this.result = $importGraph(transformer, layoutGraph); + switch (castTo($getProperty_0(layoutGraph, ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY)), 489).ordinal) { + case 0: + $compact_0(new DisCoPolyominoCompactor, this.result); + $setProperty_1(layoutGraph, DEBUG_DISCO_POLYS_0, $getProperty(this.result, DEBUG_DISCO_POLYS_0)); + break; + default:$clinit_System(); + String.fromCharCode(10); + } + $applyLayout(transformer); + $setProperty_1(layoutGraph, DEBUG_DISCO_GRAPH_0, this.result); + progressMonitor.done_1(); +} +; +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_DisCoLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoLayoutProvider', 1114); +function $applyToDCGraph(this$static){ + var absoluteIntPositionX, absoluteIntPositionY, absolutePositionOnCanvas, gridCrop, originalCoordinates, padding, paddingHori, paddingVert, parentHeight, parentWidth, poly, poly$iterator; + gridCrop = $getFilledBounds(this$static.grid); + padding = castTo($getProperty(this$static.cmpGraph, ($clinit_DisCoOptions() , PADDING)), 107); + paddingHori = padding.left + padding.right; + paddingVert = padding.top_0 + padding.bottom; + parentWidth = gridCrop.third.value_0 * this$static.gridCellSizeX + paddingHori; + parentHeight = gridCrop.fourth.value_0 * this$static.gridCellSizeY + paddingVert; + $setDimensions(this$static.cmpGraph, new KVector_1(parentWidth, parentHeight)); + for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_6(poly$iterator), 568); + absoluteIntPositionX = poly.x_0 - gridCrop.first.value_0; + absoluteIntPositionY = poly.y_0 - gridCrop.second.value_0; + absolutePositionOnCanvas = $add_19($scale_0(new KVector_1(absoluteIntPositionX, absoluteIntPositionY), poly.cellSizeX, poly.cellSizeY), $scale($sub($clone_1($getDimensionsOfBoundingRectangle(poly.representee)), poly.pWidth * poly.cellSizeX, poly.pHeight * poly.cellSizeY), -0.5)); + originalCoordinates = $getMinCorner(poly.representee); + $setOffset(poly.representee, $sub_0(absolutePositionOnCanvas, originalCoordinates)); + } +} + +function $compact_0(this$static, graph){ + var gridCellRecommendation; + this$static.cmpGraph = graph; + this$static.polys = new ArrayList; + gridCellRecommendation = $computeCellSize(this$static.cmpGraph); + this$static.gridCellSizeX = gridCellRecommendation; + this$static.gridCellSizeY = gridCellRecommendation; + this$static.fill = $booleanValue(castToBoolean($getProperty(this$static.cmpGraph, ($clinit_PolyominoOptions() , POLYOMINO_FILL)))); + this$static.aspectRatio = castToDouble($getProperty(this$static.cmpGraph, ($clinit_CoreOptions() , ASPECT_RATIO_5))); + this$static.aspectRatio == null && (this$static.aspectRatio = 1); + $doubleValue(this$static.aspectRatio) > 1?(this$static.gridCellSizeX *= $doubleValue(this$static.aspectRatio)):(this$static.gridCellSizeY /= $doubleValue(this$static.aspectRatio)); + $createPolyominoes(this$static); + $packPolyominoes_0(this$static); + $applyToDCGraph(this$static); + $setProperty_0(this$static.cmpGraph, ($clinit_DisCoOptions() , DEBUG_DISCO_POLYS_0), this$static.polys); +} + +function $computeCellSize(graph){ + var bounds, comp, comp$iterator, comps, denominator, height, numOfComps, numerator, prodTerm, sumTerm, width_0; + sumTerm = 0; + prodTerm = 0; + comps = graph.components; + numOfComps = comps.map_0.size_1(); + for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 567); + bounds = (comp.changed && $update(comp) , comp.bounds); + width_0 = bounds.x_0; + height = bounds.y_0; + sumTerm += width_0 + height; + prodTerm += width_0 * height; + } + numerator = $wnd.Math.sqrt(400 * numOfComps * prodTerm - 4 * prodTerm + sumTerm * sumTerm) + sumTerm; + denominator = 2 * (100 * numOfComps - 1); + if (denominator == 0) { + return numerator; + } + return numerator / denominator; +} + +function $createPolyominoes(this$static){ + var comp, comp$iterator, comps, poly; + comps = this$static.cmpGraph.components; + for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 567); + poly = new DCPolyomino(comp, this$static.gridCellSizeX, this$static.gridCellSizeY); + $add_3(this$static.polys, poly); + } +} + +function $packPolyominoes_0(this$static){ + var id_0, poly$iterator, polyHolder; + id_0 = 0; + for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + castTo($next_6(poly$iterator), 568); + ++id_0; + } + polyHolder = new Polyominoes(this$static.polys, $doubleValue(this$static.aspectRatio), this$static.fill); + $packPolyominoes(polyHolder); + this$static.polys = polyHolder.polys; + this$static.grid = polyHolder.grid; +} + +function DisCoPolyominoCompactor(){ +} + +defineClass(1208, 1, {}, DisCoPolyominoCompactor); +_.fill = false; +_.gridCellSizeX = 0; +_.gridCellSizeY = 0; +var Lorg_eclipse_elk_alg_disco_DisCoPolyominoCompactor_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoPolyominoCompactor', 1208); +function $addElements(this$static, elements){ + var elem, elem$iterator; + for (elem$iterator = elements.iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 272); + this$static.changed = true; + $add_6(this$static.shapes, elem); + elem.cp = this$static; + } +} + +function $getDimensionsOfBoundingRectangle(this$static){ + this$static.changed && $update(this$static); + return this$static.bounds; +} + +function $getMinCorner(this$static){ + this$static.changed && $update(this$static); + return this$static.minCornerOfBoundingRectangle; +} + +function $intersects(this$static, rect){ + var elem, elem$iterator; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 272); + if (intersects_1(rect, elem.shape_0) || contains_51(rect, elem.shape_0)) { + return true; + } + } + return false; +} + +function $setOffset(this$static, offset){ + this$static.changed = true; + this$static.offset = offset; +} + +function $update(this$static){ + var dir_0, elem, elem$iterator, elemBounds, ext, ext$iterator, maxPos, maxX, maxY, minPos, minX, minY; + this$static.changed = false; + minX = $intern_60; + maxX = $intern_61; + minY = $intern_60; + maxY = $intern_61; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 272); + elemBounds = elem.bounds; + minX = $wnd.Math.min(minX, elemBounds.x_0); + maxX = $wnd.Math.max(maxX, elemBounds.x_0 + elemBounds.width_0); + minY = $wnd.Math.min(minY, elemBounds.y_0); + maxY = $wnd.Math.max(maxY, elemBounds.y_0 + elemBounds.height); + for (ext$iterator = new ArrayList$1(elem.extensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_6(ext$iterator), 407); + dir_0 = ext.direction; + if (dir_0.horizontal) { + minPos = elemBounds.y_0 + ext.offset.y_0; + maxPos = minPos + ext.width_0; + minY = $wnd.Math.min(minY, minPos); + maxY = $wnd.Math.max(maxY, maxPos); + } + else { + minPos = elemBounds.x_0 + ext.offset.x_0; + maxPos = minPos + ext.width_0; + minX = $wnd.Math.min(minX, minPos); + maxX = $wnd.Math.max(maxX, maxPos); + } + } + } + this$static.bounds = new KVector_1(maxX - minX, maxY - minY); + this$static.minCornerOfBoundingRectangle = new KVector_1(minX + this$static.offset.x_0, minY + this$static.offset.y_0); +} + +function DCComponent(){ + this.offset = new KVector_1(0, 0); + this.shapes = new HashSet; +} + +defineClass(567, 1, {567:1}, DCComponent); +_.changed = true; +var Lorg_eclipse_elk_alg_disco_graph_DCComponent_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCComponent', 567); +function $clinit_DCDirection(){ + $clinit_DCDirection = emptyMethod; + NORTH_0 = new DCDirection('NORTH', 0); + EAST_0 = new DCDirection('EAST', 1); + SOUTH_0 = new DCDirection('SOUTH', 2); + WEST_0 = new DCDirection('WEST', 3); + NORTH_0.horizontal = false; + EAST_0.horizontal = true; + SOUTH_0.horizontal = false; + WEST_0.horizontal = true; +} + +function DCDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_21(name_0){ + $clinit_DCDirection(); + return valueOf(($clinit_DCDirection$Map() , $MAP_11), name_0); +} + +function values_29(){ + $clinit_DCDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_37, 406, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]); +} + +defineClass(406, 22, {3:1, 34:1, 22:1, 406:1}, DCDirection); +_.horizontal = false; +var EAST_0, NORTH_0, SOUTH_0, WEST_0; +var Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit = createForEnum('org.eclipse.elk.alg.disco.graph', 'DCDirection', 406, Ljava_lang_Enum_2_classLit, values_29, valueOf_21); +function $clinit_DCDirection$Map(){ + $clinit_DCDirection$Map = emptyMethod; + $MAP_11 = createValueOfMap(($clinit_DCDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_37, 406, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]))); +} + +var $MAP_11; +function DCElement(polyPath){ + var maxX, maxY, minX, minY, v, v$iterator; + this.extensions = new ArrayList; + this.shape_0 = polyPath; + minX = $intern_60; + minY = $intern_60; + maxX = $intern_61; + maxY = $intern_61; + for (v$iterator = $listIterator_2(polyPath, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_9(v$iterator), 8); + minX = $wnd.Math.min(minX, v.x_0); + minY = $wnd.Math.min(minY, v.y_0); + maxX = $wnd.Math.max(maxX, v.x_0); + maxY = $wnd.Math.max(maxY, v.y_0); + } + this.bounds = new ElkRectangle_0(minX, minY, maxX - minX, maxY - minY); +} + +defineClass(272, 137, {3:1, 272:1, 96:1, 137:1}, DCElement); +var Lorg_eclipse_elk_alg_disco_graph_DCElement_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCElement', 272); +function $setOffset_0(this$static, offset){ + this$static.offset = offset; +} + +function DCExtension(parent_0, direction, middlePos, width_0){ + var bounds, halfWidth; + this.direction = direction; + this.width_0 = width_0; + bounds = parent_0.bounds; + $setOffset_0(this, new KVector_1(-bounds.x_0, -bounds.y_0)); + $add_19(this.offset, middlePos); + halfWidth = width_0 / 2; + direction.horizontal?$sub(this.offset, 0, halfWidth):$sub(this.offset, halfWidth, 0); + $add_3(parent_0.extensions, this); +} + +defineClass(407, 1, {407:1}, DCExtension); +_.width_0 = 0; +var Lorg_eclipse_elk_alg_disco_graph_DCExtension_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCExtension', 407); +function $setDimensions(this$static, dimensions){ + this$static.dimensions = dimensions; +} + +function DCGraph(components){ + var component, elements, elements$iterator; + this.components = new LinkedHashSet; + for (elements$iterator = new ArrayList$1(components); elements$iterator.i < elements$iterator.this$01.array.length;) { + elements = castTo($next_6(elements$iterator), 16); + component = new DCComponent; + $addElements(component, elements); + $add_6(this.components, component); + } +} + +function DCGraph_0(components){ + DCGraph.call(this, components); +} + +defineClass(762, 137, $intern_95, DCGraph_0); +var Lorg_eclipse_elk_alg_disco_graph_DCGraph_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCGraph', 762); +function $clinit_CompactionStrategy(){ + $clinit_CompactionStrategy = emptyMethod; + POLYOMINO = new CompactionStrategy; +} + +function CompactionStrategy(){ + Enum.call(this, 'POLYOMINO', 0); +} + +function valueOf_22(name_0){ + $clinit_CompactionStrategy(); + return valueOf(($clinit_CompactionStrategy$Map() , $MAP_12), name_0); +} + +function values_30(){ + $clinit_CompactionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_37, 489, 0, [POLYOMINO]); +} + +defineClass(489, 22, {3:1, 34:1, 22:1, 489:1}, CompactionStrategy); +var POLYOMINO; +var Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.disco.options', 'CompactionStrategy', 489, Ljava_lang_Enum_2_classLit, values_30, valueOf_22); +function $clinit_CompactionStrategy$Map(){ + $clinit_CompactionStrategy$Map = emptyMethod; + $MAP_12 = createValueOfMap(($clinit_CompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_37, 489, 0, [POLYOMINO]))); +} + +var $MAP_12; +function $clinit_DisCoMetaDataProvider(){ + $clinit_DisCoMetaDataProvider = emptyMethod; + COMPONENT_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy() , POLYOMINO); + COMPONENT_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.disco.componentCompaction.strategy', COMPONENT_COMPACTION_STRATEGY_DEFAULT); + COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM = new Property('org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'); + DEBUG_DISCO_GRAPH = new Property('org.eclipse.elk.disco.debug.discoGraph'); + DEBUG_DISCO_POLYS = new Property('org.eclipse.elk.disco.debug.discoPolys'); +} + +function DisCoMetaDataProvider(){ + $clinit_DisCoMetaDataProvider(); +} + +defineClass(865, 1, $intern_90, DisCoMetaDataProvider); +_.apply_4 = function apply_48(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.strategy'), 'componentCompaction'), 'Connected Components Compaction Strategy'), 'Strategy for packing different connected components in order to save space and enhance readability of a graph.'), COMPONENT_COMPACTION_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'), 'componentCompaction'), 'Connected Components Layout Algorithm'), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoGraph'), 'debug'), 'DCGraph'), 'Access to the DCGraph is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoPolys'), 'debug'), 'List of Polyominoes'), 'Access to the polyominoes is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); + $apply_10((new DisCoOptions , registry)); +} +; +var COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM, COMPONENT_COMPACTION_STRATEGY, COMPONENT_COMPACTION_STRATEGY_DEFAULT, DEBUG_DISCO_GRAPH, DEBUG_DISCO_POLYS; +var Lorg_eclipse_elk_alg_disco_options_DisCoMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoMetaDataProvider', 865); +function $clinit_DisCoOptions(){ + $clinit_DisCoOptions = emptyMethod; + SPACING_COMPONENT_COMPONENT = ($clinit_CoreOptions() , SPACING_COMPONENT_COMPONENT_1); + EDGE_THICKNESS = EDGE_THICKNESS_1; + ASPECT_RATIO = ASPECT_RATIO_5; + PADDING = PADDING_6; + POLYOMINO_LOW_LEVEL_SORT_0 = ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT); + POLYOMINO_HIGH_LEVEL_SORT_0 = POLYOMINO_HIGH_LEVEL_SORT; + POLYOMINO_TRAVERSAL_STRATEGY_0 = POLYOMINO_TRAVERSAL_STRATEGY; + POLYOMINO_FILL_0 = POLYOMINO_FILL; + COMPONENT_COMPACTION_STRATEGY_0 = ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY); + COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0 = COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM; + DEBUG_DISCO_GRAPH_0 = DEBUG_DISCO_GRAPH; + DEBUG_DISCO_POLYS_0 = DEBUG_DISCO_POLYS; +} + +function $apply_10(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.disco'), 'ELK DisCo'), 'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'), new DisCoOptions$DiscoFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.aspectRatio', $getDefault(ASPECT_RATIO)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.padding', $getDefault(PADDING)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.lowLevelSort', $getDefault(POLYOMINO_LOW_LEVEL_SORT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.highLevelSort', $getDefault(POLYOMINO_HIGH_LEVEL_SORT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.traversalStrategy', $getDefault(POLYOMINO_TRAVERSAL_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.fill', $getDefault(POLYOMINO_FILL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.strategy', $getDefault(COMPONENT_COMPACTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm', $getDefault(COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoGraph', $getDefault(DEBUG_DISCO_GRAPH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoPolys', $getDefault(DEBUG_DISCO_POLYS_0)); +} + +function DisCoOptions(){ + $clinit_DisCoOptions(); +} + +defineClass(1010, 1, $intern_90, DisCoOptions); +_.apply_4 = function apply_49(registry){ + $apply_10(registry); +} +; +var ASPECT_RATIO, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0, COMPONENT_COMPACTION_STRATEGY_0, DEBUG_DISCO_GRAPH_0, DEBUG_DISCO_POLYS_0, EDGE_THICKNESS, PADDING, POLYOMINO_FILL_0, POLYOMINO_HIGH_LEVEL_SORT_0, POLYOMINO_LOW_LEVEL_SORT_0, POLYOMINO_TRAVERSAL_STRATEGY_0, SPACING_COMPONENT_COMPONENT; +var Lorg_eclipse_elk_alg_disco_options_DisCoOptions_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions', 1010); +function DisCoOptions$DiscoFactory(){ +} + +defineClass(1011, 1, {}, DisCoOptions$DiscoFactory); +_.create_0 = function create_2(){ + var provider; + return provider = new DisCoLayoutProvider , provider; +} +; +_.destroy = function destroy(obj){ +} +; +var Lorg_eclipse_elk_alg_disco_options_DisCoOptions$DiscoFactory_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions/DiscoFactory', 1011); +function $addExtensionsToPoly(this$static, elem){ + var baseX, baseY, compCorner, dir_0, elemPos, extension, extension$iterator, extensions, polyDir, polyoOffset, pos, xe, xp, xpPlusWidth, ye, yp, ypPlusWidth; + extensions = elem.extensions; + compCorner = $getMinCorner(this$static.representee); + polyoOffset = $scale($sub($clone_1($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); + baseX = compCorner.x_0 - polyoOffset.x_0; + baseY = compCorner.y_0 - polyoOffset.y_0; + elemPos = elem.bounds; + baseX = elemPos.x_0 - baseX; + baseY = elemPos.y_0 - baseY; + for (extension$iterator = new ArrayList$1(extensions); extension$iterator.i < extension$iterator.this$01.array.length;) { + extension = castTo($next_6(extension$iterator), 407); + pos = extension.offset; + xe = baseX + pos.x_0; + ye = baseY + pos.y_0; + xp = round_int(xe / this$static.cellSizeX); + yp = round_int(ye / this$static.cellSizeY); + dir_0 = extension.direction; + switch (dir_0.ordinal) { + case 0: + polyDir = ($clinit_Direction() , NORTH); + break; + case 1: + polyDir = ($clinit_Direction() , EAST); + break; + case 2: + polyDir = ($clinit_Direction() , SOUTH); + break; + default:polyDir = ($clinit_Direction() , WEST); + } + if (dir_0.horizontal) { + ypPlusWidth = round_int((ye + extension.width_0) / this$static.cellSizeY); + $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_3(yp), valueOf_3(ypPlusWidth))); + dir_0 == ($clinit_DCDirection() , WEST_0)?$weaklyBlockArea(this$static, 0, yp, xp, ypPlusWidth):$weaklyBlockArea(this$static, xp, yp, this$static.pWidth - 1, ypPlusWidth); + } + else { + xpPlusWidth = round_int((xe + extension.width_0) / this$static.cellSizeX); + $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_3(xp), valueOf_3(xpPlusWidth))); + dir_0 == ($clinit_DCDirection() , NORTH_0)?$weaklyBlockArea(this$static, xp, 0, xpPlusWidth, yp):$weaklyBlockArea(this$static, xp, yp, xpPlusWidth, this$static.pHeight - 1); + } + } +} + +function $computeLowResDimension(dim, cellSize){ + var cellFit, fitTruncated; + cellFit = dim / cellSize; + fitTruncated = round_int(cellFit); + cellFit > fitTruncated && ++fitTruncated; + return fitTruncated; +} + +function $fillCells(this$static){ + var baseX, compCorner, curX, curY, polyoOffset, x_0, y_0; + compCorner = $getMinCorner(this$static.representee); + polyoOffset = $scale($sub($clone_1($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); + baseX = compCorner.x_0 - polyoOffset.x_0; + curY = compCorner.y_0 - polyoOffset.y_0; + for (y_0 = 0; y_0 < this$static.pHeight; y_0++) { + curX = baseX; + for (x_0 = 0; x_0 < this$static.pWidth; x_0++) { + $intersects(this$static.representee, new ElkRectangle_0(curX, curY, this$static.cellSizeX, this$static.cellSizeY)) && $set_4(this$static, x_0, y_0, false, true); + curX += this$static.cellSizeX; + } + curY += this$static.cellSizeY; + } +} + +function DCPolyomino(comp, csX, csY){ + var compDims, elem, elem$iterator; + Polyomino.call(this, new ArrayList); + this.cellSizeX = csX; + this.cellSizeY = csY; + this.representee = comp; + compDims = (comp.changed && $update(comp) , comp.bounds); + this.pWidth = $computeLowResDimension(compDims.x_0, this.cellSizeX); + this.pHeight = $computeLowResDimension(compDims.y_0, this.cellSizeY); + $reinitialize(this, this.pWidth, this.pHeight); + $fillCells(this); + for (elem$iterator = this.representee.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 272); + elem.extensions.array.length > 0 && $addExtensionsToPoly(this, elem); + } +} + +defineClass(568, 176, {330:1, 176:1, 568:1}, DCPolyomino); +_.cellSizeX = 0; +_.cellSizeY = 0; +_.pHeight = 0; +_.pWidth = 0; +var Lorg_eclipse_elk_alg_disco_structures_DCPolyomino_2_classLit = createForClass('org.eclipse.elk.alg.disco.structures', 'DCPolyomino', 568); +function $clinit_ElkGraphComponentsProcessor(){ + $clinit_ElkGraphComponentsProcessor = emptyMethod; + visited_0 = new ArrayList; + incidenceMap = new HashMap; + components_0 = new ArrayList; +} + +function addNodesToIncidenceSet(incidentNodes, edges, chooseNode){ + var edge, edge$iterator; + for (edge$iterator = edges.iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 74); + $add_6(incidentNodes, castTo(chooseNode.apply_0(edge), 27)); + } +} + +function computeIncidences(nodes){ + var adjacentAndInsideParent, adjacentNodes, connectedToParentPort, edges, incomingEdge, incomingEdge$iterator, node, node$iterator, nodesAtPort, outgoingEdge, outgoingEdge$iterator, port, sameHierarchyLevel; + adjacentAndInsideParent = new HashMap; + for (node$iterator = new AbstractEList$EIterator(nodes); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + adjacentNodes = new HashSet; + $put_6(incidenceMap, node, adjacentNodes); + sameHierarchyLevel = new ElkGraphComponentsProcessor$lambda$0$Type; + edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)])))), 85); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(($clinit_Boolean() , true)), 16), new ElkGraphComponentsProcessor$lambda$1$Type); + connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + for (incomingEdge$iterator = connectedToParentPort.iterator_0(); incomingEdge$iterator.hasNext_0();) { + incomingEdge = castTo(incomingEdge$iterator.next_1(), 74); + port = getSourcePort(incomingEdge); + if (port) { + nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); + if (!nodesAtPort) { + nodesAtPort = getInnerNeighborsOfPort(port); + $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); + } + $addAll(adjacentNodes, nodesAtPort); + } + } + edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH])))), 85); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(true), 16), new ElkGraphComponentsProcessor$lambda$3$Type); + connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + for (outgoingEdge$iterator = connectedToParentPort.iterator_0(); outgoingEdge$iterator.hasNext_0();) { + outgoingEdge = castTo(outgoingEdge$iterator.next_1(), 74); + port = getTargetPort(outgoingEdge); + if (port) { + nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); + if (!nodesAtPort) { + nodesAtPort = getInnerNeighborsOfPort(port); + $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); + } + $addAll(adjacentNodes, nodesAtPort); + } + } + } +} + +function dfs(start_0, component){ + var adjacentNodes, node, node$iterator; + $add_3(visited_0, start_0); + component.add_2(start_0); + adjacentNodes = castTo($get_10(incidenceMap, start_0), 21); + if (adjacentNodes) { + for (node$iterator = adjacentNodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 27); + $indexOf_3(visited_0, node, 0) != -1 || dfs(node, component); + } + } +} + +function getInnerNeighborsOfPort(port){ + var allEdges, inwardsPredicate, nodeMapper, portParent; + portParent = $getParent_3(port); + inwardsPredicate = new ElkGraphComponentsProcessor$lambda$5$Type(portParent); + nodeMapper = new ElkGraphComponentsProcessor$lambda$6$Type(portParent); + allEdges = new ArrayList; + $addAll_2(allEdges, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); + $addAll_2(allEdges, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); + return castTo($collect_1($map($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(allEdges, 16)), inwardsPredicate), nodeMapper), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); +} + +function lambda$0_14(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return $getParent_2(getSourceNode(edge_0)) == $getParent_2(getTargetNode_0(edge_0)); +} + +function lambda$2_1(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return getSourceNode(edge_0) == $getParent_2(getTargetNode_0(edge_0)); +} + +function lambda$4_1(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return getTargetNode_0(edge_0) == $getParent_2(getSourceNode(edge_0)); +} + +function lambda$5_0(portParent_0, edge_1){ + $clinit_ElkGraphComponentsProcessor(); + return portParent_0 == $getParent_2(getSourceNode(edge_1)) || portParent_0 == $getParent_2(getTargetNode_0(edge_1)); +} + +function lambda$6(portParent_0, edge_1){ + $clinit_ElkGraphComponentsProcessor(); + return portParent_0 == getSourceNode(edge_1)?getTargetNode_0(edge_1):getSourceNode(edge_1); +} + +function split_2(graph){ + $clinit_ElkGraphComponentsProcessor(); + var children, component, node, node$iterator; + visited_0 = new ArrayList; + incidenceMap = new HashMap; + components_0 = new ArrayList; + children = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); + computeIncidences(children); + for (node$iterator = new AbstractEList$EIterator(children); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + if ($indexOf_3(visited_0, node, 0) == -1) { + component = new ArrayList; + $add_3(components_0, component); + dfs(node, component); + } + } + return components_0; +} + +var components_0, incidenceMap, visited_0; +function $test(arg0){ + return lambda$0_14(castTo(arg0, 74)); +} + +function ElkGraphComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1286, 1, $intern_40, ElkGraphComponentsProcessor$lambda$0$Type); +_.test_0 = function test_12(arg0){ + return $test(arg0); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$0$Type', 1286); +function ElkGraphComponentsProcessor$lambda$1$Type(){ +} + +defineClass(1287, 1, {}, ElkGraphComponentsProcessor$lambda$1$Type); +_.apply_0 = function apply_50(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getSourceNode(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$1$Type', 1287); +function ElkGraphComponentsProcessor$lambda$2$Type(){ +} + +defineClass(1288, 1, $intern_40, ElkGraphComponentsProcessor$lambda$2$Type); +_.test_0 = function test_13(arg0){ + return lambda$2_1(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$2$Type', 1288); +function ElkGraphComponentsProcessor$lambda$3$Type(){ +} + +defineClass(1289, 1, {}, ElkGraphComponentsProcessor$lambda$3$Type); +_.apply_0 = function apply_51(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getTargetNode_0(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$3$Type', 1289); +function ElkGraphComponentsProcessor$lambda$4$Type(){ +} + +defineClass(1290, 1, $intern_40, ElkGraphComponentsProcessor$lambda$4$Type); +_.test_0 = function test_14(arg0){ + return lambda$4_1(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$4$Type', 1290); +function ElkGraphComponentsProcessor$lambda$5$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1291, 1, $intern_40, ElkGraphComponentsProcessor$lambda$5$Type); +_.test_0 = function test_15(arg0){ + return lambda$5_0(this.portParent_0, castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$5$Type', 1291); +function ElkGraphComponentsProcessor$lambda$6$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1292, 1, {}, ElkGraphComponentsProcessor$lambda$6$Type); +_.apply_0 = function apply_52(arg0){ + return lambda$6(this.portParent_0, castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$6$Type', 1292); +function $adjustFirstSegment(source, chain, dir_0){ + var firstPoint, iter; + firstPoint = (checkCriticalElement(chain.size_0 != 0) , castTo($removeNode_0(chain, chain.header.next_0), 8)); + switch (dir_0.ordinal) { + case 0: + firstPoint.y_0 = 0; + break; + case 2: + firstPoint.y_0 = source.height; + break; + case 3: + firstPoint.x_0 = 0; + break; + default:firstPoint.x_0 = source.width_0; + } + iter = $listIterator_2(chain, 0); + $add_8(iter, firstPoint); + return chain; +} + +function $adjustRelatedPort(port, edgePoint, dir_0){ + dir_0.horizontal?$setY_3(port, edgePoint.y_0 - port.height / 2):$setX_2(port, edgePoint.x_0 - port.width_0 / 2); +} + +function $applyLayout(this$static){ + var adjustedPorts, dir_0, edge, edgeSection, graphDimensions, inEntry, inEntry$iterator, label_0, label$iterator, newHeight, newPoints, newWidth, oldHeight, oldWidth, outEntry, outEntry$iterator, port, port$iterator, portToAdjust, px, py, xFactor, yFactor; + graphDimensions = this$static.transformedGraph.dimensions; + newWidth = graphDimensions.x_0; + newHeight = graphDimensions.y_0; + oldWidth = this$static.parent_0.width_0; + oldHeight = this$static.parent_0.height; + $setDimensions_0(this$static.parent_0, graphDimensions.x_0, graphDimensions.y_0); + xFactor = newWidth / oldWidth; + yFactor = newHeight / oldHeight; + for (label$iterator = new AbstractEList$EIterator($getLabels_1(this$static.parent_0)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + $setX_2(label_0, label_0.x_0 * xFactor); + $setY_3(label_0, label_0.y_0 * yFactor); + } + for (port$iterator = new AbstractEList$EIterator($getPorts_3(this$static.parent_0)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + px = port.x_0; + py = port.y_0; + px > 0 && $setX_2(port, px * xFactor); + py > 0 && $setY_3(port, py * yFactor); + } + $forEach_2(this$static.elementMapping, new ElkGraphTransformer$OffsetApplier); + adjustedPorts = new ArrayList; + for (inEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.incomingExtensionsMapping)).this$01); inEntry$iterator.hasNext;) { + inEntry = $next_3(inEntry$iterator); + edge = castTo(inEntry.getKey(), 74); + dir_0 = castTo(inEntry.getValue(), 407).direction; + edgeSection = firstEdgeSection(edge, false, false); + newPoints = $adjustFirstSegment(getSourceNode(edge), createVectorChain(edgeSection), dir_0); + applyVectorChain(newPoints, edgeSection); + portToAdjust = getSourcePort(edge); + if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { + push_1(adjustedPorts.array, portToAdjust); + $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.header.next_0.value_0, 8)), dir_0); + } + } + for (outEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.outgoingExtensionsMapping)).this$01); outEntry$iterator.hasNext;) { + outEntry = $next_3(outEntry$iterator); + edge = castTo(outEntry.getKey(), 74); + dir_0 = castTo(outEntry.getValue(), 407).direction; + edgeSection = firstEdgeSection(edge, false, false); + newPoints = $adjustFirstSegment(getTargetNode_0(edge), reverse_3(createVectorChain(edgeSection)), dir_0); + newPoints = reverse_3(newPoints); + applyVectorChain(newPoints, edgeSection); + portToAdjust = getTargetPort(edge); + if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { + push_1(adjustedPorts.array, portToAdjust); + $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.tail.prev.value_0, 8)), dir_0); + } + } +} + +function $computeIntersection(p1, p2, p3, p4){ + var denominator, factor1, factor2, x_0, x1, x2, x3, x4, y_0, y1, y2, y3, y4; + x1 = p1.x_0; + y1 = p1.y_0; + x2 = p2.x_0; + y2 = p2.y_0; + x3 = p3.x_0; + y3 = p3.y_0; + x4 = p4.x_0; + y4 = p4.y_0; + factor1 = x1 * y2 - y1 * x2; + factor2 = x3 * y4 - y3 * x4; + denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); + x_0 = (factor1 * (x3 - x4) - factor2 * (x1 - x2)) / denominator; + y_0 = (factor1 * (y3 - y4) - factor2 * (y1 - y2)) / denominator; + return new KVector_1(x_0, y_0); +} + +function $getContour(edgePoints, thickness){ + var ccwMerged, ccwPoints, current, currentPoint, cwMerged, cwPoints, i, i0, i1, i2, intersectionPoint, numberOfPoints, orthPoints, predecessor, radius, successor; + ccwPoints = new ArrayList; + cwPoints = new ArrayList; + radius = thickness / 2; + numberOfPoints = edgePoints.size_1(); + current = castTo(edgePoints.get_0(0), 8); + successor = castTo(edgePoints.get_0(1), 8); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + for (i0 = 2; i0 < numberOfPoints; i0++) { + predecessor = current; + current = successor; + successor = castTo(edgePoints.get_0(i0), 8); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, predecessor.x_0, predecessor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + } + orthPoints = $getOrthogonalPoints(successor.x_0, successor.y_0, current.x_0, current.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + ccwMerged = new KVectorChain; + cwMerged = new ArrayList; + $add_7(ccwMerged, (checkCriticalElementIndex(0, ccwPoints.array.length) , castTo(ccwPoints.array[0], 8))); + for (i1 = 1; i1 < ccwPoints.array.length - 2; i1 += 2) { + currentPoint = (checkCriticalElementIndex(i1, ccwPoints.array.length) , castTo(ccwPoints.array[i1], 8)); + intersectionPoint = $computeIntersection((checkCriticalElementIndex(i1 - 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 - 1], 8)), currentPoint, (checkCriticalElementIndex(i1 + 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 1], 8)), (checkCriticalElementIndex(i1 + 2, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 2], 8))); + !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?($addNode_0(ccwMerged, currentPoint, ccwMerged.tail.prev, ccwMerged.tail) , true):($addNode_0(ccwMerged, intersectionPoint, ccwMerged.tail.prev, ccwMerged.tail) , true); + } + $add_7(ccwMerged, castTo($get_11(ccwPoints, ccwPoints.array.length - 1), 8)); + $add_3(cwMerged, (checkCriticalElementIndex(0, cwPoints.array.length) , castTo(cwPoints.array[0], 8))); + for (i2 = 1; i2 < cwPoints.array.length - 2; i2 += 2) { + currentPoint = (checkCriticalElementIndex(i2, cwPoints.array.length) , castTo(cwPoints.array[i2], 8)); + intersectionPoint = $computeIntersection((checkCriticalElementIndex(i2 - 1, cwPoints.array.length) , castTo(cwPoints.array[i2 - 1], 8)), currentPoint, (checkCriticalElementIndex(i2 + 1, cwPoints.array.length) , castTo(cwPoints.array[i2 + 1], 8)), (checkCriticalElementIndex(i2 + 2, cwPoints.array.length) , castTo(cwPoints.array[i2 + 2], 8))); + !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?(push_1(cwMerged.array, currentPoint) , true):(push_1(cwMerged.array, intersectionPoint) , true); + } + $add_3(cwMerged, castTo($get_11(cwPoints, cwPoints.array.length - 1), 8)); + for (i = cwMerged.array.length - 1; i >= 0; i--) { + $add_7(ccwMerged, (checkCriticalElementIndex(i, cwMerged.array.length) , castTo(cwMerged.array[i], 8))); + } + return ccwMerged; +} + +function $getOrthogonalPoints(curX, curY, nxtX, nxtY, radius){ + var angleRadians, difX, difY, orthAngleCCW, orthAngleCW, xCCW, xCW, yCCW, yCW; + difX = nxtX - curX; + difY = nxtY - curY; + angleRadians = $wnd.Math.atan2(difX, difY); + orthAngleCCW = angleRadians + $intern_97; + orthAngleCW = angleRadians - $intern_97; + xCCW = radius * $wnd.Math.sin(orthAngleCCW) + curX; + yCCW = radius * $wnd.Math.cos(orthAngleCCW) + curY; + xCW = radius * $wnd.Math.sin(orthAngleCW) + curX; + yCW = radius * $wnd.Math.cos(orthAngleCW) + curY; + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [new KVector_1(xCCW, yCCW), new KVector_1(xCW, yCW)])); +} + +function $importElkEdge(this$static, edge, newComponent){ + var componentLabel, contour, edgeSection, label_0, label$iterator, labels, points, shape_0, thickness; + edgeSection = firstEdgeSection(edge, false, false); + points = createVectorChain(edgeSection); + thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); + contour = $getContour(points, thickness + this$static.componentSpacing); + shape_0 = new DCElement(contour); + $copyProperties(shape_0, edge); + $put_6(this$static.elementMapping, edge, shape_0); + push_1(newComponent.array, shape_0); + labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + push_1(newComponent.array, componentLabel); + } + return shape_0; +} + +function $importElkEdges(this$static, edges, newComponent){ + var componentEdge, edge, edge$iterator; + for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 74); + componentEdge = castTo($get_10(this$static.elementMapping, edge), 272); + !componentEdge && ($getParent_2(getSourceNode(edge)) == $getParent_2(getTargetNode_0(edge))?$importElkEdge(this$static, edge, newComponent):getSourceNode(edge) == $getParent_2(getTargetNode_0(edge))?$get_10(this$static.incomingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getTargetNode_0(edge)) != null && $importExtension(this$static, edge, newComponent, false):$get_10(this$static.outgoingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getSourceNode(edge)) != null && $importExtension(this$static, edge, newComponent, true)); + } +} + +function $importElkShape(this$static, element, considerWhenApplyingOffset, offsetX, offsetY){ + var coords, halfComponentSpacing, shape_0, x0, x1, y0, y1; + if (!(instanceOf(element, 207) || instanceOf(element, 366) || instanceOf(element, 193))) { + throw toJs(new IllegalArgumentException_0('Method only works for ElkNode-, ElkLabel and ElkPort-objects.')); + } + halfComponentSpacing = this$static.componentSpacing / 2; + x0 = element.x_0 + offsetX - halfComponentSpacing; + y0 = element.y_0 + offsetY - halfComponentSpacing; + x1 = x0 + element.width_0 + this$static.componentSpacing; + y1 = y0 + element.height + this$static.componentSpacing; + coords = new KVectorChain; + $add_7(coords, new KVector_1(x0, y0)); + $add_7(coords, new KVector_1(x0, y1)); + $add_7(coords, new KVector_1(x1, y1)); + $add_7(coords, new KVector_1(x1, y0)); + shape_0 = new DCElement(coords); + $copyProperties(shape_0, element); + considerWhenApplyingOffset && $put_6(this$static.elementMapping, element, shape_0); + return shape_0; +} + +function $importExtension(this$static, edge, newComponent, outgoingExtension){ + var componentLabel, contour, dir_0, edgeSection, extParent, extensionWidth, fixedEdgePoints, innerPoint, label_0, label$iterator, labels, middlePos, outerPoint, points, shape_0, thickness; + edgeSection = firstEdgeSection(edge, false, false); + points = createVectorChain(edgeSection); + outgoingExtension && (points = reverse_3(points)); + thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); + outerPoint = (checkCriticalElement(points.size_0 != 0) , castTo(points.header.next_0.value_0, 8)); + innerPoint = castTo($get_7(points, 1), 8); + if (points.size_0 > 2) { + fixedEdgePoints = new ArrayList; + $addAll_2(fixedEdgePoints, new AbstractList$SubList(points, 1, points.size_0)); + contour = $getContour(fixedEdgePoints, thickness + this$static.componentSpacing); + shape_0 = new DCElement(contour); + $copyProperties(shape_0, edge); + push_1(newComponent.array, shape_0); + } + else { + outgoingExtension?(shape_0 = castTo($get_10(this$static.elementMapping, getSourceNode(edge)), 272)):(shape_0 = castTo($get_10(this$static.elementMapping, getTargetNode_0(edge)), 272)); + } + extParent = getSourceNode(edge); + outgoingExtension && (extParent = getTargetNode_0(edge)); + dir_0 = $nearestSide(outerPoint, extParent); + extensionWidth = thickness + this$static.componentSpacing; + if (dir_0.horizontal) { + extensionWidth += $wnd.Math.abs(outerPoint.y_0 - innerPoint.y_0); + middlePos = new KVector_1(innerPoint.x_0, (innerPoint.y_0 + outerPoint.y_0) / 2); + } + else { + extensionWidth += $wnd.Math.abs(outerPoint.x_0 - innerPoint.x_0); + middlePos = new KVector_1((innerPoint.x_0 + outerPoint.x_0) / 2, innerPoint.y_0); + } + outgoingExtension?$put_6(this$static.outgoingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)):$put_6(this$static.incomingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)); + $put_6(this$static.elementMapping, edge, shape_0); + labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + push_1(newComponent.array, componentLabel); + } +} + +function $importGraph(this$static, graph){ + var component, component$iterator, componentLabel, componentNode, componentPort, components, edgeSet, label_0, label$iterator, label$iterator0, labels, node, node$iterator, nodeX, nodeY, port, port$iterator, portX, portY, ports, result, subResult; + this$static.parent_0 = graph; + components = split_2(graph); + result = new ArrayList; + for (component$iterator = new ArrayList$1(components); component$iterator.i < component$iterator.this$01.array.length;) { + component = castTo($next_6(component$iterator), 15); + subResult = new ArrayList; + push_1(result.array, subResult); + edgeSet = new HashSet; + for (node$iterator = component.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 27); + componentNode = $importElkShape(this$static, node, true, 0, 0); + push_1(subResult.array, componentNode); + nodeX = node.x_0; + nodeY = node.y_0; + new KVector_1(nodeX, nodeY); + labels = (!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels); + for (label$iterator0 = new AbstractEList$EIterator(labels); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator0), 135); + componentLabel = $importElkShape(this$static, label_0, false, nodeX, nodeY); + push_1(subResult.array, componentLabel); + } + ports = (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports); + for (port$iterator = new AbstractEList$EIterator(ports); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + componentPort = $importElkShape(this$static, port, false, nodeX, nodeY); + push_1(subResult.array, componentPort); + portX = port.x_0 + nodeX; + portY = port.y_0 + nodeY; + labels = (!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + componentLabel = $importElkShape(this$static, label_0, false, portX, portY); + push_1(subResult.array, componentLabel); + } + } + $addAll(edgeSet, newHashSet(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [allOutgoingEdges(node), allIncomingEdges(node)])))); + } + $importElkEdges(this$static, edgeSet, subResult); + } + this$static.transformedGraph = new DCGraph_0(result); + $copyProperties(this$static.transformedGraph, graph); + return this$static.transformedGraph; +} + +function $nearestSide(point, node){ + var distance, result, shortestDistance; + shortestDistance = $intern_98; + result = ($clinit_DCDirection() , NORTH_0); + shortestDistance = $wnd.Math.abs(point.y_0); + distance = $wnd.Math.abs(node.height - point.y_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = SOUTH_0; + } + distance = $wnd.Math.abs(point.x_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = WEST_0; + } + distance = $wnd.Math.abs(node.width_0 - point.x_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = EAST_0; + } + return result; +} + +function ElkGraphTransformer(componentSpacing){ + this.elementMapping = new HashMap; + this.incomingExtensionsMapping = new HashMap; + this.outgoingExtensionsMapping = new HashMap; + this.componentSpacing = componentSpacing; +} + +defineClass(1205, 1, {}, ElkGraphTransformer); +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer', 1205); +function $accept_2(this$static, elem, poly){ + var applier, edgeSection, points, shape_0; + this$static.offset = poly.cp.offset; + if (instanceOf(elem, 326)) { + edgeSection = firstEdgeSection(castTo(elem, 74), false, false); + points = createVectorChain(edgeSection); + applier = new ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$static); + $forEach_0(points, applier); + applyVectorChain(points, edgeSection); + elem.getProperty(($clinit_CoreOptions() , JUNCTION_POINTS_0)) != null && $forEach_0(castTo(elem.getProperty(JUNCTION_POINTS_0), 75), applier); + } + else { + shape_0 = castTo(elem, 422); + shape_0.setX(shape_0.getX() + this$static.offset.x_0); + shape_0.setY(shape_0.getY() + this$static.offset.y_0); + } +} + +function ElkGraphTransformer$OffsetApplier(){ +} + +defineClass(1206, 1, {}, ElkGraphTransformer$OffsetApplier); +_.accept_1 = function accept_56(elem, poly){ + $accept_2(this, castTo(elem, 167), castTo(poly, 272)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier', 1206); +function $accept_3(this$static, point){ + $add_18(point, this$static.this$11.offset.x_0, this$static.this$11.offset.y_0); +} + +function ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$1){ + this.this$11 = this$1; +} + +defineClass(1207, 1, $intern_19, ElkGraphTransformer$OffsetApplier$OffSetToChainApplier); +_.accept = function accept_57(point){ + $accept_3(this, castTo(point, 8)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier$OffSetToChainApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier', 1207); +function $buildIncidenceLists(graph){ + var edge, edge$iterator, incidence, n, node, node$iterator; + n = graph.nodes.array.length; + incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 153); + incidence[node.id_0] = new LinkedList; + } + for (edge$iterator = new ArrayList$1(graph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 290); + incidence[edge.source.id_0].add_2(edge); + incidence[edge.target.id_0].add_2(edge); + } + return incidence; +} + +function $dfs_0(this$static, node, last, graph, visited, incidence){ + var component, edge, edge$iterator; + if (!visited[node.id_0]) { + visited[node.id_0] = true; + component = graph; + !component && (component = new FGraph); + $add_3(component.nodes, node); + for (edge$iterator = incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 290); + if (edge.target == last || edge.source == last) { + continue; + } + edge.source != node && $dfs_0(this$static, edge.source, node, component, visited, incidence); + edge.target != node && $dfs_0(this$static, edge.target, node, component, visited, incidence); + $add_3(component.edges, edge); + $addAll_2(component.labels, edge.labels); + } + return component; + } + return null; +} + +function $moveGraph(destGraph, sourceGraph, offsetx, offsety){ + var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, label_0, label$iterator, node, node$iterator; + graphOffset = new KVector_1(offsetx, offsety); + $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_0() , BB_UPLEFT)), 8)); + for (node$iterator = new ArrayList$1(sourceGraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 153); + $add_19(node.position, graphOffset); + $add_3(destGraph.nodes, node); + } + for (edge$iterator = new ArrayList$1(sourceGraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 290); + for (bendpoint$iterator = new ArrayList$1(edge.bendpoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { + bendpoint = castTo($next_6(bendpoint$iterator), 250); + $add_19(bendpoint.position, graphOffset); + } + $add_3(destGraph.edges, edge); + } + for (label$iterator = new ArrayList$1(sourceGraph.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 454); + $add_19(label_0.position, graphOffset); + $add_3(destGraph.labels, label_0); + } +} + +function $recombine(components){ + var broadestRow, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, result, size_0, spacing, totalArea, xpos, ypos; + if (components.size_1() == 1) { + return castTo(components.get_0(0), 235); + } + else if (components.size_1() <= 0) { + return new FGraph; + } + for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 235); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_43; + maxy = $intern_43; + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 153); + priority += castTo($getProperty(node, ($clinit_ForceOptions() , PRIORITY)), 17).value_0; + minx = $wnd.Math.min(minx, node.position.x_0 - node.size_0.x_0 / 2); + miny = $wnd.Math.min(miny, node.position.y_0 - node.size_0.y_0 / 2); + maxx = $wnd.Math.max(maxx, node.position.x_0 + node.size_0.x_0 / 2); + maxy = $wnd.Math.max(maxy, node.position.y_0 + node.size_0.y_0 / 2); + } + $setProperty_0(graph, ($clinit_ForceOptions() , PRIORITY), valueOf_3(priority)); + $setProperty_0(graph, ($clinit_InternalProperties_0() , BB_UPLEFT), new KVector_1(minx, miny)); + $setProperty_0(graph, BB_LOWRIGHT, new KVector_1(maxx, maxy)); + } + $clinit_Collections(); + components.sort_0(new ComponentsProcessor$1); + result = new FGraph; + $copyProperties(result, castTo(components.get_0(0), 96)); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 235); + size_0 = $sub_0($clone_1(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_ForceOptions() , ASPECT_RATIO_0))))); + spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 235); + size_0 = $sub_0($clone_1(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $moveGraph(result, graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + return result; +} + +function $split_1(this$static, graph){ + var comp, comp$iterator, components, id_0, incidence, node, node$iterator, node$iterator0, separate, visited; + separate = castToBoolean($getProperty(graph, ($clinit_ForceOptions() , SEPARATE_CONNECTED_COMPONENTS))); + if (separate == null || (checkCriticalNotNull(separate) , separate)) { + visited = initUnidimensionalArray(Z_classLit, $intern_91, 28, graph.nodes.array.length, 16, 1); + incidence = $buildIncidenceLists(graph); + components = new LinkedList; + for (node$iterator0 = new ArrayList$1(graph.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 153); + comp = $dfs_0(this$static, node, null, null, visited, incidence); + if (comp) { + $copyProperties(comp, graph); + $addNode_0(components, comp, components.tail.prev, components.tail); + } + } + if (components.size_0 > 1) { + for (comp$iterator = $listIterator_2(components, 0); comp$iterator.currentNode != comp$iterator.this$01.tail;) { + comp = castTo($next_9(comp$iterator), 235); + id_0 = 0; + for (node$iterator = new ArrayList$1(comp.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 153); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit, 1), $intern_100, 235, 0, [graph])); +} + +function ComponentsProcessor(){ +} + +defineClass(760, 1, {}, ComponentsProcessor); +var Lorg_eclipse_elk_alg_force_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor', 760); +function $compare_7(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_ForceOptions() , PRIORITY)), 17).value_0 - castTo($getProperty(graph1, PRIORITY), 17).value_0; + if (prio == 0) { + size1 = $sub_0($clone_1(castTo($getProperty(graph1, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph1, BB_UPLEFT), 8)); + size2 = $sub_0($clone_1(castTo($getProperty(graph2, BB_LOWRIGHT), 8)), castTo($getProperty(graph2, BB_UPLEFT), 8)); + return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); + } + return prio; +} + +function ComponentsProcessor$1(){ +} + +defineClass(1195, 1, $intern_88, ComponentsProcessor$1); +_.compare_1 = function compare_28(graph1, graph2){ + return $compare_7(castTo(graph1, 235), castTo(graph2, 235)); +} +; +_.equals_0 = function equals_80(other){ + return this === other; +} +; +_.reversed = function reversed_20(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_force_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor/1', 1195); +function $applyLayout_0(fgraph){ + var bendpoint, bendpoint$iterator, endLocation, fedge, fedge$iterator, flabel, flabel$iterator, fnode, fnode$iterator, height, kedge, kedgeSection, kgraph, klabel, knode, labelPos, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, nodePos, object, offset, padding, pos, size_0, startLocation, width_0; + kgraph = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , ORIGIN)), 27); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_43; + maxYPos = $intern_43; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 153); + pos = node.position; + size_0 = node.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + for (bendpoint$iterator = new ArrayList$1(fgraph.bendPoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { + bendpoint = castTo($next_6(bendpoint$iterator), 250); + pos = bendpoint.position; + size_0 = bendpoint.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + padding = castTo($getProperty_0(kgraph, ($clinit_ForceOptions() , PADDING_0)), 107); + offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); + for (fnode$iterator = new ArrayList$1(fgraph.nodes); fnode$iterator.i < fnode$iterator.this$01.array.length;) { + fnode = castTo($next_6(fnode$iterator), 153); + object = $getProperty(fnode, ORIGIN); + if (instanceOf(object, 207)) { + knode = castTo(object, 27); + nodePos = $add_19(new KVector_2(fnode.position), offset); + $setLocation_1(knode, nodePos.x_0 - knode.width_0 / 2, nodePos.y_0 - knode.height / 2); + } + } + for (fedge$iterator = new ArrayList$1(fgraph.edges); fedge$iterator.i < fedge$iterator.this$01.array.length;) { + fedge = castTo($next_6(fedge$iterator), 290); + kedge = castTo($getProperty(fedge, ORIGIN), 74); + kedgeSection = firstEdgeSection(kedge, true, true); + startLocation = new KVector_2($getSourcePoint(fedge)); + $add_19(startLocation, offset); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + $forEach_1(fedge.bendpoints, new ElkGraphImporter$lambda$0$Type(offset, kedgeSection)); + endLocation = new KVector_2($getTargetPoint(fedge)); + $add_19(endLocation, offset); + $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); + } + for (flabel$iterator = new ArrayList$1(fgraph.labels); flabel$iterator.i < flabel$iterator.this$01.array.length;) { + flabel = castTo($next_6(flabel$iterator), 454); + klabel = castTo($getProperty(flabel, ORIGIN), 135); + labelPos = $add_19(new KVector_2(flabel.position), offset); + $setLocation_1(klabel, labelPos.x_0, labelPos.y_0); + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + $booleanValue(castToBoolean($getProperty_0(kgraph, ($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_3)))) || resizeNode_1(kgraph, width_0, height, false, true); + $setProperty_1(kgraph, CHILD_AREA_WIDTH, width_0 - (padding.left + padding.right)); + $setProperty_1(kgraph, CHILD_AREA_HEIGHT, height - (padding.top_0 + padding.bottom)); +} + +function $importGraph_0(kgraph){ + var elemMap, fgraph; + fgraph = new FGraph; + $copyProperties(fgraph, kgraph); + $setProperty_0(fgraph, ($clinit_InternalProperties_0() , ORIGIN), kgraph); + elemMap = new HashMap; + $transformNodes(kgraph, fgraph, elemMap); + $transformEdges(kgraph, fgraph, elemMap); + return fgraph; +} + +function $transformEdges(parentNode, fgraph, elemMap){ + var kedge, kedge$iterator, klabel, klabel$iterator, knode, knode$iterator, newEdge, newLabel; + for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { + knode = castTo($doNext(knode$iterator), 27); + for (kedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(knode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(kedge$iterator);) { + kedge = castTo($next_0(kedge$iterator), 74); + !kedge.sources && (kedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 4, 7)); + if (!(kedge.sources.size_0 <= 1 && (!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets.size_0 <= 1))) { + throw toJs(new UnsupportedGraphException('Graph must not contain hyperedges.')); + } + if (!$isHierarchical(kedge) && knode != connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 84))) { + newEdge = new FEdge; + $copyProperties(newEdge, kedge); + $setProperty_0(newEdge, ($clinit_InternalProperties_0() , ORIGIN), kedge); + $setSource(newEdge, castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, knode)), 153)); + $setTarget(newEdge, castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 84))), 153)); + $add_3(fgraph.edges, newEdge); + for (klabel$iterator = new AbstractEList$EIterator((!kedge.labels && (kedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, kedge, 1, 7)) , kedge.labels)); klabel$iterator.cursor != klabel$iterator.this$01_2.size_1();) { + klabel = castTo($doNext(klabel$iterator), 135); + newLabel = new FLabel(newEdge, klabel.text_0); + $copyProperties(newLabel, klabel); + $setProperty_0(newLabel, ORIGIN, klabel); + newLabel.size_0.x_0 = $wnd.Math.max(klabel.width_0, 1); + newLabel.size_0.y_0 = $wnd.Math.max(klabel.height, 1); + $refreshPosition(newLabel); + $add_3(fgraph.labels, newLabel); + } + } + } + } +} + +function $transformNodes(parentNode, fgraph, elemMap){ + var index_0, knode, knode$iterator, label_0, newNode, portConstraints; + index_0 = 0; + for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { + knode = castTo($doNext(knode$iterator), 27); + label_0 = ''; + (!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels).size_0 == 0 || (label_0 = castTo($get_20((!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels), 0), 135).text_0); + newNode = new FNode(label_0); + $copyProperties(newNode, knode); + $setProperty_0(newNode, ($clinit_InternalProperties_0() , ORIGIN), knode); + newNode.id_0 = index_0++; + newNode.position.x_0 = knode.x_0 + knode.width_0 / 2; + newNode.position.y_0 = knode.y_0 + knode.height / 2; + newNode.size_0.x_0 = $wnd.Math.max(knode.width_0, 1); + newNode.size_0.y_0 = $wnd.Math.max(knode.height, 1); + $add_3(fgraph.nodes, newNode); + $put_9(elemMap.hashCodeMap, knode, newNode); + portConstraints = castTo($getProperty_0(knode, ($clinit_ForceOptions() , PORT_CONSTRAINTS)), 101); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4) && (portConstraints = FREE); + } +} + +function lambda$0_15(offset_0, kedgeSection_1, bp_2){ + var position; + position = new KVector_2(bp_2.position); + $add_19(position, offset_0); + createBendPoint(kedgeSection_1, position.x_0, position.y_0); +} + +function ElkGraphImporter$lambda$0$Type(offset_0, kedgeSection_1){ + this.offset_0 = offset_0; + this.kedgeSection_1 = kedgeSection_1; +} + +defineClass(1196, 1, $intern_19, ElkGraphImporter$lambda$0$Type); +_.accept = function accept_58(arg0){ + lambda$0_15(this.offset_0, this.kedgeSection_1, castTo(arg0, 250)); +} +; +var Lorg_eclipse_elk_alg_force_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ElkGraphImporter/lambda$0$Type', 1196); +function $layout(this$static, elkGraph, progressMonitor){ + var builder, comp, comp$iterator, components, fgraph; + progressMonitor.begin('ELK Force', 1); + $booleanValue(castToBoolean($getProperty_0(elkGraph, ($clinit_ForceOptions() , OMIT_NODE_MICRO_LAYOUT)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(elkGraph))) , builder)); + fgraph = $importGraph_0(elkGraph); + $setOptions(fgraph); + $updateModel(this$static, castTo($getProperty(fgraph, MODEL_0), 432)); + components = $split_1(this$static.componentsProcessor, fgraph); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 235); + $layout_0(this$static.forceModel, comp, progressMonitor.subTask(1 / components.size_1())); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + progressMonitor.done_1(); +} + +function $setOptions(fgraph){ + var randomSeed, val; + randomSeed = castTo($getProperty(fgraph, ($clinit_ForceOptions() , RANDOM_SEED)), 17); + if (randomSeed) { + val = randomSeed.value_0; + val == 0?$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random):$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(val)); + } + else { + $setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(1)); + } +} + +function $updateModel(this$static, strategy){ + switch (strategy.ordinal) { + case 0: + instanceOf(this$static.forceModel, 641) || (this$static.forceModel = new EadesModel); + break; + case 1: + instanceOf(this$static.forceModel, 642) || (this$static.forceModel = new FruchtermanReingoldModel); + } +} + +function ForceLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; +} + +defineClass(738, 205, $intern_96, ForceLayoutProvider); +_.layout = function layout_0(elkGraph, progressMonitor){ + $layout(this, elkGraph, progressMonitor); +} +; +var Lorg_eclipse_elk_alg_force_ForceLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ForceLayoutProvider', 738); +function FParticle(){ + this.displacement = new KVector; + this.position = new KVector; + this.size_0 = new KVector; +} + +defineClass(309, 137, {3:1, 309:1, 96:1, 137:1}); +var Lorg_eclipse_elk_alg_force_graph_FParticle_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FParticle', 309); +function FBendpoint(edge){ + FParticle.call(this); + this.edge = edge; + $add_3(edge.bendpoints, this); +} + +defineClass(250, 309, {3:1, 250:1, 309:1, 96:1, 137:1}, FBendpoint); +_.toString_0 = function toString_80(){ + var index_0; + if (this.edge) { + index_0 = $indexOf_3(this.edge.bendpoints, this, 0); + return index_0 >= 0?'b' + index_0 + '[' + $toString_10(this.edge) + ']':'b[' + $toString_10(this.edge) + ']'; + } + return 'b_' + getObjectIdentityHashCode(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FBendpoint_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FBendpoint', 250); +function $distributeBendpoints(this$static){ + var bendPoint, bendPoint$iterator, count, incr, pos, sourcePos, targetPos; + count = this$static.bendpoints.array.length; + if (count > 0) { + sourcePos = this$static.source.position; + targetPos = this$static.target.position; + incr = $scale($sub_0(new KVector_1(targetPos.x_0, targetPos.y_0), sourcePos), 1 / (count + 1)); + pos = new KVector_1(sourcePos.x_0, sourcePos.y_0); + for (bendPoint$iterator = new ArrayList$1(this$static.bendpoints); bendPoint$iterator.i < bendPoint$iterator.this$01.array.length;) { + bendPoint = castTo($next_6(bendPoint$iterator), 250); + bendPoint.position.x_0 = pos.x_0 + incr.x_0; + bendPoint.position.y_0 = pos.y_0 + incr.y_0; + $add_19(pos, incr); + } + } +} + +function $getSourcePoint(this$static){ + var v; + v = $sub_0($clone_1(this$static.target.position), this$static.source.position); + clipVector(v, this$static.source.size_0.x_0, this$static.source.size_0.y_0); + return $add_19(v, this$static.source.position); +} + +function $getTargetPoint(this$static){ + var v; + v = $sub_0($clone_1(this$static.source.position), this$static.target.position); + clipVector(v, this$static.target.size_0.x_0, this$static.target.size_0.y_0); + return $add_19(v, this$static.target.position); +} + +function $setSource(this$static, theSource){ + this$static.source = theSource; +} + +function $setTarget(this$static, theTarget){ + this$static.target = theTarget; +} + +function $toString_10(this$static){ + return !!this$static.source && !!this$static.target?$toString_11(this$static.source) + '->' + $toString_11(this$static.target):'e_' + getObjectIdentityHashCode(this$static); +} + +function FEdge(){ + this.bendpoints = new ArrayList; + this.labels = new ArrayList; +} + +defineClass(290, 137, {3:1, 290:1, 96:1, 137:1}, FEdge); +_.toString_0 = function toString_81(){ + return $toString_10(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FEdge_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FEdge', 290); +function $calcAdjacency(this$static){ + var edge, edge$iterator, n; + n = this$static.nodes.array.length; + this$static.adjacency = initMultidimensionalArray(I_classLit, [$intern_16, $intern_49], [53, 28], 15, [n, n], 2); + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 290); + this$static.adjacency[edge.source.id_0][edge.target.id_0] += castTo($getProperty(edge, ($clinit_ForceOptions() , PRIORITY)), 17).value_0; + } +} + +function $getConnection(this$static, particle1, particle2){ + var bpoint1, bpoint2, node1, node2; + if (instanceOf(particle1, 153) && instanceOf(particle2, 153)) { + node1 = castTo(particle1, 153); + node2 = castTo(particle2, 153); + return this$static.adjacency[node1.id_0][node2.id_0] + this$static.adjacency[node2.id_0][node1.id_0]; + } + else if (instanceOf(particle1, 250) && instanceOf(particle2, 250)) { + bpoint1 = castTo(particle1, 250); + bpoint2 = castTo(particle2, 250); + if (bpoint1.edge == bpoint2.edge) { + return castTo($getProperty(bpoint2.edge, ($clinit_ForceOptions() , PRIORITY)), 17).value_0; + } + } + return 0; +} + +function FGraph(){ + this.nodes = new ArrayList; + this.edges = new ArrayList; + this.labels = new ArrayList; + this.bendPoints = new ArrayList; +} + +defineClass(235, 137, {3:1, 235:1, 96:1, 137:1}, FGraph); +var Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FGraph', 235); +function $refreshPosition(this$static){ + var newLabelPosition, placeInline, pos, spacing, src_0, srcToTgt, tgt, toLabelCenter; + placeInline = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_ForceOptions() , EDGE_LABELS_INLINE)))); + src_0 = this$static.edge.source.position; + tgt = this$static.edge.target.position; + if (placeInline) { + srcToTgt = $scale($sub_0(new KVector_1(tgt.x_0, tgt.y_0), src_0), 0.5); + toLabelCenter = $scale($clone_1(this$static.size_0), 0.5); + newLabelPosition = $sub_0($add_19(new KVector_1(src_0.x_0, src_0.y_0), srcToTgt), toLabelCenter); + $set_8(this$static.position, newLabelPosition); + } + else { + spacing = $doubleValue(castToDouble($getProperty(this$static.edge, SPACING_EDGE_LABEL))); + pos = this$static.position; + if (src_0.x_0 >= tgt.x_0) { + if (src_0.y_0 >= tgt.y_0) { + pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; + pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 - spacing - this$static.size_0.y_0; + } + else { + pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; + pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 + spacing; + } + } + else { + if (src_0.y_0 >= tgt.y_0) { + pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; + pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 + spacing; + } + else { + pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; + pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 - spacing - this$static.size_0.y_0; + } + } + } +} + +function FLabel(fedge, text_0){ + FParticle.call(this); + this.edge = fedge; + this.text_0 = text_0; + $add_3(this.edge.labels, this); +} + +defineClass(454, 309, {3:1, 454:1, 309:1, 96:1, 137:1}, FLabel); +_.toString_0 = function toString_82(){ + return this.text_0 == null || this.text_0.length == 0?'l[' + $toString_10(this.edge) + ']':'l_' + this.text_0; +} +; +var Lorg_eclipse_elk_alg_force_graph_FLabel_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FLabel', 454); +function $toString_11(this$static){ + return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; +} + +function FNode(label_0){ + FParticle.call(this); + this.label_0 = label_0; +} + +defineClass(153, 309, {3:1, 153:1, 309:1, 96:1, 137:1}, FNode); +_.toString_0 = function toString_83(){ + return $toString_11(this); +} +; +_.id_0 = 0; +var Lorg_eclipse_elk_alg_force_graph_FNode_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FNode', 153); +function $initialize_0(this$static, fgraph){ + var bends, count, edge, edge$iterator, i, node, node$iterator, pos, posScale; + this$static.graph_0 = fgraph; + this$static.random_0 = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , RANDOM)), 234); + $calcAdjacency(fgraph); + this$static.dispBound = $wnd.Math.max(fgraph.nodes.array.length * 16 + fgraph.edges.array.length, 256); + if (!$booleanValue(castToBoolean($getProperty(fgraph, ($clinit_ForceOptions() , INTERACTIVE))))) { + posScale = this$static.graph_0.nodes.array.length; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 153); + pos = node.position; + pos.x_0 = $nextDouble(this$static.random_0) * posScale; + pos.y_0 = $nextDouble(this$static.random_0) * posScale; + } + } + bends = fgraph.bendPoints; + for (edge$iterator = new ArrayList$1(fgraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 290); + count = castTo($getProperty(edge, REPULSIVE_POWER_0), 17).value_0; + if (count > 0) { + for (i = 0; i < count; i++) { + $add_3(bends, new FBendpoint(edge)); + } + $distributeBendpoints(edge); + } + } +} + +function $iterationDone(this$static){ + var edge, edge$iterator, label_0, label$iterator; + for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 290); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 454); + $refreshPosition(label_0); + } + $distributeBendpoints(edge); + } +} + +function $layout_0(this$static, fgraph, monitor){ + var d, displacement, iterations, u, u$iterator, v, v$iterator, v$iterator0; + monitor.begin('Component Layout', 1); + this$static.initialize(fgraph); + iterations = 0; + while (this$static.moreIterations(iterations) && !monitor.isCanceled()) { + this$static.iterationDone(); + for (v$iterator0 = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(v$iterator0);) { + v = castTo($next_0(v$iterator0), 309); + for (u$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(u$iterator);) { + u = castTo($next_0(u$iterator), 309); + if (u != v) { + displacement = this$static.calcDisplacement(u, v); + !!displacement && $add_19(v.displacement, displacement); + } + } + } + for (v$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(v$iterator);) { + v = castTo($next_0(v$iterator), 309); + d = v.displacement; + $bound(d, -this$static.dispBound, -this$static.dispBound, this$static.dispBound, this$static.dispBound); + $add_19(v.position, d); + d.x_0 = 0; + d.y_0 = 0; + } + ++iterations; + } + monitor.done_1(); +} + +function avoidSamePosition(random, u, v){ + var length_0, orthogonaluV, orthogonalvV, pu, pv, triedForBendPoints, uE, uVector, vE, vVector; + pu = u.position; + pv = v.position; + while (pu.x_0 - pv.x_0 == 0 && pu.y_0 - pv.y_0 == 0) { + triedForBendPoints = false; + if (instanceOf(u, 250) && instanceOf(v, 250) && !triedForBendPoints) { + uE = castTo(u, 250).edge; + uVector = $sub_0(new KVector_2($getTargetPoint(uE)), $getSourcePoint(uE)); + length_0 = 2; + orthogonaluV = new KVector_1(uVector.x_0 / $wnd.Math.sqrt(uVector.x_0 * uVector.x_0 + uVector.y_0 * uVector.y_0) * length_0, -uVector.y_0 / $wnd.Math.sqrt(uVector.x_0 * uVector.x_0 + uVector.y_0 * uVector.y_0) * length_0); + $add_19(pu, orthogonaluV); + vE = castTo(v, 250).edge; + vVector = $sub_0(new KVector_2($getTargetPoint(vE)), $getSourcePoint(vE)); + length_0 = uVector == vVector?-2:2; + orthogonalvV = new KVector_1(vVector.x_0 / $wnd.Math.sqrt(vVector.x_0 * vVector.x_0 + vVector.y_0 * vVector.y_0) * length_0, -(vVector.y_0 / $wnd.Math.sqrt(vVector.x_0 * vVector.x_0 + vVector.y_0 * vVector.y_0)) * length_0); + $add_19(pu, orthogonalvV); + triedForBendPoints = true; + } + else { + pu.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pu.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pv.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pv.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + } + } +} + +defineClass(2100, 1, {}); +_.initialize = function initialize(fgraph){ + $initialize_0(this, fgraph); +} +; +_.iterationDone = function iterationDone(){ + $iterationDone(this); +} +; +_.dispBound = 0; +var Lorg_eclipse_elk_alg_force_model_AbstractForceModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'AbstractForceModel', 2100); +function EadesModel(){ + this.maxIterations = castTo($getDefault(($clinit_ForceOptions() , ITERATIONS_0)), 17).value_0; + this.springLength = $doubleValue(castToDouble($getDefault(SPACING_NODE_NODE))); + this.repulsionFactor = $doubleValue(castToDouble($getDefault(REPULSION_0))); +} + +function attractive(d, s){ + return d > 0?$wnd.Math.log(d / s):-100; +} + +function repulsive(d, r){ + return d > 0?r / (d * d):r * 100; +} + +defineClass(641, 2100, {641:1}, EadesModel); +_.calcDisplacement = function calcDisplacement(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_1(forcee.position), forcer.position); + length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); + d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); + connection = $getConnection(this.graph_0, forcer, forcee); + connection > 0?(force = -attractive(d, this.springLength) * connection):(force = repulsive(d, this.repulsionFactor) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 17).value_0); + $scale(displacement, force / length_0); + return displacement; +} +; +_.initialize = function initialize_0(graph){ + $initialize_0(this, graph); + this.maxIterations = castTo($getProperty(graph, ($clinit_ForceOptions() , ITERATIONS_0)), 17).value_0; + this.springLength = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))); + this.repulsionFactor = $doubleValue(castToDouble($getProperty(graph, REPULSION_0))); +} +; +_.moreIterations = function moreIterations(count){ + return count < this.maxIterations; +} +; +_.maxIterations = 0; +_.repulsionFactor = 0; +_.springLength = 0; +var Lorg_eclipse_elk_alg_force_model_EadesModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'EadesModel', 641); +function FruchtermanReingoldModel(){ + this.temperature = $doubleValue(castToDouble($getDefault(($clinit_ForceOptions() , TEMPERATURE_0)))); +} + +function attractive_0(d, k){ + return d * d / k; +} + +function repulsive_0(d, k){ + return d > 0?k * k / d:k * k * 100; +} + +defineClass(642, 2100, {642:1}, FruchtermanReingoldModel); +_.calcDisplacement = function calcDisplacement_0(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_1(forcee.position), forcer.position); + length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); + d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); + force = repulsive_0(d, this.k) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 17).value_0; + connection = $getConnection(this.graph_0, forcer, forcee); + connection > 0 && (force -= attractive_0(d, this.k) * connection); + $scale(displacement, force * this.temperature / length_0); + return displacement; +} +; +_.initialize = function initialize_1(graph){ + var area, c, n, totalHeight, totalWidth, v, v$iterator; + $initialize_0(this, graph); + this.temperature = $doubleValue(castToDouble($getProperty(graph, ($clinit_ForceOptions() , TEMPERATURE_0)))); + this.threshold = this.temperature / castTo($getProperty(graph, ITERATIONS_0), 17).value_0; + n = graph.nodes.array.length; + totalWidth = 0; + totalHeight = 0; + for (v$iterator = new ArrayList$1(graph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_6(v$iterator), 153); + totalWidth += v.size_0.x_0; + totalHeight += v.size_0.y_0; + } + area = totalWidth * totalHeight; + c = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))) * $intern_94; + this.k = $wnd.Math.sqrt(area / (2 * n)) * c; +} +; +_.iterationDone = function iterationDone_0(){ + $iterationDone(this); + this.temperature -= this.threshold; +} +; +_.moreIterations = function moreIterations_0(count){ + return this.temperature > 0; +} +; +_.k = 0; +_.temperature = 0; +_.threshold = 0; +var Lorg_eclipse_elk_alg_force_model_FruchtermanReingoldModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'FruchtermanReingoldModel', 642); +function $clinit_ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider = emptyMethod; + MODEL_DEFAULT = ($clinit_ForceModelStrategy() , FRUCHTERMAN_REINGOLD); + MODEL = new Property_1('org.eclipse.elk.force.model', MODEL_DEFAULT); + valueOf_3(1); + ITERATIONS = new Property_1('org.eclipse.elk.force.iterations', valueOf_3(300)); + valueOf_3(0); + REPULSIVE_POWER = new Property_1('org.eclipse.elk.force.repulsivePower', valueOf_3(0)); + new ExclusiveBounds$ExclusiveLowerBound; + TEMPERATURE = new Property_1('org.eclipse.elk.force.temperature', $intern_101); + new ExclusiveBounds$ExclusiveLowerBound; + REPULSION = new Property_1('org.eclipse.elk.force.repulsion', 5); + TEMPERATURE_DEP_MODEL_0 = FRUCHTERMAN_REINGOLD; + REPULSION_DEP_MODEL_0 = EADES; +} + +function ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider(); +} + +defineClass(860, 1, $intern_90, ForceMetaDataProvider); +_.apply_4 = function apply_53(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.model'), ''), 'Force Model'), 'Determines the model for force calculation.'), MODEL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.iterations'), ''), 'Iterations'), 'The number of iterations on the force model.'), valueOf_3(300)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsivePower'), ''), 'Repulsive Power'), 'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.temperature'), ''), 'FR Temperature'), 'The temperature is used as a scaling factor for particle displacements.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.force.temperature', 'org.eclipse.elk.force.model', TEMPERATURE_DEP_MODEL_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsion'), ''), 'Eades Repulsion'), "Factor for repulsive forces in Eades' model."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.force.repulsion', 'org.eclipse.elk.force.model', REPULSION_DEP_MODEL_0); + $apply_11((new ForceOptions , registry)); +} +; +var ITERATIONS, MODEL, MODEL_DEFAULT, REPULSION, REPULSION_DEP_MODEL_0, REPULSIVE_POWER, TEMPERATURE, TEMPERATURE_DEP_MODEL_0; +var Lorg_eclipse_elk_alg_force_options_ForceMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceMetaDataProvider', 860); +function $clinit_ForceModelStrategy(){ + $clinit_ForceModelStrategy = emptyMethod; + EADES = new ForceModelStrategy('EADES', 0); + FRUCHTERMAN_REINGOLD = new ForceModelStrategy('FRUCHTERMAN_REINGOLD', 1); +} + +function ForceModelStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_23(name_0){ + $clinit_ForceModelStrategy(); + return valueOf(($clinit_ForceModelStrategy$Map() , $MAP_13), name_0); +} + +function values_31(){ + $clinit_ForceModelStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_37, 432, 0, [EADES, FRUCHTERMAN_REINGOLD]); +} + +defineClass(432, 22, {3:1, 34:1, 22:1, 432:1}, ForceModelStrategy); +var EADES, FRUCHTERMAN_REINGOLD; +var Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.force.options', 'ForceModelStrategy', 432, Ljava_lang_Enum_2_classLit, values_31, valueOf_23); +function $clinit_ForceModelStrategy$Map(){ + $clinit_ForceModelStrategy$Map = emptyMethod; + $MAP_13 = createValueOfMap(($clinit_ForceModelStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_37, 432, 0, [EADES, FRUCHTERMAN_REINGOLD]))); +} + +var $MAP_13; +function $clinit_ForceOptions(){ + $clinit_ForceOptions = emptyMethod; + PRIORITY = new Property_2(($clinit_CoreOptions() , PRIORITY_3), valueOf_3(1)); + SPACING_NODE_NODE = new Property_2(SPACING_NODE_NODE_6, 80); + SPACING_EDGE_LABEL = new Property_2(SPACING_EDGE_LABEL_1, 5); + ASPECT_RATIO_0 = new Property_2(ASPECT_RATIO_5, $intern_102); + RANDOM_SEED = new Property_2(RANDOM_SEED_1, valueOf_3(1)); + SEPARATE_CONNECTED_COMPONENTS = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + PADDING_DEFAULT = new ElkPadding_0(50); + PADDING_0 = new Property_2(PADDING_6, PADDING_DEFAULT); + INTERACTIVE = INTERACTIVE_8; + PORT_CONSTRAINTS = PORT_CONSTRAINTS_1; + EDGE_LABELS_INLINE = new Property_2(EDGE_LABELS_INLINE_1, false); + OMIT_NODE_MICRO_LAYOUT = OMIT_NODE_MICRO_LAYOUT_4; + NODE_SIZE_FIXED_GRAPH_SIZE = NODE_SIZE_FIXED_GRAPH_SIZE_3; + NODE_SIZE_OPTIONS = NODE_SIZE_OPTIONS_6; + NODE_SIZE_CONSTRAINTS = NODE_SIZE_CONSTRAINTS_6; + NODE_LABELS_PLACEMENT = NODE_LABELS_PLACEMENT_5; + PORT_LABELS_PLACEMENT = PORT_LABELS_PLACEMENT_5; + MODEL_0 = ($clinit_ForceMetaDataProvider() , MODEL); + TEMPERATURE_0 = TEMPERATURE; + ITERATIONS_0 = ITERATIONS; + REPULSION_0 = REPULSION; + REPULSIVE_POWER_0 = REPULSIVE_POWER; + TOPDOWN_LAYOUT = TOPDOWN_LAYOUT_2; + TOPDOWN_SCALE_FACTOR = TOPDOWN_SCALE_FACTOR_2; + TOPDOWN_HIERARCHICAL_NODE_WIDTH = TOPDOWN_HIERARCHICAL_NODE_WIDTH_2; + TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO = TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_2; + TOPDOWN_NODE_TYPE_DEFAULT = ($clinit_TopdownNodeTypes() , HIERARCHICAL_NODE); + new Property_2(TOPDOWN_NODE_TYPE, TOPDOWN_NODE_TYPE_DEFAULT); +} + +function $apply_11(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.force'), 'ELK Force'), 'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'), new ForceOptions$ForceFactory), 'org.eclipse.elk.force'), of_2(($clinit_GraphFeature() , MULTI_EDGES), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_37, 245, 0, [EDGE_LABELS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.priority', valueOf_3(1)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.nodeNode', 80); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.edgeLabel', 5); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.randomSeed', valueOf_3(1)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.padding', PADDING_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.edgeLabels.inline', false); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.model', $getDefault(MODEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.temperature', $getDefault(TEMPERATURE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.iterations', $getDefault(ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsion', $getDefault(REPULSION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsivePower', $getDefault(REPULSIVE_POWER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.topdownLayout', $getDefault(TOPDOWN_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.topdown.scaleFactor', $getDefault(TOPDOWN_SCALE_FACTOR)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.topdown.hierarchicalNodeWidth', $getDefault(TOPDOWN_HIERARCHICAL_NODE_WIDTH)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.topdown.hierarchicalNodeAspectRatio', $getDefault(TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.topdown.nodeType', TOPDOWN_NODE_TYPE_DEFAULT); +} + +function ForceOptions(){ + $clinit_ForceOptions(); +} + +defineClass($intern_46, 1, $intern_90, ForceOptions); +_.apply_4 = function apply_54(registry){ + $apply_11(registry); +} +; +var ASPECT_RATIO_0, EDGE_LABELS_INLINE, INTERACTIVE, ITERATIONS_0, MODEL_0, NODE_LABELS_PLACEMENT, NODE_SIZE_CONSTRAINTS, NODE_SIZE_FIXED_GRAPH_SIZE, NODE_SIZE_OPTIONS, OMIT_NODE_MICRO_LAYOUT, PADDING_0, PADDING_DEFAULT, PORT_CONSTRAINTS, PORT_LABELS_PLACEMENT, PRIORITY, RANDOM_SEED, REPULSION_0, REPULSIVE_POWER_0, SEPARATE_CONNECTED_COMPONENTS, SPACING_EDGE_LABEL, SPACING_NODE_NODE, TEMPERATURE_0, TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO, TOPDOWN_HIERARCHICAL_NODE_WIDTH, TOPDOWN_LAYOUT, TOPDOWN_NODE_TYPE_DEFAULT, TOPDOWN_SCALE_FACTOR; +var Lorg_eclipse_elk_alg_force_options_ForceOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions', $intern_46); +function ForceOptions$ForceFactory(){ +} + +defineClass(1001, 1, {}, ForceOptions$ForceFactory); +_.create_0 = function create_3(){ + var provider; + return provider = new ForceLayoutProvider , provider; +} +; +_.destroy = function destroy_0(obj){ +} +; +var Lorg_eclipse_elk_alg_force_options_ForceOptions$ForceFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions/ForceFactory', 1001); +function $clinit_InternalProperties_0(){ + $clinit_InternalProperties_0 = emptyMethod; + ORIGIN = new Property('origin'); + RANDOM = new Property('random'); + BB_UPLEFT = new Property('boundingBox.upLeft'); + BB_LOWRIGHT = new Property('boundingBox.lowRight'); +} + +var BB_LOWRIGHT, BB_UPLEFT, ORIGIN, RANDOM; +function $clinit_StressMetaDataProvider(){ + $clinit_StressMetaDataProvider = emptyMethod; + FIXED = new Property_1('org.eclipse.elk.stress.fixed', ($clinit_Boolean() , false)); + DESIRED_EDGE_LENGTH = new Property_1('org.eclipse.elk.stress.desiredEdgeLength', 100); + DIMENSION_DEFAULT = ($clinit_StressMajorization$Dimension() , XY); + DIMENSION = new Property_1('org.eclipse.elk.stress.dimension', DIMENSION_DEFAULT); + EPSILON = new Property_1('org.eclipse.elk.stress.epsilon', $intern_101); + ITERATION_LIMIT = new Property_1('org.eclipse.elk.stress.iterationLimit', valueOf_3($intern_0)); +} + +function StressMetaDataProvider(){ + $clinit_StressMetaDataProvider(); +} + +defineClass(861, 1, $intern_90, StressMetaDataProvider); +_.apply_4 = function apply_55(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.fixed'), ''), 'Fixed Position'), 'Prevent that the node is moved by the layout algorithm.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.desiredEdgeLength'), ''), 'Desired Edge Length'), 'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'), 100), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [EDGES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.dimension'), ''), 'Layout Dimension'), 'Dimensions that are permitted to be altered during layout.'), DIMENSION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.epsilon'), ''), 'Stress Epsilon'), 'Termination criterion for the iterative process.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.iterationLimit'), ''), 'Iteration Limit'), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), valueOf_3($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $apply_12((new StressOptions , registry)); +} +; +var DESIRED_EDGE_LENGTH, DIMENSION, DIMENSION_DEFAULT, EPSILON, FIXED, ITERATION_LIMIT; +var Lorg_eclipse_elk_alg_force_options_StressMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressMetaDataProvider', 861); +function $clinit_StressOptions(){ + $clinit_StressOptions = emptyMethod; + INTERACTIVE_0 = ($clinit_CoreOptions() , INTERACTIVE_8); + new Property_2(EDGE_LABELS_INLINE_1, ($clinit_Boolean() , true)); + NODE_SIZE_CONSTRAINTS_0 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_0 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_0 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_0 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_0 = PORT_LABELS_PLACEMENT_5; + FIXED_0 = ($clinit_StressMetaDataProvider() , FIXED); + DIMENSION_0 = DIMENSION; + EPSILON_0 = EPSILON; + ITERATION_LIMIT_0 = ITERATION_LIMIT; + DESIRED_EDGE_LENGTH_0 = DESIRED_EDGE_LENGTH; +} + +function $apply_12(registry){ + $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.stress'), 'ELK Stress'), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new StressOptions$StressFactory), 'org.eclipse.elk.force'))); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.edgeLabels.inline', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.fixed', $getDefault(FIXED_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.dimension', $getDefault(DIMENSION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.epsilon', $getDefault(EPSILON_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.iterationLimit', $getDefault(ITERATION_LIMIT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.desiredEdgeLength', $getDefault(DESIRED_EDGE_LENGTH_0)); +} + +function StressOptions(){ + $clinit_StressOptions(); +} + +defineClass(1004, 1, $intern_90, StressOptions); +_.apply_4 = function apply_56(registry){ + $apply_12(registry); +} +; +var DESIRED_EDGE_LENGTH_0, DIMENSION_0, EPSILON_0, FIXED_0, INTERACTIVE_0, ITERATION_LIMIT_0, NODE_LABELS_PLACEMENT_0, NODE_SIZE_CONSTRAINTS_0, NODE_SIZE_MINIMUM, NODE_SIZE_OPTIONS_0, OMIT_NODE_MICRO_LAYOUT_0, PORT_LABELS_PLACEMENT_0; +var Lorg_eclipse_elk_alg_force_options_StressOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions', 1004); +function StressOptions$StressFactory(){ +} + +defineClass(1005, 1, {}, StressOptions$StressFactory); +_.create_0 = function create_4(){ + var provider; + return provider = new StressLayoutProvider , provider; +} +; +_.destroy = function destroy_1(obj){ +} +; +var Lorg_eclipse_elk_alg_force_options_StressOptions$StressFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions/StressFactory', 1005); +function StressLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; + this.stressMajorization = new StressMajorization; +} + +defineClass(1110, 205, $intern_96, StressLayoutProvider); +_.layout = function layout_1(layoutGraph, progressMonitor){ + var builder, components, fgraph, subGraph, subGraph$iterator; + progressMonitor.begin('ELK Stress', 1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_StressOptions() , INTERACTIVE_0))))?$booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_0))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)):$layout(new ForceLayoutProvider, layoutGraph, progressMonitor.subTask(1)); + fgraph = $importGraph_0(layoutGraph); + components = $split_1(this.componentsProcessor, fgraph); + for (subGraph$iterator = components.iterator_0(); subGraph$iterator.hasNext_0();) { + subGraph = castTo(subGraph$iterator.next_1(), 235); + if (subGraph.nodes.array.length <= 1) { + continue; + } + $initialize_1(this.stressMajorization, subGraph); + $execute_1(this.stressMajorization); + $forEach_1(subGraph.labels, new StressLayoutProvider$lambda$0$Type); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider', 1110); +function StressLayoutProvider$lambda$0$Type(){ +} + +defineClass(1111, 1, $intern_19, StressLayoutProvider$lambda$0$Type); +_.accept = function accept_59(arg0){ + $refreshPosition(castTo(arg0, 454)); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider/lambda$0$Type', 1111); +function $computeNewPosition(this$static, u){ + var eucDist, v, v$iterator, weightSum, wij, xDisp, yDisp; + weightSum = 0; + xDisp = 0; + yDisp = 0; + for (v$iterator = new ArrayList$1(this$static.graph_0.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_6(v$iterator), 153); + if (u == v) { + continue; + } + wij = this$static.w[u.id_0][v.id_0]; + weightSum += wij; + eucDist = $distance_0(u.position, v.position); + eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , Y) && (xDisp += wij * (v.position.x_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.x_0 - v.position.x_0) / eucDist)); + eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , X) && (yDisp += wij * (v.position.y_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.y_0 - v.position.y_0) / eucDist)); + } + switch (this$static.dim.ordinal) { + case 1: + return new KVector_1(xDisp / weightSum, u.position.y_0); + case 2: + return new KVector_1(u.position.x_0, yDisp / weightSum); + default:return new KVector_1(xDisp / weightSum, yDisp / weightSum); + } +} + +function $computeStress(this$static){ + var eucDisplacement, eucDist, i, j, nodes, stress, u, v; + stress = 0; + nodes = this$static.graph_0.nodes; + for (i = 0; i < nodes.array.length; ++i) { + u = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 153)); + for (j = i + 1; j < nodes.array.length; ++j) { + v = (checkCriticalElementIndex(j, nodes.array.length) , castTo(nodes.array[j], 153)); + eucDist = $distance_0(u.position, v.position); + eucDisplacement = eucDist - this$static.apsp[u.id_0][v.id_0]; + stress += this$static.w[u.id_0][v.id_0] * eucDisplacement * eucDisplacement; + } + } + return stress; +} + +function $dijkstra(this$static, source, dist){ + var d, e, e$iterator, el, mark, n, n$iterator, nodes, u, v; + nodes = new PriorityQueue(new StressMajorization$lambda$0$Type(dist)); + mark = initUnidimensionalArray(Z_classLit, $intern_91, 28, this$static.graph_0.nodes.array.length, 16, 1); + fill0_3(mark, mark.length); + dist[source.id_0] = 0; + for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 153); + n.id_0 != source.id_0 && (dist[n.id_0] = $intern_0); + checkCriticalState_0($offer(nodes, n), 'Unable to add element to queue'); + } + while (nodes.heap.array.length != 0) { + u = castTo($poll_0(nodes), 153); + mark[u.id_0] = true; + for (e$iterator = $listIterator_0(new LinkedListMultimap$1(this$static.connectedEdges, u), 0); e$iterator.next_0;) { + e = castTo($next_2(e$iterator), 290); + v = $getOther_0(e, u); + if (mark[v.id_0]) { + continue; + } + $hasProperty(e, ($clinit_StressOptions() , DESIRED_EDGE_LENGTH_0))?(el = $doubleValue(castToDouble($getProperty(e, DESIRED_EDGE_LENGTH_0)))):(el = this$static.desiredEdgeLength); + d = dist[u.id_0] + el; + if (d < dist[v.id_0]) { + dist[v.id_0] = d; + $remove_25(nodes, v); + checkCriticalState_0($offer(nodes, v), 'Unable to add element to queue'); + } + } + } +} + +function $done(this$static, count, prevStress, curStress){ + return prevStress == 0 || (prevStress - curStress) / prevStress < this$static.epsilon || count >= this$static.iterationLimit; +} + +function $execute_1(this$static){ + var count, curStress, newPos, prevStress, u, u$iterator; + if (this$static.graph_0.nodes.array.length <= 1) { + return; + } + count = 0; + prevStress = $computeStress(this$static); + curStress = $intern_60; + do { + count > 0 && (prevStress = curStress); + for (u$iterator = new ArrayList$1(this$static.graph_0.nodes); u$iterator.i < u$iterator.this$01.array.length;) { + u = castTo($next_6(u$iterator), 153); + if ($booleanValue(castToBoolean($getProperty(u, ($clinit_StressOptions() , FIXED_0))))) { + continue; + } + newPos = $computeNewPosition(this$static, u); + $add_19($reset_5(u.position), newPos); + } + curStress = $computeStress(this$static); + } + while (!$done(this$static, count++, prevStress, curStress)); +} + +function $getOther_0(edge, one){ + if (edge.source == one) { + return edge.target; + } + else if (edge.target == one) { + return edge.source; + } + else { + throw toJs(new IllegalArgumentException_0("Node 'one' must be either source or target of edge 'edge'.")); + } +} + +function $initialize_1(this$static, fgraph){ + var dij, edge, edge$iterator, i, j, n, source, source$iterator, wij; + if (fgraph.nodes.array.length <= 1) { + return; + } + this$static.graph_0 = fgraph; + this$static.dim = castTo($getProperty(this$static.graph_0, ($clinit_StressOptions() , DIMENSION_0)), 391); + this$static.iterationLimit = castTo($getProperty(this$static.graph_0, ITERATION_LIMIT_0), 17).value_0; + this$static.epsilon = $doubleValue(castToDouble($getProperty(this$static.graph_0, EPSILON_0))); + this$static.desiredEdgeLength = $doubleValue(castToDouble($getProperty(this$static.graph_0, DESIRED_EDGE_LENGTH_0))); + $clear_3(this$static.connectedEdges); + for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 290); + $addNode(this$static.connectedEdges, edge.source, edge, null); + $addNode(this$static.connectedEdges, edge.target, edge, null); + } + n = this$static.graph_0.nodes.array.length; + this$static.apsp = initMultidimensionalArray(D_classLit, [$intern_16, $intern_66], [109, 28], 15, [n, n], 2); + for (source$iterator = new ArrayList$1(this$static.graph_0.nodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 153); + $dijkstra(this$static, source, this$static.apsp[source.id_0]); + } + this$static.w = initMultidimensionalArray(D_classLit, [$intern_16, $intern_66], [109, 28], 15, [n, n], 2); + for (i = 0; i < n; ++i) { + for (j = 0; j < n; ++j) { + dij = this$static.apsp[i][j]; + wij = 1 / (dij * dij); + this$static.w[i][j] = wij; + } + } +} + +function StressMajorization(){ + this.connectedEdges = new LinkedListMultimap; +} + +function lambda$0_16(dist_0, n1_1, n2_2){ + return compare_4(dist_0[n1_1.id_0], dist_0[n2_2.id_0]); +} + +defineClass(1002, 1, {}, StressMajorization); +_.desiredEdgeLength = 0; +_.epsilon = 0; +_.iterationLimit = 0; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization', 1002); +function $clinit_StressMajorization$Dimension(){ + $clinit_StressMajorization$Dimension = emptyMethod; + XY = new StressMajorization$Dimension('XY', 0); + X = new StressMajorization$Dimension('X', 1); + Y = new StressMajorization$Dimension('Y', 2); +} + +function StressMajorization$Dimension(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_24(name_0){ + $clinit_StressMajorization$Dimension(); + return valueOf(($clinit_StressMajorization$Dimension$Map() , $MAP_14), name_0); +} + +function values_32(){ + $clinit_StressMajorization$Dimension(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_37, 391, 0, [XY, X, Y]); +} + +defineClass(391, 22, {3:1, 34:1, 22:1, 391:1}, StressMajorization$Dimension); +var X, XY, Y; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit = createForEnum('org.eclipse.elk.alg.force.stress', 'StressMajorization/Dimension', 391, Ljava_lang_Enum_2_classLit, values_32, valueOf_24); +function $clinit_StressMajorization$Dimension$Map(){ + $clinit_StressMajorization$Dimension$Map = emptyMethod; + $MAP_14 = createValueOfMap(($clinit_StressMajorization$Dimension() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_37, 391, 0, [XY, X, Y]))); +} + +var $MAP_14; +function StressMajorization$lambda$0$Type(dist_0){ + this.dist_0 = dist_0; +} + +defineClass(1003, 1, $intern_88, StressMajorization$lambda$0$Type); +_.compare_1 = function compare_29(arg0, arg1){ + return lambda$0_16(this.dist_0, castTo(arg0, 153), castTo(arg1, 153)); +} +; +_.equals_0 = function equals_81(other){ + return this === other; +} +; +_.reversed = function reversed_21(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization/lambda$0$Type', 1003); +function $collectAllGraphsBottomUp(root){ + var collectedGraphs, continueSearchingTheseGraphs, nestedGraph, nextGraph, node, node$iterator; + collectedGraphs = new ArrayDeque; + continueSearchingTheseGraphs = new ArrayDeque; + $addFirst(collectedGraphs, root); + $addFirst(continueSearchingTheseGraphs, root); + while (continueSearchingTheseGraphs.head != continueSearchingTheseGraphs.tail) { + nextGraph = castTo($removeFirst(continueSearchingTheseGraphs), 36); + for (node$iterator = new ArrayList$1(nextGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.nestedGraph) { + nestedGraph = node.nestedGraph; + $addFirst(collectedGraphs, nestedGraph); + $addFirst(continueSearchingTheseGraphs, nestedGraph); + } + } + } + return collectedGraphs; +} + +function $doCompoundLayout(this$static, lgraph, monitor){ + var theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + theMonitor.begin('Layered layout', 2); + $process_1(this$static.compoundGraphPreprocessor, lgraph, theMonitor.subTask(1)); + $hierarchicalLayout(this$static, lgraph, theMonitor.subTask(1)); + $process_0(lgraph, theMonitor.subTask(1)); + theMonitor.done_1(); +} + +function $doLayout(this$static, lgraph, monitor){ + var comp, comp$iterator, compWork, components, theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + theMonitor.begin('Layered layout', 1); + $prepareGraphForLayout(this$static.graphConfigurator, lgraph); + components = $split_2(this$static.componentsProcessor, lgraph); + if (components.size_1() == 1) { + $layout_1(castTo(components.get_0(0), 36), theMonitor); + } + else { + compWork = 1 / components.size_1(); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 36); + if (monitor.isCanceled()) { + return; + } + $layout_1(comp, theMonitor.subTask(compWork)); + } + } + $combine(this$static.componentsProcessor, components, lgraph); + $resizeGraph(lgraph); + theMonitor.done_1(); +} + +function $hierarchicalLayout(this$static, lgraph, monitor){ + var algorithm, g, g$iterator, graph, graphAndAlgorithm, graphAndAlgorithm$iterator, graphs, graphsAndAlgorithms, processor, processors, rootProcessors, slotIndex, work, parentCms, rootType; + graphs = $collectAllGraphsBottomUp(lgraph); + parentCms = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 322); + $forEach_0(graphs, new ElkLayered$lambda$0$Type(parentCms)); + rootType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 299); + $forEach_0(graphs, new ElkLayered$lambda$1$Type(rootType)); + work = 0; + graphsAndAlgorithms = new ArrayList; + for (g$iterator = new ArrayDeque$IteratorImpl(graphs); g$iterator.currentIndex != g$iterator.fence;) { + g = castTo($next_5(g$iterator), 36); + $prepareGraphForLayout(this$static.graphConfigurator, g); + processors = castTo($getProperty(g, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + work += processors.size_1(); + algorithm = processors.iterator_0(); + $add_3(graphsAndAlgorithms, new Pair(g, algorithm)); + } + monitor.begin('Recursive hierarchical layout', work); + slotIndex = 0; + rootProcessors = castTo(castTo($get_11(graphsAndAlgorithms, graphsAndAlgorithms.array.length - 1), 42).second, 51); + while (rootProcessors.hasNext_0()) { + for (graphAndAlgorithm$iterator = new ArrayList$1(graphsAndAlgorithms); graphAndAlgorithm$iterator.i < graphAndAlgorithm$iterator.this$01.array.length;) { + graphAndAlgorithm = castTo($next_6(graphAndAlgorithm$iterator), 42); + processors = castTo(graphAndAlgorithm.second, 51); + graph = castTo(graphAndAlgorithm.first, 36); + while (processors.hasNext_0()) { + processor = castTo(processors.next_1(), 47); + if (instanceOf(processor, 514)) { + if (!graph.parentNode) { + processor.process(graph, monitor.subTask(1)); + ++slotIndex; + break; + } + else { + break; + } + } + else { + processor.process(graph, monitor.subTask(1)); + ++slotIndex; + } + } + } + } + monitor.done_1(); +} + +function $layout_1(lgraph, monitor){ + var algorithm, gwtDoesntSupportPrintf, layer, layer$iterator, monitorProgress, monitorWasAlreadyRunning, node, node$iterator, processor, processor$iterator, processor$iterator0, slot, slotIndex; + monitorWasAlreadyRunning = monitor.isRunning(); + monitorWasAlreadyRunning || monitor.begin('Component Layout', 1); + algorithm = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + monitorProgress = 1 / algorithm.size_1(); + if (monitor.isLoggingEnabled()) { + monitor.log_0('ELK Layered uses the following ' + algorithm.size_1() + ' modules:'); + slot = 0; + for (processor$iterator0 = algorithm.iterator_0(); processor$iterator0.hasNext_0();) { + processor = castTo(processor$iterator0.next_1(), 47); + gwtDoesntSupportPrintf = (slot < 10?'0':'') + slot++; + monitor.log_0(' Slot ' + gwtDoesntSupportPrintf + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(processor))); + } + } + slotIndex = 0; + for (processor$iterator = algorithm.iterator_0(); processor$iterator.hasNext_0();) { + processor = castTo(processor$iterator.next_1(), 47); + if (monitor.isCanceled()) { + return; + } + processor.process(lgraph, monitor.subTask(monitorProgress)); + ++slotIndex; + } + for (layer$iterator = new ArrayList$1(lgraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + $addAll_2(lgraph.layerlessNodes, layer.nodes); + layer.nodes.array.length = 0; + } + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setLayer_0(node, null); + } + lgraph.layers.array.length = 0; + monitorWasAlreadyRunning || monitor.done_1(); +} + +function $resizeGraph(lgraph){ + var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); + sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); + calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + adjustedSize = new KVector_2(calculatedSize); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); + adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); + } + $booleanValue(castToBoolean($getProperty(lgraph, NODE_SIZE_FIXED_GRAPH_SIZE_0))) || $resizeGraphNoReallyIMeanIt(lgraph, calculatedSize, adjustedSize); +} + +function $resizeGraphNoReallyIMeanIt(lgraph, oldSize, newSize){ + var contentAlignment, extPortSide, lPadding, node, node$iterator; + contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 64); + extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); + } + } + } + lPadding = lgraph.padding; + lgraph.size_0.x_0 = newSize.x_0 - lPadding.left - lPadding.right; + lgraph.size_0.y_0 = newSize.y_0 - lPadding.top_0 - lPadding.bottom; +} + +function ElkLayered(){ + this.graphConfigurator = new GraphConfigurator; + this.componentsProcessor = new ComponentsProcessor_0; + this.compoundGraphPreprocessor = new CompoundGraphPreprocessor; + $clinit_CompoundGraphPostprocessor(); +} + +function lambda$0_17(parentCms_0, child_1){ + var childCms; + childCms = castTo($getProperty(child_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 322); + if (childCms != parentCms_0) { + throw toJs(new UnsupportedGraphException('The hierarchy aware processor ' + childCms + ' in child node ' + child_1 + ' is only allowed if the root node specifies the same hierarchical processor.')); + } +} + +function lambda$1_4(rootType_0, g_1){ + return $setProperty_0(g_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), rootType_0); +} + +defineClass(1192, 1, {}, ElkLayered); +var Lorg_eclipse_elk_alg_layered_ElkLayered_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered', 1192); +function ElkLayered$lambda$0$Type(parentCms_0){ + this.parentCms_0 = parentCms_0; +} + +defineClass(1193, 1, $intern_19, ElkLayered$lambda$0$Type); +_.accept = function accept_60(arg0){ + lambda$0_17(this.parentCms_0, castTo(arg0, 36)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$0$Type', 1193); +function ElkLayered$lambda$1$Type(rootType_0){ + this.rootType_0 = rootType_0; +} + +defineClass(1194, 1, $intern_19, ElkLayered$lambda$1$Type); +_.accept = function accept_61(arg0){ + lambda$1_4(this.rootType_0, castTo(arg0, 36)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$1$Type', 1194); +function $clinit_GraphConfigurator(){ + $clinit_GraphConfigurator = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , INNERMOST_NODE_MARGIN_CALCULATOR)), P4_NODE_PLACEMENT, LABEL_AND_NODE_SIZE_PROCESSOR), P5_EDGE_ROUTING, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR), P5_EDGE_ROUTING, END_LABEL_SORTER); + LABEL_MANAGEMENT_ADDITIONS = $addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, CENTER_LABEL_MANAGEMENT_PROCESSOR), P4_NODE_PLACEMENT, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR); + HIERARCHICAL_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HIERARCHICAL_NODE_RESIZER); +} + +function $copyPortConstraints(this$static, node){ + var nestedGraph, originalPortconstraints; + originalPortconstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS), originalPortconstraints); + nestedGraph = node.nestedGraph; + !!nestedGraph && ($forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)) , $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static))); +} + +function $getPhaseIndependentLayoutProcessorConfiguration(lgraph){ + var configuration, graphProperties, greedySwitchType, hierarchyHandling, internalGreedyType; + graphProperties = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = createFrom_0(BASELINE_PROCESSING_CONFIGURATION); + hierarchyHandling = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING)), 346); + hierarchyHandling == ($clinit_HierarchyHandling() , INCLUDE_CHILDREN) && $addAll_6(configuration, HIERARCHICAL_ADDITIONS); + $booleanValue(castToBoolean($getProperty(lgraph, FEEDBACK_EDGES_0)))?$addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)):$addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)); + $getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) != null && $addAll_6(configuration, LABEL_MANAGEMENT_ADDITIONS); + ($booleanValue(castToBoolean($getProperty(lgraph, INTERACTIVE_LAYOUT))) || $booleanValue(castToBoolean($getProperty(lgraph, GENERATE_POSITION_AND_LAYER_IDS_0)))) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , CONSTRAINTS_POSTPROCESSOR)); + switch (castTo($getProperty(lgraph, DIRECTION), 88).ordinal) { + case 2: + case 3: + case 4: + $addAfter($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , DIRECTION_PREPROCESSOR)), P5_EDGE_ROUTING, DIRECTION_POSTPROCESSOR); + } + graphProperties.contains(($clinit_GraphProperties() , COMMENTS)) && $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , COMMENT_PREPROCESSOR)), P4_NODE_PLACEMENT, COMMENT_NODE_MARGIN_CALCULATOR), P5_EDGE_ROUTING, COMMENT_POSTPROCESSOR); + maskUndefined($getProperty(lgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) !== maskUndefined(($clinit_NodePromotionStrategy() , NONE_9)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , NODE_PROMOTION)); + if (graphProperties.contains(PARTITIONS)) { + $addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PARTITION_PREPROCESSOR)); + $addBefore(configuration, P2_LAYERING, PARTITION_MIDPROCESSOR); + $addBefore(configuration, P3_NODE_ORDERING, PARTITION_POSTPROCESSOR); + } + maskUndefined($getProperty(lgraph, COMPACTION_POST_COMPACTION_STRATEGY_0)) !== maskUndefined(($clinit_GraphCompactionStrategy() , NONE_5)) && maskUndefined($getProperty(lgraph, EDGE_ROUTING)) !== maskUndefined(($clinit_EdgeRouting() , POLYLINE)) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HORIZONTAL_COMPACTOR)); + $booleanValue(castToBoolean($getProperty(lgraph, HIGH_DEGREE_NODES_TREATMENT_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , HIGH_DEGREE_NODE_LAYER_PROCESSOR)); + $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SEMI_INTERACTIVE_CROSSMIN_PROCESSOR)); + if (activateGreedySwitchFor(lgraph)) { + maskUndefined($getProperty(lgraph, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN)?(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 299)):(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 299)); + internalGreedyType = greedySwitchType == ($clinit_GreedySwitchType() , ONE_SIDED)?($clinit_IntermediateProcessorStrategy() , ONE_SIDED_GREEDY_SWITCH):($clinit_IntermediateProcessorStrategy() , TWO_SIDED_GREEDY_SWITCH); + $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), internalGreedyType); + } + switch (castTo($getProperty(lgraph, WRAPPING_STRATEGY_0), 388).ordinal) { + case 1: + $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , SINGLE_EDGE_GRAPH_WRAPPER)); + break; + case 2: + $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , BREAKING_POINT_INSERTER)), P4_NODE_PLACEMENT, BREAKING_POINT_PROCESSOR), P5_EDGE_ROUTING, BREAKING_POINT_REMOVER); + } + maskUndefined($getProperty(lgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SORT_BY_INPUT_ORDER_OF_MODEL)); + return configuration; +} + +function $prepareGraphForLayout(this$static, lgraph){ + var edgeSpacing, direction, randomSeed, favorStraightness, spacings; + edgeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + edgeSpacing < 2 && $setProperty_0(lgraph, SPACING_EDGE_EDGE, 2); + direction = castTo($getProperty(lgraph, DIRECTION), 88); + direction == ($clinit_Direction_0() , UNDEFINED_2) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + randomSeed = castTo($getProperty(lgraph, RANDOM_SEED_0), 17); + randomSeed.value_0 == 0?$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random):$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random_0(randomSeed.value_0)); + favorStraightness = castToBoolean($getProperty(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); + favorStraightness == null && $setProperty_0(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, ($clinit_Boolean() , maskUndefined($getProperty(lgraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))?true:false)); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static)); + spacings = new Spacings(lgraph); + $setProperty_0(lgraph, ($clinit_InternalProperties_1() , SPACINGS), spacings); + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), castTo($getProperty(lgraph, CYCLE_BREAKING_STRATEGY_0), 188)); + $setPhase(this$static.algorithmAssembler, P2_LAYERING, castTo($getProperty(lgraph, LAYERING_STRATEGY_0), 188)); + $setPhase(this$static.algorithmAssembler, P3_NODE_ORDERING, castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 188)); + $setPhase(this$static.algorithmAssembler, P4_NODE_PLACEMENT, castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 188)); + $setPhase(this$static.algorithmAssembler, P5_EDGE_ROUTING, factoryFor(castTo($getProperty(lgraph, EDGE_ROUTING), 223))); + $addProcessorConfiguration(this$static.algorithmAssembler, $getPhaseIndependentLayoutProcessorConfiguration(lgraph)); + $setProperty_0(lgraph, PROCESSORS, $build_0(this$static.algorithmAssembler, lgraph)); +} + +function GraphConfigurator(){ + $clinit_GraphConfigurator(); + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit); +} + +function activateGreedySwitchFor(lgraph){ + var activationThreshold, graphSize, greedySwitchType, interactiveCrossMin; + if (maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))) { + return !lgraph.parentNode && maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)) !== maskUndefined(($clinit_GreedySwitchType() , OFF)); + } + greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 299); + interactiveCrossMin = $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) || maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0)) === maskUndefined(($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1)); + activationThreshold = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0), 17).value_0; + graphSize = lgraph.layerlessNodes.array.length; + return !interactiveCrossMin && greedySwitchType != ($clinit_GreedySwitchType() , OFF) && (activationThreshold == 0 || activationThreshold > graphSize); +} + +defineClass(1281, 1, {}, GraphConfigurator); +var BASELINE_PROCESSING_CONFIGURATION, HIERARCHICAL_ADDITIONS, LABEL_MANAGEMENT_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator', 1281); +function GraphConfigurator$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(770, 1, $intern_19, GraphConfigurator$lambda$0$Type); +_.accept = function accept_62(arg0){ + $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$0$Type', 770); +function GraphConfigurator$lambda$1$Type(){ +} + +defineClass(771, 1, {}, GraphConfigurator$lambda$1$Type); +_.apply_0 = function apply_57(arg0){ + return $clinit_GraphConfigurator() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$1$Type', 771); +function GraphConfigurator$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(772, 1, $intern_19, GraphConfigurator$lambda$2$Type); +_.accept = function accept_63(arg0){ + $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$2$Type', 772); +function LayeredLayoutProvider(){ + this.elkLayered = new ElkLayered; +} + +defineClass(1109, 205, $intern_96, LayeredLayoutProvider); +_.layout = function layout_2(elkgraph, progressMonitor){ + var layeredGraph; + layeredGraph = $importGraph_1(new ElkGraphImporter, elkgraph); + maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$doCompoundLayout(this.elkLayered, layeredGraph, progressMonitor):$doLayout(this.elkLayered, layeredGraph, progressMonitor); + progressMonitor.isCanceled() || $applyLayout_2(new ElkGraphLayoutTransferrer, layeredGraph); +} +; +var Lorg_eclipse_elk_alg_layered_LayeredLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'LayeredLayoutProvider', 1109); +function $clinit_LayeredPhases(){ + $clinit_LayeredPhases = emptyMethod; + P1_CYCLE_BREAKING = new LayeredPhases('P1_CYCLE_BREAKING', 0); + P2_LAYERING = new LayeredPhases('P2_LAYERING', 1); + P3_NODE_ORDERING = new LayeredPhases('P3_NODE_ORDERING', 2); + P4_NODE_PLACEMENT = new LayeredPhases('P4_NODE_PLACEMENT', 3); + P5_EDGE_ROUTING = new LayeredPhases('P5_EDGE_ROUTING', 4); +} + +function LayeredPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_25(name_0){ + $clinit_LayeredPhases(); + return valueOf(($clinit_LayeredPhases$Map() , $MAP_15), name_0); +} + +function values_33(){ + $clinit_LayeredPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_37, 367, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]); +} + +defineClass(367, 22, {3:1, 34:1, 22:1, 367:1}, LayeredPhases); +var P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit = createForEnum('org.eclipse.elk.alg.layered', 'LayeredPhases', 367, Ljava_lang_Enum_2_classLit, values_33, valueOf_25); +function $clinit_LayeredPhases$Map(){ + $clinit_LayeredPhases$Map = emptyMethod; + $MAP_15 = createValueOfMap(($clinit_LayeredPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_37, 367, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]))); +} + +var $MAP_15; +function $clinit_ComponentsToCGraphTransformer(){ + $clinit_ComponentsToCGraphTransformer = emptyMethod; + SPACING_HANDLER = new ComponentsToCGraphTransformer$1; +} + +function $applyLayout_1(this$static){ + var bottomRight, cNode, cNode$iterator, n, n$iterator, placeholder, placeholder$iterator, topLeft; + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + n.rect.x_0 = n.hitbox.x_0; + n.rect.y_0 = n.hitbox.y_0; + } + topLeft = new KVector_1($intern_60, $intern_60); + bottomRight = new KVector_1($intern_61, $intern_61); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + for (placeholder$iterator = $values(this$static.externalPlaceholder).this$01.valueIterator_0(); placeholder$iterator.hasNext_0();) { + placeholder = castTo(placeholder$iterator.next_1(), 42); + cNode = castTo(placeholder.second, 86); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + this$static.globalOffset = $negate_0(new KVector_1(topLeft.x_0, topLeft.y_0)); + this$static.graphSize = $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft); + this$static.cGraph.cGroups.array.length = 0; + this$static.cGraph.cNodes.array.length = 0; +} + +function $getOffset(this$static, c){ + var cOffset; + cOffset = $sub_0($clone_1(castTo($get_10(this$static.oldPosition, c), 8)), $getPosition(castTo($get_10(this$static.offsets, c), 470).rect)); + return cOffset; +} + +function $setLock(cNode, portSides){ + portSides.isEmpty() && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, ($clinit_PortSide() , SIDES_NORTH)) && $set_5(cNode.lock, true, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST) && $set_5(cNode.lock, false, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH) && $set_5(cNode.lock, true, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_WEST) && $set_5(cNode.lock, true, false, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST) && $set_5(cNode.lock, false, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH) && $set_5(cNode.lock, false, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH_WEST) && $set_5(cNode.lock, true, false, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_WEST) && $set_5(cNode.lock, true, false, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_WEST) && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH_WEST) && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH_WEST) && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_WEST) && $set_5(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_SOUTH_WEST) && $set_5(cNode.lock, true, true, true, true); +} + +function $transform_0(this$static, ccs){ + var comp, comp$iterator, dummyGroup, ee, ee$iterator, group, rect, rect$iterator, rectNode, rectPlaceholder; + this$static.cGraph = new CGraph_0(allOf(Lorg_eclipse_elk_core_options_Direction_2_classLit)); + for (comp$iterator = new ArrayList$1(ccs.components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_6(comp$iterator), 855); + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 86, 0, [])); + $add_3(this$static.cGraph.cGroups, group); + for (rect$iterator = new ArrayList$1(comp.rectilinearConvexHull); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_6(rect$iterator), 116); + rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, rect); + $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); + if (!$containsKey_3(this$static.oldPosition, comp)) { + $put_6(this$static.oldPosition, comp, new KVector_1(rect.x_0, rect.y_0)); + $put_6(this$static.offsets, comp, rectNode); + } + $add_3(this$static.cGraph.cNodes, rectNode); + $addCNode_0(group, rectNode); + } + for (ee$iterator = new ArrayList$1(comp.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { + ee = castTo($next_6(ee$iterator), 602); + rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, ee.getRepresentor()); + $put_6(this$static.externalExtensions, ee, new Pair(group, rectNode)); + $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); + if (ee.getPlaceholder()) { + rectPlaceholder = new ComponentsToCGraphTransformer$CRectNode_0(this$static, ee.getPlaceholder(), 1); + $setLock(rectPlaceholder, castTo($getProperty(comp.graph_0, EXT_PORT_CONNECTIONS), 21)); + dummyGroup = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 86, 0, [])); + $addCNode_0(dummyGroup, rectPlaceholder); + $put(this$static.externalPlaceholder, ee.getDirection(), new Pair(group, rectPlaceholder)); + } + } + } + return this$static.cGraph; +} + +function ComponentsToCGraphTransformer(spacing){ + $clinit_ComponentsToCGraphTransformer(); + this.oldPosition = new HashMap; + this.offsets = new HashMap; + this.externalExtensions = new HashMap; + this.externalPlaceholder = new HashMultimap; + this.spacing = spacing; +} + +defineClass(1717, 1, {}, ComponentsToCGraphTransformer); +_.spacing = 0; +var SPACING_HANDLER; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer', 1717); +function $clinit_ISpacingsHandler_0(){ + $clinit_ISpacingsHandler_0 = emptyMethod; + DEFAULT_SPACING_HANDLER_0 = new ISpacingsHandler$1_0; +} + +var DEFAULT_SPACING_HANDLER_0; +function ComponentsToCGraphTransformer$1(){ +} + +defineClass(1718, 1, {}, ComponentsToCGraphTransformer$1); +_.getHorizontalSpacing_0 = function getHorizontalSpacing_0(cNode1, cNode2){ + return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +_.getVerticalSpacing_0 = function getVerticalSpacing_0(cNode1, cNode2){ + return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/1', 1718); +defineClass(86, 1, {86:1}); +_.id_0 = 0; +_.reposition = true; +_.startPos = $intern_61; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CNode', 86); +function ComponentsToCGraphTransformer$CRectNode(this$0, rect){ + ComponentsToCGraphTransformer$CRectNode_0.call(this, this$0, rect, null); +} + +function ComponentsToCGraphTransformer$CRectNode_0(this$0, rect, spacing){ + this.this$01 = this$0; + this.constraints = new ArrayList; + this.cGroupOffset = new KVector; + this.lock = new Quadruplet_0; + this.spacingIgnore = new Quadruplet_0; + this.rect = rect; + this.hitbox = new ElkRectangle_0(rect.x_0, rect.y_0, rect.width_0, rect.height); + this.individualSpacing = spacing; +} + +defineClass(470, 86, {470:1, 86:1}, ComponentsToCGraphTransformer$CRectNode, ComponentsToCGraphTransformer$CRectNode_0); +_.toString_0 = function toString_84(){ + return ''; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$CRectNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/CRectNode', 470); +function $clinit_OneDimensionalComponentsCompaction(){ + $clinit_OneDimensionalComponentsCompaction = emptyMethod; + LEFT_RIGHT = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_37, 88, 0, [($clinit_Direction_0() , LEFT_6), RIGHT_6])); + UP_DOWN = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_37, 88, 0, [UP_1, DOWN_1])); +} + +function $addExternalEdgeRepresentations(this$static, ees){ + var p, p$iterator; + for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 42); + $add_3(this$static.compactionGraph.cNodes, castTo(p.second, 86)); + $addCNode_0(castTo(p.first, 194), castTo(p.second, 86)); + } +} + +function $addPlaceholders(this$static, dir_0){ + var d, d$iterator, dirs, pair, pair$iterator; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 88); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 42); + $add_3(this$static.compactionGraph.cNodes, castTo(pair.second, 86)); + $add_3(this$static.compactionGraph.cGroups, castTo(pair.second, 86).cGroup); + } + } +} + +function $compact_1(this$static){ + var delta, direction, g, g$iterator, g$iterator0, g$iterator1, g$iterator2; + delta = 0; + for (g$iterator0 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator0.i < g$iterator0.this$01.array.length;) { + g = castTo($next_6(g$iterator0), 194); + g.delta = 0; + g.deltaNormalized = 0; + } + $addPlaceholders(this$static, 0); + $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $calculateGroupOffsets_0(this$static.compactor); + $forceConstraintsRecalculation(this$static.compactor); + direction = ($clinit_Direction_0() , LEFT_6); + $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($changeDirection_0(this$static.compactor, direction)), $opposite(direction)))), direction))); + $changeDirection_0(this$static.compactor, LEFT_6); + $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $removePlaceholders(this$static, 0); + $updateExternalExtensionDimensions(this$static, 0); + $updatePlaceholders(this$static, 1); + $addPlaceholders(this$static, 1); + $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $calculateGroupOffsets_0(this$static.compactor); + for (g$iterator1 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator1.i < g$iterator1.this$01.array.length;) { + g = castTo($next_6(g$iterator1), 194); + delta += $wnd.Math.abs(g.deltaNormalized); + } + for (g$iterator2 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator2.i < g$iterator2.this$01.array.length;) { + g = castTo($next_6(g$iterator2), 194); + g.delta = 0; + g.deltaNormalized = 0; + } + direction = UP_1; + $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($forceConstraintsRecalculation($changeDirection_0(this$static.compactor, direction))), $opposite(direction)))), direction))); + $changeDirection_0(this$static.compactor, LEFT_6); + $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $removePlaceholders(this$static, 1); + $updateExternalExtensionDimensions(this$static, 1); + $updatePlaceholders(this$static, 0); + $forceConstraintsRecalculation(this$static.compactor); + for (g$iterator = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 194); + delta += $wnd.Math.abs(g.deltaNormalized); + } + return delta; +} + +function $compact_2(this$static){ + var allNodes, cNode, cNode$iterator, delta, entry, entry$iterator, run; + allNodes = new ArrayList; + this$static.verticalExternalExtensions = new ArrayList; + this$static.horizontalExternalExtensions = new ArrayList; + for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { + entry = $next_3(entry$iterator); + $add_3(allNodes, castTo(castTo(entry.getValue(), 42).second, 86)); + $isHorizontal(castTo(entry.getKey(), 602).getDirection())?$add_3(this$static.horizontalExternalExtensions, castTo(entry.getValue(), 42)):$add_3(this$static.verticalExternalExtensions, castTo(entry.getValue(), 42)); + } + $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + this$static.compactor = new OneDimensionalCompactor_0(this$static.compactionGraph); + $setSpacingsHandler_0(this$static.compactor, ($clinit_ComponentsToCGraphTransformer() , SPACING_HANDLER)); + $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $addAll_2(allNodes, this$static.compactor.cGraph.cNodes); + this$static.topLeft = new KVector_1($intern_60, $intern_60); + this$static.bottomRight = new KVector_1($intern_61, $intern_61); + for (cNode$iterator = new ArrayList$1(allNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, cNode.hitbox.x_0); + this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, cNode.hitbox.y_0); + this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$0$Type); + run = 0; + do { + delta = $compact_1(this$static); + ++run; + } + while ((run < 2 || delta > $intern_42) && run < 10); + $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$1$Type); + $compact_1(this$static); + $finish(this$static.compactor); + $applyLayout_1(this$static.transformer); +} + +function $getOffset_0(this$static, c){ + var individual; + individual = $getOffset(this$static.transformer, c); + return $add_19($negate_0(individual), this$static.transformer.globalOffset); +} + +function $removeExternalEdgeRepresentations(this$static, ees){ + var p, p$iterator; + for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 42); + $remove_12(this$static.compactionGraph.cNodes, p.second); + $removeCNode(castTo(p.first, 194), castTo(p.second, 86)); + } +} + +function $removePlaceholders(this$static, dir_0){ + var d, d$iterator, dirs, pair, pair$iterator; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 88); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 42); + $remove_12(this$static.compactionGraph.cNodes, pair.second); + $remove_12(this$static.compactionGraph.cGroups, castTo(pair.second, 86).cGroup); + } + } +} + +function $updateExternalExtensionDimensions(this$static, dir_0){ + var adelta, cNode, ee, entry, entry$iterator, group; + for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { + entry = $next_3(entry$iterator); + ee = castTo(entry.getKey(), 602); + if (dir_0 == 1) { + if (ee.getDirection() != ($clinit_Direction_0() , UP_1) && ee.getDirection() != DOWN_1) { + continue; + } + } + else { + if (ee.getDirection() != ($clinit_Direction_0() , LEFT_6) && ee.getDirection() != RIGHT_6) { + continue; + } + } + cNode = castTo(castTo(entry.getValue(), 42).second, 86); + group = castTo(castTo(entry.getValue(), 42).first, 194); + adelta = group.deltaNormalized; + switch (ee.getDirection().ordinal) { + case 2: + cNode.hitbox.x_0 = this$static.topLeft.x_0; + cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 + adelta); + break; + case 1: + cNode.hitbox.x_0 = cNode.hitbox.x_0 + adelta; + cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 - adelta); + break; + case 4: + cNode.hitbox.y_0 = this$static.topLeft.y_0; + cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height + adelta); + break; + case 3: + cNode.hitbox.y_0 = cNode.hitbox.y_0 + adelta; + cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height - adelta); + } + } +} + +function $updatePlaceholders(this$static, dir_0){ + var adelta, cNode, d, d$iterator, dirs, pair, pair$iterator, parentComponentGroup; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 88); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 42); + cNode = castTo(pair.second, 86); + parentComponentGroup = castTo(pair.first, 194); + adelta = parentComponentGroup.deltaNormalized; + switch (d.ordinal) { + case 2: + case 1: + cNode.hitbox.y_0 += adelta; + break; + case 4: + case 3: + cNode.hitbox.x_0 += adelta; + } + } + } +} + +function OneDimensionalComponentsCompaction(){ +} + +function lambda$0_18(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , castTo(pair_0.first, 86).cGroup.outDegree != 0?true:false; +} + +function lambda$1_5(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , $get_19(castTo(pair_0.first, 86).lock, castTo(pair_0.second, 88)) || castTo(pair_0.first, 86).cGroup.outDegree != 0 && $get_19(castTo(pair_0.first, 86).lock, castTo(pair_0.second, 88))?true:false; +} + +defineClass(1688, 1, {}, OneDimensionalComponentsCompaction); +var LEFT_RIGHT, UP_DOWN; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction', 1688); +function OneDimensionalComponentsCompaction$lambda$0$Type(){ +} + +defineClass(1689, 1, {}, OneDimensionalComponentsCompaction$lambda$0$Type); +_.apply_0 = function apply_58(arg0){ + return lambda$0_18(castTo(arg0, 42)); +} +; +_.equals_0 = function equals_82(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$0$Type', 1689); +function OneDimensionalComponentsCompaction$lambda$1$Type(){ +} + +defineClass(1690, 1, {}, OneDimensionalComponentsCompaction$lambda$1$Type); +_.apply_0 = function apply_59(arg0){ + return lambda$1_5(castTo(arg0, 42)); +} +; +_.equals_0 = function equals_83(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$1$Type', 1690); +function $supports_0(this$static, direction){ + return $containsEnum(this$static.supportedDirections, direction); +} + +function CGraph_0(supportedDirections){ + this.cNodes = new ArrayList; + this.cGroups = new ArrayList; + this.supportedDirections = supportedDirections; +} + +defineClass(1720, 1, {}, CGraph_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGraph', 1720); +function $addCNode_0(this$static, cNode){ + $add_6(this$static.cNodes, cNode); + if (cNode.cGroup) { + throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); + } + cNode.cGroup = this$static; +} + +function $removeCNode(this$static, cNode){ + var removed; + removed = $remove_18(this$static.cNodes, cNode); + removed && (cNode.cGroup = null); + return removed; +} + +function CGroup_0(inputCNodes){ + var cNode, cNode$array, cNode$index, cNode$max; + this.cNodes = new LinkedHashSet; + this.incomingConstraints = new HashSet; + this.outDegree = 0; + for (cNode$array = inputCNodes , cNode$index = 0 , cNode$max = cNode$array.length; cNode$index < cNode$max; ++cNode$index) { + cNode = cNode$array[cNode$index]; + !this.reference && (this.reference = cNode); + $addCNode_0(this, cNode); + } +} + +defineClass(194, 1, {194:1}, CGroup_0); +_.delta = 0; +_.deltaNormalized = 0; +_.outDegree = 0; +_.reposition = true; +_.startPos = $intern_61; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGroup', 194); +function ISpacingsHandler$1_0(){ +} + +defineClass(1719, 1, {}, ISpacingsHandler$1_0); +_.getHorizontalSpacing_0 = function getHorizontalSpacing_1(cNode1, cNode2){ + return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +_.getVerticalSpacing_0 = function getVerticalSpacing_1(cNode1, cNode2){ + return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'ISpacingsHandler/1', 1719); +function $clinit_OneDimensionalCompactor_0(){ + $clinit_OneDimensionalCompactor_0 = emptyMethod; + SCANLINE_CONSTRAINTS_0 = new ScanlineConstraintCalculator_0; +} + +function $applyLockingStrategy(this$static){ + $applyLockingStrategy_0(this$static, this$static.direction); + return this$static; +} + +function $applyLockingStrategy_0(this$static, dir_0){ + var cGroup, cGroup$iterator, cNode, cNode$iterator; + for (cGroup$iterator = new ArrayList$1(this$static.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { + cGroup = castTo($next_6(cGroup$iterator), 194); + cGroup.reposition = true; + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + cNode.reposition = $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); + cNode.cGroup.reposition = cNode.cGroup.reposition & $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); + } + return this$static; +} + +function $calculateConstraints_0(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + cNode.constraints.clear_0(); + } + $calculateConstraints_1(this$static.constraintAlgorithm, this$static); + $calculateConstraintsForCGroups_0(this$static); +} + +function $calculateConstraintsForCGroups_0(this$static){ + var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; + for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_6(group$iterator0), 194); + group.outDegree = 0; + group.incomingConstraints.map_0.clear_0(); + } + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 194); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 86); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 86); + if (inc.cGroup != group) { + $add_6(group.incomingConstraints, inc); + ++inc.cGroup.outDegree; + } + } + } + } +} + +function $calculateGroupOffsets_0(this$static){ + var group, group$iterator, n, n$iterator, n$iterator0; + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 194); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 86); + $reset_5(n.cGroupOffset); + (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); + } + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 86); + n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; + n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; + } + } + return this$static; +} + +function $changeDirection_0(this$static, dir_0){ + var oldDirection; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + if (!$supports_0(this$static.cGraph, dir_0)) { + throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); + } + if (dir_0 == this$static.direction) { + return this$static; + } + oldDirection = this$static.direction; + this$static.direction = dir_0; + switch (oldDirection.ordinal) { + case 0: + switch (dir_0.ordinal) { + case 2: + $calculateConstraints_0(this$static); + break; + case 1: + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 4: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 2: + switch (dir_0.ordinal) { + case 1: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + break; + case 4: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 1: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + break; + case 4: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 4: + switch (dir_0.ordinal) { + case 2: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 1: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + } + + break; + case 3: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 1: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 4: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + } + + } + return this$static; +} + +function $compact_3(this$static){ + var g, g$iterator, incN, incN$iterator, n, n$iterator, node, node$iterator; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection_0(this$static, LEFT_6); + for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 194); + g.outDegree = 0; + } + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + n.startPos = $intern_61; + for (incN$iterator = n.constraints.iterator_0(); incN$iterator.hasNext_0();) { + incN = castTo(incN$iterator.next_1(), 86); + ++incN.cGroup.outDegree; + } + } + $compact_4(this$static); + for (node$iterator = new ArrayList$1(this$static.cGraph.cNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 86); + node.reposition = true; + } + return this$static; +} + +function $finish(this$static){ + $changeDirection_0(this$static, ($clinit_Direction_0() , LEFT_6)); + this$static.finished = true; + return this$static; +} + +function $forceConstraintsRecalculation(this$static){ + $calculateConstraints_0(this$static); + return this$static; +} + +function $mirrorHitboxes_0(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; + } + $calculateGroupOffsets_0(this$static); +} + +function $reverseConstraints_0(this$static){ + var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; + incMap = new HashMap; + for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator0), 86); + $put_6(incMap, cNode, new ArrayList); + } + for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator1), 86); + cNode.startPos = $intern_61; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 86); + castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); + } + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + cNode.constraints.clear_0(); + cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); + } + $calculateConstraintsForCGroups_0(this$static); +} + +function $setLockingStrategy(this$static, strategy){ + this$static.lockingStrategy = strategy; + return this$static; +} + +function $setSpacingsHandler_0(this$static, handler){ + this$static.spacingsHandler = handler; + return this$static; +} + +function $transposeHitboxes_0(this$static){ + var cNode, cNode$iterator, tmp; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + tmp = cNode.hitbox.x_0; + cNode.hitbox.x_0 = cNode.hitbox.y_0; + cNode.hitbox.y_0 = tmp; + tmp = cNode.hitbox.width_0; + cNode.hitbox.width_0 = cNode.hitbox.height; + cNode.hitbox.height = tmp; + tmp = cNode.cGroupOffset.x_0; + cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; + cNode.cGroupOffset.y_0 = tmp; + } + $calculateGroupOffsets_0(this$static); +} + +function OneDimensionalCompactor_0(cGraph){ + $clinit_OneDimensionalCompactor_0(); + var group, n, n$iterator; + this.constraintAlgorithm = SCANLINE_CONSTRAINTS_0; + this.direction = ($clinit_Direction_0() , UNDEFINED_2); + this.spacingsHandler = ($clinit_ISpacingsHandler_0() , DEFAULT_SPACING_HANDLER_0); + this.cGraph = cGraph; + $setLockingStrategy(this, new OneDimensionalCompactor$lambda$0$Type_0); + $calculateGroupOffsets_0(this); + for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + if (!n.cGroup) { + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 86, 0, [n])); + $add_3(cGraph.cGroups, group); + } + } +} + +defineClass(1721, 1, {}, OneDimensionalCompactor_0); +_.finished = false; +var SCANLINE_CONSTRAINTS_0; +var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor', 1721); +function OneDimensionalCompactor$lambda$0$Type_0(){ +} + +defineClass(1722, 1, {}, OneDimensionalCompactor$lambda$0$Type_0); +_.apply_0 = function apply_60(arg0){ + return $clinit_OneDimensionalCompactor_0() , $clinit_Boolean() , castTo(castTo(arg0, 42).first, 86).cGroup.outDegree != 0?true:false; +} +; +_.equals_0 = function equals_84(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1722); +function $get_19(this$static, direction){ + switch (direction.ordinal) { + case 2: + return this$static.left; + case 1: + return this$static.right; + case 4: + return this$static.up; + case 3: + return this$static.down; + default:return false; + } +} + +function $set_5(this$static, l, r, u, d){ + this$static.left = l; + this$static.right = r; + this$static.up = u; + this$static.down = d; +} + +function Quadruplet_0(){ + $set_5(this, false, false, false, false); +} + +defineClass(833, 1, {}, Quadruplet_0); +_.down = false; +_.left = false; +_.right = false; +_.up = false; +var Lorg_eclipse_elk_alg_layered_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'Quadruplet', 833); +function $compact_4(compactor){ + var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; + minStartPos = $intern_60; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator0), 86); + minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); + } + sinks = new LinkedList; + for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 194); + group.startPos = minStartPos; + group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 194); + diff = group.reference.hitbox.x_0; + for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { + node = castTo(node$iterator0.next_1(), 86); + suggestedX = group.startPos + node.cGroupOffset.x_0; + node.cGroup.reposition || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); + } + diff -= group.reference.startPos; + group.delta += diff; + compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); + for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 86); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 86); + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing_0(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing_0(node, incNode)); + incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); + incNode.reposition || (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); + --incNode.cGroup.outDegree; + incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); + } + } + } + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 86); + cNode.hitbox.x_0 = cNode.startPos; + } +} + +function $blowUpHitboxes(this$static){ + var n, n$iterator, spacing; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + spacing = (checkCriticalNotNull(0) , 0); + if (spacing > 0) { + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 -= $wnd.Math.max(0, spacing / 2 - 0.5)); + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height += $wnd.Math.max(0, spacing - 1)); + } + } +} + +function $calculateConstraints_1(this$static, theCompactor){ + this$static.compactor = theCompactor; + $sweep_1(this$static); +} + +function $normalizeHitboxes(this$static){ + var n, n$iterator, spacing; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + spacing = (checkCriticalNotNull(0) , 0); + if (spacing > 0) { + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 += $wnd.Math.max(0, spacing / 2 - 0.5)); + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height -= spacing - 1); + } + } +} + +function $sweep_1(this$static){ + var n, n$iterator, points; + $blowUpHitboxes(this$static); + points = new ArrayList; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, true)); + $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, false)); + } + $reset_2(this$static.constraintsScanlineHandler); + execute_0(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 382, 0, [this$static.constraintsScanlineHandler]))); + $normalizeHitboxes(this$static); +} + +function ScanlineConstraintCalculator_0(){ + this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type_0; + this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this); +} + +function lambda$0_19(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.hitbox.y_0; + p1_0.low || (y1 += p1_0.node.hitbox.height); + y2 = p2_1.node.hitbox.y_0; + p2_1.low || (y2 += p2_1.node.hitbox.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(1898, 1, {}, ScanlineConstraintCalculator_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator', 1898); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline/EventHandler'); +function $handle_1(this$static, p){ + var right, left, right_0; + p.low?($add_10(this$static.intervals, p.node) , this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 86) , right = castTo($higher(this$static.intervals, p.node), 86) , !!right && (this$static.cand[right.id_0] = p.node) , undefined):(left = castTo($lower(this$static.intervals, p.node), 86) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right_0 = castTo($higher(this$static.intervals, p.node), 86) , !!right_0 && this$static.cand[right_0.id_0] == p.node && !!right_0.cGroup && right_0.cGroup != p.node.cGroup && p.node.constraints.add_2(right_0) , $remove_28(this$static.intervals, p.node) , undefined); +} + +function $reset_2(this$static){ + var index_0, n, n$iterator; + this$static.intervals.map_0.clear_0(); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, $intern_2, 86, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); + index_0 = 0; + for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 86); + n.id_0 = index_0++; + } +} + +function ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this$0){ + this.this$01 = this$0; + this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0), 50)); +} + +function lambda$0_20(c1_0, c2_1){ + return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); +} + +defineClass(1899, 1, {382:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler_0); +_.handle = function handle_1(p){ + $handle_1(this, castTo(p, 476)); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1899); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0(){ +} + +defineClass($intern_48, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0); +_.compare_1 = function compare_30(arg0, arg1){ + return lambda$0_20(castTo(arg0, 86), castTo(arg1, 86)); +} +; +_.equals_0 = function equals_85(other){ + return this === other; +} +; +_.reversed = function reversed_22(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', $intern_48); +function ScanlineConstraintCalculator$Timestamp_0(node, low){ + this.node = node; + this.low = low; +} + +defineClass(476, 1, {476:1}, ScanlineConstraintCalculator$Timestamp_0); +_.low = false; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/Timestamp', 476); +function ScanlineConstraintCalculator$lambda$0$Type_0(){ +} + +defineClass(1901, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type_0); +_.compare_1 = function compare_31(arg0, arg1){ + return lambda$0_19(castTo(arg0, 476), castTo(arg1, 476)); +} +; +_.equals_0 = function equals_86(other){ + return this === other; +} +; +_.reversed = function reversed_23(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/lambda$0$Type', 1901); +function Point(x_0, y_0){ + this.x_0 = x_0; + this.y_0 = y_0; +} + +function Point_0(x_0, y_0, quadrant){ + Point.call(this, x_0, y_0); + this.quadrant = quadrant; +} + +defineClass(148, 1, {148:1}, Point, Point_0); +_.equals_0 = function equals_87(obj){ + var p2; + if (obj == null) { + return false; + } + if (Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit != getClass__Ljava_lang_Class___devirtual$(obj)) { + return false; + } + p2 = castTo(obj, 148); + return equals_57(this.x_0, p2.x_0) && equals_57(this.y_0, p2.y_0); +} +; +_.hashCode_1 = function hashCode_61(){ + return hashCode_47(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0])); +} +; +_.toString_0 = function toString_85(){ + return '(' + this.x_0 + ', ' + this.y_0 + (this.convex?'cx':'') + this.quadrant + ')'; +} +; +_.convex = true; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Point', 148); +function $clinit_Point$Quadrant(){ + $clinit_Point$Quadrant = emptyMethod; + Q1 = new Point$Quadrant('Q1', 0); + Q4 = new Point$Quadrant('Q4', 1); + Q2 = new Point$Quadrant('Q2', 2); + Q3 = new Point$Quadrant('Q3', 3); +} + +function $isLeft(this$static){ + return this$static == Q1 || this$static == Q4; +} + +function $isUpper(this$static){ + return this$static == Q1 || this$static == Q2; +} + +function Point$Quadrant(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isBothLeftOrBothRight(q1, q2){ + $clinit_Point$Quadrant(); + return q1 == Q1 && q2 == Q4 || q1 == Q4 && q2 == Q1 || q1 == Q3 && q2 == Q2 || q1 == Q2 && q2 == Q3; +} + +function isOneLeftOneRight(q1, q2){ + $clinit_Point$Quadrant(); + return q1 == Q1 && q2 == Q2 || q1 == Q1 && q2 == Q3 || q1 == Q4 && q2 == Q3 || q1 == Q4 && q2 == Q2; +} + +function valueOf_26(name_0){ + $clinit_Point$Quadrant(); + return valueOf(($clinit_Point$Quadrant$Map() , $MAP_16), name_0); +} + +function values_34(){ + $clinit_Point$Quadrant(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_37, 416, 0, [Q1, Q4, Q2, Q3]); +} + +defineClass(416, 22, {3:1, 34:1, 22:1, 416:1}, Point$Quadrant); +var Q1, Q2, Q3, Q4; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit = createForEnum('org.eclipse.elk.alg.layered.compaction.recthull', 'Point/Quadrant', 416, Ljava_lang_Enum_2_classLit, values_34, valueOf_26); +function $clinit_Point$Quadrant$Map(){ + $clinit_Point$Quadrant$Map = emptyMethod; + $MAP_16 = createValueOfMap(($clinit_Point$Quadrant() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_37, 416, 0, [Q1, Q4, Q2, Q3]))); +} + +var $MAP_16; +function $clinit_RectilinearConvexHull(){ + $clinit_RectilinearConvexHull = emptyMethod; + RIGHT_HIGH_FIRST = new RectilinearConvexHull$lambda$0$Type; + RIGHT_LOW_FIRST = new RectilinearConvexHull$lambda$1$Type; + LEFT_HIGH_FIRST = new RectilinearConvexHull$lambda$2$Type; + LEFT_LOW_FIRST = new RectilinearConvexHull$lambda$3$Type; + RIGHT_SPECIAL_ORDER = new RectilinearConvexHull$lambda$4$Type; +} + +function $splitIntoRectangles(this$static){ + var handler; + handler = new RectilinearConvexHull$RectangleEventHandler(this$static); + execute_0(this$static.hull, RIGHT_SPECIAL_ORDER, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 382, 0, [handler]))); + !!handler.queued && $add_3(handler.rects, handler.queued); + return handler.rects; +} + +function RectilinearConvexHull(){ + this.hull = new ArrayList; +} + +function addConcaveCorners(pts, q){ + var last, next, p, pIt; + pIt = new AbstractList$ListIteratorImpl(pts, 0); + last = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 148)); + while (pIt.i < pIt.this$01_0.size_1()) { + next = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 148)); + p = new Point_0(next.x_0, last.y_0, q); + checkCriticalElement(pIt.i > 0); + pIt.this$01.get_0(pIt.last = --pIt.i); + $add_1(pIt, p); + checkCriticalElement(pIt.i < pIt.this$01_0.size_1()); + pIt.this$01_0.get_0(pIt.last = pIt.i++); + p.convex = false; + last = next; + } +} + +function lambda$0_21(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p1_0.x_0, p2_1.x_0); +} + +function lambda$1_6(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p1_0.x_0, p2_1.x_0); +} + +function lambda$2_2(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p2_1.x_0, p1_0.x_0); +} + +function lambda$3(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p2_1.x_0, p1_0.x_0); +} + +function lambda$4_2(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + var val; + if (p1_0.x_0 == p2_1.x_0) { + if (p1_0.quadrant == p2_1.quadrant || isBothLeftOrBothRight(p1_0.quadrant, p2_1.quadrant)) { + val = $isLeft(p1_0.quadrant)?1:-1; + if (p1_0.convex && !p2_1.convex) { + return val; + } + else if (!p1_0.convex && p2_1.convex) { + return -val; + } + } + return compare_5(p1_0.quadrant.ordinal, p2_1.quadrant.ordinal); + } + else { + return compare_4(p1_0.x_0, p2_1.x_0); + } +} + +function of_5(points){ + $clinit_RectilinearConvexHull(); + var p, p$iterator, q1, q2, q3, q4, rch; + rch = new RectilinearConvexHull; + for (p$iterator = new ArrayList$1(points); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 148); + (!rch.xMax1 || p.x_0 >= rch.xMax1.x_0) && (rch.xMax1 = p); + if (!rch.xMin1 || p.x_0 <= rch.xMin1.x_0) { + rch.xMin2 = rch.xMin1; + rch.xMin1 = p; + } + (!rch.yMax1 || p.y_0 >= rch.yMax1.y_0) && (rch.yMax1 = p); + (!rch.yMin1 || p.y_0 <= rch.yMin1.y_0) && (rch.yMin1 = p); + } + q1 = new RectilinearConvexHull$MaximalElementsEventHandler(($clinit_Point$Quadrant() , Q1)); + execute_0(points, RIGHT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 382, 0, [q1]))); + q4 = new RectilinearConvexHull$MaximalElementsEventHandler(Q4); + execute_0(points, RIGHT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 382, 0, [q4]))); + q2 = new RectilinearConvexHull$MaximalElementsEventHandler(Q2); + execute_0(points, LEFT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 382, 0, [q2]))); + q3 = new RectilinearConvexHull$MaximalElementsEventHandler(Q3); + execute_0(points, LEFT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 382, 0, [q3]))); + addConcaveCorners(q1.points, Q1); + addConcaveCorners(q2.points, Q2); + addConcaveCorners(q3.points, Q3); + addConcaveCorners(q4.points, Q4); + rch.hull.array.length = 0; + $addAll_2(rch.hull, q1.points); + $addAll_2(rch.hull, reverse_0(q2.points)); + $addAll_2(rch.hull, q3.points); + $addAll_2(rch.hull, reverse_0(q4.points)); + return rch; +} + +defineClass(1708, 1, {}, RectilinearConvexHull); +_.xMax1 = null; +_.xMin1 = null; +_.xMin2 = null; +_.yMax1 = null; +_.yMin1 = null; +var LEFT_HIGH_FIRST, LEFT_LOW_FIRST, RIGHT_HIGH_FIRST, RIGHT_LOW_FIRST, RIGHT_SPECIAL_ORDER; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull', 1708); +function $clinit_RectilinearConvexHull$MaximalElementsEventHandler(){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler = emptyMethod; + DBL_CMP = new RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type; +} + +function $handle_2(this$static, p){ + if (this$static.compare.compare_1(p.y_0, this$static.maximalY) > 0) { + $add_3(this$static.points, new Point_0(p.x_0, p.y_0, this$static.quadrant)); + this$static.maximalY = p.y_0; + } +} + +function RectilinearConvexHull$MaximalElementsEventHandler(quadrant){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + this.points = new ArrayList; + this.quadrant = quadrant; + switch (quadrant.ordinal) { + case 0: + case 2: + this.compare = reverseOrder(DBL_CMP); + this.maximalY = $intern_60; + break; + case 3: + case 1: + this.compare = DBL_CMP; + this.maximalY = $intern_61; + } +} + +function lambda$0_22(d1_0, d2_1){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + return compare_4((checkCriticalNotNull(d1_0) , d1_0), (checkCriticalNotNull(d2_1) , d2_1)); +} + +defineClass(583, 1, {382:1}, RectilinearConvexHull$MaximalElementsEventHandler); +_.handle = function handle_2(p){ + $handle_2(this, castTo(p, 148)); +} +; +_.maximalY = 0; +var DBL_CMP; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler', 583); +function RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type(){ +} + +defineClass(1710, 1, $intern_88, RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type); +_.compare_1 = function compare_32(arg0, arg1){ + return lambda$0_22(castToDouble(arg0), castToDouble(arg1)); +} +; +_.equals_0 = function equals_88(other){ + return this === other; +} +; +_.reversed = function reversed_24(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type', 1710); +function $handle_3(this$static, p){ + var r; + if (!!this$static.queued && (p.x_0 != this$static.queuedPnt.x_0 || isOneLeftOneRight(this$static.queuedPnt.quadrant, p.quadrant))) { + $add_3(this$static.rects, this$static.queued); + this$static.lastX = this$static.queued.x_0 + this$static.queued.width_0; + this$static.queued = null; + this$static.queuedPnt = null; + } + $isUpper(p.quadrant)?(this$static.minY = p):(this$static.maxY = p); + if (p.quadrant == ($clinit_Point$Quadrant() , Q1) && !p.convex || p.quadrant == Q2 && p.convex || p.quadrant == Q3 && p.convex || p.quadrant == Q4 && !p.convex) { + if (!!this$static.minY && !!this$static.maxY) { + r = new ElkRectangle_0(this$static.lastX, this$static.minY.y_0, p.x_0 - this$static.lastX, this$static.maxY.y_0 - this$static.minY.y_0); + this$static.queued = r; + this$static.queuedPnt = p; + } + } +} + +function RectilinearConvexHull$RectangleEventHandler(this$0){ + this.this$01 = this$0; + this.rects = new ArrayList; + this.lastX = $wnd.Math.min(this.this$01.xMin1.x_0, this.this$01.xMin2.x_0); +} + +defineClass(1709, 1, {382:1}, RectilinearConvexHull$RectangleEventHandler); +_.handle = function handle_3(p){ + $handle_3(this, castTo(p, 148)); +} +; +_.lastX = 0; +_.maxY = null; +_.minY = null; +_.queued = null; +_.queuedPnt = null; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$RectangleEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/RectangleEventHandler', 1709); +function RectilinearConvexHull$lambda$0$Type(){ +} + +defineClass(1711, 1, $intern_88, RectilinearConvexHull$lambda$0$Type); +_.compare_1 = function compare_33(arg0, arg1){ + return lambda$0_21(castTo(arg0, 148), castTo(arg1, 148)); +} +; +_.equals_0 = function equals_89(other){ + return this === other; +} +; +_.reversed = function reversed_25(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$0$Type', 1711); +function RectilinearConvexHull$lambda$1$Type(){ +} + +defineClass(1712, 1, $intern_88, RectilinearConvexHull$lambda$1$Type); +_.compare_1 = function compare_34(arg0, arg1){ + return lambda$1_6(castTo(arg0, 148), castTo(arg1, 148)); +} +; +_.equals_0 = function equals_90(other){ + return this === other; +} +; +_.reversed = function reversed_26(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$1$Type', 1712); +function RectilinearConvexHull$lambda$2$Type(){ +} + +defineClass(1713, 1, $intern_88, RectilinearConvexHull$lambda$2$Type); +_.compare_1 = function compare_35(arg0, arg1){ + return lambda$2_2(castTo(arg0, 148), castTo(arg1, 148)); +} +; +_.equals_0 = function equals_91(other){ + return this === other; +} +; +_.reversed = function reversed_27(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$2$Type', 1713); +function RectilinearConvexHull$lambda$3$Type(){ +} + +defineClass(1714, 1, $intern_88, RectilinearConvexHull$lambda$3$Type); +_.compare_1 = function compare_36(arg0, arg1){ + return lambda$3(castTo(arg0, 148), castTo(arg1, 148)); +} +; +_.equals_0 = function equals_92(other){ + return this === other; +} +; +_.reversed = function reversed_28(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$3$Type', 1714); +function RectilinearConvexHull$lambda$4$Type(){ +} + +defineClass(1715, 1, $intern_88, RectilinearConvexHull$lambda$4$Type); +_.compare_1 = function compare_37(arg0, arg1){ + return lambda$4_2(castTo(arg0, 148), castTo(arg1, 148)); +} +; +_.equals_0 = function equals_93(other){ + return this === other; +} +; +_.reversed = function reversed_29(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$4$Type', 1715); +function $go_0(this$static){ + var h, h$iterator, p, p$iterator; + $clinit_Collections(); + $sort(this$static.points, this$static.comparator); + for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { + p = $next_6(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_6(h$iterator), 382); + h.handle(p); + } + } +} + +function Scanline_0(points, comparator, eventHandlers){ + this.comparator = comparator; + this.points = points; + this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); +} + +function execute_0(points, comparator, eventHandlers){ + var copy; + copy = (checkNotNull(points) , new ArrayList_1(points)); + $go_0(new Scanline_0(copy, comparator, eventHandlers)); +} + +defineClass(1716, 1, {}, Scanline_0); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline', 1716); +function $moveGraph_0(destGraph, sourceGraph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = $add_18(sourceGraph.offset, offsetx, offsety); + for (node$iterator = new ArrayList$1(sourceGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $add_19(label_0.pos, graphOffset); + } + } + } + $add_3(destGraph.layerlessNodes, node); + node.graph_0 = destGraph; + } +} + +function $moveGraphs(destGraph, sourceGraphs){ + var sourceGraph, sourceGraph$iterator; + for (sourceGraph$iterator = sourceGraphs.iterator_0(); sourceGraph$iterator.hasNext_0();) { + sourceGraph = castTo(sourceGraph$iterator.next_1(), 36); + $moveGraph_0(destGraph, sourceGraph, 0, 0); + } +} + +function $offsetGraph(graph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = new KVector_1(offsetx, offsety); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $add_19(label_0.pos, graphOffset); + } + } + } + } +} + +function $offsetGraphs(graphs, offsetx, offsety){ + var graph, graph$iterator; + for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + $offsetGraph(graph, offsetx, offsety); + } +} + +defineClass(2104, 1, {}); +var Lorg_eclipse_elk_alg_layered_components_AbstractGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'AbstractGraphPlacer', 2104); +function $clinit_ComponentGroup(){ + $clinit_ComponentGroup = emptyMethod; + CONSTRAINTS = new HashMultimap; + $put(CONSTRAINTS, ($clinit_PortSide() , SIDES_NONE), SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NONE); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); +} + +function $$init_5(this$static){ + this$static.components = new ArrayListMultimap; +} + +function $getComponents(this$static, connections){ + return castTo($get(this$static.components, connections), 15); +} + +function ComponentGroup(component){ + $clinit_ComponentGroup(); + $$init_5(this); + this.add_4(component); +} + +defineClass(335, 1, {335:1}, ComponentGroup); +_.add_4 = function add_43(component){ + if (this.canAdd(component)) { + $put(this.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); + return true; + } + else { + return false; + } +} +; +_.canAdd = function canAdd(component){ + var candidateSides, constraint, constraint$iterator, constraints; + candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); + constraints = castTo($get(CONSTRAINTS, candidateSides), 21); + for (constraint$iterator = constraints.iterator_0(); constraint$iterator.hasNext_0();) { + constraint = castTo(constraint$iterator.next_1(), 21); + if (!castTo($get(this.components, constraint), 15).isEmpty()) { + return false; + } + } + return true; +} +; +var CONSTRAINTS; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroup', 335); +function $placeComponents(group, spacing){ + var colLeftWidth, colMidWidth, colNsWidth, colRightWidth, componentSize, rowBottomHeight, rowMidHeight, rowTopHeight, rowWeHeight, sizeC, sizeE, sizeENS, sizeN, sizeNE, sizeNESW, sizeNS, sizeNW, sizeNWE, sizeS, sizeSE, sizeSW, sizeSWE, sizeW, sizeWE, sizeWNS; + sizeC = $placeComponentsInRows($getComponents(group, ($clinit_PortSide() , SIDES_NONE)), spacing); + sizeN = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH), spacing); + sizeS = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH), spacing); + sizeW = $placeComponentsVertically($getComponents(group, SIDES_WEST), spacing); + sizeE = $placeComponentsVertically($getComponents(group, SIDES_EAST), spacing); + sizeNW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_WEST), spacing); + sizeNE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST), spacing); + sizeSW = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH_WEST), spacing); + sizeSE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH), spacing); + sizeWE = $placeComponentsVertically($getComponents(group, SIDES_EAST_WEST), spacing); + sizeNS = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_SOUTH), spacing); + sizeNWE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_WEST), spacing); + sizeSWE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH_WEST), spacing); + sizeWNS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_SOUTH_WEST), spacing); + sizeENS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_EAST_SOUTH), spacing); + sizeNESW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), spacing); + colLeftWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [sizeNW.x_0, sizeW.x_0, sizeSW.x_0, sizeWNS.x_0])); + colMidWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [sizeN.x_0, sizeC.x_0, sizeS.x_0, sizeNESW.x_0])); + colNsWidth = sizeNS.x_0; + colRightWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [sizeNE.x_0, sizeE.x_0, sizeSE.x_0, sizeENS.x_0])); + rowTopHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [sizeNW.y_0, sizeN.y_0, sizeNE.y_0, sizeNWE.y_0])); + rowMidHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [sizeW.y_0, sizeC.y_0, sizeE.y_0, sizeNESW.y_0])); + rowWeHeight = sizeWE.y_0; + rowBottomHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [sizeSW.y_0, sizeS.y_0, sizeSE.y_0, sizeSWE.y_0])); + $offsetGraphs($getComponents(group, SIDES_NONE), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH), colLeftWidth + colNsWidth, 0); + $offsetGraphs($getComponents(group, SIDES_SOUTH), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_WEST), 0, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_EAST), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST), colLeftWidth + colNsWidth + colMidWidth, 0); + $offsetGraphs($getComponents(group, SIDES_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_EAST_WEST), 0, rowTopHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_SOUTH), colLeftWidth, 0); + $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, 0); + componentSize = new KVector; + componentSize.x_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [colLeftWidth + colMidWidth + colNsWidth + colRightWidth, sizeWE.x_0, sizeNWE.x_0, sizeSWE.x_0])); + componentSize.y_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_66, 28, 15, [rowTopHeight + rowMidHeight + rowWeHeight + rowBottomHeight, sizeNS.y_0, sizeWNS.y_0, sizeENS.y_0])); + return componentSize; +} + +function $placeComponentsHorizontally(components, spacing){ + var component, component$iterator, size_0; + size_0 = new KVector; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 36); + $offsetGraph(component, size_0.x_0, 0); + size_0.x_0 += component.size_0.x_0 + spacing; + size_0.y_0 = $wnd.Math.max(size_0.y_0, component.size_0.y_0); + } + size_0.y_0 > 0 && (size_0.y_0 += spacing); + return size_0; +} + +function $placeComponentsInRows(components, spacing){ + var broadestRow, component, component$iterator, componentSize, graph, graph$iterator, highestBox, maxRowWidth, size_0, totalArea, xpos, ypos; + if (components.isEmpty()) { + return new KVector; + } + maxRowWidth = 0; + totalArea = 0; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 36); + componentSize = component.size_0; + maxRowWidth = $wnd.Math.max(maxRowWidth, componentSize.x_0); + totalArea += componentSize.x_0 * componentSize.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(castTo(components.iterator_0().next_1(), 36), ($clinit_LayeredOptions() , ASPECT_RATIO_1))))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $offsetGraph(graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + return new KVector_1(broadestRow + spacing, ypos + highestBox + spacing); +} + +function $placeComponentsVertically(components, spacing){ + var component, component$iterator, size_0; + size_0 = new KVector; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 36); + $offsetGraph(component, 0, size_0.y_0); + size_0.y_0 += component.size_0.y_0 + spacing; + size_0.x_0 = $wnd.Math.max(size_0.x_0, component.size_0.x_0); + } + size_0.x_0 > 0 && (size_0.x_0 += spacing); + return size_0; +} + +function ComponentGroupGraphPlacer(){ + this.componentGroups = new ArrayList; +} + +defineClass(779, 2104, {}, ComponentGroupGraphPlacer); +_.addComponent = function addComponent(component){ + var group, group$iterator; + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 335); + if (group.add_4(component)) { + return; + } + } + $add_3(this.componentGroups, new ComponentGroup(component)); +} +; +_.combine = function combine(components, target){ + var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, offset; + this.componentGroups.array.length = 0; + target.layerlessNodes.array.length = 0; + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 36); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 36); + this.addComponent(component); + } + offset = new KVector; + componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); + for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_6(group$iterator0), 335); + groupSize = $placeComponents(group, componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + offset.x_0 += groupSize.x_0; + offset.y_0 += groupSize.y_0; + } + target.size_0.x_0 = offset.x_0 - componentSpacing; + target.size_0.y_0 = offset.y_0 - componentSpacing; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { + for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { + h = castTo(h$iterator0.next_1(), 36); + $offsetGraph(h, h.offset.x_0, h.offset.y_0); + } + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 36); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 335); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupGraphPlacer', 779); +function $addComponent(this$static, component){ + var group; + if (this$static.componentGroups.array.length > 0) { + group = castTo($get_11(this$static.componentGroups, this$static.componentGroups.array.length - 1), 579); + if ($add_14(group, component)) { + return; + } + } + $add_3(this$static.componentGroups, new ModelOrderComponentGroup(component)); +} + +function ComponentGroupModelOrderGraphPlacer(){ + ComponentGroupGraphPlacer.call(this); +} + +defineClass(1312, 779, {}, ComponentGroupModelOrderGraphPlacer); +_.addComponent = function addComponent_0(component){ + $addComponent(this, component); +} +; +_.combine = function combine_0(components, target){ + var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, maxSize, offset, side, side$iterator, spaceBlockedByComponents, spaceBlockedBySouthEdges; + this.componentGroups.array.length = 0; + target.layerlessNodes.array.length = 0; + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 36); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 36); + $addComponent(this, component); + } + spaceBlockedBySouthEdges = new KVector; + spaceBlockedByComponents = new KVector; + offset = new KVector; + maxSize = new KVector; + componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); + for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_6(group$iterator0), 335); + if ($isHorizontal(castTo($getProperty(target, ($clinit_CoreOptions() , DIRECTION_1)), 88))) { + offset.x_0 = spaceBlockedBySouthEdges.x_0; + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , NORTH_3))) { + offset.x_0 = spaceBlockedByComponents.x_0; + break; + } + } + } + else if ($isVertical(castTo($getProperty(target, DIRECTION_1), 88))) { + offset.y_0 = spaceBlockedBySouthEdges.y_0; + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , WEST_2))) { + offset.y_0 = spaceBlockedByComponents.y_0; + break; + } + } + } + groupSize = $placeComponents(castTo(group, 579), componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + if ($isHorizontal(castTo($getProperty(target, DIRECTION_1), 88))) { + spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; + maxSize.x_0 = $wnd.Math.max(maxSize.x_0, spaceBlockedByComponents.x_0); + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , SOUTH_2))) { + spaceBlockedBySouthEdges.x_0 = offset.x_0 + groupSize.x_0; + break; + } + } + spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; + offset.y_0 = spaceBlockedByComponents.y_0; + maxSize.y_0 = $wnd.Math.max(maxSize.y_0, offset.y_0); + } + else if ($isVertical(castTo($getProperty(target, DIRECTION_1), 88))) { + spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; + maxSize.y_0 = $wnd.Math.max(maxSize.y_0, spaceBlockedByComponents.y_0); + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , EAST_2))) { + spaceBlockedBySouthEdges.y_0 = offset.y_0 + groupSize.y_0; + break; + } + } + spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; + offset.x_0 = spaceBlockedByComponents.x_0; + maxSize.x_0 = $wnd.Math.max(maxSize.x_0, offset.x_0); + } + } + target.size_0.x_0 = maxSize.x_0 - componentSpacing; + target.size_0.y_0 = maxSize.y_0 - componentSpacing; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { + for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { + h = castTo(h$iterator0.next_1(), 36); + $offsetGraph(h, h.offset.x_0, h.offset.y_0); + } + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 36); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 335); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupModelOrderGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupModelOrderGraphPlacer', 1312); +function $clinit_ComponentOrderingStrategy(){ + $clinit_ComponentOrderingStrategy = emptyMethod; + NONE = new ComponentOrderingStrategy('NONE', 0); + INSIDE_PORT_SIDE_GROUPS = new ComponentOrderingStrategy('INSIDE_PORT_SIDE_GROUPS', 1); + GROUP_MODEL_ORDER = new ComponentOrderingStrategy('GROUP_MODEL_ORDER', 2); + MODEL_ORDER = new ComponentOrderingStrategy('MODEL_ORDER', 3); +} + +function ComponentOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_27(name_0){ + $clinit_ComponentOrderingStrategy(); + return valueOf(($clinit_ComponentOrderingStrategy$Map() , $MAP_17), name_0); +} + +function values_35(){ + $clinit_ComponentOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_37, 389, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, GROUP_MODEL_ORDER, MODEL_ORDER]); +} + +defineClass(389, 22, {3:1, 34:1, 22:1, 389:1}, ComponentOrderingStrategy); +var GROUP_MODEL_ORDER, INSIDE_PORT_SIDE_GROUPS, MODEL_ORDER, NONE; +var Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.components', 'ComponentOrderingStrategy', 389, Ljava_lang_Enum_2_classLit, values_35, valueOf_27); +function $clinit_ComponentOrderingStrategy$Map(){ + $clinit_ComponentOrderingStrategy$Map = emptyMethod; + $MAP_17 = createValueOfMap(($clinit_ComponentOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_37, 389, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, GROUP_MODEL_ORDER, MODEL_ORDER]))); +} + +var $MAP_17; +function $addLGraphElementBounds(pts, element, offset){ + var margins; + margins = null; + !!element && (margins = element.margin); + $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); +} + +function $compact_5(this$static, graphs, spacing){ + var c, cc, cc$iterator, cc$iterator0, ccs, e, e$iterator, graph, graph$iterator, graph$iterator0, last, lastArg, n, n$iterator, newPos, node, node$iterator, offset, v, v$iterator, vc, compaction; + this$static.graphTopLeft = new KVector_1($intern_60, $intern_60); + this$static.graphBottomRight = new KVector_1($intern_61, $intern_61); + for (graph$iterator0 = graphs.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 36); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + this$static.graphTopLeft.x_0 = $wnd.Math.min(this$static.graphTopLeft.x_0, node.pos.x_0 - node.margin.left); + this$static.graphTopLeft.y_0 = $wnd.Math.min(this$static.graphTopLeft.y_0, node.pos.y_0 - node.margin.top_0); + this$static.graphBottomRight.x_0 = $wnd.Math.max(this$static.graphBottomRight.x_0, node.pos.x_0 + node.size_0.x_0 + node.margin.right); + this$static.graphBottomRight.y_0 = $wnd.Math.max(this$static.graphBottomRight.y_0, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); + } + } + ccs = new ComponentsCompactor$InternalConnectedComponents; + for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + c = $transformLGraph(this$static, graph); + $add_3(ccs.components, c); + c.containsRegularNodes = c.containsRegularNodes | !castTo($getProperty(c.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).isEmpty(); + } + this$static.compactor = ($clinit_OneDimensionalComponentsCompaction() , compaction = new OneDimensionalComponentsCompaction , compaction.transformer = new ComponentsToCGraphTransformer(spacing) , compaction.compactionGraph = $transform_0(compaction.transformer, ccs) , compaction); + $compact_2((lastArg = this$static.compactor , new BasicProgressMonitor , lastArg)); + this$static.yetAnotherOffset = new KVector; + this$static.compactedGraphSize = this$static.compactor.transformer.graphSize; + for (cc$iterator0 = new ArrayList$1(ccs.components); cc$iterator0.i < cc$iterator0.this$01.array.length;) { + cc = castTo($next_6(cc$iterator0), 855); + offset = $getOffset_0(this$static.compactor, cc); + offsetGraph(cc.graph_0, offset.x_0, offset.y_0); + for (n$iterator = new ArrayList$1(cc.graph_0.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + newPos = $getExternalPortPosition(this$static, n.pos, castTo($getProperty(n, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64)); + $add_19($reset_5(n.pos), newPos); + } + } + } + for (cc$iterator = new ArrayList$1(ccs.components); cc$iterator.i < cc$iterator.this$01.array.length;) { + cc = castTo($next_6(cc$iterator), 855); + for (e$iterator = new ArrayList$1($getExternalEdges(cc)); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + vc = new KVectorChain_0(e.bendPoints); + $add_0(vc, 0, $getAbsoluteAnchor(e.source)); + $add_7(vc, $getAbsoluteAnchor(e.target)); + last = null; + for (v$iterator = $listIterator_2(vc, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_9(v$iterator), 8); + if (!last) { + last = v; + continue; + } + if (fuzzyEquals(last.x_0, v.x_0)) { + this$static.yetAnotherOffset.x_0 = $wnd.Math.min(this$static.yetAnotherOffset.x_0, last.x_0); + this$static.compactedGraphSize.x_0 = $wnd.Math.max(this$static.compactedGraphSize.x_0, last.x_0); + } + else if (fuzzyEquals(last.y_0, v.y_0)) { + this$static.yetAnotherOffset.y_0 = $wnd.Math.min(this$static.yetAnotherOffset.y_0, last.y_0); + this$static.compactedGraphSize.y_0 = $wnd.Math.max(this$static.compactedGraphSize.y_0, last.y_0); + } + last = v; + } + } + } + $negate_0(this$static.yetAnotherOffset); + $add_19(this$static.compactedGraphSize, this$static.yetAnotherOffset); +} + +function $componentHullPoints(graph){ + var absolute, bp, bp$iterator, edge, edge$iterator, n, n$iterator, pts; + pts = new ComponentsCompactor$Hullpoints; + for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + $addLGraphElementBounds(pts, n, new KVector); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (edge.source.owner.type_0 == EXTERNAL_PORT || edge.target.owner.type_0 == EXTERNAL_PORT) { + continue; + } + for (bp$iterator = $listIterator_2(edge.bendPoints, 0); bp$iterator.currentNode != bp$iterator.this$01.tail;) { + bp = castTo($next_9(bp$iterator), 8); + absolute = bp; + $add_12(pts, new Point(absolute.x_0, absolute.y_0)); + } + } + } + return pts; +} + +function $createDummyNode(graph){ + var dummy, dummyEdge, dummyPort, extPortDummy, extPortDummyPort; + extPortDummy = castTo($get_11(graph.layerlessNodes, 0), 10); + dummy = new LNode(graph); + $add_3(graph.layerlessNodes, dummy); + dummy.size_0.x_0 = $wnd.Math.max(1, extPortDummy.size_0.x_0); + dummy.size_0.y_0 = $wnd.Math.max(1, extPortDummy.size_0.y_0); + dummy.pos.x_0 = extPortDummy.pos.x_0; + dummy.pos.y_0 = extPortDummy.pos.y_0; + switch (castTo($getProperty(extPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64).ordinal) { + case 4: + dummy.pos.x_0 += 2; + break; + case 1: + dummy.pos.y_0 += 2; + break; + case 2: + dummy.pos.x_0 -= 2; + break; + case 3: + dummy.pos.y_0 -= 2; + } + dummyPort = new LPort; + $setNode(dummyPort, dummy); + dummyEdge = new LEdge; + extPortDummyPort = castTo($get_11(extPortDummy.ports, 0), 12); + $setSource_0(dummyEdge, extPortDummyPort); + $setTarget_0(dummyEdge, dummyPort); + $add_19($reset_5(dummyPort.pos), extPortDummyPort.pos); + $add_19($reset_5(dummyPort.anchor), extPortDummyPort.anchor); + return dummy; +} + +function $edgeToSegments(this$static, edge, externalExtension){ + var externalPort, externalPortSide, i, outerSegmentIsFirst, p1, p2, points, segment, segments; + externalPort = externalExtension.externalPort; + externalPortSide = externalExtension.externalPortSide; + p1 = $getAbsoluteAnchor(edge.source); + p2 = $getAbsoluteAnchor(edge.target); + if (externalPort == edge.source) { + p1 = $getExternalPortPosition(this$static, p1, externalPortSide); + p2 = $getPortPositionOnMargin(edge.target); + } + else { + p1 = $getPortPositionOnMargin(edge.source); + p2 = $getExternalPortPosition(this$static, p2, externalPortSide); + } + points = new KVectorChain_0(edge.bendPoints); + $addNode_0(points, p1, points.header, points.header.next_0); + $addNode_0(points, p2, points.tail.prev, points.tail); + outerSegmentIsFirst = edge.source == externalPort; + segments = new ComponentsCompactor$Segments; + for (i = 0; i < points.size_0 - 1; ++i) { + segment = new Pair(castTo($get_7(points, i), 8), castTo($get_7(points, i + 1), 8)); + outerSegmentIsFirst && i == 0 || !outerSegmentIsFirst && i == points.size_0 - 2?(segments.outerSegment = segment):$add_3(segments.innerSegments, segment); + } + return segments; +} + +function $getExternalPortPosition(this$static, pos, ps){ + switch (ps.ordinal) { + case 1: + return new KVector_1(pos.x_0, $wnd.Math.min(this$static.graphTopLeft.y_0, pos.y_0)); + case 2: + return new KVector_1($wnd.Math.max(this$static.graphBottomRight.x_0, pos.x_0), pos.y_0); + case 3: + return new KVector_1(pos.x_0, $wnd.Math.max(this$static.graphBottomRight.y_0, pos.y_0)); + case 4: + return new KVector_1($wnd.Math.min(pos.x_0, this$static.graphTopLeft.x_0), pos.y_0); + } + return new KVector_1(pos.x_0, pos.y_0); +} + +function $getPortPositionOnMargin(port){ + var margins, pos; + pos = $clone_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor]))); + margins = port.owner.margin; + switch (port.side.ordinal) { + case 1: + pos.y_0 -= margins.top_0; + break; + case 2: + pos.x_0 += margins.right; + break; + case 3: + pos.y_0 += margins.bottom; + break; + case 4: + pos.x_0 -= margins.left; + } + return pos; +} + +function $portSideToDirection(side){ + switch (side.ordinal) { + case 1: + return $clinit_Direction_0() , UP_1; + case 4: + return $clinit_Direction_0() , LEFT_6; + case 2: + return $clinit_Direction_0() , RIGHT_6; + case 3: + return $clinit_Direction_0() , DOWN_1; + } + return $clinit_Direction_0() , UNDEFINED_2; +} + +function $segmentToRectangle(p1, p2, extent){ + return new ElkRectangle_0($wnd.Math.min(p1.x_0, p2.x_0) - extent / 2, $wnd.Math.min(p1.y_0, p2.y_0) - extent / 2, $wnd.Math.abs(p1.x_0 - p2.x_0) + extent, $wnd.Math.abs(p1.y_0 - p2.y_0) + extent); +} + +function $transformLEdge(this$static, externalEdge, hullPoints, outerSegments){ + var extent, externalExtension, margins, outerSegmentRect, rect, segment, segment$iterator, segments, side, thickness; + externalExtension = new ComponentsCompactor$InternalExternalExtension(externalEdge); + segments = $edgeToSegments(this$static, externalEdge, externalExtension); + thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))), 1); + for (segment$iterator = new ArrayList$1(segments.innerSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_6(segment$iterator), 42); + rect = $segmentToRectangle(castTo(segment.first, 8), castTo(segment.second, 8), thickness); + returnVal = true; + returnVal = returnVal & $add_13(hullPoints, new KVector_1(rect.x_0, rect.y_0)); + returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, 0)); + returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), 0, rect.height)); + returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, rect.height)); + } + side = externalExtension.externalPortSide; + outerSegmentRect = $segmentToRectangle(castTo(segments.outerSegment.first, 8), castTo(segments.outerSegment.second, 8), thickness); + if (side == ($clinit_PortSide() , WEST_2) || side == EAST_2) { + outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.y_0); + outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.y_0 + outerSegmentRect.height); + } + else { + outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.x_0); + outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.x_0 + outerSegmentRect.width_0); + } + extent = $intern_61; + margins = externalExtension.externalPort.owner.margin; + switch (side.ordinal) { + case 4: + extent = margins.right; + break; + case 2: + extent = margins.left; + break; + case 1: + extent = margins.bottom; + break; + case 3: + extent = margins.top_0; + } + outerSegments.extent[side.ordinal] = $wnd.Math.max(outerSegments.extent[side.ordinal], extent); + return externalExtension; +} + +function $transformLGraph(this$static, graph){ + var component, edge, edge$iterator, extension, extensions, extent, externalExtensions, hullPoints, iee, iuee, max_0, min_0, node, node$iterator, outerSegments, placeholder, ps, ps$iterator; + component = new ComponentsCompactor$InternalComponent(graph); + component.containsRegularNodes || $createDummyNode(graph); + hullPoints = $componentHullPoints(graph); + externalExtensions = new HashMultimap; + outerSegments = new ComponentsCompactor$OuterSegments; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || edge.target.owner.type_0 == EXTERNAL_PORT) { + iee = $transformLEdge(this$static, edge, hullPoints, outerSegments); + $put(externalExtensions, $portSideToDirection(iee.externalPortSide), iee.edge); + } + } + } + extensions = new ArrayList; + for (ps$iterator = castTo($getProperty(component.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).iterator_0(); ps$iterator.hasNext_0();) { + ps = castTo(ps$iterator.next_1(), 64); + min_0 = outerSegments.min_0[ps.ordinal]; + max_0 = outerSegments.max_0[ps.ordinal]; + extent = outerSegments.extent[ps.ordinal]; + extension = null; + placeholder = null; + switch (ps.ordinal) { + case 4: + extension = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, hullPoints.topLeft.x_0 - this$static.graphTopLeft.x_0, max_0 - min_0); + placeholder = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, extent, max_0 - min_0); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); + break; + case 2: + extension = new ElkRectangle_0(hullPoints.bottomRight.x_0, min_0, this$static.graphBottomRight.x_0 - hullPoints.bottomRight.x_0, max_0 - min_0); + placeholder = new ElkRectangle_0(this$static.graphBottomRight.x_0 - extent, min_0, extent, max_0 - min_0); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); + break; + case 1: + extension = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, hullPoints.topLeft.y_0 - this$static.graphTopLeft.y_0); + placeholder = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, extent); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); + break; + case 3: + extension = new ElkRectangle_0(min_0, hullPoints.bottomRight.y_0, max_0 - min_0, this$static.graphBottomRight.y_0 - hullPoints.bottomRight.y_0); + placeholder = new ElkRectangle_0(min_0, this$static.graphBottomRight.y_0 - extent, max_0 - min_0, extent); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); + } + if (extension) { + iuee = new ComponentsCompactor$InternalUnionExternalExtension; + iuee.side = ps; + iuee.extension = extension; + iuee.placeholder = placeholder; + iuee.edges = newHashSet(castTo($get(externalExtensions, $portSideToDirection(ps)), 21)); + push_1(extensions.array, iuee); + } + } + $addAll_2(component.externalExtensions, extensions); + component.rectilinearConvexHull = $splitIntoRectangles(of_5(hullPoints)); + return component; +} + +function ComponentsCompactor(){ +} + +defineClass(659, 1, {}, ComponentsCompactor); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor', 659); +function $add_12(this$static, e){ + this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, e.x_0); + this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, e.y_0); + this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, e.x_0); + this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, e.y_0); + return push_1(this$static.array, e) , true; +} + +function $add_13(this$static, e){ + return $add_12(this$static, new Point(e.x_0, e.y_0)); +} + +function ComponentsCompactor$Hullpoints(){ + $$init_1(this); + this.topLeft = new KVector_1($intern_60, $intern_60); + this.bottomRight = new KVector_1($intern_61, $intern_61); +} + +defineClass(1533, 13, $intern_71, ComponentsCompactor$Hullpoints); +_.add_2 = function add_44(e){ + return $add_12(this, castTo(e, 148)); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Hullpoints_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Hullpoints', 1533); +function $getExternalEdges(this$static){ + var edges, ee, ee$iterator; + edges = new ArrayList; + for (ee$iterator = new ArrayList$1(this$static.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { + ee = castTo($next_6(ee$iterator), 602); + $addAll_2(edges, castTo(ee.getRepresentative(), 16)); + } + return edges; +} + +function ComponentsCompactor$InternalComponent(graph){ + var n, n$iterator; + this.externalExtensions = new ArrayList; + this.graph_0 = graph; + this.containsRegularNodes = false; + for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + this.containsRegularNodes = this.containsRegularNodes | n.type_0 == ($clinit_LNode$NodeType() , NORMAL); + } +} + +defineClass(1530, 1, {855:1}, ComponentsCompactor$InternalComponent); +_.containsRegularNodes = false; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalComponent_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalComponent', 1530); +function ComponentsCompactor$InternalConnectedComponents(){ + this.components = new ArrayList; +} + +defineClass(1529, 1, $intern_23, ComponentsCompactor$InternalConnectedComponents); +_.forEach_0 = function forEach_25(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_67(){ + return new ArrayList$1(this.components); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalConnectedComponents_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalConnectedComponents', 1529); +function ComponentsCompactor$InternalExternalExtension(edge){ + this.edge = edge; + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + this.externalPort = edge.source; + this.externalPortSide = castTo($getProperty(edge.source.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + } + else if (edge.target.owner.type_0 == EXTERNAL_PORT) { + this.externalPort = edge.target; + this.externalPortSide = castTo($getProperty(edge.target.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + } + else { + throw toJs(new IllegalArgumentException_0('Edge ' + edge + ' is not an external edge.')); + } +} + +defineClass(1532, 1, {602:1}, ComponentsCompactor$InternalExternalExtension); +_.getPlaceholder = function getPlaceholder(){ + return null; +} +; +_.getRepresentative = function getRepresentative(){ + return this.edge; +} +; +_.getDirection = function getDirection(){ + return $portSideToDirection(this.externalPortSide); +} +; +_.getRepresentor = function getRepresentor(){ + return this.externalExtension; +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalExternalExtension', 1532); +function ComponentsCompactor$InternalUnionExternalExtension(){ + this.edges = new HashSet; +} + +defineClass(1531, 1, {602:1}, ComponentsCompactor$InternalUnionExternalExtension); +_.getRepresentative = function getRepresentative_0(){ + return this.edges; +} +; +_.getDirection = function getDirection_0(){ + return $portSideToDirection(this.side); +} +; +_.getPlaceholder = function getPlaceholder_0(){ + return this.placeholder; +} +; +_.getRepresentor = function getRepresentor_0(){ + return this.extension; +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalUnionExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalUnionExternalExtension', 1531); +function ComponentsCompactor$OuterSegments(){ + this.min_0 = initUnidimensionalArray(D_classLit, $intern_66, 28, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.max_0 = initUnidimensionalArray(D_classLit, $intern_66, 28, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + this.extent = initUnidimensionalArray(D_classLit, $intern_66, 28, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + fill_1(this.min_0, $intern_60); + fill_1(this.max_0, $intern_61); + fill_1(this.extent, $intern_61); +} + +defineClass(1535, 1, {}, ComponentsCompactor$OuterSegments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$OuterSegments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/OuterSegments', 1535); +function ComponentsCompactor$Segments(){ + this.innerSegments = new ArrayList; +} + +defineClass(1534, 1, {}, ComponentsCompactor$Segments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Segments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Segments', 1534); +function $combine(this$static, components, target){ + this$static.graphPlacer.combine(components, target); +} + +function $dfs_1(this$static, node, data_0){ + var all, component, extPortSides, mutableData, port1, port1$iterator, port2, port2$iterator; + if (node.id_0 == 0) { + node.id_0 = 1; + mutableData = data_0; + if (!mutableData) { + component = new ArrayList; + extPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + mutableData = new Pair(component, extPortSides); + } + castTo(mutableData.first, 15).add_2(node); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && castTo(mutableData.second, 21).add_2(castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64)); + for (port1$iterator = new ArrayList$1(node.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_6(port1$iterator), 12); + for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { + port2 = castTo($next_0(port2$iterator), 12); + $dfs_1(this$static, port2.owner, mutableData); + } + } + return mutableData; + } + return null; +} + +function $split_2(this$static, graph){ + var compatiblePortConstraints, componentData, extPortConstraints, extPorts, n, n$iterator, newGraph, node, node$iterator, node$iterator0, result, separate, separateProperty; + this$static.graphPlacer = this$static.simpleRowGraphPlacer; + separateProperty = castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , SEPARATE_CONNECTED_COMPONENTS_0))); + separate = separateProperty == null || (checkCriticalNotNull(separateProperty) , separateProperty); + extPorts = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + extPortConstraints = castTo($getProperty(graph, PORT_CONSTRAINTS_0), 101); + compatiblePortConstraints = !(extPortConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || extPortConstraints == FIXED_RATIO || extPortConstraints == FIXED_POS); + if (separate && (compatiblePortConstraints || !extPorts)) { + for (node$iterator0 = new ArrayList$1(graph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.id_0 = 0; + } + result = new ArrayList; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + componentData = $dfs_1(this$static, node, null); + if (componentData) { + newGraph = new LGraph; + $copyProperties(newGraph, graph); + $setProperty_0(newGraph, EXT_PORT_CONNECTIONS, castTo(componentData.second, 21)); + $copy(newGraph.padding, graph.padding); + $setProperty_0(newGraph, NODE_SIZE_MINIMUM_0, null); + for (n$iterator = castTo(componentData.first, 15).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 10); + $add_3(newGraph.layerlessNodes, n); + n.graph_0 = newGraph; + } + result.add_2(newGraph); + } + } + extPorts && (maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) === maskUndefined(($clinit_ComponentOrderingStrategy() , GROUP_MODEL_ORDER))?(this$static.graphPlacer = this$static.componentGroupModelOrderGraphPlacer):maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) === maskUndefined(MODEL_ORDER)?(this$static.graphPlacer = this$static.modelOrderRowGraphPlacer):(this$static.graphPlacer = this$static.componentGroupGraphPlacer)); + } + else { + result = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 36, 0, [graph])); + } + maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) && ($clinit_Collections() , result.sort_0(new ComponentsProcessor$lambda$0$Type)); + return result; +} + +function ComponentsProcessor_0(){ + this.componentGroupGraphPlacer = new ComponentGroupGraphPlacer; + this.componentGroupModelOrderGraphPlacer = new ComponentGroupModelOrderGraphPlacer; + this.modelOrderRowGraphPlacer = new ModelOrderRowGraphPlacer; + this.simpleRowGraphPlacer = new SimpleRowGraphPlacer; +} + +function lambda$0_23(g1_0, g2_1){ + var g1Order, g2Order; + g1Order = getMinimalModelOrder(g1_0); + g2Order = getMinimalModelOrder(g2_1); + return g1Order < g2Order?-1:g1Order > g2Order?1:0; +} + +defineClass(1282, 1, {}, ComponentsProcessor_0); +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor', 1282); +function ComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1283, 1, $intern_88, ComponentsProcessor$lambda$0$Type); +_.compare_1 = function compare_38(arg0, arg1){ + return lambda$0_23(castTo(arg0, 36), castTo(arg1, 36)); +} +; +_.equals_0 = function equals_94(other){ + return this === other; +} +; +_.reversed = function reversed_30(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor/lambda$0$Type', 1283); +function $clinit_ModelOrderComponentGroup(){ + $clinit_ModelOrderComponentGroup = emptyMethod; + $clinit_ComponentGroup(); + MODEL_ORDER_CONSTRAINTS = new HashMultimap; + $put(MODEL_ORDER_CONSTRAINTS, ($clinit_PortSide() , SIDES_NORTH), SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); +} + +function $add_14(this$static, component){ + if ($canAdd(this$static, component)) { + $put(this$static.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); + $add_7(this$static.componentOrder, component); + return true; + } + else { + return false; + } +} + +function $canAdd(this$static, component){ + var candidateSides, constraint, constraint$iterator, constraint$iterator0, constraints, modelOrderConstraints; + candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); + constraints = castTo($get(($clinit_ComponentGroup() , CONSTRAINTS), candidateSides), 21); + modelOrderConstraints = castTo($get(MODEL_ORDER_CONSTRAINTS, candidateSides), 21); + for (constraint$iterator0 = constraints.iterator_0(); constraint$iterator0.hasNext_0();) { + constraint = castTo(constraint$iterator0.next_1(), 21); + if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { + return false; + } + } + for (constraint$iterator = modelOrderConstraints.iterator_0(); constraint$iterator.hasNext_0();) { + constraint = castTo(constraint$iterator.next_1(), 21); + if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { + return false; + } + } + return true; +} + +function ModelOrderComponentGroup(component){ + $clinit_ModelOrderComponentGroup(); + $$init_5(this); + this.componentOrder = new LinkedList; + $add_14(this, component); + $add_7(this.componentOrder, component); +} + +defineClass(579, 335, {335:1, 579:1}, ModelOrderComponentGroup); +_.add_4 = function add_45(component){ + return $add_14(this, component); +} +; +_.canAdd = function canAdd_0(component){ + return $canAdd(this, component); +} +; +var MODEL_ORDER_CONSTRAINTS; +var Lorg_eclipse_elk_alg_layered_components_ModelOrderComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ModelOrderComponentGroup', 579); +function SimpleRowGraphPlacer(){ +} + +defineClass(1310, 2104, {}, SimpleRowGraphPlacer); +_.combine = function combine_1(components, target){ + var compactor, componentSpacing, firstComponent, graph, graph$iterator, h, h$iterator, maxRowWidth, size_0, source, totalArea; + if (components.size_1() == 1) { + source = castTo(components.get_0(0), 36); + if (source != target) { + target.layerlessNodes.array.length = 0; + $moveGraph_0(target, source, 0, 0); + $copyProperties(target, source); + $copy(target.padding, source.padding); + target.size_0.x_0 = source.size_0.x_0; + target.size_0.y_0 = source.size_0.y_0; + } + return; + } + else if (components.isEmpty()) { + target.layerlessNodes.array.length = 0; + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + this.sortComponents(components, target); + firstComponent = castTo(components.get_0(0), 36); + target.layerlessNodes.array.length = 0; + $copyProperties(target, firstComponent); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + size_0 = graph.size_0; + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(target, ($clinit_LayeredOptions() , ASPECT_RATIO_1))))); + componentSpacing = $doubleValue(castToDouble($getProperty(target, SPACING_COMPONENT_COMPONENT_0))); + this.placeComponents(components, target, maxRowWidth, componentSpacing); + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0)))) { + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 36); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + $moveGraphs(target, components); +} +; +_.placeComponents = function placeComponents(components, target, maxRowWidth, componentSpacing){ + var broadestRow, graph, graph$iterator, highestBox, offset, size_0, xpos, ypos; + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = componentSpacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + componentSpacing; + highestBox = 0; + } + offset = graph.offset; + $offsetGraph(graph, xpos + offset.x_0, ypos + offset.y_0); + $reset_5(offset); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + componentSpacing; + } + target.size_0.x_0 = broadestRow; + target.size_0.y_0 = ypos + highestBox; +} +; +_.sortComponents = function sortComponents(components, target){ + var graph, graph$iterator, node, node$iterator, priority; + if (maskUndefined($getProperty(target, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_COMPONENTS_0))) === maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + priority = 0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + priority += castTo($getProperty(node, PRIORITY_0), 17).value_0; + } + graph.id_0 = priority; + } + $clinit_Collections(); + components.sort_0(new SimpleRowGraphPlacer$1); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer', 1310); +function ModelOrderRowGraphPlacer(){ +} + +defineClass(1313, 1310, {}, ModelOrderRowGraphPlacer); +_.placeComponents = function placeComponents_0(components, target, maxRowWidth, componentSpacing){ + var broadestRow, graph, graph$iterator, highestBox, lastComponent, offset, size_0, startXOfRow, xpos, ypos; + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = componentSpacing; + lastComponent = null; + startXOfRow = 0; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 36); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth && !castTo($getProperty(graph, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).contains(($clinit_PortSide() , NORTH_3)) || !!lastComponent && castTo($getProperty(lastComponent, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).contains(($clinit_PortSide() , EAST_2)) || castTo($getProperty(graph, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).contains(($clinit_PortSide() , WEST_2))) { + xpos = startXOfRow; + ypos += highestBox + componentSpacing; + highestBox = 0; + } + offset = graph.offset; + castTo($getProperty(graph, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).contains(($clinit_PortSide() , NORTH_3)) && (xpos = broadestRow + componentSpacing); + $offsetGraph(graph, xpos + offset.x_0, ypos + offset.y_0); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + castTo($getProperty(graph, EXT_PORT_CONNECTIONS), 21).contains(SOUTH_2) && (startXOfRow = $wnd.Math.max(startXOfRow, xpos + size_0.x_0 + componentSpacing)); + $reset_5(offset); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + componentSpacing; + lastComponent = graph; + } + target.size_0.x_0 = broadestRow; + target.size_0.y_0 = ypos + highestBox; +} +; +_.sortComponents = function sortComponents_0(components, target){ +} +; +var Lorg_eclipse_elk_alg_layered_components_ModelOrderRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ModelOrderRowGraphPlacer', 1313); +function $compare_8(graph1, graph2){ + var prio, size1, size2; + prio = graph2.id_0 - graph1.id_0; + if (prio == 0) { + size1 = graph1.size_0.x_0 * graph1.size_0.y_0; + size2 = graph2.size_0.x_0 * graph2.size_0.y_0; + return compare_4(size1, size2); + } + return prio; +} + +function SimpleRowGraphPlacer$1(){ +} + +defineClass(1311, 1, $intern_88, SimpleRowGraphPlacer$1); +_.compare_1 = function compare_39(graph1, graph2){ + return $compare_8(castTo(graph1, 36), castTo(graph2, 36)); +} +; +_.equals_0 = function equals_95(other){ + return this === other; +} +; +_.reversed = function reversed_31(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer/1', 1311); +function $clinit_CompoundGraphPostprocessor(){ + $clinit_CompoundGraphPostprocessor = emptyMethod; + HAS_JUNCTION_POINTS_PREDICATE = new CompoundGraphPostprocessor$1; +} + +function $process_0(graph, monitor){ + var addUnnecessaryBendpoints, bendPoints, chEdge, chEdge$iterator, crossHierarchyEdges, crossHierarchyMap, dummyEdge, dummyEdge$iterator, dummyEdges, junctionPoints, lastPoint, ledge, nextPoint, offset, origEdge, origEdge$iterator, referenceGraph, referenceNode, sourcePoint, sourcePort, targetPoint, targetPort, xDiffEnough, yDiffEnough; + monitor.begin('Compound graph postprocessor', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + crossHierarchyMap = castTo($getProperty(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP)), 229); + dummyEdges = new HashSet; + for (origEdge$iterator = crossHierarchyMap.keySet_0().iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 18); + crossHierarchyEdges = new ArrayList_1(crossHierarchyMap.get_1(origEdge)); + $clinit_Collections(); + $sort(crossHierarchyEdges, new CrossHierarchyEdgeComparator(graph)); + sourcePort = $getActualSource((checkCriticalElementIndex(0, crossHierarchyEdges.array.length) , castTo(crossHierarchyEdges.array[0], 249))); + targetPort = $getActualTarget(castTo($get_11(crossHierarchyEdges, crossHierarchyEdges.array.length - 1), 249)); + referenceNode = sourcePort.owner; + isDescendant(targetPort.owner, referenceNode)?(referenceGraph = referenceNode.nestedGraph):(referenceGraph = $getGraph(referenceNode)); + junctionPoints = clearJunctionPoints(origEdge, crossHierarchyEdges); + $reset_0(origEdge.bendPoints); + lastPoint = null; + for (chEdge$iterator = new ArrayList$1(crossHierarchyEdges); chEdge$iterator.i < chEdge$iterator.this$01.array.length;) { + chEdge = castTo($next_6(chEdge$iterator), 249); + offset = new KVector; + changeCoordSystem(offset, chEdge.graph_0, referenceGraph); + ledge = chEdge.newEdge; + bendPoints = new KVectorChain; + $addAllAsCopies(bendPoints, 0, ledge.bendPoints); + $offset_2(bendPoints, offset); + sourcePoint = new KVector_2($getAbsoluteAnchor(ledge.source)); + targetPoint = new KVector_2($getAbsoluteAnchor(ledge.target)); + $add_19(sourcePoint, offset); + $add_19(targetPoint, offset); + if (lastPoint) { + bendPoints.size_0 == 0?(nextPoint = targetPoint):(nextPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8))); + xDiffEnough = $wnd.Math.abs(lastPoint.x_0 - nextPoint.x_0) > $intern_101; + yDiffEnough = $wnd.Math.abs(lastPoint.y_0 - nextPoint.y_0) > $intern_101; + (!addUnnecessaryBendpoints && xDiffEnough && yDiffEnough || addUnnecessaryBendpoints && (xDiffEnough || yDiffEnough)) && $add_7(origEdge.bendPoints, sourcePoint); + } + $addAll(origEdge.bendPoints, bendPoints); + bendPoints.size_0 == 0?(lastPoint = sourcePoint):(lastPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8))); + copyJunctionPoints(ledge, junctionPoints, offset); + if ($getActualTarget(chEdge) == targetPort) { + if ($getGraph(targetPort.owner) != chEdge.graph_0) { + offset = new KVector; + changeCoordSystem(offset, $getGraph(targetPort.owner), referenceGraph); + } + $setProperty_0(origEdge, TARGET_OFFSET, offset); + } + copyLabelsBack(ledge, origEdge, referenceGraph); + dummyEdges.map_0.put(ledge, dummyEdges); + } + $setSource_0(origEdge, sourcePort); + $setTarget_0(origEdge, targetPort); + } + for (dummyEdge$iterator = dummyEdges.map_0.keySet_0().iterator_0(); dummyEdge$iterator.hasNext_0();) { + dummyEdge = castTo(dummyEdge$iterator.next_1(), 18); + $setSource_0(dummyEdge, null); + $setTarget_0(dummyEdge, null); + } + monitor.done_1(); +} + +function clearJunctionPoints(origEdge, crossHierarchyEdges){ + var junctionPoints; + junctionPoints = castTo($getProperty(origEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (any_0(crossHierarchyEdges, HAS_JUNCTION_POINTS_PREDICATE)) { + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(origEdge, JUNCTION_POINTS, junctionPoints); + } + else { + $reset_0(junctionPoints); + } + } + else + !!junctionPoints && $setProperty_0(origEdge, JUNCTION_POINTS, null); + return junctionPoints; +} + +function copyJunctionPoints(source, target, offset){ + var jpCopies, ledgeJPs; + ledgeJPs = castTo($getProperty(source, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (ledgeJPs) { + jpCopies = new KVectorChain; + $addAllAsCopies(jpCopies, 0, ledgeJPs); + $offset_2(jpCopies, offset); + $addAll(target, jpCopies); + } +} + +function copyLabelsBack(hierarchySegment, origEdge, referenceGraph){ + var currLabel, labelIterator; + labelIterator = new AbstractList$ListIteratorImpl(hierarchySegment.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 72)); + if (maskUndefined($getProperty(currLabel, ($clinit_InternalProperties_1() , ORIGINAL_LABEL_EDGE))) !== maskUndefined(origEdge)) { + continue; + } + changeCoordSystem(currLabel.pos, $getGraph(hierarchySegment.source.owner), referenceGraph); + $remove_8(labelIterator); + $add_3(origEdge.labels, currLabel); + } +} + +var HAS_JUNCTION_POINTS_PREDICATE; +function CompoundGraphPostprocessor$1(){ +} + +defineClass(1280, 1, $intern_89, CompoundGraphPostprocessor$1); +_.apply_1 = function apply_61(chEdge){ + var jps; + return jps = castTo($getProperty(castTo(chEdge, 249).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75) , !!jps && jps.size_0 != 0; +} +; +_.equals_0 = function equals_96(other){ + return this === other; +} +; +_.test_0 = function test_16(input_0){ + var jps; + return jps = castTo($getProperty(castTo(input_0, 249).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75) , !!jps && jps.size_0 != 0; +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPostprocessor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPostprocessor/1', 1280); +function $calculateNetFlow(port){ + var incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, node, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; + node = port.owner; + insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + outputPortVote = 0; + inputPortVote = 0; + for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { + outgoingEdge = castTo($next_6(outgoingEdge$iterator), 18); + isSelfLoop = $isSelfLoop(outgoingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(outgoingEdge, INSIDE_SELF_LOOPS_YO))); + targetNode = outgoingEdge.target.owner; + isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getGraph(targetNode).parentNode == node?++inputPortVote:++outputPortVote; + } + for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { + incomingEdge = castTo($next_6(incomingEdge$iterator), 18); + isSelfLoop = $isSelfLoop(incomingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(incomingEdge, INSIDE_SELF_LOOPS_YO))); + sourceNode = incomingEdge.source.owner; + isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getGraph(sourceNode).parentNode == node?++outputPortVote:++inputPortVote; + } + return outputPortVote - inputPortVote; +} + +function $connectChild(this$static, graph, externalPort, origEdge, sourcePort, targetPort){ + var dummyEdge; + dummyEdge = $createDummyEdge(origEdge); + $setSource_0(dummyEdge, sourcePort); + $setTarget_0(dummyEdge, targetPort); + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalPort.type_0)); +} + +function $connectSiblings(this$static, graph, externalOutputPort, containedExternalPorts, origEdge){ + var dummyEdge, externalPort2, externalPort2$iterator, targetExternalPort; + targetExternalPort = null; + for (externalPort2$iterator = new ArrayList$1(containedExternalPorts); externalPort2$iterator.i < externalPort2$iterator.this$01.array.length;) { + externalPort2 = castTo($next_6(externalPort2$iterator), 453); + if (externalPort2 != externalOutputPort && $indexOf_3(externalPort2.origEdges, origEdge, 0) != -1) { + targetExternalPort = externalPort2; + break; + } + } + dummyEdge = $createDummyEdge(origEdge); + $setSource_0(dummyEdge, externalOutputPort.dummyPort); + $setTarget_0(dummyEdge, targetExternalPort.dummyPort); + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalOutputPort.type_0)); +} + +function $createDummyEdge(origEdge){ + var dummyEdge; + dummyEdge = new LEdge; + $copyProperties(dummyEdge, origEdge); + $setProperty_0(dummyEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); + return dummyEdge; +} + +function $createExternalPortDummy(this$static, graph, parentNode, portType, portSide, edge){ + var dummyNode, dummyPort, layoutDirection, outsidePort, propertyHolder, offset; + dummyNode = null; + outsidePort = portType == ($clinit_PortType() , INPUT)?edge.source:edge.target; + layoutDirection = getDirection_1(graph); + if (outsidePort.owner == parentNode) { + dummyNode = castTo($get_10(this$static.dummyNodeMap, outsidePort), 10); + if (!dummyNode) { + dummyNode = createExternalPortDummy(outsidePort, castTo($getProperty(parentNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101), portSide, $calculateNetFlow(outsidePort), null, outsidePort.pos, outsidePort.size_0, layoutDirection, graph); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), outsidePort); + $put_6(this$static.dummyNodeMap, outsidePort, dummyNode); + } + } + else { + dummyNode = createExternalPortDummy((propertyHolder = new MapPropertyHolder , offset = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))) / 2 , $setProperty(propertyHolder, PORT_BORDER_OFFSET, offset) , propertyHolder), castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 101), portSide, portType == INPUT?-1:1, null, new KVector, new KVector_1(0, 0), layoutDirection, graph); + dummyPort = $createPortForDummy(dummyNode, parentNode, portType); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), dummyPort); + $put_6(this$static.dummyNodeMap, dummyPort, dummyNode); + } + castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + $isSideFixed(castTo($getProperty(graph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))?$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)):$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FREE)); + return dummyNode; +} + +function $createPortForDummy(dummyNode, parentNode, type_0){ + var graph, layoutDirection, port; + graph = $getGraph(parentNode); + layoutDirection = getDirection_1(graph); + port = new LPort; + $setNode(port, parentNode); + switch (type_0.ordinal) { + case 1: + $setSide(port, $opposed(fromDirection(layoutDirection))); + break; + case 2: + $setSide(port, fromDirection(layoutDirection)); + } + $setProperty_0(port, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET), castToDouble($getProperty(dummyNode, PORT_BORDER_OFFSET))); + return port; +} + +function $getShallowestEdgeSegment(edgeSegments){ + var crossHierarchyEdge, crossHierarchyEdge$iterator, index_0, result; + result = -1; + index_0 = 0; + for (crossHierarchyEdge$iterator = new ArrayList$1(edgeSegments); crossHierarchyEdge$iterator.i < crossHierarchyEdge$iterator.this$01.array.length;) { + crossHierarchyEdge = castTo($next_6(crossHierarchyEdge$iterator), 249); + if (crossHierarchyEdge.type_0 == ($clinit_PortType() , INPUT)) { + result = index_0 == 0?0:index_0 - 1; + break; + } + else + index_0 == edgeSegments.array.length - 1 && (result = index_0); + index_0 += 1; + } + return result; +} + +function $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, origEdge, oppositePort, portType, defaultExternalPort){ + var dummyEdge, dummyNode, externalPort, externalPortSide, mergeExternalPorts, parentEndPort, thickness; + mergeExternalPorts = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , MERGE_HIERARCHY_EDGES_0)))); + parentEndPort = null; + portType == ($clinit_PortType() , INPUT) && origEdge.source.owner == parentNode?(parentEndPort = origEdge.source):portType == OUTPUT && origEdge.target.owner == parentNode && (parentEndPort = origEdge.target); + externalPort = defaultExternalPort; + if (!externalPort || !mergeExternalPorts || !!parentEndPort) { + externalPortSide = ($clinit_PortSide() , UNDEFINED_5); + parentEndPort?(externalPortSide = parentEndPort.side):$isSideFixed(castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 101)) && (externalPortSide = portType == INPUT?WEST_2:EAST_2); + dummyNode = $createExternalPortDummy(this$static, graph, parentNode, portType, externalPortSide, origEdge); + dummyEdge = $createDummyEdge(($getGraph(parentNode) , origEdge)); + if (portType == INPUT) { + $setSource_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 12)); + $setTarget_0(dummyEdge, oppositePort); + } + else { + $setSource_0(dummyEdge, oppositePort); + $setTarget_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 12)); + } + externalPort = new CompoundGraphPreprocessor$ExternalPort(origEdge, dummyEdge, dummyNode, castTo($getProperty(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 12), portType, !parentEndPort); + } + else { + $add_3(externalPort.origEdges, origEdge); + thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalPort.newEdge, EDGE_THICKNESS_0))), $doubleValue(castToDouble($getProperty(origEdge, EDGE_THICKNESS_0)))); + $setProperty_0(externalPort.newEdge, EDGE_THICKNESS_0, thickness); + } + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(externalPort.newEdge, graph, portType)); + return externalPort; +} + +function $moveLabelsAndRemoveOriginalEdges(this$static, graph){ + var currLabel, edgeSegments, labelIterator, origEdge, origEdge$iterator, targetDummyEdgeIndex, targetSegment; + for (origEdge$iterator = $keySet(this$static.crossHierarchyMap).iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 18); + if (origEdge.labels.array.length > 0) { + edgeSegments = new ArrayList_1(castTo($get(this$static.crossHierarchyMap, origEdge), 21)); + $clinit_Collections(); + $sort(edgeSegments, new CrossHierarchyEdgeComparator(graph)); + labelIterator = new AbstractList$ListIteratorImpl(origEdge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 72)); + targetDummyEdgeIndex = -1; + switch (castTo($getProperty(currLabel, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 278).ordinal) { + case 1: + targetDummyEdgeIndex = edgeSegments.array.length - 1; + break; + case 0: + targetDummyEdgeIndex = $getShallowestEdgeSegment(edgeSegments); + break; + case 2: + targetDummyEdgeIndex = 0; + } + if (targetDummyEdgeIndex != -1) { + targetSegment = (checkCriticalElementIndex(targetDummyEdgeIndex, edgeSegments.array.length) , castTo(edgeSegments.array[targetDummyEdgeIndex], 249)); + $add_3(targetSegment.newEdge.labels, currLabel); + castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , END_LABELS)); + castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), GRAPH_PROPERTIES), 21).add_2(CENTER_LABELS); + $remove_8(labelIterator); + $setProperty_0(currLabel, ORIGINAL_LABEL_EDGE, origEdge); + } + } + } + $setSource_0(origEdge, null); + $setTarget_0(origEdge, null); + } +} + +function $process_1(this$static, graph, monitor){ + monitor.begin('Compound graph preprocessor', 1); + this$static.crossHierarchyMap = new HashMultimap; + $transformHierarchyEdges(this$static, graph, null); + $moveLabelsAndRemoveOriginalEdges(this$static, graph); + $setSidesOfPortsToSidesOfDummyNodes(this$static); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP), this$static.crossHierarchyMap); + this$static.crossHierarchyMap = null; + $reset(this$static.dummyNodeMap); + monitor.done_1(); +} + +function $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts){ + var createdExternalPorts, currentExternalPort, externalPort, externalPort$iterator, externalPort$iterator0, inEdge, inEdge$iterator, newExternalPort, outEdge, outEdge$iterator, sourceNode, targetNode; + createdExternalPorts = new ArrayList; + for (externalPort$iterator0 = new ArrayList$1(containedExternalPorts); externalPort$iterator0.i < externalPort$iterator0.this$01.array.length;) { + externalPort = castTo($next_6(externalPort$iterator0), 453); + currentExternalPort = null; + if (externalPort.type_0 == ($clinit_PortType() , OUTPUT)) { + for (outEdge$iterator = new ArrayList$1(externalPort.origEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { + outEdge = castTo($next_6(outEdge$iterator), 18); + targetNode = outEdge.target.owner; + if ($getGraph(targetNode) == graph) { + $connectChild(this$static, graph, externalPort, outEdge, externalPort.dummyPort, outEdge.target); + } + else if (!parentNode || isDescendant(targetNode, parentNode)) { + $connectSiblings(this$static, graph, externalPort, containedExternalPorts, outEdge); + } + else { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, externalPort.dummyPort, OUTPUT, currentExternalPort); + newExternalPort != currentExternalPort && (push_1(createdExternalPorts.array, newExternalPort) , true); + newExternalPort.exported && (currentExternalPort = newExternalPort); + } + } + } + else { + for (inEdge$iterator = new ArrayList$1(externalPort.origEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { + inEdge = castTo($next_6(inEdge$iterator), 18); + sourceNode = inEdge.source.owner; + if ($getGraph(sourceNode) == graph) { + $connectChild(this$static, graph, externalPort, inEdge, inEdge.source, externalPort.dummyPort); + } + else if (!parentNode || isDescendant(sourceNode, parentNode)) { + continue; + } + else { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, externalPort.dummyPort, INPUT, currentExternalPort); + newExternalPort != currentExternalPort && (push_1(createdExternalPorts.array, newExternalPort) , true); + newExternalPort.exported && (currentExternalPort = newExternalPort); + } + } + } + } + for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { + externalPort = castTo($next_6(externalPort$iterator), 453); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (push_1(exportedExternalPorts.array, externalPort) , true); + } +} + +function $processInsideSelfLoops(this$static, nestedGraph, node){ + var dummyEdge, isInsideSelfLoop, isSelfLoop, lport, lport$iterator, outEdge, outEdge$array, outEdge$index, outEdge$max, outEdges, sourceExtPortDummy, sourcePort, targetExtPortDummy, targetPort; + if (!$booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { + return; + } + for (lport$iterator = new ArrayList$1(node.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { + lport = castTo($next_6(lport$iterator), 12); + outEdges = toEdgeArray(lport.outgoingEdges); + for (outEdge$array = outEdges , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + isSelfLoop = outEdge.target.owner == node; + isInsideSelfLoop = isSelfLoop && $booleanValue(castToBoolean($getProperty(outEdge, INSIDE_SELF_LOOPS_YO))); + if (isInsideSelfLoop) { + sourcePort = outEdge.source; + sourceExtPortDummy = castTo($get_10(this$static.dummyNodeMap, sourcePort), 10); + if (!sourceExtPortDummy) { + sourceExtPortDummy = createExternalPortDummy(sourcePort, ($clinit_PortConstraints() , FREE), sourcePort.side, -1, null, null, sourcePort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 88), nestedGraph); + $setProperty_0(sourceExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), sourcePort); + $put_6(this$static.dummyNodeMap, sourcePort, sourceExtPortDummy); + $add_3(nestedGraph.layerlessNodes, sourceExtPortDummy); + } + targetPort = outEdge.target; + targetExtPortDummy = castTo($get_10(this$static.dummyNodeMap, targetPort), 10); + if (!targetExtPortDummy) { + targetExtPortDummy = createExternalPortDummy(targetPort, ($clinit_PortConstraints() , FREE), targetPort.side, 1, null, null, targetPort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 88), nestedGraph); + $setProperty_0(targetExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), targetPort); + $put_6(this$static.dummyNodeMap, targetPort, targetExtPortDummy); + $add_3(nestedGraph.layerlessNodes, targetExtPortDummy); + } + dummyEdge = $createDummyEdge(outEdge); + $setSource_0(dummyEdge, castTo($get_11(sourceExtPortDummy.ports, 0), 12)); + $setTarget_0(dummyEdge, castTo($get_11(targetExtPortDummy.ports, 0), 12)); + $put(this$static.crossHierarchyMap, outEdge, new CrossHierarchyEdge(dummyEdge, nestedGraph, ($clinit_PortType() , OUTPUT))); + castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + } + } + } +} + +function $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts){ + var childNode, childNode$iterator, childPort, childPort$iterator, createdExternalPorts, currentExternalInputPort, currentExternalOutputPort, externalPort, externalPort$iterator, inEdge, inEdge$array, inEdge$index, inEdge$max, newExternalPort, outEdge, outEdge$array, outEdge$index, outEdge$max; + createdExternalPorts = new ArrayList; + for (childNode$iterator = new ArrayList$1(graph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { + childNode = castTo($next_6(childNode$iterator), 10); + for (childPort$iterator = new ArrayList$1(childNode.ports); childPort$iterator.i < childPort$iterator.this$01.array.length;) { + childPort = castTo($next_6(childPort$iterator), 12); + currentExternalOutputPort = null; + for (outEdge$array = toEdgeArray(childPort.outgoingEdges) , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + if (!isDescendant(outEdge.target.owner, parentNode)) { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, outEdge.source, ($clinit_PortType() , OUTPUT), currentExternalOutputPort); + newExternalPort != currentExternalOutputPort && (push_1(createdExternalPorts.array, newExternalPort) , true); + newExternalPort.exported && (currentExternalOutputPort = newExternalPort); + } + } + currentExternalInputPort = null; + for (inEdge$array = toEdgeArray(childPort.incomingEdges) , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + if (!isDescendant(inEdge.source.owner, parentNode)) { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, inEdge.target, ($clinit_PortType() , INPUT), currentExternalInputPort); + newExternalPort != currentExternalInputPort && (push_1(createdExternalPorts.array, newExternalPort) , true); + newExternalPort.exported && (currentExternalInputPort = newExternalPort); + } + } + } + } + for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { + externalPort = castTo($next_6(externalPort$iterator), 453); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (push_1(exportedExternalPorts.array, externalPort) , true); + } +} + +function $setSidesOfPortsToSidesOfDummyNodes(this$static){ + var dummyNode, e, e$iterator, externalPort; + for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.dummyNodeMap)).this$01); e$iterator.hasNext;) { + e = $next_3(e$iterator); + externalPort = castTo(e.getKey(), 12); + dummyNode = castTo(e.getValue(), 10); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), externalPort); + $setProperty_0(externalPort, PORT_DUMMY, dummyNode); + $setProperty_0(externalPort, INSIDE_CONNECTIONS, ($clinit_Boolean() , true)); + $setSide(externalPort, castTo($getProperty(dummyNode, EXT_PORT_SIDE), 64)); + $getProperty(dummyNode, EXT_PORT_SIDE); + $setProperty_0(externalPort.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); + castTo($getProperty($getGraph(externalPort.owner), GRAPH_PROPERTIES), 21).add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + } +} + +function $transformHierarchyEdges(this$static, graph, parentNode){ + var childPorts, containedExternalPorts, dummyNode, dummyNodePort, dummyPortLabel, exportedExternalPorts, extPortLabel, extPortLabel$iterator, insidePart, insidePortLabels, nestedGraph, node, node$iterator, port, port$iterator, portConstraints, side; + containedExternalPorts = new ArrayList; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + nestedGraph = node.nestedGraph; + if (nestedGraph) { + childPorts = $transformHierarchyEdges(this$static, nestedGraph, node); + $addAll_2(containedExternalPorts, childPorts); + $processInsideSelfLoops(this$static, nestedGraph, node); + if (castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + portConstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + insidePortLabels = castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 181).contains(($clinit_PortLabelPlacement() , INSIDE_0)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + dummyNode = castTo($get_10(this$static.dummyNodeMap, port), 10); + if (!dummyNode) { + dummyNode = createExternalPortDummy(port, portConstraints, port.side, -(port.incomingEdges.array.length - port.outgoingEdges.array.length), null, new KVector, port.size_0, castTo($getProperty(nestedGraph, DIRECTION), 88), nestedGraph); + $setProperty_0(dummyNode, ORIGIN_0, port); + $put_6(this$static.dummyNodeMap, port, dummyNode); + $add_3(nestedGraph.layerlessNodes, dummyNode); + } + dummyNodePort = castTo($get_11(dummyNode.ports, 0), 12); + for (extPortLabel$iterator = new ArrayList$1(port.labels); extPortLabel$iterator.i < extPortLabel$iterator.this$01.array.length;) { + extPortLabel = castTo($next_6(extPortLabel$iterator), 72); + dummyPortLabel = new LLabel; + dummyPortLabel.size_0.x_0 = extPortLabel.size_0.x_0; + dummyPortLabel.size_0.y_0 = extPortLabel.size_0.y_0; + $add_3(dummyNodePort.labels, dummyPortLabel); + if (!insidePortLabels) { + side = port.side; + insidePart = 0; + isFixed(castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(extPortLabel.pos, extPortLabel.size_0, port.size_0, 0, side)); + portConstraints == ($clinit_PortConstraints() , FREE) || ($clinit_PortSide() , SIDES_EAST_WEST).contains(side)?(dummyPortLabel.size_0.x_0 = insidePart):(dummyPortLabel.size_0.y_0 = insidePart); + } + } + } + } + } + } + exportedExternalPorts = new ArrayList; + $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts); + !!parentNode && $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts); + return exportedExternalPorts; +} + +function CompoundGraphPreprocessor(){ + this.dummyNodeMap = new HashMap; +} + +defineClass(1279, 1, $intern_105, CompoundGraphPreprocessor); +_.process = function process_0(graph, monitor){ + $process_1(this, castTo(graph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor', 1279); +function CompoundGraphPreprocessor$ExternalPort(origEdge, newEdge, dummyNode, dummyPort, portType, exported){ + this.origEdges = new ArrayList; + this.type_0 = ($clinit_PortType() , UNDEFINED_0); + $add_3(this.origEdges, origEdge); + this.newEdge = newEdge; + this.dummyNode = dummyNode; + this.dummyPort = dummyPort; + this.type_0 = portType; + this.exported = exported; +} + +defineClass(453, 1, {453:1}, CompoundGraphPreprocessor$ExternalPort); +_.exported = false; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor$ExternalPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor/ExternalPort', 453); +function $getActualSource(this$static){ + if (this$static.newEdge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return castTo($getProperty(this$static.newEdge.source.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + } + return this$static.newEdge.source; +} + +function $getActualTarget(this$static){ + if (this$static.newEdge.target.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return castTo($getProperty(this$static.newEdge.target.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + } + return this$static.newEdge.target; +} + +function CrossHierarchyEdge(newEdge, graph, type_0){ + this.newEdge = newEdge; + this.graph_0 = graph; + this.type_0 = type_0; +} + +defineClass(249, 1, {249:1}, CrossHierarchyEdge); +_.toString_0 = function toString_86(){ + return $toString_3(this.type_0) + ':' + $toString_12(this.newEdge); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdge', 249); +function $compare_9(this$static, edge1, edge2){ + var level1, level2; + if (edge1.type_0 == ($clinit_PortType() , OUTPUT) && edge2.type_0 == INPUT) { + return -1; + } + else if (edge1.type_0 == INPUT && edge2.type_0 == OUTPUT) { + return 1; + } + level1 = hierarchyLevel(edge1.graph_0, this$static.graph_0); + level2 = hierarchyLevel(edge2.graph_0, this$static.graph_0); + return edge1.type_0 == OUTPUT?level2 - level1:level1 - level2; +} + +function CrossHierarchyEdgeComparator(graph){ + this.graph_0 = graph; +} + +function hierarchyLevel(nestedGraph, topLevelGraph){ + var currentGraph, currentNode, level; + currentGraph = nestedGraph; + level = 0; + do { + if (currentGraph == topLevelGraph) { + return level; + } + currentNode = currentGraph.parentNode; + if (!currentNode) { + throw toJs(new IllegalArgumentException); + } + currentGraph = $getGraph(currentNode); + ++level; + } + while (true); +} + +defineClass(777, 1, $intern_88, CrossHierarchyEdgeComparator); +_.compare_1 = function compare_40(edge1, edge2){ + return $compare_9(this, castTo(edge1, 249), castTo(edge2, 249)); +} +; +_.equals_0 = function equals_97(other){ + return this === other; +} +; +_.reversed = function reversed_32(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdgeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdgeComparator', 777); +function $getDesignation(this$static){ + var identifier; + identifier = getOriginIdentifier(this$static); + if (identifier) { + return identifier; + } + return null; +} + +defineClass(305, 137, {3:1, 305:1, 96:1, 137:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_layered_graph_LGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphElement', 305); +function $getDesignation_0(this$static){ + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 72).text_0) { + return castTo($get_11(this$static.labels, 0), 72).text_0; + } + return $getDesignation(this$static); +} + +function $getOther_1(this$static, node){ + if (node == this$static.source.owner) { + return this$static.target.owner; + } + else if (node == this$static.target.owner) { + return this$static.source.owner; + } + else { + throw toJs(new IllegalArgumentException_0("'node' must either be the source node or target node of the edge.")); + } +} + +function $getOther_2(this$static, port){ + if (port == this$static.source) { + return this$static.target; + } + else if (port == this$static.target) { + return this$static.source; + } + else { + throw toJs(new IllegalArgumentException_0("'port' must be either the source port or target port of the edge.")); + } +} + +function $isInLayerEdge(this$static){ + return !$isSelfLoop(this$static) && this$static.source.owner.layer == this$static.target.owner.layer; +} + +function $isSelfLoop(this$static){ + if (!this$static.source || !this$static.target) { + return false; + } + return !!this$static.source.owner && this$static.source.owner == this$static.target.owner; +} + +function $reverse_0(this$static, adaptPorts){ + var label_0, label$iterator, labelPlacement, oldSource, oldTarget, reversed; + oldSource = this$static.source; + oldTarget = this$static.target; + $setSource_0(this$static, null); + $setTarget_0(this$static, null); + adaptPorts && $booleanValue(castToBoolean($getProperty(oldTarget, ($clinit_InternalProperties_1() , INPUT_COLLECT))))?$setSource_0(this$static, provideCollectorPort(oldTarget.owner, ($clinit_PortType() , OUTPUT), ($clinit_PortSide() , EAST_2))):$setSource_0(this$static, oldTarget); + adaptPorts && $booleanValue(castToBoolean($getProperty(oldSource, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))?$setTarget_0(this$static, provideCollectorPort(oldSource.owner, ($clinit_PortType() , INPUT), ($clinit_PortSide() , WEST_2))):$setTarget_0(this$static, oldSource); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 278); + labelPlacement == ($clinit_EdgeLabelPlacement() , TAIL)?$setProperty_0(label_0, EDGE_LABELS_PLACEMENT, HEAD):labelPlacement == HEAD && $setProperty_0(label_0, EDGE_LABELS_PLACEMENT, TAIL); + } + reversed = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_InternalProperties_1() , REVERSED)))); + $setProperty_0(this$static, REVERSED, ($clinit_Boolean() , reversed?false:true)); + this$static.bendPoints = reverse_3(this$static.bendPoints); +} + +function $setSource_0(this$static, source){ + !!this$static.source && $remove_12(this$static.source.outgoingEdges, this$static); + this$static.source = source; + !!this$static.source && $add_3(this$static.source.outgoingEdges, this$static); +} + +function $setTarget_0(this$static, target){ + !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); + this$static.target = target; + !!this$static.target && $add_3(this$static.target.incomingEdges, this$static); +} + +function $setTargetAndInsertAtIndex(this$static, targetPort, index_0){ + !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); + this$static.target = targetPort; + !!this$static.target && $add_2(this$static.target.incomingEdges, index_0, this$static); +} + +function $toString_12(this$static){ + var designation, result; + result = new StringBuilder; + result.string += 'e_'; + designation = $getDesignation_0(this$static); + designation != null && (result.string += '' + designation , result); + if (!!this$static.source && !!this$static.target) { + $append_11((result.string += ' ' , result), $getDesignation_3(this$static.source)); + $append_11($append_10((result.string += '[' , result), this$static.source.owner), ']'); + $append_11((result.string += ' -> ' , result), $getDesignation_3(this$static.target)); + $append_11($append_10((result.string += '[' , result), this$static.target.owner), ']'); + } + return result.string; +} + +function LEdge(){ + this.bendPoints = new KVectorChain; + this.labels = (checkNonnegative(3, 'initialArraySize') , new ArrayList_0(3)); +} + +defineClass(18, 305, {3:1, 18:1, 305:1, 96:1, 137:1}, LEdge); +_.toString_0 = function toString_87(){ + return $toString_12(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LEdge', 18); +function $toNodeArray(this$static){ + var layer, layerIndex, layerIter, lgraphArray; + lgraphArray = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 199, this$static.layers.array.length, 0, 2); + layerIter = new AbstractList$ListIteratorImpl(this$static.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)); + layerIndex = layerIter.i - 1; + lgraphArray[layerIndex] = toNodeArray(layer.nodes); + } + return lgraphArray; +} + +function LGraph(){ + this.size_0 = new KVector; + this.padding = new LPadding; + this.offset = new KVector; + this.layerlessNodes = new ArrayList; + this.layers = new ArrayList; +} + +defineClass(36, 305, {3:1, 20:1, 36:1, 305:1, 96:1, 137:1}, LGraph); +_.forEach_0 = function forEach_26(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_68(){ + return new ArrayList$1(this.layers); +} +; +_.toString_0 = function toString_88(){ + if (this.layers.array.length == 0) { + return 'G-unlayered' + $toString_2(this.layerlessNodes); + } + else if (this.layerlessNodes.array.length == 0) { + return 'G-layered' + $toString_2(this.layers); + } + return 'G[layerless' + $toString_2(this.layerlessNodes) + ', layers' + $toString_2(this.layers) + ']'; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraph', 36); +function $clinit_LGraphAdapters(){ + $clinit_LGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER = new LGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER; +defineClass(666, 1, {}); +_.getPosition = function getPosition(){ + return this.element.pos; +} +; +_.getProperty = function getProperty_0(prop){ + return $getProperty(this.element, prop); +} +; +_.getSize = function getSize(){ + return this.element.size_0; +} +; +_.getVolatileId = function getVolatileId(){ + return this.element.id_0; +} +; +_.hasProperty = function hasProperty_0(prop){ + return $hasProperty(this.element, prop); +} +; +_.setPosition = function setPosition(pos){ + this.element.pos.x_0 = pos.x_0; + this.element.pos.y_0 = pos.y_0; +} +; +_.setSize = function setSize(size_0){ + this.element.size_0.x_0 = size_0.x_0; + this.element.size_0.y_0 = size_0.y_0; +} +; +_.setVolatileId = function setVolatileId(volatileId){ + this.element.id_0 = volatileId; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$AbstractLShapeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/AbstractLShapeAdapter', 666); +function LGraphAdapters$LEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(474, 1, {853:1}, LGraphAdapters$LEdgeAdapter); +_.getLabels = function getLabels(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(this.element.labels.array.length); + for (l$iterator = new ArrayList$1(this.element.labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 72); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.labelAdapters = null; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LEdgeAdapter', 474); +function LGraphAdapters$LGraphAdapter(element, transparentNorthSouthEdges, transparentCommentNodes, nodeFilter){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; + this.transparentCommentNodes = transparentCommentNodes; + this.nodeFilter = nodeFilter; +} + +defineClass(665, 1, {}, LGraphAdapters$LGraphAdapter); +_.getNodes = function getNodes(){ + var comment, comment$iterator, l, l$iterator, n, n$iterator; + if (!this.nodeAdapters) { + this.nodeAdapters = new ArrayList; + for (l$iterator = new ArrayList$1(this.element.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + if (this.nodeFilter.test_0(n)) { + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, n, this.transparentNorthSouthEdges)); + if (this.transparentCommentNodes) { + if ($hasProperty(n, ($clinit_InternalProperties_1() , TOP_COMMENTS))) { + for (comment$iterator = castTo($getProperty(n, TOP_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { + comment = castTo(comment$iterator.next_1(), 10); + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); + } + } + if ($hasProperty(n, BOTTOM_COMMENTS)) { + for (comment$iterator = castTo($getProperty(n, BOTTOM_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { + comment = castTo(comment$iterator.next_1(), 10); + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); + } + } + } + } + } + } + } + return this.nodeAdapters; +} +; +_.getPosition = function getPosition_0(){ + throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); +} +; +_.getProperty = function getProperty_1(prop){ + return $getProperty(this.element, prop); +} +; +_.getSize = function getSize_0(){ + return this.element.size_0; +} +; +_.getVolatileId = function getVolatileId_0(){ + return this.element.id_0; +} +; +_.hasProperty = function hasProperty_1(prop){ + return $hasProperty(this.element, prop); +} +; +_.setPosition = function setPosition_0(pos){ + throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); +} +; +_.setSize = function setSize_0(size_0){ + this.element.size_0.x_0 = size_0.x_0; + this.element.size_0.y_0 = size_0.y_0; +} +; +_.setVolatileId = function setVolatileId_0(volatileId){ + this.element.id_0 = volatileId; +} +; +_.nodeAdapters = null; +_.transparentCommentNodes = false; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LGraphAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LGraphAdapter', 665); +function LGraphAdapters$LLabelAdapter(element){ + this.element = element; +} + +defineClass(585, 666, {187:1}, LGraphAdapters$LLabelAdapter); +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LLabelAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LLabelAdapter', 585); +function $sortPortList(this$static, comparator){ + $isOrderFixed(castTo($getProperty(castTo(this$static.element, 10), ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101)) && ($clinit_Collections() , $sort(castTo(this$static.element, 10).ports, comparator)); +} + +function LGraphAdapters$LNodeAdapter(parent_0, element, transparentNorthSouthEdges){ + this.element = element; + this.parentGraphAdapter = parent_0; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(584, 666, {695:1}, LGraphAdapters$LNodeAdapter); +_.getGraph = function getGraph(){ + return this.parentGraphAdapter; +} +; +_.getIncomingEdges = function getIncomingEdges(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getLabels = function getLabels_0(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 10).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 10).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 72); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getMargin = function getMargin(){ + var lmargins; + lmargins = castTo(this.element, 10).margin; + return new ElkMargin_1(lmargins.top_0, lmargins.right, lmargins.bottom, lmargins.left); +} +; +_.getOutgoingEdges = function getOutgoingEdges(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getPorts = function getPorts(){ + var p, p$iterator; + if (!this.portAdapters) { + this.portAdapters = newArrayListWithCapacity(castTo(this.element, 10).ports.array.length); + for (p$iterator = new ArrayList$1(castTo(this.element, 10).ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 12); + $add_3(this.portAdapters, new LGraphAdapters$LPortAdapter(p, this.transparentNorthSouthEdges)); + } + } + return this.portAdapters; +} +; +_.isCompoundNode = function isCompoundNode(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 10), ($clinit_InternalProperties_1() , COMPOUND_NODE)))); +} +; +_.setMargin = function setMargin(margin){ + castTo(this.element, 10).margin.left = margin.left; + castTo(this.element, 10).margin.top_0 = margin.top_0; + castTo(this.element, 10).margin.right = margin.right; + castTo(this.element, 10).margin.bottom = margin.bottom; +} +; +_.setPadding = function setPadding(padding){ + castTo(this.element, 10).padding.left = padding.left; + castTo(this.element, 10).padding.top_0 = padding.top_0; + castTo(this.element, 10).padding.right = padding.right; + castTo(this.element, 10).padding.bottom = padding.bottom; +} +; +_.sortPortList = function sortPortList(){ + $sortPortList(this, ($clinit_LGraphAdapters() , DEFAULT_PORTLIST_SORTER)); +} +; +_.labelAdapters = null; +_.parentGraphAdapter = null; +_.portAdapters = null; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LNodeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LNodeAdapter', 584); +function LGraphAdapters$LPortAdapter(element, transparentNorthSouthEdges){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(1788, 666, {852:1}, LGraphAdapters$LPortAdapter); +_.getIncomingEdges = function getIncomingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy, sle, sle$iterator, slh, slp; + if (this.transparentNorthSouthEdges && castTo(this.element, 12).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + else if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = new ArrayList; + for (e$iterator0 = new ArrayList$1(castTo(this.element, 12).incomingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_6(e$iterator0), 18); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 12), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + if ($hasProperty(castTo(this.element, 12).owner, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER))) { + slh = castTo($getProperty(castTo(this.element, 12).owner, SELF_LOOP_HOLDER), 337); + slp = castTo($get_16(slh.slPorts, this.element), 113); + if (slp) { + for (sle$iterator = new ArrayList$1(slp.incomingSLEdges); sle$iterator.i < sle$iterator.this$01.array.length;) { + sle = castTo($next_6(sle$iterator), 340); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(sle.lEdge)); + } + } + } + } + return this.incomingEdgeAdapters; +} +; +_.getLabels = function getLabels_1(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 12).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 12).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 72); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy, sle, sle$iterator, slh, slp; + if (this.transparentNorthSouthEdges && castTo(this.element, 12).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + else if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = new ArrayList; + for (e$iterator0 = new ArrayList$1(castTo(this.element, 12).outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_6(e$iterator0), 18); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 12), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + if ($hasProperty(castTo(this.element, 12).owner, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER))) { + slh = castTo($getProperty(castTo(this.element, 12).owner, SELF_LOOP_HOLDER), 337); + slp = castTo($get_16(slh.slPorts, this.element), 113); + if (slp) { + for (sle$iterator = new ArrayList$1(slp.outgoingSLEdges); sle$iterator.i < sle$iterator.this$01.array.length;) { + sle = castTo($next_6(sle$iterator), 340); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(sle.lEdge)); + } + } + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide(){ + return castTo(this.element, 12).side; +} +; +_.hasCompoundConnections = function hasCompoundConnections(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 12), ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))); +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LPortAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LPortAdapter', 1788); +function $compare_10(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = port1.side.ordinal - port2.side.ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty(port1, ($clinit_LayeredOptions() , PORT_INDEX)), 17); + index2 = castTo($getProperty(port2, PORT_INDEX), 17); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (port1.side.ordinal) { + case 1: + return compare_4(port1.pos.x_0, port2.pos.x_0); + case 2: + return compare_4(port1.pos.y_0, port2.pos.y_0); + case 3: + return compare_4(port2.pos.x_0, port1.pos.x_0); + case 4: + return compare_4(port2.pos.y_0, port1.pos.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function LGraphAdapters$PortComparator(){ +} + +defineClass(1789, 1, $intern_88, LGraphAdapters$PortComparator); +_.compare_1 = function compare_41(port1, port2){ + return $compare_10(castTo(port1, 12), castTo(port2, 12)); +} +; +_.equals_0 = function equals_98(other){ + return this === other; +} +; +_.reversed = function reversed_33(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/PortComparator', 1789); +function LGraphAdapters$lambda$0$Type(){ +} + +defineClass(818, 1, $intern_40, LGraphAdapters$lambda$0$Type); +_.test_0 = function test_17(arg0){ + return castTo(arg0, 10) , $clinit_LGraphAdapters() , true; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/lambda$0$Type', 818); +function calcPortOffset(port, side){ + var node; + node = port.owner; + switch (side.ordinal) { + case 1: + return -(port.pos.y_0 + port.size_0.y_0); + case 2: + return port.pos.x_0 - node.size_0.x_0; + case 3: + return port.pos.y_0 - node.size_0.y_0; + case 4: + return -(port.pos.x_0 + port.size_0.x_0); + } + return 0; +} + +function calcPortSide(port, direction){ + var height, heightPercent, node, nodeHeight, nodeWidth, width_0, widthPercent, xpos, ypos; + node = port.owner; + nodeWidth = node.size_0.x_0; + nodeHeight = node.size_0.y_0; + if (nodeWidth <= 0 && nodeHeight <= 0) { + return $clinit_PortSide() , UNDEFINED_5; + } + xpos = port.pos.x_0; + ypos = port.pos.y_0; + width_0 = port.size_0.x_0; + height = port.size_0.y_0; + switch (direction.ordinal) { + case 2: + case 1: + if (xpos < 0) { + return $clinit_PortSide() , WEST_2; + } + else if (xpos + width_0 > nodeWidth) { + return $clinit_PortSide() , EAST_2; + } + + break; + case 4: + case 3: + if (ypos < 0) { + return $clinit_PortSide() , NORTH_3; + } + else if (ypos + height > nodeHeight) { + return $clinit_PortSide() , SOUTH_2; + } + + } + widthPercent = (xpos + width_0 / 2) / nodeWidth; + heightPercent = (ypos + height / 2) / nodeHeight; + return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); +} + +function centerPoint(point, boundary, side){ + switch (side.ordinal) { + case 1: + point.x_0 = boundary.x_0 / 2; + point.y_0 = 0; + break; + case 2: + point.x_0 = boundary.x_0; + point.y_0 = boundary.y_0 / 2; + break; + case 3: + point.x_0 = boundary.x_0 / 2; + point.y_0 = boundary.y_0; + break; + case 4: + point.x_0 = 0; + point.y_0 = boundary.y_0 / 2; + } +} + +function changeCoordSystem(point, oldGraph, newGraph){ + var graph, node, padding; + if (oldGraph == newGraph) { + return; + } + graph = oldGraph; + do { + $add_19(point, graph.offset); + node = graph.parentNode; + if (node) { + padding = graph.padding; + $add_18(point, padding.left, padding.top_0); + $add_19(point, node.pos); + graph = $getGraph(node); + } + } + while (node); + graph = newGraph; + do { + $sub_0(point, graph.offset); + node = graph.parentNode; + if (node) { + padding = graph.padding; + $sub(point, padding.left, padding.top_0); + $sub_0(point, node.pos); + graph = $getGraph(node); + } + } + while (node); +} + +function createExternalPortDummy(propertyHolder, portConstraints, portSide, netFlow, portNodeSize, portPosition, portSize, layoutDirection, layeredGraph){ + var anchor, dummy, dummyPort, explicitAnchor, finalExternalPortSide, informationAboutIt, portBorderOffset; + finalExternalPortSide = portSide; + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIZE), portSize); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + portBorderOffset = $doubleValue(castToDouble(propertyHolder.getProperty(PORT_BORDER_OFFSET))); + $setProperty_0(dummy, PORT_BORDER_OFFSET, portBorderOffset); + dummyPort = new LPort; + $setNode(dummyPort, dummy); + if (!(portConstraints != FREE && portConstraints != UNDEFINED_4)) { + netFlow >= 0?(finalExternalPortSide = fromDirection(layoutDirection)):(finalExternalPortSide = $opposed(fromDirection(layoutDirection))); + propertyHolder.setProperty(PORT_SIDE, finalExternalPortSide); + } + anchor = new KVector; + explicitAnchor = false; + if (propertyHolder.hasProperty(PORT_ANCHOR)) { + $set_8(anchor, castTo(propertyHolder.getProperty(PORT_ANCHOR), 8)); + explicitAnchor = true; + } + else { + $set_7(anchor, portSize.x_0 / 2, portSize.y_0 / 2); + } + switch (finalExternalPortSide.ordinal) { + case 4: + $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); + $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + dummy.size_0.y_0 = portSize.y_0; + portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , EAST_2)); + explicitAnchor || (anchor.x_0 = portSize.x_0); + anchor.x_0 -= portSize.x_0; + break; + case 2: + $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); + $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , INCOMING_ONLY)); + dummy.size_0.y_0 = portSize.y_0; + portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , WEST_2)); + explicitAnchor || (anchor.x_0 = 0); + break; + case 1: + $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + dummy.size_0.x_0 = portSize.x_0; + portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , SOUTH_2)); + explicitAnchor || (anchor.y_0 = portSize.y_0); + anchor.y_0 -= portSize.y_0; + break; + case 3: + $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + dummy.size_0.x_0 = portSize.x_0; + portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , NORTH_3)); + explicitAnchor || (anchor.y_0 = 0); + } + $set_8(dummyPort.pos, anchor); + $setProperty_0(dummy, PORT_ANCHOR, anchor); + if (portConstraints == FIXED_ORDER || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { + informationAboutIt = 0; + if (portConstraints == FIXED_ORDER && propertyHolder.hasProperty(PORT_INDEX)) { + switch (finalExternalPortSide.ordinal) { + case 1: + case 2: + informationAboutIt = castTo(propertyHolder.getProperty(PORT_INDEX), 17).value_0; + break; + case 3: + case 4: + informationAboutIt = -castTo(propertyHolder.getProperty(PORT_INDEX), 17).value_0; + } + } + else { + switch (finalExternalPortSide.ordinal) { + case 4: + case 2: + informationAboutIt = portPosition.y_0; + portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.y_0); + break; + case 1: + case 3: + informationAboutIt = portPosition.x_0; + portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.x_0); + } + } + $setProperty_0(dummy, PORT_RATIO_OR_POSITION_0, informationAboutIt); + } + $setProperty_0(dummy, EXT_PORT_SIDE, finalExternalPortSide); + return dummy; +} + +function createPort(node, endPoint, type_0, layeredGraph){ + var defaultSide, direction, graphProperties, mergePorts, port, portSide, pos; + direction = getDirection_1(layeredGraph); + mergePorts = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , MERGE_EDGES_0)))); + if ((mergePorts || $booleanValue(castToBoolean($getProperty(node, HYPERNODE)))) && !$isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 101))) { + defaultSide = fromDirection(direction); + port = provideCollectorPort(node, type_0, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); + } + else { + port = new LPort; + $setNode(port, node); + if (endPoint) { + pos = port.pos; + pos.x_0 = endPoint.x_0 - node.pos.x_0; + pos.y_0 = endPoint.y_0 - node.pos.y_0; + $bound(pos, 0, 0, node.size_0.x_0, node.size_0.y_0); + $setSide(port, calcPortSide(port, direction)); + } + else { + defaultSide = fromDirection(direction); + $setSide(port, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); + } + graphProperties = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + portSide = port.side; + switch (direction.ordinal) { + case 2: + case 1: + (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + break; + case 4: + case 3: + (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + } + } + return port; +} + +function findMaxNonDummyNodeWidth(layer){ + var maxWidth, node, node$iterator, width_0; + if ($isVertical(castTo($getProperty(layer.owner, ($clinit_LayeredOptions() , DIRECTION)), 88))) { + return 0; + } + maxWidth = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + width_0 = node.size_0.x_0; + maxWidth = $wnd.Math.max(maxWidth, width_0); + } + } + return maxWidth; +} + +function getDirection_1(graph){ + var aspectRatio, direction; + direction = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 88); + if (direction == ($clinit_Direction_0() , UNDEFINED_2)) { + aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); + return aspectRatio >= 1?RIGHT_6:DOWN_1; + } + return direction; +} + +function getExternalPortPosition(graph, portDummy, portWidth, portHeight){ + var graphOffset, graphSize, padding, portOffset, portPosition; + portPosition = new KVector_2(portDummy.pos); + portPosition.x_0 += portDummy.size_0.x_0 / 2; + portPosition.y_0 += portDummy.size_0.y_0 / 2; + portOffset = $doubleValue(castToDouble($getProperty(portDummy, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET)))); + graphSize = graph.size_0; + padding = graph.padding; + graphOffset = graph.offset; + switch (castTo($getProperty(portDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64).ordinal) { + case 1: + portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; + portPosition.y_0 = -portHeight - portOffset; + portDummy.pos.y_0 = -(padding.top_0 + portOffset + graphOffset.y_0); + break; + case 2: + portPosition.x_0 = graphSize.x_0 + padding.left + padding.right + portOffset; + portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; + portDummy.pos.x_0 = graphSize.x_0 + padding.right + portOffset - graphOffset.x_0; + break; + case 3: + portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; + portPosition.y_0 = graphSize.y_0 + padding.top_0 + padding.bottom + portOffset; + portDummy.pos.y_0 = graphSize.y_0 + padding.bottom + portOffset - graphOffset.y_0; + break; + case 4: + portPosition.x_0 = -portWidth - portOffset; + portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; + portDummy.pos.x_0 = -(padding.left + portOffset + graphOffset.x_0); + } + return portPosition; +} + +function getIndividualOrInherited(node, property){ + var individualSpacings, result; + result = null; + if ($hasProperty(node, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { + individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL_0), 96); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && !!$getGraph(node) && (result = $getProperty($getGraph(node), property)); + return result; +} + +function getMinimalModelOrder(graph){ + var node, node$iterator, order; + order = $intern_0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && (order = $wnd.Math.min(order, castTo($getProperty(node, MODEL_ORDER_1), 17).value_0)); + } + return order; +} + +function initializePort(port, portConstraints, direction, anchorPos){ + var nodeHeight, nodeWidth, portAnchor, portSide, portSize, ratio; + portSide = port.side; + if (portSide == ($clinit_PortSide() , UNDEFINED_5) && portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != ($clinit_PortConstraints() , UNDEFINED_4)) { + portSide = calcPortSide(port, direction); + $setSide(port, portSide); + !(!port.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):port.propertyMap).containsKey(($clinit_LayeredOptions() , PORT_BORDER_OFFSET)) && portSide != UNDEFINED_5 && (port.pos.x_0 != 0 || port.pos.y_0 != 0) && $setProperty_0(port, PORT_BORDER_OFFSET, calcPortOffset(port, portSide)); + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_RATIO)) { + ratio = 0; + switch (portSide.ordinal) { + case 1: + case 3: + nodeWidth = port.owner.size_0.x_0; + nodeWidth > 0 && (ratio = port.pos.x_0 / nodeWidth); + break; + case 2: + case 4: + nodeHeight = port.owner.size_0.y_0; + nodeHeight > 0 && (ratio = port.pos.y_0 / nodeHeight); + } + $setProperty_0(port, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0), ratio); + } + portSize = port.size_0; + portAnchor = port.anchor; + if (anchorPos) { + portAnchor.x_0 = anchorPos.x_0; + portAnchor.y_0 = anchorPos.y_0; + port.explicitlySuppliedPortAnchor = true; + } + else if (portConstraints != FREE && portConstraints != UNDEFINED_4 && portSide != UNDEFINED_5) { + switch (portSide.ordinal) { + case 1: + portAnchor.x_0 = portSize.x_0 / 2; + break; + case 2: + portAnchor.x_0 = portSize.x_0; + portAnchor.y_0 = portSize.y_0 / 2; + break; + case 3: + portAnchor.x_0 = portSize.x_0 / 2; + portAnchor.y_0 = portSize.y_0; + break; + case 4: + portAnchor.y_0 = portSize.y_0 / 2; + } + } + else { + portAnchor.x_0 = portSize.x_0 / 2; + portAnchor.y_0 = portSize.y_0 / 2; + } +} + +function isDescendant(child, parent_0){ + var current, next; + current = child; + next = $getGraph(current).parentNode; + while (next) { + current = next; + if (current == parent_0) { + return true; + } + next = $getGraph(current).parentNode; + } + return false; +} + +function offsetGraph(graph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = new KVector_1(offsetx, offsety); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $add_19(label_0.pos, graphOffset); + } + } + } + } +} + +function placeNodesHorizontally(layer, xoffset){ + var alignment, inports, leftMargin, maxLeftMargin, maxRightMargin, node, node$iterator, node$iterator0, nodeSize, outports, port, port$iterator, ratio, rightMargin, size_0, xpos; + maxLeftMargin = 0; + maxRightMargin = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + maxLeftMargin = $wnd.Math.max(maxLeftMargin, node.margin.left); + maxRightMargin = $wnd.Math.max(maxRightMargin, node.margin.right); + } + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + alignment = castTo($getProperty(node, ($clinit_LayeredOptions() , ALIGNMENT)), 255); + switch (alignment.ordinal) { + case 1: + ratio = 0; + break; + case 2: + ratio = 1; + break; + case 5: + ratio = 0.5; + break; + default:inports = 0; + outports = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.incomingEdges.array.length == 0 || ++inports; + port.outgoingEdges.array.length == 0 || ++outports; + } + + inports + outports == 0?(ratio = 0.5):(ratio = outports / (inports + outports)); + } + size_0 = layer.size_0; + nodeSize = node.size_0.x_0; + xpos = (size_0.x_0 - nodeSize) * ratio; + ratio > 0.5?(xpos -= maxRightMargin * 2 * (ratio - 0.5)):ratio < 0.5 && (xpos += maxLeftMargin * 2 * (0.5 - ratio)); + leftMargin = node.margin.left; + xpos < leftMargin && (xpos = leftMargin); + rightMargin = node.margin.right; + xpos > size_0.x_0 - rightMargin - nodeSize && (xpos = size_0.x_0 - rightMargin - nodeSize); + node.pos.x_0 = xoffset + xpos; + } +} + +function provideCollectorPort(node, type_0, side){ + var inport, inport$iterator, outport, outport$iterator, port; + port = null; + switch (type_0.ordinal) { + case 1: + for (inport$iterator = new ArrayList$1(node.ports); inport$iterator.i < inport$iterator.this$01.array.length;) { + inport = castTo($next_6(inport$iterator), 12); + if ($booleanValue(castToBoolean($getProperty(inport, ($clinit_InternalProperties_1() , INPUT_COLLECT))))) { + return inport; + } + } + + port = new LPort; + $setProperty_0(port, ($clinit_InternalProperties_1() , INPUT_COLLECT), ($clinit_Boolean() , true)); + break; + case 2: + for (outport$iterator = new ArrayList$1(node.ports); outport$iterator.i < outport$iterator.this$01.array.length;) { + outport = castTo($next_6(outport$iterator), 12); + if ($booleanValue(castToBoolean($getProperty(outport, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))) { + return outport; + } + } + + port = new LPort; + $setProperty_0(port, ($clinit_InternalProperties_1() , OUTPUT_COLLECT), ($clinit_Boolean() , true)); + } + if (port) { + $setNode(port, node); + $setSide(port, side); + centerPoint(port.pos, node.size_0, side); + } + return port; +} + +function resizeNode(node, newSize, movePorts){ + var all, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, oldSize, port, port$iterator, widthDiff, widthPercent, widthRatio; + oldSize = new KVector_2(node.size_0); + widthRatio = newSize.x_0 / oldSize.x_0; + heightRatio = newSize.y_0 / oldSize.y_0; + widthDiff = newSize.x_0 - oldSize.x_0; + heightDiff = newSize.y_0 - oldSize.y_0; + if (movePorts) { + fixedPorts = maskUndefined($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + switch (port.side.ordinal) { + case 1: + fixedPorts || (port.pos.x_0 *= widthRatio); + break; + case 2: + port.pos.x_0 += widthDiff; + fixedPorts || (port.pos.y_0 *= heightRatio); + break; + case 3: + fixedPorts || (port.pos.x_0 *= widthRatio); + port.pos.y_0 += heightDiff; + break; + case 4: + fixedPorts || (port.pos.y_0 *= heightRatio); + } + } + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + midx = label_0.pos.x_0 + label_0.size_0.x_0 / 2; + midy = label_0.pos.y_0 + label_0.size_0.y_0 / 2; + widthPercent = midx / oldSize.x_0; + heightPercent = midy / oldSize.y_0; + if (widthPercent + heightPercent >= 1) { + if (widthPercent - heightPercent > 0 && midy >= 0) { + label_0.pos.x_0 += widthDiff; + label_0.pos.y_0 += heightDiff * heightPercent; + } + else if (widthPercent - heightPercent < 0 && midx >= 0) { + label_0.pos.x_0 += widthDiff * widthPercent; + label_0.pos.y_0 += heightDiff; + } + } + } + node.size_0.x_0 = newSize.x_0; + node.size_0.y_0 = newSize.y_0; + $setProperty_0(node, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); +} + +function toEdgeArray(edges){ + return castTo($toArray_1(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 18, edges.array.length, 0, 1)), 483); +} + +function toNodeArray(nodes){ + return castTo($toArray_1(nodes, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodes.array.length, 0, 1)), 199); +} + +function toPortArray(ports){ + return castTo($toArray_1(ports, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, $intern_108, 12, ports.array.length, 0, 1)), 2042); +} + +function LShape(){ + this.pos = new KVector; + this.size_0 = new KVector; +} + +defineClass(404, 305, {3:1, 305:1, 404:1, 96:1, 137:1}); +var Lorg_eclipse_elk_alg_layered_graph_LShape_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LShape', 404); +function $getDesignation_1(this$static){ + if (this$static.text_0) { + return this$static.text_0; + } + return $getDesignation(this$static); +} + +function LLabel(){ + LLabel_0.call(this, ''); +} + +function LLabel_0(thetext){ + LShape.call(this); + this.text_0 = thetext; +} + +defineClass(72, 404, {3:1, 305:1, 72:1, 404:1, 96:1, 137:1}, LLabel, LLabel_0); +_.toString_0 = function toString_89(){ + var designation; + designation = $getDesignation_1(this); + return designation == null?'label':'l_' + designation; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LLabel_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LLabel', 72); +function $$init_6(this$static){ +} + +function $add_15(this$static, other){ + this$static.left += other.left; + this$static.right += other.right; + this$static.top_0 += other.top_0; + this$static.bottom += other.bottom; + return this$static; +} + +function $copy(this$static, other){ + this$static.left = other.left; + this$static.right = other.right; + this$static.top_0 = other.top_0; + this$static.bottom = other.bottom; + return this$static; +} + +function $set_6(this$static, newTop, newRight, newBottom, newLeft){ + this$static.top_0 = newTop; + this$static.right = newRight; + this$static.bottom = newBottom; + this$static.left = newLeft; +} + +function $setBottom(this$static, bottom){ + this$static.bottom = bottom; +} + +function $setLeft(this$static, left){ + this$static.left = left; +} + +function $setRight(this$static, right){ + this$static.right = right; +} + +function $setTop(this$static, top_0){ + this$static.top_0 = top_0; +} + +function Spacing(){ + $$init_6(this); +} + +function Spacing_0(top_0, right, bottom, left){ + $$init_6(this); + $set_6(this, top_0, right, bottom, left); +} + +function isdelim(c, delims){ + var i; + for (i = 0; i < delims.length; i++) { + if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { + return true; + } + } + return false; +} + +defineClass(214, 1, {3:1, 4:1, 214:1, 423:1}); +_.equals_0 = function equals_99(obj){ + var other; + if (instanceOf(obj, 214)) { + other = castTo(obj, 214); + return this.top_0 == other.top_0 && this.bottom == other.bottom && this.left == other.left && this.right == other.right; + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_62(){ + var code1, code2; + code1 = $hashCode_1(this.left) << 16; + code1 |= $hashCode_1(this.bottom) & $intern_47; + code2 = $hashCode_1(this.right) << 16; + code2 |= $hashCode_1(this.top_0) & $intern_47; + return code1 ^ code2; +} +; +_.parse_0 = function parse_0(string){ + var end, exception, key, keyandvalue, start_0, token, token$array, token$index, token$max, tokens, value_0; + start_0 = 0; + while (start_0 < string.length && isdelim((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { + ++start_0; + } + end = string.length; + while (end > 0 && isdelim((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { + --end; + } + if (start_0 < end) { + tokens = $split_0((checkCriticalStringBounds(start_0, end, string.length) , string.substr(start_0, end - start_0)), ',|;'); + try { + for (token$array = tokens , token$index = 0 , token$max = token$array.length; token$index < token$max; ++token$index) { + token = token$array[token$index]; + keyandvalue = $split_0(token, '='); + if (keyandvalue.length != 2) { + throw toJs(new IllegalArgumentException_0('Expecting a list of key-value pairs.')); + } + key = $trim(keyandvalue[0]); + value_0 = __parseAndValidateDouble($trim(keyandvalue[1])); + $equals_5(key, 'top')?(this.top_0 = value_0):$equals_5(key, 'left')?(this.left = value_0):$equals_5(key, 'bottom')?(this.bottom = value_0):$equals_5(key, 'right') && (this.right = value_0); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); + } + else + throw toJs($e0); + } + } +} +; +_.toString_0 = function toString_90(){ + return '[top=' + this.top_0 + ',left=' + this.left + ',bottom=' + this.bottom + ',right=' + this.right + ']'; +} +; +_.bottom = 0; +_.left = 0; +_.right = 0; +_.top_0 = 0; +var Lorg_eclipse_elk_core_math_Spacing_2_classLit = createForClass('org.eclipse.elk.core.math', 'Spacing', 214); +function ElkMargin(){ + Spacing.call(this); +} + +function ElkMargin_0(){ + Spacing_0.call(this, 0, 0, 0, 0); +} + +function ElkMargin_1(top_0, right, bottom, left){ + Spacing_0.call(this, top_0, right, bottom, left); +} + +function ElkMargin_2(other){ + Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); +} + +defineClass(140, 214, $intern_109, ElkMargin, ElkMargin_0, ElkMargin_1, ElkMargin_2); +var Lorg_eclipse_elk_core_math_ElkMargin_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkMargin', 140); +function LMargin(){ + ElkMargin.call(this); +} + +defineClass(660, 140, $intern_109, LMargin); +var Lorg_eclipse_elk_alg_layered_graph_LMargin_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LMargin', 660); +function $borderToContentAreaCoordinates(this$static, horizontal, vertical){ + var graphPadding, offset, pos, thegraph; + thegraph = $getGraph(this$static); + graphPadding = thegraph.padding; + offset = thegraph.offset; + pos = this$static.pos; + horizontal && (pos.x_0 = pos.x_0 - graphPadding.left - offset.x_0); + vertical && (pos.y_0 = pos.y_0 - graphPadding.top_0 - offset.y_0); +} + +function $findPortIndices(this$static){ + var currentIndex, currentSide, firstIndexForCurrentSide, port; + this$static.portSideIndices = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 297)); + firstIndexForCurrentSide = 0; + currentSide = ($clinit_PortSide() , NORTH_3); + currentIndex = 0; + for (; currentIndex < this$static.ports.array.length; currentIndex++) { + port = castTo($get_11(this$static.ports, currentIndex), 12); + if (port.side != currentSide) { + firstIndexForCurrentSide != currentIndex && $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_3(firstIndexForCurrentSide), valueOf_3(currentIndex))); + currentSide = port.side; + firstIndexForCurrentSide = currentIndex; + } + } + $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_3(firstIndexForCurrentSide), valueOf_3(currentIndex))); +} + +function $getConnectedEdges_0(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $add_3(iterables, port.connectedEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getDesignation_2(this$static){ + var id_0; + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 72).text_0) { + return castTo($get_11(this$static.labels, 0), 72).text_0; + } + id_0 = $getDesignation(this$static); + if (id_0 != null) { + return id_0; + } + return '' + (!this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0)); +} + +function $getGraph(this$static){ + if (!this$static.graph_0 && !!this$static.layer) { + return this$static.layer.owner; + } + return this$static.graph_0; +} + +function $getIncomingEdges(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $add_3(iterables, port.incomingEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getIndex(this$static){ + return !this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0); +} + +function $getInteractiveReferencePoint(this$static){ + var nodePos, nodeSize; + switch (castTo($getProperty($getGraph(this$static), ($clinit_LayeredOptions() , INTERACTIVE_REFERENCE_POINT_0)), 429).ordinal) { + case 0: + nodePos = this$static.pos; + nodeSize = this$static.size_0; + return new KVector_1(nodePos.x_0 + nodeSize.x_0 / 2, nodePos.y_0 + nodeSize.y_0 / 2); + case 1: + return new KVector_2(this$static.pos); + default:return null; + } +} + +function $getOutgoingEdges(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $add_3(iterables, port.outgoingEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getPortSideView(this$static, side){ + var indices; + this$static.portSidesCached || $findPortIndices(this$static); + indices = castTo($get_14(this$static.portSideIndices, side), 42); + return !indices?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):new AbstractList$SubList(this$static.ports, castTo(indices.first, 17).value_0, castTo(indices.second, 17).value_0); +} + +function $getPorts(this$static, portType){ + switch (portType.ordinal) { + case 1: + return filter_0(this$static.ports, ($clinit_LPort() , INPUT_PREDICATE)); + case 2: + return filter_0(this$static.ports, ($clinit_LPort() , OUTPUT_PREDICATE)); + default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $getPorts_0(this$static, portType, side){ + var sidePredicate, typePredicate; + typePredicate = null; + switch (portType.ordinal) { + case 1: + typePredicate = ($clinit_LPort() , INPUT_PREDICATE); + break; + case 2: + typePredicate = ($clinit_LPort() , OUTPUT_PREDICATE); + } + sidePredicate = null; + switch (side.ordinal) { + case 1: + sidePredicate = ($clinit_LPort() , NORTH_PREDICATE); + break; + case 2: + sidePredicate = ($clinit_LPort() , EAST_PREDICATE); + break; + case 3: + sidePredicate = ($clinit_LPort() , SOUTH_PREDICATE); + break; + case 4: + sidePredicate = ($clinit_LPort() , WEST_PREDICATE); + } + return !!typePredicate && !!sidePredicate?filter_0(this$static.ports, new Predicates$AndPredicate(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_base_Predicate_2_classLit, 1), $intern_2, 178, 0, [castTo(checkNotNull(typePredicate), 178), castTo(checkNotNull(sidePredicate), 178)])))):($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); +} + +function $getPorts_1(this$static, side){ + switch (side.ordinal) { + case 1: + return filter_0(this$static.ports, ($clinit_LPort() , NORTH_PREDICATE)); + case 2: + return filter_0(this$static.ports, ($clinit_LPort() , EAST_PREDICATE)); + case 3: + return filter_0(this$static.ports, ($clinit_LPort() , SOUTH_PREDICATE)); + case 4: + return filter_0(this$static.ports, ($clinit_LPort() , WEST_PREDICATE)); + default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $setLayer(this$static, index_0, newlayer){ + if (!!newlayer && (index_0 < 0 || index_0 > newlayer.nodes.array.length)) { + throw toJs(new IllegalArgumentException_0('index must be >= 0 and <= layer node count')); + } + !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); + this$static.layer = newlayer; + !!newlayer && $add_2(newlayer.nodes, index_0, this$static); +} + +function $setLayer_0(this$static, thelayer){ + !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); + this$static.layer = thelayer; + !!this$static.layer && $add_3(this$static.layer.nodes, this$static); +} + +function $setType(this$static, type_0){ + this$static.type_0 = type_0; +} + +function $toString_13(this$static){ + var result; + result = new StringBuilder; + result.string += 'n'; + this$static.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $append_11($append_11((result.string += '(' , result), $toString_3(this$static.type_0).toLowerCase()), ')'); + $append_11((result.string += '_' , result), $getDesignation_2(this$static)); + return result.string; +} + +function LNode(graph){ + LShape.call(this); + this.type_0 = ($clinit_LNode$NodeType() , NORMAL); + this.ports = (checkNonnegative(6, 'initialArraySize') , new ArrayList_0(6)); + this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this.margin = new LMargin; + this.padding = new LPadding; + this.graph_0 = graph; +} + +defineClass(10, 404, {3:1, 305:1, 10:1, 404:1, 96:1, 137:1}, LNode); +_.toString_0 = function toString_91(){ + return $toString_13(this); +} +; +_.portSidesCached = false; +var Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LNode', 10); +function $clinit_LNode$NodeType(){ + $clinit_LNode$NodeType = emptyMethod; + NORMAL = new LNode$NodeType('NORMAL', 0); + LONG_EDGE = new LNode$NodeType('LONG_EDGE', 1); + EXTERNAL_PORT = new LNode$NodeType('EXTERNAL_PORT', 2); + NORTH_SOUTH_PORT = new LNode$NodeType('NORTH_SOUTH_PORT', 3); + LABEL = new LNode$NodeType('LABEL', 4); + BREAKING_POINT = new LNode$NodeType('BREAKING_POINT', 5); +} + +function LNode$NodeType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_28(name_0){ + $clinit_LNode$NodeType(); + return valueOf(($clinit_LNode$NodeType$Map() , $MAP_18), name_0); +} + +function values_36(){ + $clinit_LNode$NodeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_37, 273, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]); +} + +defineClass(273, 22, {3:1, 34:1, 22:1, 273:1}, LNode$NodeType); +var BREAKING_POINT, EXTERNAL_PORT, LABEL, LONG_EDGE, NORMAL, NORTH_SOUTH_PORT; +var Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.graph', 'LNode/NodeType', 273, Ljava_lang_Enum_2_classLit, values_36, valueOf_28); +function $clinit_LNode$NodeType$Map(){ + $clinit_LNode$NodeType$Map = emptyMethod; + $MAP_18 = createValueOfMap(($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_37, 273, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]))); +} + +var $MAP_18; +function LNode$lambda$0$Type(){ +} + +defineClass(775, 1, $intern_40, LNode$lambda$0$Type); +_.test_0 = function test_18(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LNode$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LNode/lambda$0$Type', 775); +function ElkPadding(){ + Spacing.call(this); +} + +function ElkPadding_0(any){ + Spacing_0.call(this, any, any, any, any); +} + +function ElkPadding_1(other){ + Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); +} + +defineClass(107, 214, $intern_110, ElkPadding, ElkPadding_0, ElkPadding_1); +var Lorg_eclipse_elk_core_math_ElkPadding_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkPadding', 107); +function LPadding(){ + ElkPadding.call(this); +} + +defineClass(778, 107, $intern_110, LPadding); +var Lorg_eclipse_elk_alg_layered_graph_LPadding_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPadding', 778); +function $clinit_LPort(){ + $clinit_LPort = emptyMethod; + OUTPUT_PREDICATE = new LPort$lambda$0$Type; + INPUT_PREDICATE = new LPort$lambda$1$Type; + NORTH_PREDICATE = new LPort$lambda$2$Type; + EAST_PREDICATE = new LPort$lambda$3$Type; + SOUTH_PREDICATE = new LPort$lambda$4$Type; + WEST_PREDICATE = new LPort$lambda$5$Type; +} + +function $getAbsoluteAnchor(this$static){ + return sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [this$static.owner.pos, this$static.pos, this$static.anchor])); +} + +function $getDegree(this$static){ + return this$static.incomingEdges.array.length + this$static.outgoingEdges.array.length; +} + +function $getDesignation_3(this$static){ + var id_0; + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 72).text_0) { + return castTo($get_11(this$static.labels, 0), 72).text_0; + } + id_0 = $getDesignation(this$static); + if (id_0 != null) { + return id_0; + } + return '' + (!this$static.owner?-1:$indexOf_3(this$static.owner.ports, this$static, 0)); +} + +function $getNetFlow(this$static){ + return this$static.incomingEdges.array.length - this$static.outgoingEdges.array.length; +} + +function $setConnectedToExternalNodes(this$static, conn){ + this$static.connectedToExternalNodes = conn; +} + +function $setNode(this$static, node){ + !!this$static.owner && $remove_12(this$static.owner.ports, this$static); + this$static.owner = node; + !!this$static.owner && $add_3(this$static.owner.ports, this$static); +} + +function $setSide(this$static, theside){ + if (!theside) { + throw toJs(new NullPointerException); + } + this$static.side = theside; + if (!this$static.explicitlySuppliedPortAnchor) { + switch (this$static.side.ordinal) { + case 1: + this$static.anchor.x_0 = this$static.size_0.x_0 / 2; + this$static.anchor.y_0 = 0; + break; + case 2: + this$static.anchor.x_0 = this$static.size_0.x_0; + this$static.anchor.y_0 = this$static.size_0.y_0 / 2; + break; + case 3: + this$static.anchor.x_0 = this$static.size_0.x_0 / 2; + this$static.anchor.y_0 = this$static.size_0.y_0; + break; + case 4: + this$static.anchor.x_0 = 0; + this$static.anchor.y_0 = this$static.size_0.y_0 / 2; + } + } +} + +function LPort(){ + $clinit_LPort(); + LShape.call(this); + this.side = ($clinit_PortSide() , UNDEFINED_5); + this.anchor = new KVector; + new LMargin; + this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this.incomingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + this.outgoingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + this.connectedEdges = new LPort$CombineIter(this.incomingEdges, this.outgoingEdges); +} + +defineClass(12, 404, {3:1, 305:1, 12:1, 404:1, 96:1, 137:1}, LPort); +_.toString_0 = function toString_92(){ + var result, source, target; + result = new StringBuilder; + $append_11((result.string += 'p_' , result), $getDesignation_3(this)); + !!this.owner && $append_11($append_10((result.string += '[' , result), this.owner), ']'); + if (this.incomingEdges.array.length == 1 && this.outgoingEdges.array.length == 0 && castTo($get_11(this.incomingEdges, 0), 18).source != this) { + source = castTo($get_11(this.incomingEdges, 0), 18).source; + $append_11((result.string += ' << ' , result), $getDesignation_3(source)); + $append_11($append_10((result.string += '[' , result), source.owner), ']'); + } + if (this.incomingEdges.array.length == 0 && this.outgoingEdges.array.length == 1 && castTo($get_11(this.outgoingEdges, 0), 18).target != this) { + target = castTo($get_11(this.outgoingEdges, 0), 18).target; + $append_11((result.string += ' >> ' , result), $getDesignation_3(target)); + $append_11($append_10((result.string += '[' , result), target.owner), ']'); + } + return result.string; +} +; +_.connectedToExternalNodes = true; +_.explicitlySuppliedPortAnchor = false; +var EAST_PREDICATE, INPUT_PREDICATE, NORTH_PREDICATE, OUTPUT_PREDICATE, SOUTH_PREDICATE, WEST_PREDICATE; +var Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort', 12); +function LPort$1(this$0){ + this.this$01 = this$0; +} + +defineClass(408, 1, $intern_23, LPort$1); +_.forEach_0 = function forEach_27(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_69(){ + var edgesIter; + edgesIter = new ArrayList$1(this.this$01.incomingEdges); + return new LPort$1$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1', 408); +function LPort$1$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(1309, 1, $intern_6, LPort$1$1); +_.forEachRemaining = function forEachRemaining_47(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_37(){ + return castTo($next_6(this.val$edgesIter2), 18).source; +} +; +_.hasNext_0 = function hasNext_36(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_93(){ + $remove_13(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$1$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1/1', 1309); +function LPort$2(this$0){ + this.this$01 = this$0; +} + +defineClass(369, 1, $intern_23, LPort$2); +_.forEach_0 = function forEach_28(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_70(){ + var edgesIter; + return edgesIter = new ArrayList$1(this.this$01.outgoingEdges) , new LPort$2$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2', 369); +function LPort$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(776, 1, $intern_6, LPort$2$1); +_.forEachRemaining = function forEachRemaining_48(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_38(){ + return castTo($next_6(this.val$edgesIter2), 18).target; +} +; +_.hasNext_0 = function hasNext_37(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_94(){ + $remove_13(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$2$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2/1', 776); +function LPort$CombineIter(firstIterable, secondIterable){ + this.firstIterable = firstIterable; + this.secondIterable = secondIterable; +} + +defineClass(1302, 1, $intern_23, LPort$CombineIter); +_.forEach_0 = function forEach_29(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_71(){ + return new LPort$CombineIter$1(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter', 1302); +function $hasNext_6(this$static){ + return $hasNext_3(this$static.firstIterator) || $hasNext_3(this$static.secondIterator); +} + +function LPort$CombineIter$1(this$1){ + this.this$11 = this$1; + this.firstIterator = new ArrayList$1(this.this$11.firstIterable); + this.secondIterator = new ArrayList$1(this.this$11.secondIterable); +} + +defineClass(208, 1, $intern_6, LPort$CombineIter$1); +_.forEachRemaining = function forEachRemaining_49(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_95(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_38(){ + return $hasNext_6(this); +} +; +_.next_1 = function next_39(){ + return $hasNext_3(this.firstIterator)?$next_6(this.firstIterator):$next_6(this.secondIterator); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter/1', 208); +function $apply_13(arg0){ + return $clinit_LPort() , castTo(arg0, 12).outgoingEdges.array.length != 0; +} + +function LPort$lambda$0$Type(){ +} + +defineClass(1303, 1, $intern_89, LPort$lambda$0$Type); +_.apply_1 = function apply_62(arg0){ + return $apply_13(arg0); +} +; +_.equals_0 = function equals_100(other){ + return this === other; +} +; +_.test_0 = function test_19(input_0){ + return $clinit_LPort() , castTo(input_0, 12).outgoingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$0$Type', 1303); +function $apply_14(arg0){ + return $clinit_LPort() , castTo(arg0, 12).incomingEdges.array.length != 0; +} + +function LPort$lambda$1$Type(){ +} + +defineClass(1304, 1, $intern_89, LPort$lambda$1$Type); +_.apply_1 = function apply_63(arg0){ + return $apply_14(arg0); +} +; +_.equals_0 = function equals_101(other){ + return this === other; +} +; +_.test_0 = function test_20(input_0){ + return $clinit_LPort() , castTo(input_0, 12).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$1$Type', 1304); +function LPort$lambda$2$Type(){ +} + +defineClass(1305, 1, $intern_89, LPort$lambda$2$Type); +_.apply_1 = function apply_64(arg0){ + return $clinit_LPort() , castTo(arg0, 12).side == ($clinit_PortSide() , NORTH_3); +} +; +_.equals_0 = function equals_102(other){ + return this === other; +} +; +_.test_0 = function test_21(input_0){ + return $clinit_LPort() , castTo(input_0, 12).side == ($clinit_PortSide() , NORTH_3); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$2$Type', 1305); +function LPort$lambda$3$Type(){ +} + +defineClass(1306, 1, $intern_89, LPort$lambda$3$Type); +_.apply_1 = function apply_65(arg0){ + return $clinit_LPort() , castTo(arg0, 12).side == ($clinit_PortSide() , EAST_2); +} +; +_.equals_0 = function equals_103(other){ + return this === other; +} +; +_.test_0 = function test_22(input_0){ + return $clinit_LPort() , castTo(input_0, 12).side == ($clinit_PortSide() , EAST_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$3$Type', 1306); +function LPort$lambda$4$Type(){ +} + +defineClass(1307, 1, $intern_89, LPort$lambda$4$Type); +_.apply_1 = function apply_66(arg0){ + return $clinit_LPort() , castTo(arg0, 12).side == ($clinit_PortSide() , SOUTH_2); +} +; +_.equals_0 = function equals_104(other){ + return this === other; +} +; +_.test_0 = function test_23(input_0){ + return $clinit_LPort() , castTo(input_0, 12).side == ($clinit_PortSide() , SOUTH_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$4$Type', 1307); +function LPort$lambda$5$Type(){ +} + +defineClass(1308, 1, $intern_89, LPort$lambda$5$Type); +_.apply_1 = function apply_67(arg0){ + return $clinit_LPort() , castTo(arg0, 12).side == ($clinit_PortSide() , WEST_2); +} +; +_.equals_0 = function equals_105(other){ + return this === other; +} +; +_.test_0 = function test_24(input_0){ + return $clinit_LPort() , castTo(input_0, 12).side == ($clinit_PortSide() , WEST_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$5$Type', 1308); +function $getIndex_0(this$static){ + return $indexOf_3(this$static.owner.layers, this$static, 0); +} + +function Layer(graph){ + this.size_0 = new KVector; + this.nodes = new ArrayList; + this.owner = graph; +} + +defineClass(30, 305, {3:1, 20:1, 305:1, 30:1, 96:1, 137:1}, Layer); +_.forEach_0 = function forEach_30(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_72(){ + return new ArrayList$1(this.nodes); +} +; +_.toString_0 = function toString_93(){ + return 'L_' + $indexOf_3(this.owner.layers, this, 0) + $toString_2(this.nodes); +} +; +var Lorg_eclipse_elk_alg_layered_graph_Layer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'Layer', 30); +function $calculateMinimumGraphSize(elkgraph, lgraph){ + var configuredMinSize, graphAdapter, minSize, nodeAdapter, sizeConstraints; + if (!$getParent_2(elkgraph)) { + return; + } + sizeConstraints = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 181); + maskUndefined($getProperty_0(elkgraph, PORT_CONSTRAINTS_0)) === maskUndefined(($clinit_PortConstraints() , UNDEFINED_4)) && $setProperty_1(elkgraph, PORT_CONSTRAINTS_0, FREE); + graphAdapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))); + nodeAdapter = new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph); + minSize = process(graphAdapter, nodeAdapter, false, true); + $add_5(sizeConstraints, ($clinit_SizeConstraint() , MINIMUM_SIZE)); + configuredMinSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + configuredMinSize.x_0 = $wnd.Math.max(minSize.x_0, configuredMinSize.x_0); + configuredMinSize.y_0 = $wnd.Math.max(minSize.y_0, configuredMinSize.y_0); +} + +function $calculateNetFlow_0(elkport){ + var elkgraph, incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; + elkgraph = $getParent_3(elkport); + insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + outputPortVote = 0; + inputPortVote = 0; + for (outgoingEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outgoingEdge$iterator.cursor != outgoingEdge$iterator.this$01_2.size_1();) { + outgoingEdge = castTo($doNext(outgoingEdge$iterator), 74); + isSelfLoop = $isSelfloop(outgoingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(outgoingEdge, INSIDE_SELF_LOOPS_YO))); + targetNode = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 84)); + isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getParent_2(targetNode) == elkgraph || targetNode == elkgraph?++inputPortVote:++outputPortVote; + } + for (incomingEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); incomingEdge$iterator.cursor != incomingEdge$iterator.this$01_2.size_1();) { + incomingEdge = castTo($doNext(incomingEdge$iterator), 74); + isSelfLoop = $isSelfloop(incomingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(incomingEdge, INSIDE_SELF_LOOPS_YO))); + sourceNode = connectableShapeToNode(castTo($get_20((!incomingEdge.sources && (incomingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, incomingEdge, 4, 7)) , incomingEdge.sources), 0), 84)); + isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getParent_2(sourceNode) == elkgraph || sourceNode == elkgraph?++outputPortVote:++inputPortVote; + } + return outputPortVote - inputPortVote; +} + +function $checkEdgeValidity(edge){ + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0) { + throw toJs(new UnsupportedGraphException('Edges must have a source.')); + } + else if ((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + throw toJs(new UnsupportedGraphException('Edges must have a target.')); + } + else { + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (!(edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1))) { + throw toJs(new UnsupportedGraphException('Hyperedges are not supported.')); + } + } +} + +function $checkExternalPorts(elkgraph, graphProperties){ + var connectsToChild, elkedge, elkedge$iterator, elkport, enableSelfLoops, externalPortEdges, hasExternalPorts, hasHyperedges, isInsideSelfLoop, portIterator, portLabelPlacement; + enableSelfLoops = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + portLabelPlacement = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21); + hasExternalPorts = false; + hasHyperedges = false; + portIterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); + while (portIterator.cursor != portIterator.this$01_2.size_1() && (!hasExternalPorts || !hasHyperedges)) { + elkport = castTo($doNext(portIterator), 123); + externalPortEdges = 0; + for (elkedge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges), (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)]))); $hasNext_1(elkedge$iterator);) { + elkedge = castTo($next_0(elkedge$iterator), 74); + isInsideSelfLoop = enableSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + connectsToChild = $contains_11((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), elkport)?elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 84))):elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 84))); + if (isInsideSelfLoop || connectsToChild) { + ++externalPortEdges; + if (externalPortEdges > 1) { + break; + } + } + } + externalPortEdges > 0?(hasExternalPorts = true):portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && (!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels).size_0 > 0 && (hasExternalPorts = true); + externalPortEdges > 1 && (hasHyperedges = true); + } + hasExternalPorts && graphProperties.add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + hasHyperedges && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); +} + +function $createLGraph(elkgraph){ + var all, lPadding, lgraph, nodeLabelpadding, nodePadding, root; + lgraph = new LGraph; + $copyProperties(lgraph, elkgraph); + maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION))) === maskUndefined(($clinit_Direction_0() , UNDEFINED_2)) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + if ($getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) == null) { + root = castTo(getRootContainer(elkgraph), 167); + $setProperty_0(lgraph, LABEL_MANAGER, throwClassCastExceptionUnlessNull(root.getProperty(LABEL_MANAGER))); + } + $setProperty_0(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0), elkgraph); + $setProperty_0(lgraph, GRAPH_PROPERTIES, (all = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + nodeLabelpadding = computeInsideNodeLabelPadding((!$getParent_2(elkgraph)?null:($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))) , $clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph)), RIGHT_6); + nodePadding = castTo($getProperty(lgraph, PADDING_1), 107); + lPadding = lgraph.padding; + $add_15(lPadding, nodePadding); + $add_15(lPadding, nodeLabelpadding); + return lgraph; +} + +function $ensureDefinedPortSide(lgraph, elkport){ + var layoutDirection, netFlow, portConstraints, portSide; + layoutDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 88); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 64); + portConstraints = castTo($getProperty(lgraph, PORT_CONSTRAINTS_0), 101); + if (portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4) { + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(elkport, layoutDirection); + portSide == UNDEFINED_5 && (portSide = fromDirection(layoutDirection)); + } + } + else { + netFlow = $calculateNetFlow_0(elkport); + netFlow > 0?(portSide = fromDirection(layoutDirection)):(portSide = $opposed(fromDirection(layoutDirection))); + } + $setProperty_1(elkport, PORT_SIDE, portSide); +} + +function $findCoordinateSystemOrigin(this$static, elkedge, topLevelElkGraph, topLevelLGraph){ + var lgraph, lnode, origin_0, source, target; + source = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 84)); + target = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 84)); + if ($getParent_2(source) == $getParent_2(target)) { + return null; + } + if (isDescendant_0(target, source)) { + return null; + } + origin_0 = $getContainingNode(elkedge); + if (origin_0 == topLevelElkGraph) { + return topLevelLGraph; + } + else { + lnode = castTo($get_10(this$static.nodeAndPortMap, origin_0), 10); + if (lnode) { + lgraph = lnode.nestedGraph; + if (lgraph) { + return lgraph; + } + } + } + return null; +} + +function $hasInsideSelfLoops(elknode){ + var edge, edge$iterator; + if ($booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + if ($isSelfloop(edge)) { + if ($booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO)))) { + return true; + } + } + } + } + return false; +} + +function $importFlatGraph(this$static, elkgraph0, lgraph){ + var child, child$iterator, connectsSiblings, connectsToGraph, elkedge, elkedge$iterator, elkedge$iterator0, elkgraph, enableInsideSelfLoops, index_0, isInsideSelfLoop, isToBeLaidOut, source, target; + index_0 = 0; + for (child$iterator = new AbstractEList$EIterator((!elkgraph0.children && (elkgraph0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph0, 10, 11)) , elkgraph0.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + if (!$booleanValue(castToBoolean($getProperty_0(child, ($clinit_LayeredOptions() , NO_LAYOUT))))) { + elkgraph = $getParent_2(child); + if ((maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER_0)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) || maskUndefined($getProperty_0(elkgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT)) || maskUndefined($getProperty_0(elkgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_RIGHT_TO_LEFT)) || maskUndefined($getProperty_0(elkgraph, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , BF_MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , DF_MODEL_ORDER))) && !$booleanValue(castToBoolean($getProperty_0(child, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)))) { + $setProperty_1(child, ($clinit_InternalProperties_1() , MODEL_ORDER_1), valueOf_3(index_0)); + ++index_0; + } + $transformNode(this$static, child, lgraph); + } + } + index_0 = 0; + for (elkedge$iterator0 = new AbstractEList$EIterator((!elkgraph0.containedEdges && (elkgraph0.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkgraph0, 12, 3)) , elkgraph0.containedEdges)); elkedge$iterator0.cursor != elkedge$iterator0.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator0), 74); + if (maskUndefined($getProperty_0(elkgraph0, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph0, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER_0)) || maskUndefined($getProperty_0(elkgraph0, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph0, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph0, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_RIGHT_TO_LEFT)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , BF_MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , DF_MODEL_ORDER))) { + $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_1), valueOf_3(index_0)); + ++index_0; + } + source = getSourceNode(elkedge); + target = getTargetNode_0(elkedge); + enableInsideSelfLoops = $booleanValue(castToBoolean($getProperty_0(source, INSIDE_SELF_LOOPS_ACTIVATE))); + isToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))); + isInsideSelfLoop = enableInsideSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + connectsSiblings = $getParent_2(source) == elkgraph0 && $getParent_2(source) == $getParent_2(target); + connectsToGraph = ($getParent_2(source) == elkgraph0 && target == elkgraph0) ^ ($getParent_2(target) == elkgraph0 && source == elkgraph0); + isToBeLaidOut && !isInsideSelfLoop && (connectsToGraph || connectsSiblings) && $transformEdge(this$static, elkedge, elkgraph0, lgraph); + } + if ($getParent_2(elkgraph0)) { + for (elkedge$iterator = new AbstractEList$EIterator($getContainedEdges($getParent_2(elkgraph0))); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 74); + source = getSourceNode(elkedge); + if (source == elkgraph0 && $isSelfloop(elkedge)) { + isInsideSelfLoop = $booleanValue(castToBoolean($getProperty_0(source, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + isInsideSelfLoop && $transformEdge(this$static, elkedge, elkgraph0, lgraph); + } + } + } +} + +function $importGraph_1(this$static, elkgraph){ + var elkport, elkport$iterator, graphProperties, topLevelGraph; + topLevelGraph = $createLGraph(elkgraph); + !elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)); + $forEach_3(new StreamImpl(null, (!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , new Spliterators$IteratorSpliterator(elkgraph.ports, 16))), new ElkGraphImporter$lambda$0$Type_0(topLevelGraph)); + graphProperties = castTo($getProperty(topLevelGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + $checkExternalPorts(elkgraph, graphProperties); + if (graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + for (elkport$iterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { + elkport = castTo($doNext(elkport$iterator), 123); + $transformExternalPort(this$static, elkgraph, topLevelGraph, elkport); + } + } + castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 181).size_1() != 0 && $calculateMinimumGraphSize(elkgraph, topLevelGraph); + $booleanValue(castToBoolean($getProperty(topLevelGraph, PARTITIONING_ACTIVATE))) && graphProperties.add_2(PARTITIONS); + $hasProperty(topLevelGraph, SPACING_BASE_VALUE_0) && $apply_16(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(topLevelGraph, SPACING_BASE_VALUE_0)))), topLevelGraph); + maskUndefined($getProperty_0(elkgraph, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$importHierarchicalGraph(this$static, elkgraph, topLevelGraph):$importFlatGraph(this$static, elkgraph, topLevelGraph); + return topLevelGraph; +} + +function $importHierarchicalGraph(this$static, elkgraph0, lgraph){ + var elkChildGraphNode, elkChildGraphNode$iterator, elkGraphNode, elkGraphQueue, elkedge, elkedge$iterator, elkgraph, elknode, finalNestedGraph, hasChildren, hasHierarchyHandlingEnabled, hasInsideSelfLoops, index_0, isInsideSelfLoop, isNodeToBeLaidOut, ledge, lnode, nestedGraph, parentElkGraph, parentGraphDirection, parentLGraph, parentLNode, partOfSameLayoutRun, sourceNode, targetNode, usesElkLayered; + elkGraphQueue = new LinkedList; + parentGraphDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 88); + index_0 = 0; + $addAll(elkGraphQueue, (!elkgraph0.children && (elkgraph0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph0, 10, 11)) , elkgraph0.children)); + while (elkGraphQueue.size_0 != 0) { + elknode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 27); + elkgraph = $getParent_2(elknode); + (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER_0)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) || maskUndefined($getProperty_0(elkgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT)) || maskUndefined($getProperty_0(elkgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_RIGHT_TO_LEFT)) || maskUndefined($getProperty_0(elkgraph, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , BF_MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , DF_MODEL_ORDER))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elknode, ($clinit_InternalProperties_1() , MODEL_ORDER_1), valueOf_3(index_0++)); + isNodeToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elknode, NO_LAYOUT))); + if (isNodeToBeLaidOut) { + hasChildren = (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0; + hasInsideSelfLoops = $hasInsideSelfLoops(elknode); + hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elknode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + usesElkLayered = !$hasProperty_0(elknode, ($clinit_CoreOptions() , ALGORITHM)) || $endsWith(castToString($getProperty_0(elknode, ALGORITHM))); + nestedGraph = null; + if (usesElkLayered && hasHierarchyHandlingEnabled && (hasChildren || hasInsideSelfLoops)) { + nestedGraph = $createLGraph(elknode); + $setProperty_0(nestedGraph, DIRECTION, parentGraphDirection); + $hasProperty(nestedGraph, SPACING_BASE_VALUE_0) && $apply_16(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(nestedGraph, SPACING_BASE_VALUE_0)))), nestedGraph); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 181).size_1() != 0) { + finalNestedGraph = nestedGraph; + $forEach_3(new StreamImpl(null, (!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , new Spliterators$IteratorSpliterator(elknode.ports, 16))), new ElkGraphImporter$lambda$1$Type(finalNestedGraph)); + $calculateMinimumGraphSize(elknode, nestedGraph); + } + } + parentLGraph = lgraph; + parentLNode = castTo($get_10(this$static.nodeAndPortMap, $getParent_2(elknode)), 10); + !!parentLNode && (parentLGraph = parentLNode.nestedGraph); + lnode = $transformNode(this$static, elknode, parentLGraph); + if (nestedGraph) { + lnode.nestedGraph = nestedGraph; + nestedGraph.parentNode = lnode; + $addAll(elkGraphQueue, (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children)); + } + } + } + index_0 = 0; + $addNode_0(elkGraphQueue, elkgraph0, elkGraphQueue.tail.prev, elkGraphQueue.tail); + while (elkGraphQueue.size_0 != 0) { + elkGraphNode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 27); + for (elkedge$iterator = new AbstractEList$EIterator((!elkGraphNode.containedEdges && (elkGraphNode.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkGraphNode, 12, 3)) , elkGraphNode.containedEdges)); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 74); + $checkEdgeValidity(elkedge); + (maskUndefined($getProperty_0(elkgraph0, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph0, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER_0)) || maskUndefined($getProperty_0(elkgraph0, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph0, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph0, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_RIGHT_TO_LEFT)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , BF_MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph0, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , DF_MODEL_ORDER))) && $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_1), valueOf_3(index_0++)); + sourceNode = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 84)); + targetNode = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 84)); + if ($booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(sourceNode, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(targetNode, NO_LAYOUT)))) { + continue; + } + isInsideSelfLoop = $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(sourceNode, INSIDE_SELF_LOOPS_ACTIVATE))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + parentElkGraph = elkGraphNode; + isInsideSelfLoop || isDescendant_0(targetNode, sourceNode)?(parentElkGraph = sourceNode):isDescendant_0(sourceNode, targetNode) && (parentElkGraph = targetNode); + parentLGraph = lgraph; + parentLNode = castTo($get_10(this$static.nodeAndPortMap, parentElkGraph), 10); + !!parentLNode && (parentLGraph = parentLNode.nestedGraph); + ledge = $transformEdge(this$static, elkedge, parentElkGraph, parentLGraph); + $setProperty_0(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN), $findCoordinateSystemOrigin(this$static, elkedge, elkgraph0, lgraph)); + } + hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elkGraphNode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (hasHierarchyHandlingEnabled) { + for (elkChildGraphNode$iterator = new AbstractEList$EIterator((!elkGraphNode.children && (elkGraphNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkGraphNode, 10, 11)) , elkGraphNode.children)); elkChildGraphNode$iterator.cursor != elkChildGraphNode$iterator.this$01_2.size_1();) { + elkChildGraphNode = castTo($doNext(elkChildGraphNode$iterator), 27); + usesElkLayered = !$hasProperty_0(elkChildGraphNode, ($clinit_CoreOptions() , ALGORITHM)) || $endsWith(castToString($getProperty_0(elkChildGraphNode, ALGORITHM))); + partOfSameLayoutRun = maskUndefined($getProperty_0(elkChildGraphNode, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN); + usesElkLayered && partOfSameLayoutRun && ($addNode_0(elkGraphQueue, elkChildGraphNode, elkGraphQueue.tail.prev, elkGraphQueue.tail) , true); + } + } + } +} + +function $isConnectedToExternalNodes(elkport){ + var inEdge, inEdge$iterator, outEdge, outEdge$iterator, parent_0, sourceNode, targetNode; + parent_0 = $getParent_3(elkport); + for (outEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outEdge$iterator.cursor != outEdge$iterator.this$01_2.size_1();) { + outEdge = castTo($doNext(outEdge$iterator), 74); + targetNode = connectableShapeToNode(castTo($get_20((!outEdge.targets && (outEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outEdge, 5, 8)) , outEdge.targets), 0), 84)); + if (!isDescendant_0(targetNode, parent_0)) { + return true; + } + } + for (inEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); inEdge$iterator.cursor != inEdge$iterator.this$01_2.size_1();) { + inEdge = castTo($doNext(inEdge$iterator), 74); + sourceNode = connectableShapeToNode(castTo($get_20((!inEdge.sources && (inEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, inEdge, 4, 7)) , inEdge.sources), 0), 84)); + if (!isDescendant_0(sourceNode, parent_0)) { + return true; + } + } + return false; +} + +function $transformEdge(this$static, elkedge, elkparent, lgraph){ + var bendPointsRequired, crossMinStrat, edgeSection, elkSourceNode, elkSourceShape, elkTargetNode, elkTargetShape, elklabel, elklabel$iterator, graphProperties, importedBendpoints, ledge, llabel, nodePlaceStrat, originalBendpoints, point, point$iterator, portType, sourceElem, sourceLNode, sourceLPort, sourcePoint, targetElem, targetLNode, targetLPort, targetPoint; + $checkEdgeValidity(elkedge); + elkSourceShape = castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 84); + elkTargetShape = castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 84); + elkSourceNode = connectableShapeToNode(elkSourceShape); + elkTargetNode = connectableShapeToNode(elkTargetShape); + edgeSection = (!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections).size_0 == 0?null:castTo($get_20((!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections), 0), 166); + sourceLNode = castTo($get_10(this$static.nodeAndPortMap, elkSourceNode), 10); + targetLNode = castTo($get_10(this$static.nodeAndPortMap, elkTargetNode), 10); + sourceLPort = null; + targetLPort = null; + if (instanceOf(elkSourceShape, 193)) { + sourceElem = castTo($get_10(this$static.nodeAndPortMap, elkSourceShape), 305); + if (instanceOf(sourceElem, 12)) { + sourceLPort = castTo(sourceElem, 12); + } + else if (instanceOf(sourceElem, 10)) { + sourceLNode = castTo(sourceElem, 10); + sourceLPort = castTo($get_11(sourceLNode.ports, 0), 12); + } + } + if (instanceOf(elkTargetShape, 193)) { + targetElem = castTo($get_10(this$static.nodeAndPortMap, elkTargetShape), 305); + if (instanceOf(targetElem, 12)) { + targetLPort = castTo(targetElem, 12); + } + else if (instanceOf(targetElem, 10)) { + targetLNode = castTo(targetElem, 10); + targetLPort = castTo($get_11(targetLNode.ports, 0), 12); + } + } + if (!sourceLNode || !targetLNode) { + throw toJs(new UnsupportedGraphException('The source or the target of edge ' + elkedge + ' could not be found. ' + 'This usually happens when an edge connects a node laid out by ELK Layered to a node in ' + 'another level of hierarchy laid out by either another instance of ELK Layered or another ' + 'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling ' + 'option to INCLUDE_CHILDREN.')); + } + ledge = new LEdge; + $copyProperties(ledge, elkedge); + $setProperty_0(ledge, ($clinit_InternalProperties_1() , ORIGIN_0), elkedge); + $setProperty_0(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); + graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + sourceLNode == targetLNode && graphProperties.add_2(($clinit_GraphProperties() , SELF_LOOPS)); + if (!sourceLPort) { + portType = ($clinit_PortType() , OUTPUT); + sourcePoint = null; + if (!!edgeSection && $isSideFixed(castTo($getProperty(sourceLNode, PORT_CONSTRAINTS_0), 101))) { + sourcePoint = new KVector_1(edgeSection.startX, edgeSection.startY); + toAbsolute(sourcePoint, $getContainingNode(elkedge)); + toRelative(sourcePoint, elkparent); + if (isDescendant_0(elkTargetNode, elkSourceNode)) { + portType = INPUT; + $add_19(sourcePoint, sourceLNode.pos); + } + } + sourceLPort = createPort(sourceLNode, sourcePoint, portType, lgraph); + } + if (!targetLPort) { + portType = ($clinit_PortType() , INPUT); + targetPoint = null; + if (!!edgeSection && $isSideFixed(castTo($getProperty(targetLNode, PORT_CONSTRAINTS_0), 101))) { + targetPoint = new KVector_1(edgeSection.endX, edgeSection.endY); + toAbsolute(targetPoint, $getContainingNode(elkedge)); + toRelative(targetPoint, elkparent); + } + targetLPort = createPort(targetLNode, targetPoint, portType, $getGraph(targetLNode)); + } + $setSource_0(ledge, sourceLPort); + $setTarget_0(ledge, targetLPort); + (sourceLPort.incomingEdges.array.length > 1 || sourceLPort.outgoingEdges.array.length > 1 || targetLPort.incomingEdges.array.length > 1 || targetLPort.outgoingEdges.array.length > 1) && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); + for (elklabel$iterator = new AbstractEList$EIterator((!elkedge.labels && (elkedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkedge, 1, 7)) , elkedge.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 135); + if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { + llabel = $transformLabel(elklabel); + $add_3(ledge.labels, llabel); + switch (castTo($getProperty(llabel, EDGE_LABELS_PLACEMENT), 278).ordinal) { + case 1: + case 2: + graphProperties.add_2(($clinit_GraphProperties() , END_LABELS)); + break; + case 0: + graphProperties.add_2(($clinit_GraphProperties() , CENTER_LABELS)); + $setProperty_0(llabel, EDGE_LABELS_PLACEMENT, ($clinit_EdgeLabelPlacement() , CENTER_5)); + } + } + } + crossMinStrat = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 322); + nodePlaceStrat = castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 323); + bendPointsRequired = crossMinStrat == ($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1) || nodePlaceStrat == ($clinit_NodePlacementStrategy() , INTERACTIVE_4); + if (!!edgeSection && (!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints).size_0 != 0 && bendPointsRequired) { + originalBendpoints = createVectorChain(edgeSection); + importedBendpoints = new KVectorChain; + for (point$iterator = $listIterator_2(originalBendpoints, 0); point$iterator.currentNode != point$iterator.this$01.tail;) { + point = castTo($next_9(point$iterator), 8); + $add_7(importedBendpoints, new KVector_2(point)); + } + $setProperty_0(ledge, ORIGINAL_BENDPOINTS, importedBendpoints); + } + return ledge; +} + +function $transformExternalPort(this$static, elkgraph, lgraph, elkport){ + var dummy, dummyPort, elklabel, elklabel$iterator, elkportPosition, graphSize, insidePart, insidePortLabels, llabel, netFlow, portConstraints, portOffset, portSide; + elkportPosition = new KVector_1(elkport.x_0 + elkport.width_0 / 2, elkport.y_0 + elkport.height / 2); + netFlow = $calculateNetFlow_0(elkport); + portConstraints = castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 64); + if (!$containsKey_8($getAllProperties_0(elkport), PORT_BORDER_OFFSET)) { + elkport.x_0 == 0 && elkport.y_0 == 0?(portOffset = 0):(portOffset = calcPortOffset_0(elkport, portSide)); + $setProperty_1(elkport, PORT_BORDER_OFFSET, portOffset); + } + graphSize = new KVector_1(elkgraph.width_0, elkgraph.height); + dummy = createExternalPortDummy(elkport, portConstraints, portSide, netFlow, graphSize, elkportPosition, new KVector_1(elkport.width_0, elkport.height), castTo($getProperty(lgraph, DIRECTION), 88), lgraph); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + dummyPort = castTo($get_11(dummy.ports, 0), 12); + $setConnectedToExternalNodes(dummyPort, $isConnectedToExternalNodes(elkport)); + $setProperty_0(dummy, PORT_LABELS_PLACEMENT_1, ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0))); + insidePortLabels = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 181).contains(INSIDE_0); + for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 135); + if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { + llabel = $transformLabel(elklabel); + $add_3(dummyPort.labels, llabel); + if (!insidePortLabels) { + insidePart = 0; + isFixed(castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(new KVector_1(elklabel.x_0, elklabel.y_0), new KVector_1(elklabel.width_0, elklabel.height), new KVector_1(elkport.width_0, elkport.height), 0, portSide)); + switch (portSide.ordinal) { + case 2: + case 4: + llabel.size_0.x_0 = insidePart; + break; + case 1: + case 3: + llabel.size_0.y_0 = insidePart; + } + } + } + } + $setProperty_0(dummy, SPACING_LABEL_PORT_HORIZONTAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_HORIZONTAL))); + $setProperty_0(dummy, SPACING_LABEL_PORT_VERTICAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_VERTICAL))); + $setProperty_0(dummy, SPACING_LABEL_LABEL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_LABEL))); + $add_3(lgraph.layerlessNodes, dummy); + $put_6(this$static.nodeAndPortMap, elkport, dummy); +} + +function $transformLabel(elklabel){ + var newLabel; + newLabel = new LLabel_0(elklabel.text_0); + $copyProperties(newLabel, elklabel); + $setProperty_0(newLabel, ($clinit_InternalProperties_1() , ORIGIN_0), elklabel); + newLabel.size_0.x_0 = elklabel.width_0; + newLabel.size_0.y_0 = elklabel.height; + newLabel.pos.x_0 = elklabel.x_0; + newLabel.pos.y_0 = elklabel.y_0; + return newLabel; +} + +function $transformNode(this$static, elknode, lgraph){ + var direction, elkgraph, elklabel, elklabel$iterator, elkport, elkport$iterator, graphProperties, lnode, portConstraints, portModelOrder; + lnode = new LNode(lgraph); + $copyProperties(lnode, elknode); + $setProperty_0(lnode, ($clinit_InternalProperties_1() , ORIGIN_0), elknode); + lnode.size_0.x_0 = elknode.width_0; + lnode.size_0.y_0 = elknode.height; + lnode.pos.x_0 = elknode.x_0; + lnode.pos.y_0 = elknode.y_0; + $add_3(lgraph.layerlessNodes, lnode); + $put_6(this$static.nodeAndPortMap, elknode, lnode); + ((!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) && $setProperty_0(lnode, COMPOUND_NODE, ($clinit_Boolean() , true)); + graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + portConstraints = castTo($getProperty(lnode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4)?$setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE):portConstraints != FREE && graphProperties.add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + portModelOrder = 0; + direction = castTo($getProperty(lgraph, DIRECTION), 88); + for (elkport$iterator = new AbstractEList$EIterator((!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , elknode.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { + elkport = castTo($doNext(elkport$iterator), 123); + elkgraph = $getParent_2(elknode); + (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER_0)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) || maskUndefined($getProperty_0(elkgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT)) || maskUndefined($getProperty_0(elkgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) === maskUndefined(($clinit_NodePromotionStrategy() , MODEL_ORDER_RIGHT_TO_LEFT)) || maskUndefined($getProperty_0(elkgraph, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , BF_MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, LAYERING_STRATEGY_0)) === maskUndefined(($clinit_LayeringStrategy() , DF_MODEL_ORDER))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elkport, MODEL_ORDER_1, valueOf_3(portModelOrder++)); + $booleanValue(castToBoolean($getProperty_0(elkport, NO_LAYOUT))) || $transformPort(this$static, elkport, lnode, graphProperties, direction, portConstraints); + } + for (elklabel$iterator = new AbstractEList$EIterator((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 135); + !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lnode.labels, $transformLabel(elklabel)); + } + $booleanValue(castToBoolean($getProperty(lnode, COMMENT_BOX))) && graphProperties.add_2(($clinit_GraphProperties() , COMMENTS)); + if ($booleanValue(castToBoolean($getProperty(lnode, HYPERNODE)))) { + graphProperties.add_2(($clinit_GraphProperties() , HYPERNODES)); + graphProperties.add_2(HYPEREDGES); + $setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE); + } + return lnode; +} + +function $transformPort(this$static, elkport, parentLNode, graphProperties, layoutDirection, portConstraints){ + var connectionsToDescendants, elklabel, elklabel$iterator, lport, portPos, portSize; + lport = new LPort; + $copyProperties(lport, elkport); + $setSide(lport, castTo($getProperty_0(elkport, ($clinit_LayeredOptions() , PORT_SIDE)), 64)); + $setProperty_0(lport, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + $setNode(lport, parentLNode); + portSize = lport.size_0; + portSize.x_0 = elkport.width_0; + portSize.y_0 = elkport.height; + portPos = lport.pos; + portPos.x_0 = elkport.x_0; + portPos.y_0 = elkport.y_0; + $put_6(this$static.nodeAndPortMap, elkport, lport); + connectionsToDescendants = $anyMatch($map($flatMap(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$2$Type), new ElkGraphImporter$0methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$4$Type(elkport)); + connectionsToDescendants || (connectionsToDescendants = $anyMatch($map($flatMap(new StreamImpl(null, (!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , new Spliterators$IteratorSpliterator(elkport.incomingEdges, 16))), new ElkGraphImporter$lambda$5$Type), new ElkGraphImporter$1methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$7$Type(elkport))); + connectionsToDescendants || (connectionsToDescendants = $anyMatch(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$8$Type)); + $setProperty_0(lport, INSIDE_CONNECTIONS, ($clinit_Boolean() , connectionsToDescendants?true:false)); + initializePort(lport, portConstraints, layoutDirection, castTo($getProperty_0(elkport, PORT_ANCHOR), 8)); + for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 135); + !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lport.labels, $transformLabel(elklabel)); + } + switch (layoutDirection.ordinal) { + case 2: + case 1: + (lport.side == ($clinit_PortSide() , NORTH_3) || lport.side == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + break; + case 4: + case 3: + (lport.side == ($clinit_PortSide() , EAST_2) || lport.side == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + } + return lport; +} + +function ElkGraphImporter(){ + this.nodeAndPortMap = new HashMap; +} + +function lambda$4_3(elkport_0, targetNode_1){ + return isDescendant_0(targetNode_1, $getParent_3(elkport_0)); +} + +function lambda$7_0(elkport_0, sourceNode_1){ + return isDescendant_0(sourceNode_1, $getParent_3(elkport_0)); +} + +function lambda$8(edge_0){ + return $isSelfloop(edge_0) && $booleanValue(castToBoolean($getProperty_0(edge_0, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_YO)))); +} + +defineClass(1330, 1, {}, ElkGraphImporter); +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter', 1330); +function ElkGraphImporter$0methodref$connectableShapeToNode$Type(){ +} + +defineClass(1334, 1, {}, ElkGraphImporter$0methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_68(arg0){ + return connectableShapeToNode(castTo(arg0, 84)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$0methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/0methodref$connectableShapeToNode$Type', 1334); +function ElkGraphImporter$1methodref$connectableShapeToNode$Type(){ +} + +defineClass(1337, 1, {}, ElkGraphImporter$1methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_69(arg0){ + return connectableShapeToNode(castTo(arg0, 84)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$1methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/1methodref$connectableShapeToNode$Type', 1337); +function ElkGraphImporter$lambda$0$Type_0(topLevelGraph_1){ + this.topLevelGraph_1 = topLevelGraph_1; +} + +defineClass(1331, 1, $intern_19, ElkGraphImporter$lambda$0$Type_0); +_.accept = function accept_64(arg0){ + $ensureDefinedPortSide(this.topLevelGraph_1, castTo(arg0, 123)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$0$Type', 1331); +function ElkGraphImporter$lambda$1$Type(finalNestedGraph_1){ + this.finalNestedGraph_1 = finalNestedGraph_1; +} + +defineClass(1332, 1, $intern_19, ElkGraphImporter$lambda$1$Type); +_.accept = function accept_65(arg0){ + $ensureDefinedPortSide(this.finalNestedGraph_1, castTo(arg0, 123)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$1$Type', 1332); +function ElkGraphImporter$lambda$2$Type(){ +} + +defineClass(1333, 1, {}, ElkGraphImporter$lambda$2$Type); +_.apply_0 = function apply_70(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getTargets(castTo(arg0, 74)), 16)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$2$Type', 1333); +function ElkGraphImporter$lambda$4$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1335, 1, $intern_40, ElkGraphImporter$lambda$4$Type); +_.test_0 = function test_25(arg0){ + return lambda$4_3(this.elkport_0, castTo(arg0, 27)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$4$Type', 1335); +function ElkGraphImporter$lambda$5$Type(){ +} + +defineClass(1336, 1, {}, ElkGraphImporter$lambda$5$Type); +_.apply_0 = function apply_71(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getSources(castTo(arg0, 74)), 16)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$5$Type', 1336); +function ElkGraphImporter$lambda$7$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1338, 1, $intern_40, ElkGraphImporter$lambda$7$Type); +_.test_0 = function test_26(arg0){ + return lambda$7_0(this.elkport_0, castTo(arg0, 27)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$7$Type', 1338); +function ElkGraphImporter$lambda$8$Type(){ +} + +defineClass(1339, 1, $intern_40, ElkGraphImporter$lambda$8$Type); +_.test_0 = function test_27(arg0){ + return lambda$8(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$8$Type', 1339); +function $clinit_ElkGraphLayoutTransferrer(){ + $clinit_ElkGraphLayoutTransferrer = emptyMethod; + ZERO_OFFSET = new KVector; +} + +function $applyEdgeLayout(ledge, routing, offset){ + var bendPoints, edgeOffset, elkedge, elkedgeSection, elklabel, junctionPoints, llabel, llabel$iterator, sourcePoint, sourcePort, targetPoint; + elkedge = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , ORIGIN_0)), 74); + if (!elkedge) { + return; + } + bendPoints = ledge.bendPoints; + edgeOffset = new KVector_2(offset); + $add_19(edgeOffset, $calculateHierarchicalOffset(ledge)); + if (isDescendant(ledge.target.owner, ledge.source.owner)) { + sourcePort = ledge.source; + sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.pos, sourcePort.anchor])); + $sub_0(sourcePoint, offset); + } + else { + sourcePoint = $getAbsoluteAnchor(ledge.source); + } + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + targetPoint = $getAbsoluteAnchor(ledge.target); + $getProperty(ledge, TARGET_OFFSET) != null && $add_19(targetPoint, castTo($getProperty(ledge, TARGET_OFFSET), 8)); + $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); + $offset_2(bendPoints, edgeOffset); + elkedgeSection = firstEdgeSection(elkedge, true, true); + $setIncomingShape(elkedgeSection, castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 84)); + $setOutgoingShape(elkedgeSection, castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 84)); + applyVectorChain(bendPoints, elkedgeSection); + for (llabel$iterator = new ArrayList$1(ledge.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_6(llabel$iterator), 72); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 135); + $setWidth_0(elklabel, llabel.size_0.x_0); + $setHeight_0(elklabel, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0 + edgeOffset.x_0, llabel.pos.y_0 + edgeOffset.y_0); + $setProperty_1(elklabel, ($clinit_LabelDummySwitcher() , INCLUDE_LABEL), castToBoolean($getProperty(llabel, INCLUDE_LABEL))); + } + junctionPoints = castTo($getProperty(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (junctionPoints) { + $offset_2(junctionPoints, edgeOffset); + $setProperty_1(elkedge, JUNCTION_POINTS, junctionPoints); + } + else { + $setProperty_1(elkedge, JUNCTION_POINTS, null); + } + routing == ($clinit_EdgeRouting() , SPLINES)?$setProperty_1(elkedge, EDGE_ROUTING, SPLINES):$setProperty_1(elkedge, EDGE_ROUTING, null); +} + +function $applyLayout_2(this$static, lgraph){ + var edgeList, elkport, graphOrigin, lPadding, ledge, ledge$iterator, lnode, lnode$iterator, lnode$iterator0, nestedGraph, offset, padding, parentElkNode, parentLNode, port, port$iterator, portPosition, routing, sizeOptions; + graphOrigin = $getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (!instanceOf(graphOrigin, 207)) { + return; + } + parentElkNode = castTo(graphOrigin, 27); + parentLNode = lgraph.parentNode; + offset = new KVector_2(lgraph.offset); + lPadding = lgraph.padding; + offset.x_0 += lPadding.left; + offset.y_0 += lPadding.top_0; + sizeOptions = castTo($getProperty_0(parentElkNode, ($clinit_LayeredOptions() , NODE_SIZE_OPTIONS_1)), 181); + if ($containsEnum(sizeOptions, ($clinit_SizeOptions() , COMPUTE_PADDING))) { + padding = castTo($getProperty_0(parentElkNode, PADDING_1), 107); + $setBottom(padding, lPadding.bottom); + $setTop(padding, lPadding.top_0); + $setLeft(padding, lPadding.left); + $setRight(padding, lPadding.right); + } + edgeList = new ArrayList; + for (lnode$iterator0 = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator0.i < lnode$iterator0.this$01.array.length;) { + lnode = castTo($next_6(lnode$iterator0), 10); + if (instanceOf($getProperty(lnode, ORIGIN_0), 207)) { + $applyNodeLayout(lnode, offset); + } + else if (instanceOf($getProperty(lnode, ORIGIN_0), 193) && !parentLNode) { + elkport = castTo($getProperty(lnode, ORIGIN_0), 123); + portPosition = getExternalPortPosition(lgraph, lnode, elkport.width_0, elkport.height); + $setLocation_1(elkport, portPosition.x_0, portPosition.y_0); + } + for (port$iterator = new ArrayList$1(lnode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$0$Type(lnode)), new ElkGraphLayoutTransferrer$lambda$1$Type(edgeList)); + } + } + if (parentLNode) { + for (port$iterator = new ArrayList$1(parentLNode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode)), new ElkGraphLayoutTransferrer$lambda$3$Type(edgeList)); + } + } + routing = castTo($getProperty_0(parentElkNode, EDGE_ROUTING), 223); + for (ledge$iterator = new ArrayList$1(edgeList); ledge$iterator.i < ledge$iterator.this$01.array.length;) { + ledge = castTo($next_6(ledge$iterator), 18); + $applyEdgeLayout(ledge, routing, offset); + } + $applyParentNodeLayout(lgraph); + for (lnode$iterator = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { + lnode = castTo($next_6(lnode$iterator), 10); + nestedGraph = lnode.nestedGraph; + !!nestedGraph && $applyLayout_2(this$static, nestedGraph); + } +} + +function $applyNodeLayout(lnode, offset){ + var elklabel, elknode, elkport, layerID, llabel, llabel$iterator, llabel$iterator0, lport, lport$iterator, lport$iterator0, nf, nodeHasLabelPlacement, nodeID, origin_0; + elknode = castTo($getProperty(lnode, ($clinit_InternalProperties_1() , ORIGIN_0)), 27); + nodeID = castTo($getProperty(lnode, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_POSITION_ID_0)), 17).value_0; + layerID = castTo($getProperty(lnode, LAYERING_LAYER_ID_0), 17).value_0; + $setProperty_1(elknode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_3(nodeID)); + $setProperty_1(elknode, LAYERING_LAYER_ID_0, valueOf_3(layerID)); + $setX_2(elknode, lnode.pos.x_0 + offset.x_0); + $setY_3(elknode, lnode.pos.y_0 + offset.y_0); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 181).size_1() != 0 || !!lnode.nestedGraph || maskUndefined($getProperty($getGraph(lnode), NODE_PLACEMENT_STRATEGY_0)) === maskUndefined(($clinit_NodePlacementStrategy() , NETWORK_SIMPLEX_0)) && $isFlexibleSizeWhereSpacePermits(($clinit_NodeFlexibility() , (!lnode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lnode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lnode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 203)):(nf = castTo($getProperty($getGraph(lnode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 203)) , nf))) { + $setWidth_0(elknode, lnode.size_0.x_0); + $setHeight_0(elknode, lnode.size_0.y_0); + } + for (lport$iterator0 = new ArrayList$1(lnode.ports); lport$iterator0.i < lport$iterator0.this$01.array.length;) { + lport = castTo($next_6(lport$iterator0), 12); + origin_0 = $getProperty(lport, ORIGIN_0); + if (instanceOf(origin_0, 193)) { + elkport = castTo(origin_0, 123); + $setLocation_1(elkport, lport.pos.x_0, lport.pos.y_0); + $setProperty_1(elkport, PORT_SIDE, lport.side); + } + } + nodeHasLabelPlacement = castTo($getProperty(lnode, NODE_LABELS_PLACEMENT_1), 181).size_1() != 0; + for (llabel$iterator0 = new ArrayList$1(lnode.labels); llabel$iterator0.i < llabel$iterator0.this$01.array.length;) { + llabel = castTo($next_6(llabel$iterator0), 72); + if (nodeHasLabelPlacement || castTo($getProperty(llabel, NODE_LABELS_PLACEMENT_1), 181).size_1() != 0) { + elklabel = castTo($getProperty(llabel, ORIGIN_0), 135); + $setDimensions_0(elklabel, llabel.size_0.x_0, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); + } + } + if (!isFixed(castTo($getProperty(lnode, PORT_LABELS_PLACEMENT_1), 21))) { + for (lport$iterator = new ArrayList$1(lnode.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { + lport = castTo($next_6(lport$iterator), 12); + for (llabel$iterator = new ArrayList$1(lport.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_6(llabel$iterator), 72); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 135); + $setWidth_0(elklabel, llabel.size_0.x_0); + $setHeight_0(elklabel, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); + } + } + } +} + +function $applyParentNodeLayout(lgraph){ + var actualGraphSize, all, elknode, graphProps, sizeConstraintsIncludedPortLabels; + elknode = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)), 27); + sizeConstraintsIncludedPortLabels = castTo($getProperty_0(elknode, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 181).contains(($clinit_SizeConstraint() , PORT_LABELS)); + if (!lgraph.parentNode) { + graphProps = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + if (graphProps.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + $setProperty_1(elknode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); + resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, false, true); + } + else { + $booleanValue(castToBoolean($getProperty_0(elknode, NODE_SIZE_FIXED_GRAPH_SIZE_0))) || resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, true, true); + } + } + sizeConstraintsIncludedPortLabels?$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, of_1(PORT_LABELS)):$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); +} + +function $calculateHierarchicalOffset(ledge){ + var currentGraph, representingNode, result, targetCoordinateSystem; + targetCoordinateSystem = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN)), 36); + if (targetCoordinateSystem) { + result = new KVector; + currentGraph = $getGraph(ledge.source.owner); + while (currentGraph != targetCoordinateSystem) { + representingNode = currentGraph.parentNode; + currentGraph = $getGraph(representingNode); + $add_18($add_19($add_19(result, representingNode.pos), currentGraph.offset), currentGraph.padding.left, currentGraph.padding.top_0); + } + return result; + } + return ZERO_OFFSET; +} + +function ElkGraphLayoutTransferrer(){ + $clinit_ElkGraphLayoutTransferrer(); +} + +function lambda$0_24(lnode_0, edge_1){ + $clinit_ElkGraphLayoutTransferrer(); + return !isDescendant(edge_1.target.owner, lnode_0); +} + +function lambda$2_3(parentLNode_0, edge_1){ + $clinit_ElkGraphLayoutTransferrer(); + return isDescendant(edge_1.target.owner, parentLNode_0); +} + +defineClass(1297, 1, {}, ElkGraphLayoutTransferrer); +var ZERO_OFFSET; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer', 1297); +function ElkGraphLayoutTransferrer$lambda$0$Type(lnode_0){ + this.lnode_0 = lnode_0; +} + +defineClass(1298, 1, $intern_40, ElkGraphLayoutTransferrer$lambda$0$Type); +_.test_0 = function test_28(arg0){ + return lambda$0_24(this.lnode_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$0$Type', 1298); +function ElkGraphLayoutTransferrer$lambda$1$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1299, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$1$Type); +_.accept = function accept_66(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$1$Type', 1299); +function ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode_0){ + this.parentLNode_0 = parentLNode_0; +} + +defineClass(1300, 1, $intern_40, ElkGraphLayoutTransferrer$lambda$2$Type); +_.test_0 = function test_29(arg0){ + return lambda$2_3(this.parentLNode_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$2$Type', 1300); +function ElkGraphLayoutTransferrer$lambda$3$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1301, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$3$Type); +_.accept = function accept_67(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$3$Type', 1301); +function getIdentifier(element){ + var container, id_0, parentId; + id_0 = element.getIdentifier(); + if (id_0) { + container = element.eContainer_0(); + if (instanceOf(container, 167)) { + parentId = getIdentifier(castTo(container, 167)); + if (parentId != null) { + return parentId + '.' + id_0; + } + } + return id_0; + } + return null; +} + +function getOriginIdentifier(element){ + var origin_0; + origin_0 = $getProperty(element, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 167)) { + return getIdentifier(castTo(origin_0, 167)); + } + return null; +} + +function $getKey_0(this$static, value_0){ + return castTo($get_16(this$static.hashMapValuesToKey, value_0), 34); +} + +function $getValues(this$static, key){ + var toReturn; + toReturn = castTo($get_16(this$static.multiMapKeyToValues, key), 67); + !toReturn && (toReturn = new LinkedList); + return toReturn; +} + +function $isMaximalKey(this$static, key){ + var entry, otherKey, otherKey$iterator, outerIter; + for (otherKey$iterator = (outerIter = (new AbstractMap$1(this$static.multiMapKeyToValues)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); otherKey$iterator.val$outerIter2.hasNext_0();) { + otherKey = (entry = castTo(otherKey$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getKey(), 34)); + if ($compareTo_6(key, castTo(otherKey, 17)) < 0) { + return false; + } + } + return true; +} + +function $isMinimalKey(this$static, key){ + var entry, otherKey, otherKey$iterator, outerIter; + for (otherKey$iterator = (outerIter = (new AbstractMap$1(this$static.multiMapKeyToValues)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); otherKey$iterator.val$outerIter2.hasNext_0();) { + otherKey = (entry = castTo(otherKey$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getKey(), 34)); + if ($compareTo_6(key, castTo(otherKey, 17)) > 0) { + return false; + } + } + return true; +} + +function $put_13(this$static, key, value_0){ + var oldKey, values, values0; + oldKey = castTo($get_16(this$static.hashMapValuesToKey, value_0), 34); + if (oldKey != null) { + values0 = castTo($get_16(this$static.multiMapKeyToValues, oldKey), 67); + $advanceToFind(values0, value_0, true); + } + values = castTo($get_16(this$static.multiMapKeyToValues, key), 67); + if (!values) { + values = new LinkedList; + $put_11(this$static.multiMapKeyToValues, key, values); + } + $addNode_0(values, value_0, values.tail.prev, values.tail); + $put_11(this$static.hashMapValuesToKey, value_0, key); +} + +function $putAll_0(this$static, key, values){ + var value_0, value$iterator; + for (value$iterator = new ArrayList$1(values); value$iterator.i < value$iterator.this$01.array.length;) { + value_0 = $next_6(value$iterator); + $put_13(this$static, key, value_0); + } +} + +function BiLinkedHashMultiMap(){ + this.multiMapKeyToValues = new LinkedHashMap; + this.hashMapValuesToKey = new LinkedHashMap; +} + +defineClass(819, 1, {}, BiLinkedHashMultiMap); +var Lorg_eclipse_elk_alg_layered_intermediate_BiLinkedHashMultiMap_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'BiLinkedHashMultiMap', 819); +function $process_2(layeredGraph, monitor){ + monitor.begin('Node margin calculation', 1); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new CommentNodeMarginCalculator$lambda$0$Type), new CommentNodeMarginCalculator$lambda$1$Type); + monitor.done_1(); +} + +function $processComments(node){ + var bottomBoxes, bottomWidth, commentBox, commentBox$iterator, commentCommentSpacing, commentNodeSpacing, margin, maxCommentWidth, maxHeight, protrusion, topBoxes, topWidth; + margin = node.margin; + topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); + if (!topBoxes && !bottomBoxes) { + return; + } + commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); + commentNodeSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, SPACING_COMMENT_NODE))); + topWidth = 0; + if (topBoxes) { + maxHeight = 0; + for (commentBox$iterator = topBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { + commentBox = castTo(commentBox$iterator.next_1(), 10); + maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); + topWidth += commentBox.size_0.x_0; + } + topWidth += commentCommentSpacing * (topBoxes.size_1() - 1); + margin.top_0 += maxHeight + commentNodeSpacing; + } + bottomWidth = 0; + if (bottomBoxes) { + maxHeight = 0; + for (commentBox$iterator = bottomBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { + commentBox = castTo(commentBox$iterator.next_1(), 10); + maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); + bottomWidth += commentBox.size_0.x_0; + } + bottomWidth += commentCommentSpacing * (bottomBoxes.size_1() - 1); + margin.bottom += maxHeight + commentNodeSpacing; + } + maxCommentWidth = $wnd.Math.max(topWidth, bottomWidth); + if (maxCommentWidth > node.size_0.x_0) { + protrusion = (maxCommentWidth - node.size_0.x_0) / 2; + margin.left = $wnd.Math.max(margin.left, protrusion); + margin.right = $wnd.Math.max(margin.right, protrusion); + } +} + +function CommentNodeMarginCalculator(){ +} + +defineClass(1550, 1, $intern_105, CommentNodeMarginCalculator); +_.process = function process_1(layeredGraph, monitor){ + $process_2(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator', 1550); +function CommentNodeMarginCalculator$lambda$0$Type(){ +} + +defineClass(1551, 1, {}, CommentNodeMarginCalculator$lambda$0$Type); +_.apply_0 = function apply_72(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$0$Type', 1551); +function CommentNodeMarginCalculator$lambda$1$Type(){ +} + +defineClass(1552, 1, $intern_19, CommentNodeMarginCalculator$lambda$1$Type); +_.accept = function accept_68(arg0){ + $processComments(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$1$Type', 1552); +function $getBoxPort(commentBox){ + var edge, edge$iterator, edge$iterator0, nodePort, port, port$iterator; + nodePort = castTo($getProperty(commentBox, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 12); + for (port$iterator = new ArrayList$1(commentBox.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 18); + $setTarget_0(edge, nodePort); + return port; + } + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $setSource_0(edge, nodePort); + return port; + } + } + return null; +} + +function $process_3(layeredGraph, monitor){ + var bottomBoxes, boxes, layer, layer$iterator, node, node$iterator, topBoxes; + monitor.begin('Comment post-processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + boxes = new ArrayList; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); + if (!!topBoxes || !!bottomBoxes) { + $process_4(node, topBoxes, bottomBoxes); + !!topBoxes && $addAll_2(boxes, topBoxes); + !!bottomBoxes && $addAll_2(boxes, bottomBoxes); + } + } + $addAll_2(layer.nodes, boxes); + } + monitor.done_1(); +} + +function $process_4(node, topBoxes, bottomBoxes){ + var anchorInc, anchorX, baseLine, box, box$iterator, box$iterator0, boxPort, boxesWidth, commentCommentSpacing, margin, maxHeight, nodePort, nodePos, nodeSize, x_0; + nodePos = node.pos; + nodeSize = node.size_0; + margin = node.margin; + commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); + if (topBoxes) { + boxesWidth = commentCommentSpacing * (topBoxes.size_1() - 1); + maxHeight = 0; + for (box$iterator0 = topBoxes.iterator_0(); box$iterator0.hasNext_0();) { + box = castTo(box$iterator0.next_1(), 10); + boxesWidth += box.size_0.x_0; + maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); + } + x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; + baseLine = nodePos.y_0 - margin.top_0 + maxHeight; + anchorInc = nodeSize.x_0 / (topBoxes.size_1() + 1); + anchorX = anchorInc; + for (box$iterator = topBoxes.iterator_0(); box$iterator.hasNext_0();) { + box = castTo(box$iterator.next_1(), 10); + box.pos.x_0 = x_0; + box.pos.y_0 = baseLine - box.size_0.y_0; + x_0 += box.size_0.x_0 + commentCommentSpacing; + boxPort = $getBoxPort(box); + boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; + boxPort.pos.y_0 = box.size_0.y_0; + nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 12); + if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { + nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; + nodePort.pos.y_0 = 0; + $setNode(nodePort, node); + } + anchorX += anchorInc; + } + } + if (bottomBoxes) { + boxesWidth = commentCommentSpacing * (bottomBoxes.size_1() - 1); + maxHeight = 0; + for (box$iterator0 = bottomBoxes.iterator_0(); box$iterator0.hasNext_0();) { + box = castTo(box$iterator0.next_1(), 10); + boxesWidth += box.size_0.x_0; + maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); + } + x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; + baseLine = nodePos.y_0 + nodeSize.y_0 + margin.bottom - maxHeight; + anchorInc = nodeSize.x_0 / (bottomBoxes.size_1() + 1); + anchorX = anchorInc; + for (box$iterator = bottomBoxes.iterator_0(); box$iterator.hasNext_0();) { + box = castTo(box$iterator.next_1(), 10); + box.pos.x_0 = x_0; + box.pos.y_0 = baseLine; + x_0 += box.size_0.x_0 + commentCommentSpacing; + boxPort = $getBoxPort(box); + boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; + boxPort.pos.y_0 = 0; + nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 12); + if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { + nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; + nodePort.pos.y_0 = nodeSize.y_0; + $setNode(nodePort, node); + } + anchorX += anchorInc; + } + } +} + +function CommentPostprocessor(){ +} + +defineClass(1553, 1, $intern_105, CommentPostprocessor); +_.process = function process_2(layeredGraph, monitor){ + $process_3(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPostprocessor', 1553); +function $process_5(layeredGraph, monitor){ + var commentBoxCount, edge, edgeCount, inedge, inedge$iterator, node, nodeIter, oppositePort, outedge, outedge$iterator, port, port$iterator, port$iterator0, re, re$iterator, revEdges; + monitor.begin('Comment pre-processing', 1); + commentBoxCount = 0; + nodeIter = new ArrayList$1(layeredGraph.layerlessNodes); + while (nodeIter.i < nodeIter.this$01.array.length) { + node = castTo($next_6(nodeIter), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + ++commentBoxCount; + edgeCount = 0; + edge = null; + oppositePort = null; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_6(port$iterator0), 12); + edgeCount += port.incomingEdges.array.length + port.outgoingEdges.array.length; + if (port.incomingEdges.array.length == 1) { + edge = castTo($get_11(port.incomingEdges, 0), 18); + oppositePort = edge.source; + } + if (port.outgoingEdges.array.length == 1) { + edge = castTo($get_11(port.outgoingEdges, 0), 18); + oppositePort = edge.target; + } + } + if (edgeCount == 1 && oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 1 && !$booleanValue(castToBoolean($getProperty(oppositePort.owner, COMMENT_BOX)))) { + $processBox(node, edge, oppositePort, oppositePort.owner); + $remove_13(nodeIter); + } + else { + revEdges = new ArrayList; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (outedge$iterator = new ArrayList$1(port.outgoingEdges); outedge$iterator.i < outedge$iterator.this$01.array.length;) { + outedge = castTo($next_6(outedge$iterator), 18); + outedge.target.outgoingEdges.array.length == 0 || (push_1(revEdges.array, outedge) , true); + } + for (inedge$iterator = new ArrayList$1(port.incomingEdges); inedge$iterator.i < inedge$iterator.this$01.array.length;) { + inedge = castTo($next_6(inedge$iterator), 18); + inedge.source.incomingEdges.array.length == 0 || (push_1(revEdges.array, inedge) , true); + } + } + for (re$iterator = new ArrayList$1(revEdges); re$iterator.i < re$iterator.this$01.array.length;) { + re = castTo($next_6(re$iterator), 18); + $reverse_0(re, true); + } + } + } + } + monitor.isLoggingEnabled() && monitor.log_0('Found ' + commentBoxCount + ' comment boxes'); + monitor.done_1(); +} + +function $processBox(box, edge, oppositePort, realNode){ + var bottomBoxes, boxList, hasNorth, hasSouth, label_0, label$iterator, labelPos, onlyBottom, onlyTop, port1, port1$iterator, port2, port2$iterator, topBoxes, topFirst; + onlyTop = false; + onlyBottom = false; + if ($isSideFixed(castTo($getProperty(realNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))) { + hasNorth = false; + hasSouth = false; + portLoop: for (port1$iterator = new ArrayList$1(realNode.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_6(port1$iterator), 12); + for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { + port2 = castTo($next_0(port2$iterator), 12); + if (!$booleanValue(castToBoolean($getProperty(port2.owner, COMMENT_BOX)))) { + if (port1.side == ($clinit_PortSide() , NORTH_3)) { + hasNorth = true; + break portLoop; + } + if (port1.side == SOUTH_2) { + hasSouth = true; + break portLoop; + } + } + } + } + onlyTop = hasSouth && !hasNorth; + onlyBottom = hasNorth && !hasSouth; + } + if (!onlyTop && !onlyBottom && realNode.labels.array.length != 0) { + labelPos = 0; + for (label$iterator = new ArrayList$1(realNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + labelPos += label_0.pos.y_0 + label_0.size_0.y_0 / 2; + } + labelPos /= realNode.labels.array.length; + topFirst = labelPos >= realNode.size_0.y_0 / 2; + } + else { + topFirst = !onlyBottom; + } + if (topFirst) { + topBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + if (!topBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, TOP_COMMENTS, boxList); + } + else if (onlyTop) { + boxList = topBoxes; + } + else { + bottomBoxes = castTo($getProperty(realNode, BOTTOM_COMMENTS), 15); + if (!bottomBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); + } + else { + topBoxes.size_1() <= bottomBoxes.size_1()?(boxList = topBoxes):(boxList = bottomBoxes); + } + } + } + else { + bottomBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , BOTTOM_COMMENTS)), 15); + if (!bottomBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); + } + else if (onlyBottom) { + boxList = bottomBoxes; + } + else { + topBoxes = castTo($getProperty(realNode, TOP_COMMENTS), 15); + if (!topBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, TOP_COMMENTS, boxList); + } + else { + bottomBoxes.size_1() <= topBoxes.size_1()?(boxList = bottomBoxes):(boxList = topBoxes); + } + } + } + boxList.add_2(box); + $setProperty_0(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT), oppositePort); + if (edge.target == oppositePort) { + $setTarget_0(edge, null); + oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); + $removeHierarchicalPortDummyNode(oppositePort); + } + else { + $setSource_0(edge, null); + oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); + } + $reset_0(edge.bendPoints); +} + +function $removeHierarchicalPortDummyNode(oppositePort){ + var dummy, layer; + dummy = castTo($getProperty(oppositePort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (dummy) { + layer = dummy.layer; + $remove_12(layer.nodes, dummy); + layer.nodes.array.length == 0 && $remove_12($getGraph(dummy).layers, layer); + } +} + +function CommentPreprocessor(){ +} + +defineClass(1554, 1, $intern_105, CommentPreprocessor); +_.process = function process_3(layeredGraph, monitor){ + $process_5(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPreprocessor', 1554); +function $process_6(graph, progressMonitor){ + var currentNode, currentNode$iterator, layer, layer$iterator, layerIndex, nodeLayer, posIndex; + progressMonitor.begin('Constraints Postprocessor', 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + posIndex = 0; + nodeLayer = false; + for (currentNode$iterator = new ArrayList$1(layer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_6(currentNode$iterator), 10); + if (currentNode.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + nodeLayer = true; + $setProperty_0(currentNode, ($clinit_LayeredOptions() , LAYERING_LAYER_ID_0), valueOf_3(layerIndex)); + $setProperty_0(currentNode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_3(posIndex)); + ++posIndex; + } + } + nodeLayer && ++layerIndex; + } + progressMonitor.done_1(); +} + +function ConstraintsPostprocessor(){ +} + +defineClass(1555, 1, $intern_105, ConstraintsPostprocessor); +_.process = function process_4(graph, progressMonitor){ + $process_6(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ConstraintsPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ConstraintsPostprocessor', 1555); +function $canReverseIncomingEdge(targetNodeLayerConstraint, edge){ + var sourceLayerConstraint, sourceNode; + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { + return false; + } + sourceNode = edge.source.owner; + if (targetNodeLayerConstraint == ($clinit_LayerConstraint() , FIRST)) { + if (sourceNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + return false; + } + } + sourceLayerConstraint = castTo($getProperty(sourceNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + if (sourceLayerConstraint == FIRST_SEPARATE_0) { + return false; + } + return true; +} + +function $canReverseOutgoingEdge(sourceNodeLayerConstraint, edge){ + var targetLayerConstraint, targetNode; + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { + return false; + } + targetNode = edge.target.owner; + if (sourceNodeLayerConstraint == ($clinit_LayerConstraint() , LAST)) { + if (targetNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + return false; + } + } + targetLayerConstraint = castTo($getProperty(targetNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + if (targetLayerConstraint == LAST_SEPARATE_0) { + return false; + } + return true; +} + +function $handleInnerNodes(remainingNodes){ + var allPortsReversed, e, e$iterator, e$iterator0, edgeConstraint, layerConstraint, lc, node, node$iterator, port, port$iterator; + for (node$iterator = new ArrayList$1(remainingNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + edgeConstraint = null; + switch (layerConstraint.ordinal) { + case 1: + case 2: + edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); + break; + case 3: + case 4: + edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); + } + if (edgeConstraint) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); + } + else { + if ($isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 101)) && node.ports.array.length != 0) { + allPortsReversed = true; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if (!(port.side == ($clinit_PortSide() , EAST_2) && port.incomingEdges.array.length - port.outgoingEdges.array.length > 0 || port.side == WEST_2 && port.incomingEdges.array.length - port.outgoingEdges.array.length < 0)) { + allPortsReversed = false; + break; + } + for (e$iterator0 = new ArrayList$1(port.outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_6(e$iterator0), 18); + lc = castTo($getProperty(e.target.owner, LAYERING_LAYER_CONSTRAINT_0), 171); + if (lc == ($clinit_LayerConstraint() , LAST) || lc == LAST_SEPARATE_0) { + allPortsReversed = false; + break; + } + } + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + lc = castTo($getProperty(e.source.owner, LAYERING_LAYER_CONSTRAINT_0), 171); + if (lc == ($clinit_LayerConstraint() , FIRST) || lc == FIRST_SEPARATE_0) { + allPortsReversed = false; + break; + } + } + } + allPortsReversed && $reverseEdges(node, layerConstraint, ($clinit_PortType() , UNDEFINED_0)); + } + } + } +} + +function $handleOuterNodes(layeredGraph){ + var edgeConstraint, layerConstraint, node, node$iterator, remainingNodes; + remainingNodes = new ArrayList_0(layeredGraph.layerlessNodes.array.length); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + edgeConstraint = null; + switch (layerConstraint.ordinal) { + case 1: + case 2: + edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); + break; + case 3: + case 4: + edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); + } + if (edgeConstraint) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); + } + else { + push_1(remainingNodes.array, node); + } + } + return remainingNodes; +} + +function $process_7(layeredGraph, monitor){ + var remainingNodes; + monitor.begin('Edge and layer constraint edge reversal', 1); + remainingNodes = $handleOuterNodes(layeredGraph); + $handleInnerNodes(remainingNodes); + monitor.done_1(); +} + +function $reverseEdges(node, nodeLayerConstraint, targetPortType){ + var edge, edge$array, edge$index, edge$max, incoming, outgoing, port, port$array, port$index, port$max; + for (port$array = toPortArray(node.ports) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + if (targetPortType == ($clinit_PortType() , INPUT) || targetPortType == UNDEFINED_0) { + outgoing = toEdgeArray(port.outgoingEdges); + for (edge$array = outgoing , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $canReverseOutgoingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); + } + } + if (targetPortType == OUTPUT || targetPortType == UNDEFINED_0) { + incoming = toEdgeArray(port.incomingEdges); + for (edge$array = incoming , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $canReverseIncomingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); + } + } + } +} + +function EdgeAndLayerConstraintEdgeReverser(){ +} + +defineClass(1556, 1, $intern_105, EdgeAndLayerConstraintEdgeReverser); +_.process = function process_5(layeredGraph, monitor){ + $process_7(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EdgeAndLayerConstraintEdgeReverser_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EdgeAndLayerConstraintEdgeReverser', 1556); +function $process_8(layeredGraph, monitor){ + monitor.begin('End label post-processing', 1); + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPostprocessor$lambda$0$Type), new EndLabelPostprocessor$lambda$1$Type), new EndLabelPostprocessor$lambda$2$Type); + monitor.done_1(); +} + +function $processNode_1(node){ + var endLabelCells, labelCell, labelCell$iterator, labelCellRect, nodePos; + endLabelCells = castTo($getProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0)), 85); + nodePos = node.pos; + for (labelCell$iterator = endLabelCells.values_0().iterator_0(); labelCell$iterator.hasNext_0();) { + labelCell = castTo(labelCell$iterator.next_1(), 314); + labelCellRect = labelCell.cellRectangle; + labelCellRect.x_0 += nodePos.x_0; + labelCellRect.y_0 += nodePos.y_0; + labelCell.horizontalLayoutMode?$applyHorizontalModeLabelLayout(labelCell):$applyVerticalModeLabelLayout(labelCell); + } + $setProperty_0(node, END_LABELS_0, null); +} + +function EndLabelPostprocessor(){ +} + +function lambda$1_7(node_0){ + return (node_0.type_0 == ($clinit_LNode$NodeType() , NORMAL) || node_0.type_0 == EXTERNAL_PORT) && $hasProperty(node_0, ($clinit_InternalProperties_1() , END_LABELS_0)); +} + +defineClass(1557, 1, $intern_105, EndLabelPostprocessor); +_.process = function process_6(layeredGraph, monitor){ + $process_8(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor', 1557); +function EndLabelPostprocessor$lambda$0$Type(){ +} + +defineClass(1558, 1, {}, EndLabelPostprocessor$lambda$0$Type); +_.apply_0 = function apply_73(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$0$Type', 1558); +function EndLabelPostprocessor$lambda$1$Type(){ +} + +defineClass(1559, 1, $intern_40, EndLabelPostprocessor$lambda$1$Type); +_.test_0 = function test_30(arg0){ + return lambda$1_7(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$1$Type', 1559); +function EndLabelPostprocessor$lambda$2$Type(){ +} + +defineClass(1560, 1, $intern_19, EndLabelPostprocessor$lambda$2$Type); +_.accept = function accept_69(arg0){ + $processNode_1(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$2$Type', 1560); +function $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing){ + var nodeMargin, nodeSize; + nodeSize = node.size_0; + nodeMargin = node.margin; + switch (portSide.ordinal) { + case 1: + return -nodeMargin.top_0 - edgeLabelSpacing; + case 3: + return nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; + case 2: + return nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; + case 4: + return -nodeMargin.left - edgeLabelSpacing; + default:return 0; + } +} + +function $createConfiguredLabelCell(labels, labelLabelSpacing, verticalLayout){ + var label_0, label$iterator, labelCell, labelCellRect, padding, padding0; + if (!labels || labels.array.length == 0) { + return null; + } + labelCell = new LabelCell_1(labelLabelSpacing, !verticalLayout); + for (label$iterator = new ArrayList$1(labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $addLabel(labelCell, ($clinit_LGraphAdapters() , new LGraphAdapters$LLabelAdapter(label_0))); + } + labelCellRect = labelCell.cellRectangle; + labelCellRect.height = (padding0 = labelCell.padding , labelCell.minimumContentAreaSize.y_0 + padding0.top_0 + padding0.bottom); + labelCellRect.width_0 = (padding = labelCell.padding , labelCell.minimumContentAreaSize.x_0 + padding.left + padding.right); + return labelCell; +} + +function $lambda$1_0(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5, node_3){ + $processNode_2(node_3, edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5); +} + +function $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout){ + var all, port, port$iterator, portSidesWithLabels; + portSidesWithLabels = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if (portLabelCells[port.id_0]) { + $placeLabels_0(port, portLabelCells[port.id_0], edgeLabelSpacing); + $add_5(portSidesWithLabels, port.side); + } + } + if (verticalLayout) { + $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , EAST_2), 2 * labelLabelSpacing, edgeLabelSpacing); + $removeLabelOverlaps(node, portLabelCells, WEST_2, 2 * labelLabelSpacing, edgeLabelSpacing); + } + else { + $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , NORTH_3), 2 * labelLabelSpacing, edgeLabelSpacing); + $removeLabelOverlaps(node, portLabelCells, SOUTH_2, 2 * labelLabelSpacing, edgeLabelSpacing); + } +} + +function $placeLabels_0(port, labelCell, edgeLabelSpacing){ + var labelCellRect, nodeMargin, nodeSize, portAnchor, portPos; + labelCellRect = labelCell.cellRectangle; + nodeSize = port.owner.size_0; + nodeMargin = port.owner.margin; + portPos = port.pos; + portAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [portPos, port.anchor])); + switch (port.side.ordinal) { + case 1: + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = -nodeMargin.top_0 - edgeLabelSpacing - labelCellRect.height; + if (castTo(castTo($get_11(labelCell.labels, 0), 187).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 291) == ($clinit_LabelSide() , ABOVE)) { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; + } + else { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 2: + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; + if (castTo(castTo($get_11(labelCell.labels, 0), 187).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 291) == ($clinit_LabelSide() , ABOVE)) { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; + } + else { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 3: + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; + if (castTo(castTo($get_11(labelCell.labels, 0), 187).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 291) == ($clinit_LabelSide() , ABOVE)) { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; + } + else { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 4: + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = -nodeMargin.left - edgeLabelSpacing - labelCellRect.width_0; + if (castTo(castTo($get_11(labelCell.labels, 0), 187).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 291) == ($clinit_LabelSide() , ABOVE)) { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; + } + else { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + } +} + +function $portSideToOverlapRemovalDirection(portSide){ + switch (portSide.ordinal) { + case 1: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP; + case 3: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN; + case 2: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , RIGHT_0; + case 4: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , LEFT_0; + default:return null; + } +} + +function $process_9(layeredGraph, monitor){ + var edgeLabelSpacing, labelLabelSpacing, verticalLayout; + monitor.begin('End label pre-processing', 1); + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + verticalLayout = $isVertical(castTo($getProperty(layeredGraph, DIRECTION), 88)); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPreprocessor$lambda$0$Type), new EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing, labelLabelSpacing, verticalLayout)); + monitor.done_1(); +} + +function $processNode_2(node, edgeLabelSpacing, labelLabelSpacing, verticalLayout){ + var index_0, port, portCount, portIndex, portLabelCells, portToLabelCellMap; + portCount = node.ports.array.length; + portLabelCells = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit, $intern_93, 314, portCount, 0, 1); + for (portIndex = 0; portIndex < portCount; portIndex++) { + port = castTo($get_11(node.ports, portIndex), 12); + port.id_0 = portIndex; + portLabelCells[portIndex] = $createConfiguredLabelCell(gatherLabels(port), labelLabelSpacing, verticalLayout); + } + $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout); + portToLabelCellMap = new HashMap; + for (index_0 = 0; index_0 < portLabelCells.length; index_0++) { + !!portLabelCells[index_0] && $put_6(portToLabelCellMap, castTo($get_11(node.ports, index_0), 12), portLabelCells[index_0]); + } + if (portToLabelCellMap.hashCodeMap.size_0 + portToLabelCellMap.stringMap.size_0 != 0) { + $setProperty_0(node, ($clinit_InternalProperties_1() , END_LABELS_0), portToLabelCellMap); + $updateNodeMargins(node, portLabelCells); + } +} + +function $removeLabelOverlaps(node, portLabelCells, portSide, labelLabelSpacing, edgeLabelSpacing){ + var labelCellRect, overlapRemover, port, port$iterator; + overlapRemover = $withStartCoordinate($withGap(createForDirection($portSideToOverlapRemovalDirection(portSide)), labelLabelSpacing), $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing)); + for (port$iterator = $getPorts_1(node, portSide).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + if (portLabelCells[port.id_0]) { + labelCellRect = portLabelCells[port.id_0].cellRectangle; + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(labelCellRect, $importRectangle(overlapRemover, labelCellRect))); + } + } + $removeOverlaps_0(overlapRemover); +} + +function $updateNodeMargins(node, labelCells){ + var labelCell, labelCell$array, labelCell$index, labelCell$max, nodeMargin, nodeMarginRectangle, nodeSize; + nodeMargin = node.margin; + nodeSize = node.size_0; + nodeMarginRectangle = new ElkRectangle_0(-nodeMargin.left, -nodeMargin.top_0, nodeMargin.left + nodeSize.x_0 + nodeMargin.right, nodeMargin.top_0 + nodeSize.y_0 + nodeMargin.bottom); + for (labelCell$array = labelCells , labelCell$index = 0 , labelCell$max = labelCell$array.length; labelCell$index < labelCell$max; ++labelCell$index) { + labelCell = labelCell$array[labelCell$index]; + !!labelCell && $union(nodeMarginRectangle, labelCell.cellRectangle); + } + nodeMargin.left = -nodeMarginRectangle.x_0; + nodeMargin.top_0 = -nodeMarginRectangle.y_0; + nodeMargin.right = nodeMarginRectangle.width_0 - nodeMargin.left - nodeSize.x_0; + nodeMargin.bottom = nodeMarginRectangle.height - nodeMargin.top_0 - nodeSize.y_0; +} + +function EndLabelPreprocessor(){ +} + +function gatherLabels(port){ + var dummyNode, dummyPort, dummyPort$iterator, labels, maxEdgeThickness; + labels = new ArrayList; + maxEdgeThickness = gatherLabels_0(port, labels); + dummyNode = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (dummyNode) { + for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { + dummyPort = castTo($next_6(dummyPort$iterator), 12); + maskUndefined($getProperty(dummyPort, ORIGIN_0)) === maskUndefined(port) && (maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, gatherLabels_0(dummyPort, labels))); + } + } + labels.array.length == 0 || $setProperty_0(port, MAX_EDGE_THICKNESS, maxEdgeThickness); + return maxEdgeThickness != -1?labels:null; +} + +function gatherLabels_0(port, targetList){ + var incidentEdge, incidentEdge$iterator, label_0, label$iterator, labels, maxEdgeThickness; + maxEdgeThickness = -1; + labels = new LinkedList; + for (incidentEdge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(incidentEdge$iterator.firstIterator) || $hasNext_3(incidentEdge$iterator.secondIterator);) { + incidentEdge = castTo($hasNext_3(incidentEdge$iterator.firstIterator)?$next_6(incidentEdge$iterator.firstIterator):$next_6(incidentEdge$iterator.secondIterator), 18); + maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, $doubleValue(castToDouble($getProperty(incidentEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0))))); + incidentEdge.source == port?$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$2$Type), new EndLabelPreprocessor$lambda$3$Type(labels)):$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$4$Type), new EndLabelPreprocessor$lambda$5$Type(labels)); + for (label$iterator = $listIterator_2(labels, 0); label$iterator.currentNode != label$iterator.this$01.tail;) { + label_0 = castTo($next_9(label$iterator), 72); + $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, incidentEdge); + } + $addAll_2(targetList, labels); + $reset_0(labels); + } + return maxEdgeThickness; +} + +defineClass(1561, 1, $intern_105, EndLabelPreprocessor); +_.process = function process_7(layeredGraph, monitor){ + $process_9(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor', 1561); +function EndLabelPreprocessor$lambda$0$Type(){ +} + +defineClass(1562, 1, {}, EndLabelPreprocessor$lambda$0$Type); +_.apply_0 = function apply_74(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$0$Type', 1562); +function EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5){ + this.edgeLabelSpacing_1 = edgeLabelSpacing_1; + this.labelLabelSpacing_3 = labelLabelSpacing_3; + this.verticalLayout_5 = verticalLayout_5; +} + +defineClass(1563, 1, $intern_19, EndLabelPreprocessor$lambda$1$Type); +_.accept = function accept_70(arg0){ + $lambda$1_0(this.edgeLabelSpacing_1, this.labelLabelSpacing_3, this.verticalLayout_5, castTo(arg0, 10)); +} +; +_.edgeLabelSpacing_1 = 0; +_.labelLabelSpacing_3 = 0; +_.verticalLayout_5 = false; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$1$Type', 1563); +function EndLabelPreprocessor$lambda$2$Type(){ +} + +defineClass(1564, 1, $intern_40, EndLabelPreprocessor$lambda$2$Type); +_.test_0 = function test_31(arg0){ + return maskUndefined($getProperty(castTo(arg0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$2$Type', 1564); +function EndLabelPreprocessor$lambda$3$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1565, 1, $intern_19, EndLabelPreprocessor$lambda$3$Type); +_.accept = function accept_71(arg0){ + $add_7(this.labels_0, castTo(arg0, 72)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$3$Type', 1565); +function EndLabelPreprocessor$lambda$4$Type(){ +} + +defineClass(1566, 1, $intern_40, EndLabelPreprocessor$lambda$4$Type); +_.test_0 = function test_32(arg0){ + return maskUndefined($getProperty(castTo(arg0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$4$Type', 1566); +function EndLabelPreprocessor$lambda$5$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1567, 1, $intern_19, EndLabelPreprocessor$lambda$5$Type); +_.accept = function accept_72(arg0){ + $add_7(this.labels_0, castTo(arg0, 72)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$5$Type', 1567); +function $clinit_EndLabelSorter(){ + $clinit_EndLabelSorter = emptyMethod; + LABEL_GROUP_COMPARATOR = new EndLabelSorter$1; +} + +function $createLabelGroups(portLabelCell){ + var edge, edgeToGroupMap, label_0, label$iterator; + edgeToGroupMap = new HashMap; + for (label$iterator = new ArrayList$1(portLabelCell.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + edge = castTo(label_0.getProperty(($clinit_InternalProperties_1() , END_LABEL_EDGE)), 18); + !!$getEntry_0(edgeToGroupMap.hashCodeMap, edge) || $put_6(edgeToGroupMap, edge, new EndLabelSorter$LabelGroup(edge)); + $add_3(castTo(getEntryValueOrNull($getEntry_0(edgeToGroupMap.hashCodeMap, edge)), 466).labels, label_0); + } + return new ArrayList_1(new AbstractMap$2(edgeToGroupMap)); +} + +function $initialize_2(lGraph){ + var layer, layer$iterator, nextElementID, node, node$iterator, port, port$iterator; + nextElementID = 0; + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = nextElementID++; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.id_0 = nextElementID++; + } + } + } +} + +function $needsSorting(port){ + var edgesWithEndLabels, headLabels, inEdge, inEdge$iterator, outEdge, outEdge$iterator, tailLabels; + edgesWithEndLabels = 0; + for (inEdge$iterator = new ArrayList$1(port.incomingEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { + inEdge = castTo($next_6(inEdge$iterator), 18); + headLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(inEdge.labels, 16)), new EndLabelSorter$lambda$3$Type); + headLabels && ++edgesWithEndLabels; + } + for (outEdge$iterator = new ArrayList$1(port.outgoingEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { + outEdge = castTo($next_6(outEdge$iterator), 18); + tailLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(outEdge.labels, 16)), new EndLabelSorter$lambda$4$Type); + tailLabels && ++edgesWithEndLabels; + } + return edgesWithEndLabels >= 2; +} + +function $process_10(layeredGraph, monitor){ + monitor.begin('Sort end labels', 1); + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelSorter$lambda$0$Type), new EndLabelSorter$lambda$1$Type), new EndLabelSorter$lambda$2$Type); + monitor.done_1(); +} + +function $processNode_3(node){ + var initializeMethodCalled, labelCellMap, port, port$iterator; + initializeMethodCalled = false; + if ($hasProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0))) { + labelCellMap = castTo($getProperty(node, END_LABELS_0), 85); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if ($needsSorting(port)) { + if (!initializeMethodCalled) { + $initialize_2($getGraph(node)); + initializeMethodCalled = true; + } + $sort_1(castTo(labelCellMap.get_3(port), 314)); + } + } + } +} + +function $sort_1(portLabelCell){ + var group, group$iterator, labelGroups, portLabelCellLabels; + labelGroups = $createLabelGroups(portLabelCell); + $sort(labelGroups, LABEL_GROUP_COMPARATOR); + portLabelCellLabels = portLabelCell.labels; + portLabelCellLabels.array.length = 0; + for (group$iterator = new ArrayList$1(labelGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 466); + $addAll_2(portLabelCellLabels, group.labels); + } +} + +function EndLabelSorter(){ + $clinit_EndLabelSorter(); +} + +defineClass(1615, 1, $intern_105, EndLabelSorter); +_.process = function process_8(layeredGraph, monitor){ + $process_10(castTo(layeredGraph, 36), monitor); +} +; +var LABEL_GROUP_COMPARATOR; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter', 1615); +function $compare_11(group1, group2){ + var sourcePortDiff, targetNodeDiff; + sourcePortDiff = compare_5(group1.edge.source.id_0, group2.edge.source.id_0); + if (sourcePortDiff != 0) { + return sourcePortDiff; + } + targetNodeDiff = compare_5(group1.edge.target.owner.id_0, group2.edge.target.owner.id_0); + if (targetNodeDiff != 0) { + return targetNodeDiff; + } + return compare_5(group2.edge.target.id_0, group1.edge.target.id_0); +} + +function EndLabelSorter$1(){ +} + +defineClass(1616, 1, $intern_88, EndLabelSorter$1); +_.compare_1 = function compare_42(group1, group2){ + return $compare_11(castTo(group1, 466), castTo(group2, 466)); +} +; +_.equals_0 = function equals_106(other){ + return this === other; +} +; +_.reversed = function reversed_34(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/1', 1616); +function EndLabelSorter$LabelGroup(edge){ + this.labels = new ArrayList; + $addAll_2(this.labels, this.labels); + this.edge = edge; +} + +defineClass(466, 1, {466:1}, EndLabelSorter$LabelGroup); +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$LabelGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/LabelGroup', 466); +function EndLabelSorter$lambda$0$Type(){ +} + +defineClass(1617, 1, {}, EndLabelSorter$lambda$0$Type); +_.apply_0 = function apply_75(arg0){ + return $clinit_EndLabelSorter() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$0$Type', 1617); +function EndLabelSorter$lambda$1$Type(){ +} + +defineClass(1618, 1, $intern_40, EndLabelSorter$lambda$1$Type); +_.test_0 = function test_33(arg0){ + return $clinit_EndLabelSorter() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$1$Type', 1618); +function EndLabelSorter$lambda$2$Type(){ +} + +defineClass(1619, 1, $intern_19, EndLabelSorter$lambda$2$Type); +_.accept = function accept_73(arg0){ + $processNode_3(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$2$Type', 1619); +function EndLabelSorter$lambda$3$Type(){ +} + +defineClass(1620, 1, $intern_40, EndLabelSorter$lambda$3$Type); +_.test_0 = function test_34(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$3$Type', 1620); +function EndLabelSorter$lambda$4$Type(){ +} + +defineClass(1621, 1, $intern_40, EndLabelSorter$lambda$4$Type); +_.test_0 = function test_35(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$4$Type', 1621); +function $absMin(d1, d2){ + return $wnd.Math.abs(d1) < $wnd.Math.abs(d2)?d1:d2; +} + +function $calculateBezierBendPoints(this$static, edgeChain, survivingEdge){ + var addMidPoint, allCP, currentBendPoints, currentEdge, edge, edgeIterator, halfway, lastCP, northSouthCP, nt, nubSpline, sourcePort, targetPort, y_0, first, second, v, v2, straightenBeginning, iter, last, secondLast, straightenEnding; + if (edgeChain.isEmpty()) { + return; + } + allCP = new KVectorChain; + edge = survivingEdge?survivingEdge:castTo(edgeChain.get_0(0), 18); + sourcePort = edge.source; + $clinit_SplineEdgeRouter(); + nt = sourcePort.owner.type_0; + if (!(nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT)) { + throw toJs(new IllegalArgumentException_0('The target node of the edge must be a normal node or a northSouthPort.')); + } + $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor]))); + if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(sourcePort.side)) { + y_0 = $doubleValue(castToDouble($getProperty(sourcePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); + northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).x_0, y_0); + $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); + } + lastCP = null; + addMidPoint = false; + edgeIterator = edgeChain.iterator_0(); + while (edgeIterator.hasNext_0()) { + currentEdge = castTo(edgeIterator.next_1(), 18); + currentBendPoints = currentEdge.bendPoints; + if (currentBendPoints.size_0 != 0) { + if (addMidPoint) { + halfway = $scale($add_19(lastCP, (checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.header.next_0.value_0, 8))), 0.5); + $addNode_0(allCP, halfway, allCP.tail.prev, allCP.tail); + addMidPoint = false; + } + else { + addMidPoint = true; + } + lastCP = $clone_1((checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.tail.prev.value_0, 8))); + $addAll(allCP, currentBendPoints); + $reset_0(currentBendPoints); + } + } + targetPort = edge.target; + if (SIDES_NORTH_SOUTH.contains(targetPort.side)) { + y_0 = $doubleValue(castToDouble($getProperty(targetPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); + northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).x_0, y_0); + $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); + } + $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor]))); + this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , CONSERVATIVE) && (first = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.header.next_0.value_0, 8)) , second = castTo($get_7(allCP, 1), 8) , v = new KVector_0(portSideToDirection(sourcePort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(second.x_0, second.y_0), first) , straightenBeginning = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenBeginning, first) , iter = $listIterator_2(allCP, 1) , $add_8(iter, straightenBeginning) , last = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.tail.prev.value_0, 8)) , secondLast = castTo($get_7(allCP, allCP.size_0 - 2), 8) , v = new KVector_0(portSideToDirection(targetPort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(secondLast.x_0, secondLast.y_0), last) , straightenEnding = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenEnding, last) , $add_0(allCP, allCP.size_0 - 1, straightenEnding) , undefined); + nubSpline = new NubSpline(allCP); + $addAll(edge.bendPoints, $getBezierCP(nubSpline)); +} + +function $calculateControlPoints(this$static, segment){ + var edge, edge$iterator, ei, sloppy, xStartPos, xEndPos, halfway; + if (segment.handled) { + return; + } + segment.handled = true; + for (edge$iterator = segment.edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 18); + if (segment.isStraight && segment.edges.map_0.size_1() <= 1) { + xStartPos = segment.boundingBox.x_0; + xEndPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; + halfway = new KVector_1(xStartPos + (xEndPos - xStartPos) / 2, segment.centerControlPointY); + $add_7(castTo(segment.edges.map_0.keySet_0().iterator_0().next_1(), 18).bendPoints, halfway); + continue; + } + ei = castTo($get_10(segment.edgeInformation, edge), 468); + if (ei.invertedLeft || ei.invertedRight) { + $calculateControlPointsInvertedEdge(this$static, edge, segment); + continue; + } + sloppy = this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , SLOPPY) && (ei.normalSourceNode || ei.normalTargetNode) && $segmentAllowsSloppyRouting(this$static, segment) && segment.edges.map_0.size_1() <= 1; + sloppy?$calculateControlPointsSloppy(edge, segment):$calculateControlPointsConservative(this$static, edge, segment); + } + segment.inverseOrder && $forEach_0(segment.edges, new FinalSplineBendpointsCalculator$lambda$5$Type); +} + +function $calculateControlPointsConservative(this$static, edge, containingSegment){ + var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 468); + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); + targetStraightCP = new KVector_1(endXPos, yTargetAnchor); + centerXPos = startXPos; + containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); + centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + isHyperedge = containingSegment.edges.map_0.size_1() > 1; + if (isHyperedge) { + center = new KVector_1(centerXPos, containingSegment.centerControlPointY); + $add_7(edge.bendPoints, center); + } + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $calculateControlPointsInvertedEdge(this$static, edge, containingSegment){ + var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 468); + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + ei.invertedLeft?(sourceStraightCP = new KVector_1(endXPos, ySourceAnchor)):(sourceStraightCP = new KVector_1(startXPos, ySourceAnchor)); + ei.invertedRight?(targetStraightCP = new KVector_1(startXPos, yTargetAnchor)):(targetStraightCP = new KVector_1(endXPos, yTargetAnchor)); + centerXPos = startXPos; + containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); + centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + isHyperedge = containingSegment.edges.map_0.size_1() > 1; + if (isHyperedge) { + center = new KVector_1(centerXPos, containingSegment.centerControlPointY); + $add_7(edge.bendPoints, center); + } + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $calculateControlPointsSloppy(edge, containingSegment){ + var approx, box, centerXPos, centerYPos, edgePointsDownwards, ei, endXPos, needToCheckSrc, needToCheckTgt, neighbor, neighborIndex, shortCutSource, shortCutTarget, sourceStraightCP, sourceVerticalCP, src_0, startXPos, targetStraightCP, targetVerticalCP, tgt, v1, v2, v3, ySourceAnchor, yTargetAnchor; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 468); + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + edgePointsDownwards = ySourceAnchor < yTargetAnchor; + sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); + targetStraightCP = new KVector_1(endXPos, yTargetAnchor); + centerXPos = (startXPos + endXPos) / 2; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + centerYPos = $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor); + v1 = $getAbsoluteAnchor(containingSegment.sourcePort); + v2 = new KVector_1(centerXPos, centerYPos); + v3 = $getAbsoluteAnchor(containingSegment.targetPort); + approx = approximateBezierSegment(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [v1, v2, v3])); + shortCutSource = false; + src_0 = containingSegment.sourcePort.owner; + if (!!src_0 && !!src_0.layer && ei.normalSourceNode) { + needToCheckSrc = edgePointsDownwards && src_0.id_0 < src_0.layer.nodes.array.length - 1 || !edgePointsDownwards && src_0.id_0 > 0; + if (needToCheckSrc) { + if (needToCheckSrc) { + neighborIndex = src_0.id_0; + edgePointsDownwards?++neighborIndex:--neighborIndex; + neighbor = castTo($get_11(src_0.layer.nodes, neighborIndex), 10); + box = $nodeToBoundingBox(neighbor); + shortCutSource = !(intersects_0(box, v1, approx[0]) || contains_50(box, v1, approx[0])); + } + } + else { + shortCutSource = true; + } + } + shortCutTarget = false; + tgt = containingSegment.targetPort.owner; + if (!!tgt && !!tgt.layer && ei.normalTargetNode) { + needToCheckTgt = edgePointsDownwards && tgt.id_0 > 0 || !edgePointsDownwards && tgt.id_0 < tgt.layer.nodes.array.length - 1; + if (needToCheckTgt) { + neighborIndex = tgt.id_0; + edgePointsDownwards?--neighborIndex:++neighborIndex; + neighbor = castTo($get_11(tgt.layer.nodes, neighborIndex), 10); + box = $nodeToBoundingBox(neighbor); + shortCutTarget = !(intersects_0(box, approx[0], v3) || contains_50(box, approx[0], v3)); + } + else { + shortCutTarget = true; + } + } + shortCutSource && shortCutTarget && $add_7(edge.bendPoints, v2); + shortCutSource || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + shortCutTarget || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor){ + var centerYPos, degreeDiff, indegree, outdegree, port, port$iterator; + indegree = 0; + outdegree = 0; + if (edge.source) { + for (port$iterator = new ArrayList$1(edge.target.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + indegree += port.incomingEdges.array.length; + } + } + else { + indegree = 1; + } + if (edge.target) { + for (port$iterator = new ArrayList$1(edge.source.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + outdegree += port.outgoingEdges.array.length; + } + } + else { + outdegree = 1; + } + degreeDiff = round_int(signum(outdegree - indegree)); + centerYPos = (yTargetAnchor + ySourceAnchor) / 2 + (yTargetAnchor - ySourceAnchor) * (0.4 * degreeDiff); + return centerYPos; +} + +function $indexNodesPerLayer(graph){ + var index_0, l, l$iterator, n, n$iterator; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + n.id_0 = index_0++; + } + } +} + +function $nodeToBoundingBox(node){ + var m, pos, size_0; + pos = node.pos; + size_0 = node.size_0; + m = node.margin; + return new ElkRectangle_0(pos.x_0 - m.left, pos.y_0 - m.top_0, size_0.x_0 + (m.left + m.right), size_0.y_0 + (m.top_0 + m.bottom)); +} + +function $process_11(this$static, graph){ + var e, e$iterator, e$iterator0, edgeChain, spline, startEdges, survivingEdge; + this$static.edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); + this$static.edgeNodeSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + this$static.splineRoutingMode = castTo($getProperty(graph, EDGE_ROUTING_SPLINES_MODE_0), 350); + this$static.compactionStrategy = castTo($getProperty(graph, COMPACTION_POST_COMPACTION_STRATEGY_0), 282); + $indexNodesPerLayer(graph); + startEdges = castTo($collect_1($filter($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new FinalSplineBendpointsCalculator$lambda$0$Type), new FinalSplineBendpointsCalculator$lambda$1$Type), new FinalSplineBendpointsCalculator$lambda$2$Type), new FinalSplineBendpointsCalculator$lambda$3$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + for (e$iterator0 = startEdges.iterator_0(); e$iterator0.hasNext_0();) { + e = castTo(e$iterator0.next_1(), 18); + spline = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); + spline.forEach_0(new FinalSplineBendpointsCalculator$lambda$4$Type(this$static)); + $setProperty_0(e, SPLINE_ROUTE_START, null); + } + for (e$iterator = startEdges.iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 18); + survivingEdge = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_SURVIVING_EDGE)), 18); + edgeChain = castTo($getProperty(e, SPLINE_EDGE_CHAIN), 15); + $calculateBezierBendPoints(this$static, edgeChain, survivingEdge); + $setProperty_0(e, SPLINE_EDGE_CHAIN, null); + } +} + +function $segmentAllowsSloppyRouting(this$static, segment){ + var endXPos, n, nodeSegmentDistance, startXPos, t; + if (this$static.compactionStrategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return true; + } + startXPos = segment.boundingBox.x_0; + endXPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; + if (segment.initialSegment) { + n = segment.sourceNode; + t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; + nodeSegmentDistance = startXPos - (n.pos.x_0 + n.size_0.x_0); + if (nodeSegmentDistance > t) { + return false; + } + } + if (segment.lastSegment) { + n = segment.targetNode; + t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; + nodeSegmentDistance = n.pos.x_0 - endXPos; + if (nodeSegmentDistance > t) { + return false; + } + } + return true; +} + +function FinalSplineBendpointsCalculator(){ +} + +defineClass(1568, 1, $intern_105, FinalSplineBendpointsCalculator); +_.process = function process_9(graph, progressMonitor){ + $process_11(this, castTo(graph, 36)); +} +; +_.edgeEdgeSpacing = 0; +_.edgeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator', 1568); +function FinalSplineBendpointsCalculator$lambda$0$Type(){ +} + +defineClass(1569, 1, {}, FinalSplineBendpointsCalculator$lambda$0$Type); +_.apply_0 = function apply_76(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$0$Type', 1569); +function FinalSplineBendpointsCalculator$lambda$1$Type(){ +} + +defineClass(1570, 1, {}, FinalSplineBendpointsCalculator$lambda$1$Type); +_.apply_0 = function apply_77(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$1$Type', 1570); +function FinalSplineBendpointsCalculator$lambda$2$Type(){ +} + +defineClass(1571, 1, $intern_40, FinalSplineBendpointsCalculator$lambda$2$Type); +_.test_0 = function test_36(arg0){ + return !$isSelfLoop(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$2$Type', 1571); +function FinalSplineBendpointsCalculator$lambda$3$Type(){ +} + +defineClass(1572, 1, $intern_40, FinalSplineBendpointsCalculator$lambda$3$Type); +_.test_0 = function test_37(arg0){ + return $hasProperty(castTo(arg0, 18), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$3$Type', 1572); +function FinalSplineBendpointsCalculator$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1573, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$4$Type); +_.accept = function accept_74(arg0){ + $calculateControlPoints(this.$$outer_0, castTo(arg0, 131)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$4$Type', 1573); +function FinalSplineBendpointsCalculator$lambda$5$Type(){ +} + +defineClass(1574, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$5$Type); +_.accept = function accept_75(arg0){ + reverse_2(castTo(arg0, 18).bendPoints); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$5$Type', 1574); +function $getMirroredPortSideX(side){ + switch (side.ordinal) { + case 2: + return $clinit_PortSide() , WEST_2; + case 4: + return $clinit_PortSide() , EAST_2; + default:return side; + } +} + +function $getMirroredPortSideY(side){ + switch (side.ordinal) { + case 1: + return $clinit_PortSide() , SOUTH_2; + case 3: + return $clinit_PortSide() , NORTH_3; + default:return side; + } +} + +function $mirrorAllX(layeredGraph, nodes){ + $mirrorX(nodes, layeredGraph); + $mirrorX_1(layeredGraph.padding); + $mirrorX_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 214)); +} + +function $mirrorAllY(layeredGraph, nodes){ + $mirrorY(nodes, layeredGraph); + $mirrorY_1(layeredGraph.padding); + $mirrorY_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 214)); +} + +function $mirrorInLayerConstraintY(node){ + switch (castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 311).ordinal) { + case 1: + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + break; + case 2: + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + } +} + +function $mirrorLayerConstraintX(node){ + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171).ordinal) { + case 1: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); + break; + case 2: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); + break; + case 3: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); + break; + case 4: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); + } +} + +function $mirrorNodeLabelPlacementX(shape_0){ + var oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.contains(($clinit_NodeLabelPlacement() , H_LEFT_0))) { + oldPlacement.remove_1(H_LEFT_0); + oldPlacement.add_2(H_RIGHT_0); + } + else if (oldPlacement.contains(H_RIGHT_0)) { + oldPlacement.remove_1(H_RIGHT_0); + oldPlacement.add_2(H_LEFT_0); + } +} + +function $mirrorNodeLabelPlacementY(shape_0){ + var oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.contains(($clinit_NodeLabelPlacement() , V_TOP_0))) { + oldPlacement.remove_1(V_TOP_0); + oldPlacement.add_2(V_BOTTOM_0); + } + else if (oldPlacement.contains(V_BOTTOM_0)) { + oldPlacement.remove_1(V_BOTTOM_0); + oldPlacement.add_2(V_TOP_0); + } +} + +function $mirrorX(nodes, graph){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; + offset = 0; + if (graph.size_0.x_0 == 0) { + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + offset = $wnd.Math.max(offset, node.pos.x_0 + node.size_0.x_0 + node.margin.right); + } + } + else { + offset = graph.size_0.x_0 - graph.offset.x_0; + } + offset -= graph.offset.x_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $mirrorX_0(node.pos, offset - node.size_0.x_0); + $mirrorX_1(node.padding); + $mirrorNodeLabelPlacementX(node); + (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorX_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.x_0); + switch (castTo($getProperty(node, ALIGNMENT), 255).ordinal) { + case 1: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); + break; + case 2: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); + } + nodeSize = node.size_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $mirrorX_0(port.pos, nodeSize.x_0 - port.size_0.x_0); + $mirrorX_0(port.anchor, port.size_0.x_0); + $setSide(port, $getMirroredPortSideX(port.side)); + index_0 = castTo($getProperty(port, PORT_INDEX), 17); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_3(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_9(bendPoint$iterator), 8); + bendPoint.x_0 = offset - bendPoint.x_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 75); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_9(jp$iterator), 8); + jp.x_0 = offset - jp.x_0; + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator0), 72); + $mirrorX_0(label_0.pos, offset - label_0.size_0.x_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator1), 72); + $mirrorX_0(label_0.pos, port.size_0.x_0 - label_0.size_0.x_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideX(castTo($getProperty(node, EXT_PORT_SIDE), 64))); + $mirrorLayerConstraintX(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $mirrorNodeLabelPlacementX(label_0); + $mirrorX_0(label_0.pos, nodeSize.x_0 - label_0.size_0.x_0); + } + } +} + +function $mirrorX_0(v, offset){ + v.x_0 = offset - v.x_0; +} + +function $mirrorX_1(spacing){ + var oldLeft, oldRight; + oldLeft = spacing.left; + oldRight = spacing.right; + spacing.left = oldRight; + spacing.right = oldLeft; +} + +function $mirrorY(nodes, graph){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; + offset = 0; + if (graph.size_0.y_0 == 0) { + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + offset = $wnd.Math.max(offset, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); + } + } + else { + offset = graph.size_0.y_0 - graph.offset.y_0; + } + offset -= graph.offset.y_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $mirrorY_0(node.pos, offset - node.size_0.y_0); + $mirrorY_1(node.padding); + $mirrorNodeLabelPlacementY(node); + (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorY_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.y_0); + switch (castTo($getProperty(node, ALIGNMENT), 255).ordinal) { + case 3: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); + break; + case 4: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); + } + nodeSize = node.size_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $mirrorY_0(port.pos, nodeSize.y_0 - port.size_0.y_0); + $mirrorY_0(port.anchor, port.size_0.y_0); + $setSide(port, $getMirroredPortSideY(port.side)); + index_0 = castTo($getProperty(port, PORT_INDEX), 17); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_3(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_9(bendPoint$iterator), 8); + bendPoint.y_0 = offset - bendPoint.y_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 75); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_9(jp$iterator), 8); + jp.y_0 = offset - jp.y_0; + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator0), 72); + $mirrorY_0(label_0.pos, offset - label_0.size_0.y_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator1), 72); + $mirrorY_0(label_0.pos, port.size_0.y_0 - label_0.size_0.y_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideY(castTo($getProperty(node, EXT_PORT_SIDE), 64))); + $mirrorInLayerConstraintY(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $mirrorNodeLabelPlacementY(label_0); + $mirrorY_0(label_0.pos, nodeSize.y_0 - label_0.size_0.y_0); + } + } +} + +function $mirrorY_0(v, offset){ + v.y_0 = offset - v.y_0; +} + +function $mirrorY_1(spacing){ + var oldBottom, oldTop; + oldTop = spacing.top_0; + oldBottom = spacing.bottom; + spacing.top_0 = oldBottom; + spacing.bottom = oldTop; +} + +function $process_12(this$static, layeredGraph, monitor){ + var congruency, layer, layer$iterator, nodes; + monitor.begin('Graph transformation (' + this$static.mode + ')', 1); + nodes = newArrayList(layeredGraph.layerlessNodes); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + $addAll_2(nodes, layer.nodes); + } + congruency = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , DIRECTION_CONGRUENCY_0)), 428); + if (congruency == ($clinit_DirectionCongruency() , READING_DIRECTION)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 88).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + break; + case 3: + $transposeAll(layeredGraph, nodes); + break; + case 4: + if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { + $transposeAll(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + } + else { + $mirrorAllY(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + } + + } + } + else { + if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 88).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + break; + case 3: + $transposeAll(layeredGraph, nodes); + $mirrorAllX(layeredGraph, nodes); + break; + case 4: + $mirrorAllX(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + } + } + else { + switch (castTo($getProperty(layeredGraph, DIRECTION), 88).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + break; + case 3: + $mirrorAllX(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + break; + case 4: + $transposeAll(layeredGraph, nodes); + $mirrorAllX(layeredGraph, nodes); + } + } + } + monitor.done_1(); +} + +function $transpose(nodes){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, port, port$iterator; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $transpose_0(node.pos); + $transpose_0(node.size_0); + $transpose_1(node.padding); + $transposeNodeLabelPlacement(node); + $transposeProperties(node); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $transpose_0(port.pos); + $transpose_0(port.anchor); + $transpose_0(port.size_0); + $setSide(port, $transposePortSide(port.side)); + index_0 = castTo($getProperty(port, ($clinit_LayeredOptions() , PORT_INDEX)), 17); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_3(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_9(bendPoint$iterator), 8); + $transpose_0(bendPoint); + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 75); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_9(jp$iterator), 8); + $transpose_0(jp); + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator0), 72); + $transpose_0(label_0.pos); + $transpose_0(label_0.size_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator1), 72); + $transpose_0(label_0.pos); + $transpose_0(label_0.size_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $transposePortSide(castTo($getProperty(node, EXT_PORT_SIDE), 64))); + $transposeLayerConstraint(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $transposeNodeLabelPlacement(label_0); + $transpose_0(label_0.size_0); + $transpose_0(label_0.pos); + } + } +} + +function $transpose_0(v){ + var temp; + temp = v.x_0; + v.x_0 = v.y_0; + v.y_0 = temp; +} + +function $transpose_1(spacing){ + var oldBottom, oldLeft, oldRight, oldTop; + oldTop = spacing.top_0; + oldBottom = spacing.bottom; + oldLeft = spacing.left; + oldRight = spacing.right; + spacing.top_0 = oldLeft; + spacing.bottom = oldRight; + spacing.left = oldTop; + spacing.right = oldBottom; +} + +function $transposeAll(layeredGraph, nodes){ + var oldSide; + $transpose(nodes); + oldSide = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 283); + !!oldSide && $setProperty_0(layeredGraph, EDGE_LABELS_SIDE_SELECTION_0, $transpose_2(oldSide)); + $transpose_0(layeredGraph.offset); + $transpose_0(layeredGraph.size_0); + $transpose_1(layeredGraph.padding); + $transpose_1(castTo($getProperty(layeredGraph, NODE_LABELS_PADDING), 214)); +} + +function $transposeLayerConstraint(node){ + var inLayerConstraint, layerConstraint; + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + inLayerConstraint = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 311); + if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + } + else if (layerConstraint == LAST_SEPARATE_0) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + } + else if (inLayerConstraint == ($clinit_InLayerConstraint() , TOP_1)) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, FIRST_SEPARATE_0); + $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); + } + else if (inLayerConstraint == BOTTOM_0) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, LAST_SEPARATE_0); + $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); + } +} + +function $transposeNodeLabelPlacement(shape_0){ + var all, newPlacement, oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.isEmpty()) { + return; + } + newPlacement = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + oldPlacement.contains(($clinit_NodeLabelPlacement() , INSIDE))?$add_5(newPlacement, INSIDE):$add_5(newPlacement, OUTSIDE); + oldPlacement.contains(H_PRIORITY) || $add_5(newPlacement, H_PRIORITY); + oldPlacement.contains(H_LEFT_0)?$add_5(newPlacement, V_TOP_0):oldPlacement.contains(H_CENTER_0)?$add_5(newPlacement, V_CENTER_0):oldPlacement.contains(H_RIGHT_0) && $add_5(newPlacement, V_BOTTOM_0); + oldPlacement.contains(V_TOP_0)?$add_5(newPlacement, H_LEFT_0):oldPlacement.contains(V_CENTER_0)?$add_5(newPlacement, H_CENTER_0):oldPlacement.contains(V_BOTTOM_0) && $add_5(newPlacement, H_RIGHT_0); + $setProperty_0(shape_0, NODE_LABELS_PLACEMENT_1, newPlacement); +} + +function $transposePortSide(side){ + switch (side.ordinal) { + case 1: + return $clinit_PortSide() , WEST_2; + case 4: + return $clinit_PortSide() , NORTH_3; + case 3: + return $clinit_PortSide() , EAST_2; + case 2: + return $clinit_PortSide() , SOUTH_2; + default:return $clinit_PortSide() , UNDEFINED_5; + } +} + +function $transposeProperties(node){ + var minSize, pos, tmp; + minSize = castTo($getProperty(node, ($clinit_LayeredOptions() , NODE_SIZE_MINIMUM_0)), 8); + $setProperty_0(node, NODE_SIZE_MINIMUM_0, new KVector_1(minSize.y_0, minSize.x_0)); + switch (castTo($getProperty(node, ALIGNMENT), 255).ordinal) { + case 1: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); + break; + case 2: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); + break; + case 3: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); + break; + case 4: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); + } + if ((!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(POSITION)) { + pos = castTo($getProperty(node, POSITION), 8); + tmp = pos.x_0; + pos.x_0 = pos.y_0; + pos.y_0 = tmp; + } +} + +function GraphTransformer(themode){ + this.mode = themode; +} + +defineClass(803, 1, $intern_105, GraphTransformer); +_.process = function process_10(layeredGraph, monitor){ + $process_12(this, castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer', 803); +function $clinit_GraphTransformer$Mode(){ + $clinit_GraphTransformer$Mode = emptyMethod; + TO_INTERNAL_LTR = new GraphTransformer$Mode('TO_INTERNAL_LTR', 0); + TO_INPUT_DIRECTION = new GraphTransformer$Mode('TO_INPUT_DIRECTION', 1); +} + +function GraphTransformer$Mode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_29(name_0){ + $clinit_GraphTransformer$Mode(); + return valueOf(($clinit_GraphTransformer$Mode$Map() , $MAP_19), name_0); +} + +function values_37(){ + $clinit_GraphTransformer$Mode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_37, 517, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]); +} + +defineClass(517, 22, {3:1, 34:1, 22:1, 517:1}, GraphTransformer$Mode); +var TO_INPUT_DIRECTION, TO_INTERNAL_LTR; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer/Mode', 517, Ljava_lang_Enum_2_classLit, values_37, valueOf_29); +function $clinit_GraphTransformer$Mode$Map(){ + $clinit_GraphTransformer$Mode$Map = emptyMethod; + $MAP_19 = createValueOfMap(($clinit_GraphTransformer$Mode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_37, 517, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]))); +} + +var $MAP_19; +function $graphLayoutToNode(node, lgraph){ + var actualGraphSize, childNode, childNode$iterator, origin_0, port, portPosition; + for (childNode$iterator = new ArrayList$1(lgraph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { + childNode = castTo($next_6(childNode$iterator), 10); + origin_0 = $getProperty(childNode, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 12)) { + port = castTo(origin_0, 12); + portPosition = getExternalPortPosition(lgraph, childNode, port.size_0.x_0, port.size_0.y_0); + port.pos.x_0 = portPosition.x_0; + port.pos.y_0 = portPosition.y_0; + $setSide(port, castTo($getProperty(childNode, EXT_PORT_SIDE), 64)); + } + } + actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + $setProperty_0(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + castTo($getProperty($getGraph(node), GRAPH_PROPERTIES), 21).add_2(NON_FREE_PORTS); + resizeNode(node, actualGraphSize, false); + } + else { + resizeNode(node, actualGraphSize, true); + } +} + +function $process_13(graph, progressMonitor){ + var layer, layer$iterator, node, node$iterator; + progressMonitor.begin('Resize child graph to fit parent.', 1); + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + $addAll_2(graph.layerlessNodes, layer.nodes); + layer.nodes.array.length = 0; + } + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setLayer_0(node, null); + } + graph.layers.array.length = 0; + $resizeGraph_0(graph); + !!graph.parentNode && $graphLayoutToNode(graph.parentNode, graph); + progressMonitor.done_1(); +} + +function $resizeGraph_0(lgraph){ + var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); + sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); + calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + adjustedSize = new KVector_2(calculatedSize); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); + adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); + } + $resizeGraphNoReallyIMeanIt_0(lgraph, calculatedSize, adjustedSize); +} + +function $resizeGraphNoReallyIMeanIt_0(lgraph, oldSize, newSize){ + var contentAlignment, extPortSide, node, node$iterator, padding; + contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 64); + extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); + } + } + } + padding = lgraph.padding; + lgraph.size_0.x_0 = newSize.x_0 - padding.left - padding.right; + lgraph.size_0.y_0 = newSize.y_0 - padding.top_0 - padding.bottom; +} + +function HierarchicalNodeResizingProcessor(){ +} + +defineClass(1575, 1, $intern_105, HierarchicalNodeResizingProcessor); +_.process = function process_11(graph, progressMonitor){ + $process_13(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalNodeResizingProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalNodeResizingProcessor', 1575); +function $createDummy(layeredGraph, originalDummy){ + var inputPort, newDummy, outputPort; + newDummy = new LNode(layeredGraph); + $copyProperties(newDummy, originalDummy); + $setProperty_0(newDummy, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY), originalDummy); + $setProperty_0(newDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(newDummy, ALIGNMENT, ($clinit_Alignment() , CENTER_4)); + $setType(newDummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); + inputPort = new LPort; + $setNode(inputPort, newDummy); + $setSide(inputPort, ($clinit_PortSide() , WEST_2)); + outputPort = new LPort; + $setNode(outputPort, newDummy); + $setSide(outputPort, EAST_2); + return newDummy; +} + +function $isNorthernOrSouthernDummy(node){ + var nodeType, portSide; + nodeType = node.type_0; + if (nodeType == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + portSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + return portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2; + } + return false; +} + +function $process_14(layeredGraph, monitor){ + monitor.begin('Hierarchical port constraint processing', 1); + $processEasternAndWesternPortDummies(layeredGraph); + $processNorthernAndSouthernPortDummies(layeredGraph); + monitor.done_1(); +} + +function $processEasternAndWesternPortDummies(layeredGraph){ + var layers; + if (!$isOrderFixed(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))) { + return; + } + layers = layeredGraph.layers; + $processEasternAndWesternPortDummies_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 30))); + $processEasternAndWesternPortDummies_0(castTo($get_11(layers, layers.array.length - 1), 30)); +} + +function $processEasternAndWesternPortDummies_0(layer){ + var externalPortSide, lastHierarchicalDummy, node, node$array, node$index, node$max, nodes; + nodes = toNodeArray(layer.nodes); + sort_5(nodes, new HierarchicalPortConstraintProcessor$NodeComparator); + lastHierarchicalDummy = null; + for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + break; + } + externalPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + if (externalPortSide != ($clinit_PortSide() , WEST_2) && externalPortSide != EAST_2) { + continue; + } + !!lastHierarchicalDummy && castTo($getProperty(lastHierarchicalDummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(node); + lastHierarchicalDummy = node; + } +} + +function $processNorthernAndSouthernPortDummies(layeredGraph){ + var currLayerIdx, currentLayer, currentNode, currentNode$iterator, dummy, dummy$iterator, edge, edge$iterator, edge$iterator0, extPortToDummyNodeMap, i, layer, layerCount, layers, newDummyNodes, nextExtPortToDummyNodesMap, nextLayerDummy, nextNewDummyNodes, nodeList, originalDummy, originalDummy$iterator, originalExternalPortDummies, portConstraints, prevExtPortToDummyNodesMap, prevLayerDummy, prevNewDummyNodes, sourceNode, targetNode; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + if (!(portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4)) { + return; + } + layers = layeredGraph.layers; + layerCount = layers.array.length; + extPortToDummyNodeMap = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); + newDummyNodes = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); + $add_3(extPortToDummyNodeMap, new HashMap); + $add_3(extPortToDummyNodeMap, new HashMap); + $add_3(newDummyNodes, new ArrayList); + $add_3(newDummyNodes, new ArrayList); + originalExternalPortDummies = new ArrayList; + for (currLayerIdx = 0; currLayerIdx < layerCount; currLayerIdx++) { + currentLayer = (checkCriticalElementIndex(currLayerIdx, layers.array.length) , castTo(layers.array[currLayerIdx], 30)); + prevExtPortToDummyNodesMap = (checkCriticalElementIndex(currLayerIdx, extPortToDummyNodeMap.array.length) , castTo(extPortToDummyNodeMap.array[currLayerIdx], 85)); + nextExtPortToDummyNodesMap = new HashMap; + push_1(extPortToDummyNodeMap.array, nextExtPortToDummyNodesMap); + prevNewDummyNodes = (checkCriticalElementIndex(currLayerIdx, newDummyNodes.array.length) , castTo(newDummyNodes.array[currLayerIdx], 15)); + nextNewDummyNodes = new ArrayList; + push_1(newDummyNodes.array, nextNewDummyNodes); + for (currentNode$iterator = new ArrayList$1(currentLayer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_6(currentNode$iterator), 10); + if ($isNorthernOrSouthernDummy(currentNode)) { + push_1(originalExternalPortDummies.array, currentNode); + continue; + } + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 18); + sourceNode = edge.source.owner; + if (!$isNorthernOrSouthernDummy(sourceNode)) { + continue; + } + prevLayerDummy = castTo(prevExtPortToDummyNodesMap.get_3($getProperty(sourceNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); + if (!prevLayerDummy) { + prevLayerDummy = $createDummy(layeredGraph, sourceNode); + prevExtPortToDummyNodesMap.put($getProperty(sourceNode, ORIGIN_0), prevLayerDummy); + prevNewDummyNodes.add_2(prevLayerDummy); + } + $setSource_0(edge, castTo($get_11(prevLayerDummy.ports, 1), 12)); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + targetNode = edge.target.owner; + if (!$isNorthernOrSouthernDummy(targetNode)) { + continue; + } + nextLayerDummy = castTo($get_10(nextExtPortToDummyNodesMap, $getProperty(targetNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); + if (!nextLayerDummy) { + nextLayerDummy = $createDummy(layeredGraph, targetNode); + $put_6(nextExtPortToDummyNodesMap, $getProperty(targetNode, ORIGIN_0), nextLayerDummy); + push_1(nextNewDummyNodes.array, nextLayerDummy); + } + $setTarget_0(edge, castTo($get_11(nextLayerDummy.ports, 0), 12)); + } + } + } + for (i = 0; i < newDummyNodes.array.length; i++) { + nodeList = (checkCriticalElementIndex(i, newDummyNodes.array.length) , castTo(newDummyNodes.array[i], 15)); + if (nodeList.isEmpty()) { + continue; + } + layer = null; + if (i == 0) { + layer = new Layer(layeredGraph); + checkCriticalPositionIndex(0, layers.array.length); + insertTo(layers.array, 0, layer); + } + else if (i == extPortToDummyNodeMap.array.length - 1) { + layer = new Layer(layeredGraph); + push_1(layers.array, layer); + } + else { + layer = (checkCriticalElementIndex(i - 1, layers.array.length) , castTo(layers.array[i - 1], 30)); + } + for (dummy$iterator = nodeList.iterator_0(); dummy$iterator.hasNext_0();) { + dummy = castTo(dummy$iterator.next_1(), 10); + $setLayer_0(dummy, layer); + } + } + for (originalDummy$iterator = new ArrayList$1(originalExternalPortDummies); originalDummy$iterator.i < originalDummy$iterator.this$01.array.length;) { + originalDummy = castTo($next_6(originalDummy$iterator), 10); + $setLayer_0(originalDummy, null); + } + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES), originalExternalPortDummies); +} + +function HierarchicalPortConstraintProcessor(){ +} + +defineClass(1576, 1, $intern_105, HierarchicalPortConstraintProcessor); +_.process = function process_12(layeredGraph, monitor){ + $process_14(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor', 1576); +function $compare_12(node1, node2){ + var nodePos1, nodePos2, nodeType1, nodeType2; + nodeType1 = node1.type_0; + nodePos1 = $doubleValue(castToDouble($getProperty(node1, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))); + nodeType2 = node2.type_0; + nodePos2 = $doubleValue(castToDouble($getProperty(node2, PORT_RATIO_OR_POSITION_0))); + return nodeType2 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)?-1:nodeType1 != EXTERNAL_PORT?1:nodePos1 == nodePos2?0:nodePos1 < nodePos2?-1:1; +} + +function HierarchicalPortConstraintProcessor$NodeComparator(){ +} + +defineClass(1577, 1, $intern_88, HierarchicalPortConstraintProcessor$NodeComparator); +_.compare_1 = function compare_43(node1, node2){ + return $compare_12(castTo(node1, 10), castTo(node2, 10)); +} +; +_.equals_0 = function equals_107(other){ + return this === other; +} +; +_.reversed = function reversed_35(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor$NodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor/NodeComparator', 1577); +function $process_15(layeredGraph, monitor){ + var delta, edgeSpacing, layer, layer$iterator, node, node$iterator, northernDummies, side, southernDummies; + monitor.begin('Hierarchical port dummy size processing', 1); + northernDummies = new ArrayList; + southernDummies = new ArrayList; + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); + delta = edgeSpacing * 2; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + northernDummies.array.length = 0; + southernDummies.array.length = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + side = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + side == ($clinit_PortSide() , NORTH_3)?(push_1(northernDummies.array, node) , true):side == SOUTH_2 && (push_1(southernDummies.array, node) , true); + } + } + $setWidths(northernDummies, true, delta); + $setWidths(southernDummies, false, delta); + } + monitor.done_1(); +} + +function $setWidths(nodes, topDown, delta){ + var currentWidth, node, node$iterator, port, port$iterator, step; + currentWidth = 0; + step = delta; + if (!topDown) { + currentWidth = delta * (nodes.array.length - 1); + step *= -1; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setProperty_0(node, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , CENTER_4)); + node.size_0.x_0 = currentWidth; + for (port$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + port.pos.x_0 = currentWidth; + } + currentWidth += step; + } +} + +function HierarchicalPortDummySizeProcessor(){ +} + +defineClass(1578, 1, $intern_105, HierarchicalPortDummySizeProcessor); +_.process = function process_13(layeredGraph, monitor){ + $process_15(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortDummySizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortDummySizeProcessor', 1578); +function $assignAscendingCoordinates(dummies, graph){ + var currentMargin, currentPosition, currentSize, delta, graphSize, index_0, nextValidCoordinate, spacing; + spacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); + nextValidCoordinate = dummies[0].pos.x_0 + dummies[0].size_0.x_0 + dummies[0].margin.right + spacing; + for (index_0 = 1; index_0 < dummies.length; index_0++) { + currentPosition = dummies[index_0].pos; + currentSize = dummies[index_0].size_0; + currentMargin = dummies[index_0].margin; + delta = currentPosition.x_0 - currentMargin.left - nextValidCoordinate; + delta < 0 && (currentPosition.x_0 -= delta); + graphSize = graph.size_0; + graphSize.x_0 = $wnd.Math.max(graphSize.x_0, currentPosition.x_0 + currentSize.x_0); + nextValidCoordinate = currentPosition.x_0 + currentSize.x_0 + currentMargin.right + spacing; + } +} + +function $calculateNorthSouthDummyPositions(dummy){ + var anchor, connectedPort, connectedPort$iterator, dummyInPort, offset, posSum; + dummyInPort = castTo($get_11(dummy.ports, 0), 12); + if (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length == 0) { + dummy.pos.x_0 = 0; + } + else { + posSum = 0; + for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(dummyInPort), new LPort$2(dummyInPort)]))); $hasNext_1(connectedPort$iterator);) { + connectedPort = castTo($next_0(connectedPort$iterator), 12); + posSum += connectedPort.owner.pos.x_0 + connectedPort.pos.x_0 + connectedPort.anchor.x_0; + } + anchor = castTo($getProperty(dummy, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8); + offset = !anchor?0:anchor.x_0; + dummy.pos.x_0 = posSum / (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length) - offset; + } +} + +function $correctSlantedEdgeSegments(layer){ + var bendPoints, edge, edge$iterator, extPortSide, firstBendPoint, lastBendPoint, node, node$iterator, sourcePort, targetPort; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + if (extPortSide == ($clinit_PortSide() , EAST_2) || extPortSide == WEST_2) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + bendPoints = edge.bendPoints; + if (bendPoints.size_0 == 0) { + continue; + } + sourcePort = edge.source; + if (sourcePort.owner == node) { + firstBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8)); + firstBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; + } + targetPort = edge.target; + if (targetPort.owner == node) { + lastBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8)); + lastBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; + } + } + } + } +} + +function $ensureUniquePositions(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_1(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 199); + sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$1); + $assignAscendingCoordinates(dummyArray, graph); +} + +function $fixCoordinates(layer, constraints, graph){ + var extPortSide, extPortSize, graphActualSize, newActualGraphHeight, node, node$iterator, node$iterator0, nodePosition, offset, padding, ratio, requiredActualGraphHeight; + padding = graph.padding; + offset = graph.offset; + graphActualSize = new KVector_1(graph.size_0.x_0 + graph.padding.left + graph.padding.right, graph.size_0.y_0 + graph.padding.top_0 + graph.padding.bottom); + newActualGraphHeight = graphActualSize.y_0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + extPortSize = castTo($getProperty(node, EXT_PORT_SIZE), 8); + nodePosition = node.pos; + switch (extPortSide.ordinal) { + case 2: + nodePosition.x_0 = graph.size_0.x_0 + padding.right - offset.x_0; + break; + case 4: + nodePosition.x_0 = -offset.x_0 - padding.left; + } + requiredActualGraphHeight = 0; + switch (extPortSide.ordinal) { + case 2: + case 4: + if (constraints == ($clinit_PortConstraints() , FIXED_RATIO)) { + ratio = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); + nodePosition.y_0 = graphActualSize.y_0 * ratio - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; + requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; + $borderToContentAreaCoordinates(node, false, true); + } + else if (constraints == FIXED_POS) { + nodePosition.y_0 = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))) - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; + requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; + $borderToContentAreaCoordinates(node, false, true); + } + + } + newActualGraphHeight = $wnd.Math.max(newActualGraphHeight, requiredActualGraphHeight); + } + graph.size_0.y_0 += newActualGraphHeight - graphActualSize.y_0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + nodePosition = node.pos; + switch (extPortSide.ordinal) { + case 1: + nodePosition.y_0 = -offset.y_0 - padding.top_0; + break; + case 3: + nodePosition.y_0 = graph.size_0.y_0 + padding.bottom - offset.y_0; + } + } +} + +function $process_16(this$static, layeredGraph, monitor){ + var northSouthDummies, constraints, layers, layers_0; + monitor.begin('Orthogonally routing hierarchical port edges', 1); + this$static.northernExtPortEdgeRoutingHeight = 0; + northSouthDummies = $restoreNorthSouthDummies(layeredGraph); + $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies); + $routeEdges(this$static, layeredGraph, northSouthDummies); + $removeTemporaryNorthSouthDummies(layeredGraph); + constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + layers = layeredGraph.layers; + $fixCoordinates((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 30)), constraints, layeredGraph); + $fixCoordinates(castTo($get_11(layers, layers.array.length - 1), 30), constraints, layeredGraph); + layers_0 = layeredGraph.layers; + $correctSlantedEdgeSegments((checkCriticalElementIndex(0, layers_0.array.length) , castTo(layers_0.array[0], 30))); + $correctSlantedEdgeSegments(castTo($get_11(layers_0, layers_0.array.length - 1), 30)); + monitor.done_1(); +} + +function $removeTemporaryNorthSouthDummies(layeredGraph){ + var edge, edge$array, edge$array0, edge$index, edge$index0, edge$max, edge$max0, edges, firstBendPoint, incomingEdgeBendPoints, iter, lastBendPoint, layer, layer$iterator, node, node$iterator, node$iterator0, nodeInPort, nodeOriginPort, nodeOutPort, nodeToOriginEdge, nodesToRemove, outgoingEdgeBendPoints, port, port$iterator, replacedDummy, replacedDummyPort; + nodesToRemove = new ArrayList; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + if (!$hasProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY))) { + continue; + } + nodeInPort = null; + nodeOutPort = null; + nodeOriginPort = null; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + switch (port.side.ordinal) { + case 4: + nodeInPort = port; + break; + case 2: + nodeOutPort = port; + break; + default:nodeOriginPort = port; + } + } + nodeToOriginEdge = castTo($get_11(nodeOriginPort.outgoingEdges, 0), 18); + incomingEdgeBendPoints = new KVectorChain_0(nodeToOriginEdge.bendPoints); + firstBendPoint = new KVector_2(nodeOriginPort.pos); + $add_19(firstBendPoint, node.pos); + iter = $listIterator_2(incomingEdgeBendPoints, 0); + $add_8(iter, firstBendPoint); + outgoingEdgeBendPoints = reverse_3(nodeToOriginEdge.bendPoints); + lastBendPoint = new KVector_2(nodeOriginPort.pos); + $add_19(lastBendPoint, node.pos); + $addNode_0(outgoingEdgeBendPoints, lastBendPoint, outgoingEdgeBendPoints.tail.prev, outgoingEdgeBendPoints.tail); + replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); + replacedDummyPort = castTo($get_11(replacedDummy.ports, 0), 12); + edges = castTo($toArray_1(nodeInPort.incomingEdges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 18, 0, 0, 1)), 483); + for (edge$array0 = edges , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { + edge = edge$array0[edge$index0]; + $setTarget_0(edge, replacedDummyPort); + $addAllAsCopies(edge.bendPoints, edge.bendPoints.size_0, incomingEdgeBendPoints); + } + edges = toEdgeArray(nodeOutPort.outgoingEdges); + for (edge$array = edges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, replacedDummyPort); + $addAllAsCopies(edge.bendPoints, 0, outgoingEdgeBendPoints); + } + $setSource_0(nodeToOriginEdge, null); + $setTarget_0(nodeToOriginEdge, null); + push_1(nodesToRemove.array, node); + } + } + for (node$iterator = new ArrayList$1(nodesToRemove); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setLayer_0(node, null); + } +} + +function $restoreDummy(dummy, graph){ + var currentY, dummyPort, label_0, label$iterator, labelLabelSpacing, portLabelPlacement, portLabelSpacingHorizontal, portLabelSpacingVertical, portSide, xCenterRelativeToPort; + portSide = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + dummyPort = castTo($get_11(dummy.ports, 0), 12); + portSide == ($clinit_PortSide() , NORTH_3)?$setSide(dummyPort, SOUTH_2):portSide == SOUTH_2 && $setSide(dummyPort, NORTH_3); + if (castTo($getProperty(graph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 181).contains(($clinit_SizeConstraint() , PORT_LABELS))) { + portLabelSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_HORIZONTAL))); + portLabelSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); + portLabelPlacement = castTo($getProperty(graph, PORT_LABELS_PLACEMENT_1), 21); + if (portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { + currentY = portLabelSpacingVertical; + xCenterRelativeToPort = dummy.size_0.x_0 / 2 - dummyPort.pos.x_0; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + label_0.pos.y_0 = currentY; + label_0.pos.x_0 = xCenterRelativeToPort - label_0.size_0.x_0 / 2; + currentY += label_0.size_0.y_0 + labelLabelSpacing; + } + } + else if (portLabelPlacement.contains(OUTSIDE_0)) { + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + label_0.pos.x_0 = portLabelSpacingHorizontal + dummy.size_0.x_0 - dummyPort.pos.x_0; + } + } + $processNode(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(graph, false, false, new LGraphAdapters$lambda$0$Type))), new LGraphAdapters$LNodeAdapter(null, dummy, false)); + } +} + +function $restoreNorthSouthDummies(layeredGraph){ + var dummy, dummy$iterator, dummy$iterator0, layer, layer$iterator, node, node$iterator, replacedDummy, restoredDummies, outPort, extPortSide, inPort, edge; + restoredDummies = new ArrayList; + if (!$hasProperty(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES))) { + return restoredDummies; + } + for (dummy$iterator0 = castTo($getProperty(layeredGraph, EXT_PORT_REPLACED_DUMMIES), 15).iterator_0(); dummy$iterator0.hasNext_0();) { + dummy = castTo(dummy$iterator0.next_1(), 10); + $restoreDummy(dummy, layeredGraph); + push_1(restoredDummies.array, dummy); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); + !!replacedDummy && (outPort = new LPort , $setNode(outPort, node) , extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 64) , $setSide(outPort, extPortSide) , inPort = castTo($get_11(replacedDummy.ports, 0), 12) , edge = new LEdge , $setSource_0(edge, outPort) , $setTarget_0(edge, inPort) , undefined); + } + } + for (dummy$iterator = new ArrayList$1(restoredDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_6(dummy$iterator), 10); + $setLayer_0(dummy, castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 30)); + } + return restoredDummies; +} + +function $restoreProperOrder(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_1(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 199); + sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$2); + $assignAscendingCoordinates(dummyArray, graph); +} + +function $routeEdges(this$static, layeredGraph, northSouthDummies){ + var edge, edge$iterator, edgeSpacing, hierarchicalPortDummy, hierarchicalPortDummy$iterator, nodeSpacing, northernSourceLayer, northernTargetLayer, portSide, routingGenerator, slots, southernSourceLayer, southernTargetLayer; + northernSourceLayer = new LinkedHashSet; + northernTargetLayer = new LinkedHashSet; + southernSourceLayer = new LinkedHashSet; + southernTargetLayer = new LinkedHashSet; + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + for (hierarchicalPortDummy$iterator = new ArrayList$1(northSouthDummies); hierarchicalPortDummy$iterator.i < hierarchicalPortDummy$iterator.this$01.array.length;) { + hierarchicalPortDummy = castTo($next_6(hierarchicalPortDummy$iterator), 10); + portSide = castTo($getProperty(hierarchicalPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + if (portSide == ($clinit_PortSide() , NORTH_3)) { + northernTargetLayer.map_0.put(hierarchicalPortDummy, northernTargetLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + $add_6(northernSourceLayer, edge.source.owner); + } + } + else if (portSide == SOUTH_2) { + southernTargetLayer.map_0.put(hierarchicalPortDummy, southernTargetLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + $add_6(southernSourceLayer, edge.source.owner); + } + } + } + if (northernSourceLayer.map_0.size_1() != 0) { + routingGenerator = new OrthogonalRoutingGenerator(2, edgeSpacing); + slots = $routeEdges_0(routingGenerator, layeredGraph, northernSourceLayer, northernTargetLayer, -nodeSpacing - layeredGraph.offset.y_0); + if (slots > 0) { + this$static.northernExtPortEdgeRoutingHeight = nodeSpacing + (slots - 1) * edgeSpacing; + layeredGraph.offset.y_0 += this$static.northernExtPortEdgeRoutingHeight; + layeredGraph.size_0.y_0 += this$static.northernExtPortEdgeRoutingHeight; + } + } + if (southernSourceLayer.map_0.size_1() != 0) { + routingGenerator = new OrthogonalRoutingGenerator(1, edgeSpacing); + slots = $routeEdges_0(routingGenerator, layeredGraph, southernSourceLayer, southernTargetLayer, layeredGraph.size_0.y_0 + nodeSpacing - layeredGraph.offset.y_0); + slots > 0 && (layeredGraph.size_0.y_0 += nodeSpacing + (slots - 1) * edgeSpacing); + } +} + +function $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies){ + var constraints, dummy, dummy$iterator, graphPadding, graphSize, graphWidth, northY, northernDummies, southY, southernDummies, anchor, offset, anchor_0, offset_0; + constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + graphSize = layeredGraph.size_0; + graphPadding = layeredGraph.padding; + graphWidth = graphSize.x_0 + graphPadding.left + graphPadding.right; + northY = 0 - graphPadding.top_0 - layeredGraph.offset.y_0; + southY = graphSize.y_0 + graphPadding.top_0 + graphPadding.bottom - layeredGraph.offset.y_0; + northernDummies = new ArrayList; + southernDummies = new ArrayList; + for (dummy$iterator = new ArrayList$1(northSouthDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_6(dummy$iterator), 10); + switch (constraints.ordinal) { + case 1: + case 2: + case 3: + $calculateNorthSouthDummyPositions(dummy); + break; + case 4: + anchor = castTo($getProperty(dummy, PORT_ANCHOR), 8); + offset = !anchor?0:anchor.x_0; + dummy.pos.x_0 = graphWidth * $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset; + $borderToContentAreaCoordinates(dummy, true, false); + break; + case 5: + anchor_0 = castTo($getProperty(dummy, PORT_ANCHOR), 8); + offset_0 = !anchor_0?0:anchor_0.x_0; + dummy.pos.x_0 = $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset_0; + $borderToContentAreaCoordinates(dummy, true, false); + graphSize.x_0 = $wnd.Math.max(graphSize.x_0, dummy.pos.x_0 + dummy.size_0.x_0 / 2); + } + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64).ordinal) { + case 1: + dummy.pos.y_0 = northY; + push_1(northernDummies.array, dummy); + break; + case 3: + dummy.pos.y_0 = southY; + push_1(southernDummies.array, dummy); + } + } + switch (constraints.ordinal) { + case 1: + case 2: + $ensureUniquePositions(northernDummies, layeredGraph); + $ensureUniquePositions(southernDummies, layeredGraph); + break; + case 3: + $restoreProperOrder(northernDummies, layeredGraph); + $restoreProperOrder(southernDummies, layeredGraph); + } +} + +function HierarchicalPortOrthogonalEdgeRouter(){ +} + +defineClass(1579, 1, $intern_105, HierarchicalPortOrthogonalEdgeRouter); +_.process = function process_14(layeredGraph, monitor){ + $process_16(this, castTo(layeredGraph, 36), monitor); +} +; +_.northernExtPortEdgeRoutingHeight = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter', 1579); +function $compare_13(a, b){ + return compare_4(a.pos.x_0, b.pos.x_0); +} + +function HierarchicalPortOrthogonalEdgeRouter$1(){ +} + +defineClass(1580, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$1); +_.compare_1 = function compare_44(a, b){ + return $compare_13(castTo(a, 10), castTo(b, 10)); +} +; +_.equals_0 = function equals_108(other){ + return this === other; +} +; +_.reversed = function reversed_36(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/1', 1580); +function $compare_14(a, b){ + return compare_4($doubleValue(castToDouble($getProperty(a, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))), $doubleValue(castToDouble($getProperty(b, PORT_RATIO_OR_POSITION_0)))); +} + +function HierarchicalPortOrthogonalEdgeRouter$2(){ +} + +defineClass(1581, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$2); +_.compare_1 = function compare_45(a, b){ + return $compare_14(castTo(a, 10), castTo(b, 10)); +} +; +_.equals_0 = function equals_109(other){ + return this === other; +} +; +_.reversed = function reversed_37(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/2', 1581); +function $fixCoordinates_0(layer, layeredGraph){ + var extPortSide, finalYCoordinate, graphHeight, node, node$iterator, portConstraints; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + if (!(portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || portConstraints == FIXED_POS)) { + return; + } + graphHeight = (new KVector_1(layeredGraph.size_0.x_0 + layeredGraph.padding.left + layeredGraph.padding.right, layeredGraph.size_0.y_0 + layeredGraph.padding.top_0 + layeredGraph.padding.bottom)).y_0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + if (extPortSide != ($clinit_PortSide() , EAST_2) && extPortSide != WEST_2) { + continue; + } + finalYCoordinate = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); + portConstraints == FIXED_RATIO && (finalYCoordinate *= graphHeight); + node.pos.y_0 = finalYCoordinate - castTo($getProperty(node, PORT_ANCHOR), 8).y_0; + $borderToContentAreaCoordinates(node, false, true); + } +} + +function $process_17(layeredGraph, monitor){ + var layers; + monitor.begin('Hierarchical port position processing', 1); + layers = layeredGraph.layers; + layers.array.length > 0 && $fixCoordinates_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 30)), layeredGraph); + layers.array.length > 1 && $fixCoordinates_0(castTo($get_11(layers, layers.array.length - 1), 30), layeredGraph); + monitor.done_1(); +} + +function HierarchicalPortPositionProcessor(){ +} + +defineClass(1582, 1, $intern_105, HierarchicalPortPositionProcessor); +_.process = function process_15(layeredGraph, monitor){ + $process_17(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortPositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortPositionProcessor', 1582); +function $clinit_HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor = emptyMethod; + INCOMING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$0$Type; + OUTGOING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$1$Type; +} + +function $calculateInformation(this$static, hdn){ + var hdni, incEdge, incEdge$iterator, outEdge, outEdge$iterator, src_0, tgt, treeHeight; + hdni = new HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation; + for (incEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incEdge$iterator);) { + incEdge = castTo($next_0(incEdge$iterator), 18); + if ($isSelfLoop(incEdge)) { + continue; + } + src_0 = incEdge.source.owner; + if ($hasSingleConnection(src_0, OUTGOING_EDGES)) { + treeHeight = $isTreeRoot(this$static, src_0, OUTGOING_EDGES, INCOMING_EDGES); + if (treeHeight == -1) { + continue; + } + hdni.incTreesMaxHeight = $wnd.Math.max(hdni.incTreesMaxHeight, treeHeight); + !hdni.incTreeRoots && (hdni.incTreeRoots = new ArrayList); + $add_3(hdni.incTreeRoots, src_0); + } + } + for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { + outEdge = castTo($next_0(outEdge$iterator), 18); + if ($isSelfLoop(outEdge)) { + continue; + } + tgt = outEdge.target.owner; + if ($hasSingleConnection(tgt, INCOMING_EDGES)) { + treeHeight = $isTreeRoot(this$static, tgt, INCOMING_EDGES, OUTGOING_EDGES); + if (treeHeight == -1) { + continue; + } + hdni.outTreesMaxHeight = $wnd.Math.max(hdni.outTreesMaxHeight, treeHeight); + !hdni.outTreeRoots && (hdni.outTreeRoots = new ArrayList); + $add_3(hdni.outTreeRoots, tgt); + } + } + return hdni; +} + +function $hasSingleConnection(node, edgeSelector){ + var connection, e, e$iterator; + connection = null; + for (e$iterator = castTo(edgeSelector.apply_0(node), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 18); + if (!connection) { + connection = e.source.owner == node?e.target.owner:e.source.owner; + } + else { + if ((e.source.owner == node?e.target.owner:e.source.owner) != connection) { + return false; + } + } + } + return true; +} + +function $isTreeRoot(this$static, root, ancestorEdges, descendantEdges){ + var currentHeight, e, e$iterator, height, other; + if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(root).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { + return -1; + } + if (!$hasSingleConnection(root, ancestorEdges)) { + return -1; + } + if (isEmpty_13(castTo(descendantEdges.apply_0(root), 20))) { + return 1; + } + currentHeight = 0; + for (e$iterator = castTo(descendantEdges.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 18); + other = e.source.owner == root?e.target.owner:e.source.owner; + height = $isTreeRoot(this$static, other, ancestorEdges, descendantEdges); + if (height == -1) { + return -1; + } + currentHeight = $wnd.Math.max(currentHeight, height); + if (currentHeight > this$static.treeHeightThreshold - 1) { + return -1; + } + } + return currentHeight + 1; +} + +function $moveTree(this$static, root, edgesFun, layers){ + var e, e$iterator, other, subList; + $setLayer_0(root, castTo(layers.get_0(0), 30)); + subList = layers.subList(1, layers.size_1()); + for (e$iterator = castTo(edgesFun.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 18); + other = e.source.owner == root?e.target.owner:e.source.owner; + $moveTree(this$static, other, edgesFun, subList); + } +} + +function $process_18(this$static, graph){ + var afterLayers, hdni, highDegreeNode, highDegreeNode$iterator, highDegreeNode$iterator0, highDegreeNodes, i, i0, incMax, incRoot, incRoot$iterator, incRoots, l, lay, layerIt, layerIt2, n, n$iterator, outMax, outRoot, outRoot$iterator, outRoots, preLayers, l_0, l_1; + this$static.layeredGraph = graph; + this$static.degreeThreshold = castTo($getProperty(graph, ($clinit_LayeredOptions() , HIGH_DEGREE_NODES_THRESHOLD_0)), 17).value_0; + this$static.treeHeightThreshold = castTo($getProperty(graph, HIGH_DEGREE_NODES_TREE_HEIGHT_0), 17).value_0; + this$static.treeHeightThreshold == 0 && (this$static.treeHeightThreshold = $intern_0); + layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (layerIt.i < layerIt.this$01_0.size_1()) { + lay = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 30)); + highDegreeNodes = new ArrayList; + incMax = -1; + outMax = -1; + for (n$iterator = new ArrayList$1(lay.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(n).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { + hdni = $calculateInformation(this$static, n); + incMax = $wnd.Math.max(incMax, hdni.incTreesMaxHeight); + outMax = $wnd.Math.max(outMax, hdni.outTreesMaxHeight); + $add_3(highDegreeNodes, new Pair(n, hdni)); + } + } + preLayers = new ArrayList; + for (i0 = 0; i0 < incMax; ++i0) { + $add_2(preLayers, 0, (checkCriticalElement(layerIt.i > 0) , layerIt.this$01.get_0(layerIt.last = --layerIt.i) , l_0 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_0) , checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , layerIt.this$01_0.get_0(layerIt.last = layerIt.i++) , l_0)); + } + for (highDegreeNode$iterator0 = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator0.i < highDegreeNode$iterator0.this$01.array.length;) { + highDegreeNode = castTo($next_6(highDegreeNode$iterator0), 42); + incRoots = castTo(highDegreeNode.second, 580).incTreeRoots; + if (!incRoots) { + continue; + } + for (incRoot$iterator = new ArrayList$1(incRoots); incRoot$iterator.i < incRoot$iterator.this$01.array.length;) { + incRoot = castTo($next_6(incRoot$iterator), 10); + $moveTree(this$static, incRoot, INCOMING_EDGES, preLayers); + } + } + afterLayers = new ArrayList; + for (i = 0; i < outMax; ++i) { + $add_3(afterLayers, (l_1 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_1) , l_1)); + } + for (highDegreeNode$iterator = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator.i < highDegreeNode$iterator.this$01.array.length;) { + highDegreeNode = castTo($next_6(highDegreeNode$iterator), 42); + outRoots = castTo(highDegreeNode.second, 580).outTreeRoots; + if (!outRoots) { + continue; + } + for (outRoot$iterator = new ArrayList$1(outRoots); outRoot$iterator.i < outRoot$iterator.this$01.array.length;) { + outRoot = castTo($next_6(outRoot$iterator), 10); + $moveTree(this$static, outRoot, OUTGOING_EDGES, afterLayers); + } + } + } + layerIt2 = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (layerIt2.i < layerIt2.this$01_0.size_1()) { + l = (checkCriticalElement(layerIt2.i < layerIt2.this$01_0.size_1()) , castTo(layerIt2.this$01_0.get_0(layerIt2.last = layerIt2.i++), 30)); + l.nodes.array.length == 0 && $remove_8(layerIt2); + } +} + +function HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor(); +} + +defineClass(1583, 1, $intern_105, HighDegreeNodeLayeringProcessor); +_.process = function process_16(graph, progressMonitor){ + $process_18(this, castTo(graph, 36)); +} +; +_.degreeThreshold = 0; +_.treeHeightThreshold = 0; +var INCOMING_EDGES, OUTGOING_EDGES; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor', 1583); +function HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation(){ +} + +defineClass(580, 1, {580:1}, HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation); +_.incTreesMaxHeight = -1; +_.outTreesMaxHeight = -1; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation', 580); +function HighDegreeNodeLayeringProcessor$lambda$0$Type(){ +} + +defineClass(1584, 1, {}, HighDegreeNodeLayeringProcessor$lambda$0$Type); +_.apply_0 = function apply_78(arg0){ + return $clinit_HighDegreeNodeLayeringProcessor() , $getIncomingEdges(castTo(arg0, 10)); +} +; +_.equals_0 = function equals_110(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$0$Type', 1584); +function HighDegreeNodeLayeringProcessor$lambda$1$Type(){ +} + +defineClass(1585, 1, {}, HighDegreeNodeLayeringProcessor$lambda$1$Type); +_.apply_0 = function apply_79(arg0){ + return $clinit_HighDegreeNodeLayeringProcessor() , $getOutgoingEdges(castTo(arg0, 10)); +} +; +_.equals_0 = function equals_111(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$1$Type', 1585); +function $checkMergeAllowed(currNode, lastNode){ + var currHasLabelDummies, currNodeSource, currNodeTarget, eligibleForSourceMerging, eligibleForTargetMerging, lastHasLabelDummies, lastNodeSource, lastNodeTarget, sameSource, sameTarget; + currHasLabelDummies = $booleanValue(castToBoolean($getProperty(currNode, ($clinit_InternalProperties_1() , LONG_EDGE_HAS_LABEL_DUMMIES)))); + lastHasLabelDummies = $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))); + currNodeSource = castTo($getProperty(currNode, LONG_EDGE_SOURCE), 12); + lastNodeSource = castTo($getProperty(lastNode, LONG_EDGE_SOURCE), 12); + currNodeTarget = castTo($getProperty(currNode, LONG_EDGE_TARGET), 12); + lastNodeTarget = castTo($getProperty(lastNode, LONG_EDGE_TARGET), 12); + sameSource = !!currNodeSource && currNodeSource == lastNodeSource; + sameTarget = !!currNodeTarget && currNodeTarget == lastNodeTarget; + if (!currHasLabelDummies && !lastHasLabelDummies) { + return new HyperedgeDummyMerger$MergeState(castTo($next_6(new ArrayList$1(currNode.ports)), 12).id_0 == castTo($next_6(new ArrayList$1(lastNode.ports)), 12).id_0, sameSource, sameTarget); + } + eligibleForSourceMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); + eligibleForTargetMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); + return new HyperedgeDummyMerger$MergeState(sameSource && eligibleForSourceMerging || sameTarget && eligibleForTargetMerging, sameSource, sameTarget); +} + +function $dfs_2(this$static, p, index_0){ + var p2, p2$iterator, p2$iterator0; + p.id_0 = index_0; + for (p2$iterator0 = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(p), new LPort$2(p)]))); $hasNext_1(p2$iterator0);) { + p2 = castTo($next_0(p2$iterator0), 12); + p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); + } + if (p.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (p2$iterator = new ArrayList$1(p.owner.ports); p2$iterator.i < p2$iterator.this$01.array.length;) { + p2 = castTo($next_6(p2$iterator), 12); + p2 != p && p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); + } + } +} + +function $identifyHyperedges(this$static, lGraph){ + var index_0, p, p$iterator, ports; + ports = castTo($collect_1($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layers, 16)), new HyperedgeDummyMerger$lambda$0$Type), new HyperedgeDummyMerger$lambda$1$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + ports.forEach_0(new HyperedgeDummyMerger$lambda$2$Type); + index_0 = 0; + for (p$iterator = ports.iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 12); + p.id_0 == -1 && $dfs_2(this$static, p, index_0++); + } +} + +function $mergeNodes(mergeSource, mergeTarget, keepSourcePort, keepTargetPort){ + var mergeTargetInputPort, mergeTargetOutputPort, port, port$iterator; + mergeTargetInputPort = castTo($getPorts_1(mergeTarget, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 12); + mergeTargetOutputPort = castTo($getPorts_1(mergeTarget, EAST_2).iterator_0().next_1(), 12); + for (port$iterator = new ArrayList$1(mergeSource.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + while (port.incomingEdges.array.length != 0) { + $setTarget_0(castTo($get_11(port.incomingEdges, 0), 18), mergeTargetInputPort); + } + while (port.outgoingEdges.array.length != 0) { + $setSource_0(castTo($get_11(port.outgoingEdges, 0), 18), mergeTargetOutputPort); + } + } + keepSourcePort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), null); + keepTargetPort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), null); +} + +function $process_19(this$static, layeredGraph, monitor){ + var currNode, currNodeType, lastNode, lastNodeType, layer, layerIter, nodeIndex, nodes, state; + monitor.begin('Hyperedge merging', 1); + $identifyHyperedges(this$static, layeredGraph); + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + currNode = null; + currNodeType = null; + lastNode = null; + lastNodeType = null; + for (nodeIndex = 0; nodeIndex < nodes.array.length; nodeIndex++) { + currNode = (checkCriticalElementIndex(nodeIndex, nodes.array.length) , castTo(nodes.array[nodeIndex], 10)); + currNodeType = currNode.type_0; + if (currNodeType == ($clinit_LNode$NodeType() , LONG_EDGE) && lastNodeType == LONG_EDGE) { + state = $checkMergeAllowed(currNode, lastNode); + if (state.allowMerge) { + $mergeNodes(currNode, lastNode, state.sameSource, state.sameTarget); + checkCriticalElementIndex(nodeIndex, nodes.array.length); + removeFrom(nodes.array, nodeIndex, 1); + --nodeIndex; + currNode = lastNode; + currNodeType = lastNodeType; + } + } + lastNode = currNode; + lastNodeType = currNodeType; + } + } + monitor.done_1(); +} + +function HyperedgeDummyMerger(){ +} + +defineClass(1591, 1, $intern_105, HyperedgeDummyMerger); +_.process = function process_17(layeredGraph, monitor){ + $process_19(this, castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger', 1591); +function HyperedgeDummyMerger$MergeState(allowMerge, sameSource, sameTarget){ + this.allowMerge = allowMerge; + this.sameSource = sameSource; + this.sameTarget = sameTarget; +} + +defineClass(804, 1, {}, HyperedgeDummyMerger$MergeState); +_.allowMerge = false; +_.sameSource = false; +_.sameTarget = false; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$MergeState_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/MergeState', 804); +function HyperedgeDummyMerger$lambda$0$Type(){ +} + +defineClass(1592, 1, {}, HyperedgeDummyMerger$lambda$0$Type); +_.apply_0 = function apply_80(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$0$Type', 1592); +function HyperedgeDummyMerger$lambda$1$Type(){ +} + +defineClass(1593, 1, {}, HyperedgeDummyMerger$lambda$1$Type); +_.apply_0 = function apply_81(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 10).ports, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$1$Type', 1593); +function HyperedgeDummyMerger$lambda$2$Type(){ +} + +defineClass(1594, 1, $intern_19, HyperedgeDummyMerger$lambda$2$Type); +_.accept = function accept_76(arg0){ + castTo(arg0, 12).id_0 = -1; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$2$Type', 1594); +function $moveHypernode(layeredGraph, hypernode, right){ + var bendEdges, bendx, diffx, diffy, edge, edge$iterator, first, firstPoint, junctionPoints, lastPoint, northPort, port, port$iterator, second, southPort; + bendEdges = new ArrayList; + bendx = $intern_0; + diffx = $intern_0; + diffy = $intern_0; + if (right) { + bendx = layeredGraph.size_0.x_0; + for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (edge.bendPoints.size_0 != 0) { + firstPoint = castTo($getFirst(edge.bendPoints), 8); + if (firstPoint.x_0 < bendx) { + diffx = bendx - firstPoint.x_0; + diffy = $intern_0; + bendEdges.array.length = 0; + bendx = firstPoint.x_0; + } + if (firstPoint.x_0 <= bendx) { + push_1(bendEdges.array, edge); + edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, 1), 8).y_0 - firstPoint.y_0))); + } + } + } + } + } + else { + for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (edge.bendPoints.size_0 != 0) { + lastPoint = castTo($getLast(edge.bendPoints), 8); + if (lastPoint.x_0 > bendx) { + diffx = lastPoint.x_0 - bendx; + diffy = $intern_0; + bendEdges.array.length = 0; + bendx = lastPoint.x_0; + } + if (lastPoint.x_0 >= bendx) { + push_1(bendEdges.array, edge); + edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, edge.bendPoints.size_0 - 2), 8).y_0 - lastPoint.y_0))); + } + } + } + } + } + if (bendEdges.array.length != 0 && diffx > hypernode.size_0.x_0 / 2 && diffy > hypernode.size_0.y_0 / 2) { + northPort = new LPort; + $setNode(northPort, hypernode); + $setSide(northPort, ($clinit_PortSide() , NORTH_3)); + northPort.pos.x_0 = hypernode.size_0.x_0 / 2; + southPort = new LPort; + $setNode(southPort, hypernode); + $setSide(southPort, SOUTH_2); + southPort.pos.x_0 = hypernode.size_0.x_0 / 2; + southPort.pos.y_0 = hypernode.size_0.y_0; + for (edge$iterator = new ArrayList$1(bendEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (right) { + first = castTo($removeFirst_0(edge.bendPoints), 8); + second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.target):castTo($getFirst(edge.bendPoints), 8); + second.y_0 >= first.y_0?$setSource_0(edge, southPort):$setSource_0(edge, northPort); + } + else { + first = castTo($removeLast_0(edge.bendPoints), 8); + second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.source):castTo($getLast(edge.bendPoints), 8); + second.y_0 >= first.y_0?$setTarget_0(edge, southPort):$setTarget_0(edge, northPort); + } + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + !!junctionPoints && $advanceToFind(junctionPoints, first, true); + } + hypernode.pos.x_0 = bendx - hypernode.size_0.x_0 / 2; + } +} + +function $process_20(layeredGraph, monitor){ + var bottomEdges, layer, layer$iterator, leftEdges, node, node$iterator, port, port$iterator, rightEdges, topEdges; + monitor.begin('Hypernodes processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , HYPERNODE)))) && node.ports.array.length <= 2) { + topEdges = 0; + rightEdges = 0; + bottomEdges = 0; + leftEdges = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + switch (port.side.ordinal) { + case 1: + ++topEdges; + break; + case 2: + ++rightEdges; + break; + case 3: + ++bottomEdges; + break; + case 4: + ++leftEdges; + } + } + topEdges == 0 && bottomEdges == 0 && $moveHypernode(layeredGraph, node, leftEdges <= rightEdges); + } + } + } + monitor.done_1(); +} + +function HypernodesProcessor(){ +} + +defineClass(1595, 1, $intern_105, HypernodesProcessor); +_.process = function process_18(layeredGraph, monitor){ + $process_20(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HypernodesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HypernodesProcessor', 1595); +function $process_21(layeredGraph, monitor){ + var bottomConstrainedNodes, constraint, i, layer, layer$iterator, node, node$iterator, nodes, topInsertionIndex; + monitor.begin('Layer constraint edge reversal', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + topInsertionIndex = -1; + bottomConstrainedNodes = new ArrayList; + nodes = toNodeArray(layer.nodes); + for (i = 0; i < nodes.length; i++) { + constraint = castTo($getProperty(nodes[i], ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 311); + if (topInsertionIndex == -1) { + constraint != ($clinit_InLayerConstraint() , TOP_1) && (topInsertionIndex = i); + } + else { + if (constraint == ($clinit_InLayerConstraint() , TOP_1)) { + $setLayer_0(nodes[i], null); + $setLayer(nodes[i], topInsertionIndex++, layer); + } + } + constraint == ($clinit_InLayerConstraint() , BOTTOM_0) && (push_1(bottomConstrainedNodes.array, nodes[i]) , true); + } + for (node$iterator = new ArrayList$1(bottomConstrainedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setLayer_0(node, null); + $setLayer_0(node, layer); + } + } + monitor.done_1(); +} + +function InLayerConstraintProcessor(){ +} + +defineClass(1596, 1, $intern_105, InLayerConstraintProcessor); +_.process = function process_19(layeredGraph, monitor){ + $process_21(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InLayerConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InLayerConstraintProcessor', 1596); +function $process_22(layeredGraph, monitor){ + monitor.begin('Node margin calculation', 1); + $process($excludeEdgeHeadTailLabels(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, false, false, new LGraphAdapters$lambda$0$Type))))); + monitor.done_1(); +} + +function InnermostNodeMarginCalculator(){ +} + +defineClass(1597, 1, $intern_105, InnermostNodeMarginCalculator); +_.process = function process_20(layeredGraph, monitor){ + $process_22(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InnermostNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InnermostNodeMarginCalculator', 1597); +function $findNorthSouthPortXCoordinate(dummy){ + var e, e$iterator, margins, max_0, min_0, n, port; + port = castTo($get_11(dummy.ports, 0), 12); + if (port.outgoingEdges.array.length != 0 && port.incomingEdges.array.length != 0) { + throw toJs(new IllegalStateException_0('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.')); + } + if (port.outgoingEdges.array.length != 0) { + min_0 = $intern_60; + for (e$iterator = new ArrayList$1(port.outgoingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + n = e.target.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 140); + min_0 = $wnd.Math.min(min_0, n.pos.x_0 - margins.left); + } + return new Present(checkNotNull(min_0)); + } + if (port.incomingEdges.array.length != 0) { + max_0 = $intern_61; + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + n = e.source.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 140); + max_0 = $wnd.Math.max(max_0, n.pos.x_0 + n.size_0.x_0 + margins.right); + } + return new Present(checkNotNull(max_0)); + } + return $clinit_Absent() , $clinit_Absent() , INSTANCE; +} + +function $findYCoordinate(dummy, funGetOtherNode){ + var e, e$iterator, other; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(dummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + other = castTo(funGetOtherNode.apply_0(e), 10); + return new Present(checkNotNull(other.pos.y_0 + other.size_0.y_0 / 2)); + } + return $clinit_Absent() , $clinit_Absent() , INSTANCE; +} + +function $process_23(this$static, layeredGraph){ + var ilc, lc, margins, node, node$iterator, node$iterator0; + if (!castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + return; + } + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + margins = castTo($getProperty(node, ($clinit_LayeredOptions() , MARGINS)), 140); + this$static.minX = $wnd.Math.min(this$static.minX, node.pos.x_0 - margins.left); + this$static.maxX = $wnd.Math.max(this$static.maxX, node.pos.x_0 + node.size_0.x_0 + margins.right); + this$static.minY = $wnd.Math.min(this$static.minY, node.pos.y_0 - margins.top_0); + this$static.maxY = $wnd.Math.max(this$static.maxY, node.pos.y_0 + node.size_0.y_0 + margins.bottom); + } + } + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + switch (node.type_0.ordinal) { + case 2: + lc = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + if (lc == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + node.pos.x_0 = this$static.minX - 10; + $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$0$Type).transform(new InteractiveExternalPortPositioner$lambda$1$Type(node)); + break; + } + + if (lc == LAST_SEPARATE_0) { + node.pos.x_0 = this$static.maxX + 10; + $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$2$Type).transform(new InteractiveExternalPortPositioner$lambda$3$Type(node)); + break; + } + + ilc = castTo($getProperty(node, IN_LAYER_CONSTRAINT), 311); + if (ilc == ($clinit_InLayerConstraint() , TOP_1)) { + $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$4$Type(node)); + node.pos.y_0 = this$static.minY - 10; + break; + } + + if (ilc == BOTTOM_0) { + $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$5$Type(node)); + node.pos.y_0 = this$static.maxY + 10; + break; + } + + break; + default:throw toJs(new IllegalArgumentException_0('The node type ' + node.type_0 + ' is not supported by the ' + Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit)); + } + } + } +} + +function InteractiveExternalPortPositioner(){ +} + +function lambda$1_8(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$3_0(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$4_4(node_0, x_1){ + return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; +} + +function lambda$5_1(node_0, x_1){ + return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; +} + +defineClass(1598, 1, $intern_105, InteractiveExternalPortPositioner); +_.process = function process_21(layeredGraph, progressMonitor){ + $process_23(this, castTo(layeredGraph, 36)); +} +; +_.maxX = $intern_61; +_.maxY = $intern_61; +_.minX = $intern_60; +_.minY = $intern_60; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner', 1598); +function InteractiveExternalPortPositioner$lambda$0$Type(){ +} + +defineClass(1599, 1, {}, InteractiveExternalPortPositioner$lambda$0$Type); +_.apply_0 = function apply_82(arg0){ + return castTo(arg0, 18).target.owner; +} +; +_.equals_0 = function equals_112(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$0$Type', 1599); +function InteractiveExternalPortPositioner$lambda$1$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1600, 1, {}, InteractiveExternalPortPositioner$lambda$1$Type); +_.apply_0 = function apply_83(arg0){ + return lambda$1_8(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_113(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$1$Type', 1600); +function InteractiveExternalPortPositioner$lambda$2$Type(){ +} + +defineClass(1601, 1, {}, InteractiveExternalPortPositioner$lambda$2$Type); +_.apply_0 = function apply_84(arg0){ + return castTo(arg0, 18).source.owner; +} +; +_.equals_0 = function equals_114(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$2$Type', 1601); +function InteractiveExternalPortPositioner$lambda$3$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1602, 1, {}, InteractiveExternalPortPositioner$lambda$3$Type); +_.apply_0 = function apply_85(arg0){ + return lambda$3_0(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_115(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$3$Type', 1602); +function InteractiveExternalPortPositioner$lambda$4$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1603, 1, {}, InteractiveExternalPortPositioner$lambda$4$Type); +_.apply_0 = function apply_86(arg0){ + return lambda$4_4(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_116(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$4$Type', 1603); +function InteractiveExternalPortPositioner$lambda$5$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1604, 1, {}, InteractiveExternalPortPositioner$lambda$5$Type); +_.apply_0 = function apply_87(arg0){ + return lambda$5_1(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_117(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$5$Type', 1604); +function $clinit_IntermediateProcessorStrategy(){ + $clinit_IntermediateProcessorStrategy = emptyMethod; + DIRECTION_PREPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_PREPROCESSOR', 0); + COMMENT_PREPROCESSOR = new IntermediateProcessorStrategy('COMMENT_PREPROCESSOR', 1); + EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER = new IntermediateProcessorStrategy('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER', 2); + INTERACTIVE_EXTERNAL_PORT_POSITIONER = new IntermediateProcessorStrategy('INTERACTIVE_EXTERNAL_PORT_POSITIONER', 3); + PARTITION_PREPROCESSOR = new IntermediateProcessorStrategy('PARTITION_PREPROCESSOR', 4); + LABEL_DUMMY_INSERTER = new IntermediateProcessorStrategy('LABEL_DUMMY_INSERTER', 5); + SELF_LOOP_PREPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_PREPROCESSOR', 6); + LAYER_CONSTRAINT_PREPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_PREPROCESSOR', 7); + PARTITION_MIDPROCESSOR = new IntermediateProcessorStrategy('PARTITION_MIDPROCESSOR', 8); + HIGH_DEGREE_NODE_LAYER_PROCESSOR = new IntermediateProcessorStrategy('HIGH_DEGREE_NODE_LAYER_PROCESSOR', 9); + NODE_PROMOTION = new IntermediateProcessorStrategy('NODE_PROMOTION', 10); + LAYER_CONSTRAINT_POSTPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_POSTPROCESSOR', 11); + PARTITION_POSTPROCESSOR = new IntermediateProcessorStrategy('PARTITION_POSTPROCESSOR', 12); + HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR', 13); + SEMI_INTERACTIVE_CROSSMIN_PROCESSOR = new IntermediateProcessorStrategy('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR', 14); + BREAKING_POINT_INSERTER = new IntermediateProcessorStrategy('BREAKING_POINT_INSERTER', 15); + LONG_EDGE_SPLITTER = new IntermediateProcessorStrategy('LONG_EDGE_SPLITTER', 16); + PORT_SIDE_PROCESSOR = new IntermediateProcessorStrategy('PORT_SIDE_PROCESSOR', 17); + INVERTED_PORT_PROCESSOR = new IntermediateProcessorStrategy('INVERTED_PORT_PROCESSOR', 18); + PORT_LIST_SORTER = new IntermediateProcessorStrategy('PORT_LIST_SORTER', 19); + SORT_BY_INPUT_ORDER_OF_MODEL = new IntermediateProcessorStrategy('SORT_BY_INPUT_ORDER_OF_MODEL', 20); + NORTH_SOUTH_PORT_PREPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_PREPROCESSOR', 21); + BREAKING_POINT_PROCESSOR = new IntermediateProcessorStrategy('BREAKING_POINT_PROCESSOR', 22); + ONE_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('ONE_SIDED_GREEDY_SWITCH', 23); + TWO_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('TWO_SIDED_GREEDY_SWITCH', 24); + SELF_LOOP_PORT_RESTORER = new IntermediateProcessorStrategy('SELF_LOOP_PORT_RESTORER', 25); + SINGLE_EDGE_GRAPH_WRAPPER = new IntermediateProcessorStrategy('SINGLE_EDGE_GRAPH_WRAPPER', 26); + IN_LAYER_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('IN_LAYER_CONSTRAINT_PROCESSOR', 27); + END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR', 28); + LABEL_AND_NODE_SIZE_PROCESSOR = new IntermediateProcessorStrategy('LABEL_AND_NODE_SIZE_PROCESSOR', 29); + INNERMOST_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('INNERMOST_NODE_MARGIN_CALCULATOR', 30); + SELF_LOOP_ROUTER = new IntermediateProcessorStrategy('SELF_LOOP_ROUTER', 31); + COMMENT_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('COMMENT_NODE_MARGIN_CALCULATOR', 32); + END_LABEL_PREPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_PREPROCESSOR', 33); + LABEL_DUMMY_SWITCHER = new IntermediateProcessorStrategy('LABEL_DUMMY_SWITCHER', 34); + CENTER_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('CENTER_LABEL_MANAGEMENT_PROCESSOR', 35); + LABEL_SIDE_SELECTOR = new IntermediateProcessorStrategy('LABEL_SIDE_SELECTOR', 36); + HYPEREDGE_DUMMY_MERGER = new IntermediateProcessorStrategy('HYPEREDGE_DUMMY_MERGER', 37); + HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR', 38); + LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR = new IntermediateProcessorStrategy('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR', 39); + HIERARCHICAL_PORT_POSITION_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_POSITION_PROCESSOR', 40); + CONSTRAINTS_POSTPROCESSOR = new IntermediateProcessorStrategy('CONSTRAINTS_POSTPROCESSOR', 41); + COMMENT_POSTPROCESSOR = new IntermediateProcessorStrategy('COMMENT_POSTPROCESSOR', 42); + HYPERNODE_PROCESSOR = new IntermediateProcessorStrategy('HYPERNODE_PROCESSOR', 43); + HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER', 44); + LONG_EDGE_JOINER = new IntermediateProcessorStrategy('LONG_EDGE_JOINER', 45); + SELF_LOOP_POSTPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_POSTPROCESSOR', 46); + BREAKING_POINT_REMOVER = new IntermediateProcessorStrategy('BREAKING_POINT_REMOVER', 47); + NORTH_SOUTH_PORT_POSTPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_POSTPROCESSOR', 48); + HORIZONTAL_COMPACTOR = new IntermediateProcessorStrategy('HORIZONTAL_COMPACTOR', 49); + LABEL_DUMMY_REMOVER = new IntermediateProcessorStrategy('LABEL_DUMMY_REMOVER', 50); + FINAL_SPLINE_BENDPOINTS_CALCULATOR = new IntermediateProcessorStrategy('FINAL_SPLINE_BENDPOINTS_CALCULATOR', 51); + END_LABEL_SORTER = new IntermediateProcessorStrategy('END_LABEL_SORTER', 52); + REVERSED_EDGE_RESTORER = new IntermediateProcessorStrategy('REVERSED_EDGE_RESTORER', 53); + END_LABEL_POSTPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_POSTPROCESSOR', 54); + HIERARCHICAL_NODE_RESIZER = new IntermediateProcessorStrategy('HIERARCHICAL_NODE_RESIZER', 55); + DIRECTION_POSTPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_POSTPROCESSOR', 56); +} + +function IntermediateProcessorStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_30(name_0){ + $clinit_IntermediateProcessorStrategy(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map() , $MAP_20), name_0); +} + +function values_38(){ + $clinit_IntermediateProcessorStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_37, 81, 0, [DIRECTION_PREPROCESSOR, COMMENT_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, INTERACTIVE_EXTERNAL_PORT_POSITIONER, PARTITION_PREPROCESSOR, LABEL_DUMMY_INSERTER, SELF_LOOP_PREPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, PARTITION_MIDPROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, NODE_PROMOTION, LAYER_CONSTRAINT_POSTPROCESSOR, PARTITION_POSTPROCESSOR, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, BREAKING_POINT_INSERTER, LONG_EDGE_SPLITTER, PORT_SIDE_PROCESSOR, INVERTED_PORT_PROCESSOR, PORT_LIST_SORTER, SORT_BY_INPUT_ORDER_OF_MODEL, NORTH_SOUTH_PORT_PREPROCESSOR, BREAKING_POINT_PROCESSOR, ONE_SIDED_GREEDY_SWITCH, TWO_SIDED_GREEDY_SWITCH, SELF_LOOP_PORT_RESTORER, SINGLE_EDGE_GRAPH_WRAPPER, IN_LAYER_CONSTRAINT_PROCESSOR, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, SELF_LOOP_ROUTER, COMMENT_NODE_MARGIN_CALCULATOR, END_LABEL_PREPROCESSOR, LABEL_DUMMY_SWITCHER, CENTER_LABEL_MANAGEMENT_PROCESSOR, LABEL_SIDE_SELECTOR, HYPEREDGE_DUMMY_MERGER, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, HIERARCHICAL_PORT_POSITION_PROCESSOR, CONSTRAINTS_POSTPROCESSOR, COMMENT_POSTPROCESSOR, HYPERNODE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, LONG_EDGE_JOINER, SELF_LOOP_POSTPROCESSOR, BREAKING_POINT_REMOVER, NORTH_SOUTH_PORT_POSTPROCESSOR, HORIZONTAL_COMPACTOR, LABEL_DUMMY_REMOVER, FINAL_SPLINE_BENDPOINTS_CALCULATOR, END_LABEL_SORTER, REVERSED_EDGE_RESTORER, END_LABEL_POSTPROCESSOR, HIERARCHICAL_NODE_RESIZER, DIRECTION_POSTPROCESSOR]); +} + +defineClass(81, 22, {3:1, 34:1, 22:1, 81:1, 196:1}, IntermediateProcessorStrategy); +_.create_1 = function create_5(){ + switch (this.ordinal) { + case 15: + return new BreakingPointInserter; + case 22: + return new BreakingPointProcessor; + case 47: + return new BreakingPointRemover; + case 28: + case 35: + return new LabelManagementProcessor; + case 32: + return new CommentNodeMarginCalculator; + case 42: + return new CommentPostprocessor; + case 1: + return new CommentPreprocessor; + case 41: + return new ConstraintsPostprocessor; + case 56: + return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)); + case 0: + return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INPUT_DIRECTION)); + case 2: + return new EdgeAndLayerConstraintEdgeReverser; + case 54: + return new EndLabelPostprocessor; + case 33: + return new EndLabelPreprocessor; + case 51: + return new FinalSplineBendpointsCalculator; + case 55: + return new HierarchicalNodeResizingProcessor; + case 13: + return new HierarchicalPortConstraintProcessor; + case 38: + return new HierarchicalPortDummySizeProcessor; + case 44: + return new HierarchicalPortOrthogonalEdgeRouter; + case 40: + return new HierarchicalPortPositionProcessor; + case 9: + return new HighDegreeNodeLayeringProcessor; + case 49: + return new HorizontalGraphCompactor; + case 37: + return new HyperedgeDummyMerger; + case 43: + return new HypernodesProcessor; + case 27: + return new InLayerConstraintProcessor; + case 30: + return new InnermostNodeMarginCalculator; + case 3: + return new InteractiveExternalPortPositioner; + case 18: + return new InvertedPortProcessor; + case 29: + return new LabelAndNodeSizeProcessor; + case 5: + return new LabelDummyInserter; + case 50: + return new LabelDummyRemover; + case 34: + return new LabelDummySwitcher; + case 36: + return new LabelSideSelector; + case 52: + return new EndLabelSorter; + case 11: + return new LayerConstraintPostprocessor; + case 7: + return new LayerConstraintPreprocessor; + case 39: + return new LayerSizeAndGraphHeightCalculator; + case 45: + return new LongEdgeJoiner; + case 16: + return new LongEdgeSplitter; + case 10: + return new NodePromotion; + case 48: + return new NorthSouthPortPostprocessor; + case 21: + return new NorthSouthPortPreprocessor; + case 23: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0)); + case 8: + return new PartitionMidprocessor; + case 12: + return new PartitionPostprocessor; + case 4: + return new PartitionPreprocessor; + case 19: + return new PortListSorter; + case 17: + return new PortSideProcessor; + case 53: + return new ReversedEdgeRestorer; + case 6: + return new SelfLoopPreProcessor; + case 25: + return new SelfLoopPortRestorer; + case 46: + return new SelfLoopPostProcessor; + case 31: + return new SelfLoopRouter; + case 14: + return new SemiInteractiveCrossMinProcessor; + case 26: + return new SingleEdgeGraphWrapper; + case 20: + return new SortByInputModelProcessor; + case 24: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)); + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var BREAKING_POINT_INSERTER, BREAKING_POINT_PROCESSOR, BREAKING_POINT_REMOVER, CENTER_LABEL_MANAGEMENT_PROCESSOR, COMMENT_NODE_MARGIN_CALCULATOR, COMMENT_POSTPROCESSOR, COMMENT_PREPROCESSOR, CONSTRAINTS_POSTPROCESSOR, DIRECTION_POSTPROCESSOR, DIRECTION_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, END_LABEL_POSTPROCESSOR, END_LABEL_PREPROCESSOR, END_LABEL_SORTER, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, FINAL_SPLINE_BENDPOINTS_CALCULATOR, HIERARCHICAL_NODE_RESIZER, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, HIERARCHICAL_PORT_POSITION_PROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, HORIZONTAL_COMPACTOR, HYPEREDGE_DUMMY_MERGER, HYPERNODE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, INTERACTIVE_EXTERNAL_PORT_POSITIONER, INVERTED_PORT_PROCESSOR, IN_LAYER_CONSTRAINT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, LABEL_DUMMY_INSERTER, LABEL_DUMMY_REMOVER, LABEL_DUMMY_SWITCHER, LABEL_SIDE_SELECTOR, LAYER_CONSTRAINT_POSTPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, LONG_EDGE_JOINER, LONG_EDGE_SPLITTER, NODE_PROMOTION, NORTH_SOUTH_PORT_POSTPROCESSOR, NORTH_SOUTH_PORT_PREPROCESSOR, ONE_SIDED_GREEDY_SWITCH, PARTITION_MIDPROCESSOR, PARTITION_POSTPROCESSOR, PARTITION_PREPROCESSOR, PORT_LIST_SORTER, PORT_SIDE_PROCESSOR, REVERSED_EDGE_RESTORER, SELF_LOOP_PORT_RESTORER, SELF_LOOP_POSTPROCESSOR, SELF_LOOP_PREPROCESSOR, SELF_LOOP_ROUTER, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, SINGLE_EDGE_GRAPH_WRAPPER, SORT_BY_INPUT_ORDER_OF_MODEL, TWO_SIDED_GREEDY_SWITCH; +var Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'IntermediateProcessorStrategy', 81, Ljava_lang_Enum_2_classLit, values_38, valueOf_30); +function $clinit_IntermediateProcessorStrategy$Map(){ + $clinit_IntermediateProcessorStrategy$Map = emptyMethod; + $MAP_20 = createValueOfMap(values_38()); +} + +var $MAP_20; +function $createEastPortSideDummies(layeredGraph, eastwardPort, edge, layerNodeList){ + var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, labelPlacement; + if (edge.source.owner == eastwardPort.owner) { + return; + } + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + push_1(layerNodeList.array, dummy); + dummyInput = new LPort; + $setNode(dummyInput, dummy); + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + dummyOutput = new LPort; + $setNode(dummyOutput, dummy); + $setSide(dummyOutput, EAST_2); + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, eastwardPort); + $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); + labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 72)); + labelPlacement = castTo($getProperty(label_0, EDGE_LABELS_PLACEMENT), 278); + if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { + $hasProperty(label_0, END_LABEL_EDGE) || $setProperty_0(label_0, END_LABEL_EDGE, edge); + $remove_8(labelIterator); + $add_3(dummyEdge.labels, label_0); + } + } +} + +function $createWestPortSideDummies(layeredGraph, westwardPort, edge, layerNodeList){ + var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, originalTarget; + if (edge.target.owner == westwardPort.owner) { + return; + } + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + push_1(layerNodeList.array, dummy); + dummyInput = new LPort; + $setNode(dummyInput, dummy); + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + dummyOutput = new LPort; + $setNode(dummyOutput, dummy); + $setSide(dummyOutput, EAST_2); + originalTarget = edge.target; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, originalTarget); + labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 72)); + if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { + $setProperty_0(label_0, END_LABEL_EDGE, edge); + $remove_8(labelIterator); + $add_3(dummyEdge.labels, label_0); + } + } + $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); +} + +function $process_24(layeredGraph, monitor){ + var currentLayer, edge, edge$array, edge$index, edge$max, edgeArray, edges, layerIterator, layers, node, node$iterator, node$iterator0, node$iterator1, port, port$iterator, port$iterator0, previousLayer, unassignedNodes; + monitor.begin('Inverted port preprocessing', 1); + layers = layeredGraph.layers; + layerIterator = new AbstractList$ListIteratorImpl(layers, 0); + currentLayer = null; + unassignedNodes = new ArrayList; + while (layerIterator.i < layerIterator.this$01_0.size_1()) { + previousLayer = currentLayer; + currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 30)); + for (node$iterator0 = new ArrayList$1(unassignedNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + $setLayer_0(node, previousLayer); + } + unassignedNodes.array.length = 0; + for (node$iterator1 = new ArrayList$1(currentLayer.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_6(node$iterator1), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + if (!$isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))) { + continue; + } + for (port$iterator0 = $getPorts_0(node, ($clinit_PortType() , INPUT), ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 12); + edges = port.incomingEdges; + edgeArray = castTo($toArray_1(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 18, edges.array.length, 0, 1)), 483); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $createEastPortSideDummies(layeredGraph, port, edge, unassignedNodes); + } + } + for (port$iterator = $getPorts_0(node, OUTPUT, WEST_2).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + edges = port.outgoingEdges; + edgeArray = castTo($toArray_1(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 18, edges.array.length, 0, 1)), 483); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $createWestPortSideDummies(layeredGraph, port, edge, unassignedNodes); + } + } + } + } + for (node$iterator = new ArrayList$1(unassignedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setLayer_0(node, currentLayer); + } + monitor.done_1(); +} + +function $setLongEdgeSourceAndTarget(longEdgeDummy, dummyInputPort, dummyOutputPort){ + var sourceNode, sourceNodeType, sourcePort, targetNode, targetNodeType, targetPort; + sourcePort = castTo($get_11(dummyInputPort.incomingEdges, 0), 18).source; + sourceNode = sourcePort.owner; + sourceNodeType = sourceNode.type_0; + targetPort = castTo($get_11(dummyOutputPort.outgoingEdges, 0), 18).target; + targetNode = targetPort.owner; + targetNodeType = targetNode.type_0; + sourceNodeType == ($clinit_LNode$NodeType() , LONG_EDGE)?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(sourceNode, LONG_EDGE_SOURCE), 12)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), sourcePort); + targetNodeType == LONG_EDGE?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), castTo($getProperty(targetNode, LONG_EDGE_TARGET), 12)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), targetPort); +} + +function InvertedPortProcessor(){ +} + +defineClass(1605, 1, $intern_105, InvertedPortProcessor); +_.process = function process_22(layeredGraph, monitor){ + $process_24(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InvertedPortProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InvertedPortProcessor', 1605); +function $computePortLabelBox(dummyPort, labelLabelSpacing){ + var label_0, label$iterator, labelSize, result; + if (dummyPort.labels.array.length == 0) { + return null; + } + else { + result = new ElkRectangle; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + labelSize = label_0.size_0; + result.width_0 = $wnd.Math.max(result.width_0, labelSize.x_0); + result.height += labelSize.y_0; + } + result.height += (dummyPort.labels.array.length - 1) * labelLabelSpacing; + return result; + } +} + +function $lambda$2(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3, dummy_3){ + $placeExternalPortDummyLabels(dummy_3, portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3); +} + +function $placeExternalPortDummyLabels(dummy, graphPortLabelPlacement, placeNextToPortIfPossible, treatAsGroup){ + var currentY, dummyPort, dummyPortPos, dummySize, label_0, label$iterator, labelHeight, labelLabelSpacing, labelPortSpacingHorizontal, labelPortSpacingVertical, labelPos, portLabelBox; + labelPortSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, ($clinit_LayeredOptions() , SPACING_LABEL_PORT_HORIZONTAL)))); + labelPortSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); + dummySize = dummy.size_0; + dummyPort = castTo($get_11(dummy.ports, 0), 12); + dummyPortPos = dummyPort.pos; + portLabelBox = $computePortLabelBox(dummyPort, labelLabelSpacing); + if (!portLabelBox) { + return; + } + if (graphPortLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64).ordinal) { + case 1: + portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; + portLabelBox.y_0 = labelPortSpacingVertical; + break; + case 3: + portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; + portLabelBox.y_0 = -labelPortSpacingVertical - portLabelBox.height; + break; + case 2: + if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 72).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; + } + + portLabelBox.x_0 = -labelPortSpacingHorizontal - portLabelBox.width_0; + break; + case 4: + if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 72).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; + } + + portLabelBox.x_0 = labelPortSpacingHorizontal; + } + } + else if (graphPortLabelPlacement.contains(OUTSIDE_0)) { + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64).ordinal) { + case 1: + case 3: + portLabelBox.x_0 = dummyPortPos.x_0 + labelPortSpacingHorizontal; + break; + case 2: + case 4: + if (placeNextToPortIfPossible && !dummyPort.connectedToExternalNodes) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 72).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummyPortPos.y_0 + labelPortSpacingVertical; + } + + } + } + currentY = portLabelBox.y_0; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + labelPos = label_0.pos; + labelPos.x_0 = portLabelBox.x_0; + labelPos.y_0 = currentY; + currentY += label_0.size_0.y_0 + labelLabelSpacing; + } +} + +function $process_25(layeredGraph, monitor){ + var layer, layer$iterator, placeNextToPort, portLabelPlacement, treatAsGroup; + monitor.begin('Node and Port Label Placement and Node Sizing', 1); + calculateLabelAndNodeSizes(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, true, true, new LabelAndNodeSizeProcessor$lambda$0$Type))); + if (castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + portLabelPlacement = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_LABELS_PLACEMENT_1)), 21); + placeNextToPort = portLabelPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + treatAsGroup = $booleanValue(castToBoolean($getProperty(layeredGraph, PORT_LABELS_TREAT_AS_GROUP))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layer.nodes, 16)), new LabelAndNodeSizeProcessor$lambda$1$Type), new LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement, placeNextToPort, treatAsGroup)); + } + } + monitor.done_1(); +} + +function LabelAndNodeSizeProcessor(){ +} + +defineClass(1606, 1, $intern_105, LabelAndNodeSizeProcessor); +_.process = function process_23(layeredGraph, monitor){ + $process_25(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor', 1606); +function LabelAndNodeSizeProcessor$lambda$0$Type(){ +} + +defineClass(1607, 1, $intern_40, LabelAndNodeSizeProcessor$lambda$0$Type); +_.test_0 = function test_38(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$0$Type', 1607); +function LabelAndNodeSizeProcessor$lambda$1$Type(){ +} + +defineClass(1608, 1, $intern_40, LabelAndNodeSizeProcessor$lambda$1$Type); +_.test_0 = function test_39(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$1$Type', 1608); +function LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3){ + this.portLabelPlacement_1 = portLabelPlacement_1; + this.placeNextToPort_2 = placeNextToPort_2; + this.treatAsGroup_3 = treatAsGroup_3; +} + +defineClass(1609, 1, $intern_19, LabelAndNodeSizeProcessor$lambda$2$Type); +_.accept = function accept_77(arg0){ + $lambda$2(this.portLabelPlacement_1, this.placeNextToPort_2, this.treatAsGroup_3, castTo(arg0, 10)); +} +; +_.placeNextToPort_2 = false; +_.treatAsGroup_3 = false; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$2$Type', 1609); +function $clinit_LabelDummyInserter(){ + $clinit_LabelDummyInserter = emptyMethod; + CENTER_LABEL = new LabelDummyInserter$1; +} + +function $createLabelDummy(layeredGraph, edge, thickness, representedLabels){ + var dummyNode, dummyPort, dummyPort$iterator, portPos; + dummyNode = new LNode(layeredGraph); + $setType(dummyNode, ($clinit_LNode$NodeType() , LABEL)); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummyNode, REPRESENTED_LABELS, representedLabels); + $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummyNode, LONG_EDGE_SOURCE, edge.source); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, edge.target); + splitEdge(edge, dummyNode); + portPos = $wnd.Math.floor(thickness / 2); + for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { + dummyPort = castTo($next_6(dummyPort$iterator), 12); + dummyPort.pos.y_0 = portPos; + } + return dummyNode; +} + +function $process_26(layeredGraph, monitor){ + var dummyNode, dummySize, edge, edge$iterator, edgeLabelSpacing, iterator, label_0, labelLabelSpacing, layoutDirection, newDummyNodes, node, node$iterator, representedLabels, thickness; + monitor.begin('Label dummy insertions', 1); + newDummyNodes = new ArrayList; + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 88); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (edge.source.owner != edge.target.owner && any_0(edge.labels, CENTER_LABEL)) { + thickness = $retrieveThickness(edge); + representedLabels = newArrayListWithCapacity(edge.labels.array.length); + dummyNode = $createLabelDummy(layeredGraph, edge, thickness, representedLabels); + push_1(newDummyNodes.array, dummyNode); + dummySize = dummyNode.size_0; + iterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (iterator.i < iterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 72)); + if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5))) { + if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { + dummySize.x_0 += label_0.size_0.x_0 + labelLabelSpacing; + dummySize.y_0 = $wnd.Math.max(dummySize.y_0, label_0.size_0.y_0); + } + else { + dummySize.x_0 = $wnd.Math.max(dummySize.x_0, label_0.size_0.x_0); + dummySize.y_0 += label_0.size_0.y_0 + labelLabelSpacing; + } + push_1(representedLabels.array, label_0); + $remove_8(iterator); + } + } + if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { + dummySize.x_0 -= labelLabelSpacing; + dummySize.y_0 += edgeLabelSpacing + thickness; + } + else { + dummySize.y_0 += edgeLabelSpacing - labelLabelSpacing + thickness; + } + } + } + } + $addAll_2(layeredGraph.layerlessNodes, newDummyNodes); + monitor.done_1(); +} + +function $retrieveThickness(edge){ + var thickness; + thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + return thickness; +} + +function LabelDummyInserter(){ + $clinit_LabelDummyInserter(); +} + +defineClass(1610, 1, $intern_105, LabelDummyInserter); +_.process = function process_24(layeredGraph, monitor){ + $process_26(castTo(layeredGraph, 36), monitor); +} +; +var CENTER_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter', 1610); +function LabelDummyInserter$1(){ +} + +defineClass(1611, 1, $intern_89, LabelDummyInserter$1); +_.apply_1 = function apply_88(label_0){ + return maskUndefined($getProperty(castTo(label_0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +_.equals_0 = function equals_118(other){ + return this === other; +} +; +_.test_0 = function test_40(input_0){ + return maskUndefined($getProperty(castTo(input_0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter/1', 1611); +function $placeLabelsForHorizontalLayout(labels, labelPos, labelSpacing, labelSpace){ + var label_0, label$iterator; + for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 72); + label_0.pos.x_0 = labelPos.x_0 + (labelSpace.x_0 - label_0.size_0.x_0) / 2; + label_0.pos.y_0 = labelPos.y_0; + labelPos.y_0 += label_0.size_0.y_0 + labelSpacing; + } +} + +function $placeLabelsForVerticalLayout(labels, labelPos, labelSpacing, labelSpace, leftAligned, layoutDirection){ + var effectiveLabels, inline, label_0, label$iterator; + inline = !$spliterator($filter(labels.stream(), new Predicate$lambda$2$Type(new LabelDummyRemover$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + effectiveLabels = labels; + layoutDirection == ($clinit_Direction_0() , UP_1) && (effectiveLabels = reverse_0(effectiveLabels)); + for (label$iterator = effectiveLabels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 72); + label_0.pos.x_0 = labelPos.x_0; + inline?(label_0.pos.y_0 = labelPos.y_0 + (labelSpace.y_0 - label_0.size_0.y_0) / 2):leftAligned?(label_0.pos.y_0 = labelPos.y_0):(label_0.pos.y_0 = labelPos.y_0 + labelSpace.y_0 - label_0.size_0.y_0); + labelPos.x_0 += label_0.size_0.x_0 + labelSpacing; + } +} + +function $process_27(layeredGraph, monitor){ + var currLabelPos, edgeLabelSpacing, labelLabelSpacing, labelSpace, labelsBelowEdge, layer, layer$iterator, layoutDirection, node, nodeIterator, originEdge, representedLabels, thickness; + monitor.begin('Label dummy removal', 1); + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 88); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + originEdge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 18); + thickness = $doubleValue(castToDouble($getProperty(originEdge, EDGE_THICKNESS_0))); + labelsBelowEdge = maskUndefined($getProperty(node, LABEL_SIDE)) === maskUndefined(($clinit_LabelSide() , BELOW)); + currLabelPos = new KVector_2(node.pos); + labelsBelowEdge && (currLabelPos.y_0 += thickness + edgeLabelSpacing); + labelSpace = new KVector_1(node.size_0.x_0, node.size_0.y_0 + (node.type_0 == LABEL && !$spliterator($filter(castTo($getProperty(node, REPRESENTED_LABELS), 15).stream(), new Predicate$lambda$2$Type(new LNode$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?0:-thickness - edgeLabelSpacing)); + representedLabels = castTo($getProperty(node, REPRESENTED_LABELS), 15); + layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1?$placeLabelsForVerticalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace, labelsBelowEdge, layoutDirection):$placeLabelsForHorizontalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace); + $addAll_2(originEdge.labels, representedLabels); + joinAt(node, maskUndefined($getProperty(layeredGraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , POLYLINE))); + $remove_8(nodeIterator); + } + } + } + monitor.done_1(); +} + +function LabelDummyRemover(){ +} + +defineClass(1612, 1, $intern_105, LabelDummyRemover); +_.process = function process_25(layeredGraph, monitor){ + $process_27(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover', 1612); +function LabelDummyRemover$lambda$0$Type(){ +} + +defineClass(1613, 1, $intern_40, LabelDummyRemover$lambda$0$Type); +_.test_0 = function test_41(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 72), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover/lambda$0$Type', 1613); +function $clinit_LabelDummySwitcher(){ + $clinit_LabelDummySwitcher = emptyMethod; + INCLUDE_LABEL = new Property_0('edgelabelcenterednessanalysis.includelabel', ($clinit_Boolean() , FALSE_0)); +} + +function $assignIdsToLayers(layeredGraph){ + var layer, layer$iterator, layerIndex; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layer.id_0 = layerIndex; + ++layerIndex; + } +} + +function $assignLayer(this$static, labelDummyInfo, targetLayerIndex){ + var label_0, label$iterator, newLayerId; + targetLayerIndex != labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1() && $swapNodes(labelDummyInfo.labelDummy, $ithDummyNode(labelDummyInfo, targetLayerIndex - labelDummyInfo.leftmostLayerId)); + newLayerId = labelDummyInfo.labelDummy.layer.id_0; + this$static.layerWidths[newLayerId] = $wnd.Math.max(this$static.layerWidths[newLayerId], labelDummyInfo.labelDummy.size_0.x_0); + for (label$iterator = castTo($getProperty(labelDummyInfo.labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 72); + $setProperty_0(label_0, INCLUDE_LABEL, ($clinit_Boolean() , true)); + } +} + +function $assignToWiderLayer(this$static, labelDummyInfo){ + var dummyWidth, layer, layer$iterator, validLayers; + dummyWidth = labelDummyInfo.labelDummy.size_0.x_0; + validLayers = new AbstractList$SubList($getGraph(labelDummyInfo.labelDummy).layers, labelDummyInfo.leftmostLayerId, labelDummyInfo.rightmostLayerId + 1); + for (layer$iterator = new AbstractList$IteratorImpl(validLayers); layer$iterator.i < layer$iterator.this$01_0.size_1();) { + layer = (checkCriticalElement(layer$iterator.i < layer$iterator.this$01_0.size_1()) , castTo(layer$iterator.this$01_0.get_0(layer$iterator.last = layer$iterator.i++), 30)); + if (layer.size_0.x_0 >= dummyWidth) { + $assignLayer(this$static, labelDummyInfo, layer.id_0); + return true; + } + } + return false; +} + +function $calculateLayerWidths(this$static, layeredGraph){ + var layer, layer$iterator; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + this$static.layerWidths[layer.id_0] = findMaxNonDummyNodeWidth(layer); + } +} + +function $computeLayerWidthSums(this$static, labelDummyInfo){ + var currentIndex, currentWidthSum, edgeNodeSpacing, layerWidthSums, leftDummy, leftDummy$iterator, lgraph, minSpaceBetweenLayers, nodeNodeSpacing, rightDummy, rightDummy$iterator; + lgraph = $getGraph(labelDummyInfo.labelDummy); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE_BETWEEN_LAYERS_0)))) * 2; + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + minSpaceBetweenLayers = $wnd.Math.max(edgeNodeSpacing, nodeNodeSpacing); + layerWidthSums = initUnidimensionalArray(D_classLit, $intern_66, 28, labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1, 15, 1); + currentWidthSum = -minSpaceBetweenLayers; + currentIndex = 0; + for (leftDummy$iterator = labelDummyInfo.leftLongEdgeDummies.iterator_0(); leftDummy$iterator.hasNext_0();) { + leftDummy = castTo(leftDummy$iterator.next_1(), 10); + currentWidthSum += this$static.layerWidths[leftDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + } + currentWidthSum += this$static.layerWidths[labelDummyInfo.labelDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + for (rightDummy$iterator = new ArrayList$1(labelDummyInfo.rightLongEdgeDummies); rightDummy$iterator.i < rightDummy$iterator.this$01.array.length;) { + rightDummy = castTo($next_6(rightDummy$iterator), 10); + currentWidthSum += this$static.layerWidths[rightDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + } + return layerWidthSums; +} + +function $computeSpaceEfficientAssignment(this$static, labelDummyInfos){ + var labelCount, labelIndex, nonTrivialLabels; + nonTrivialLabels = $performTrivialAssignments(this$static, labelDummyInfos); + if (nonTrivialLabels.array.length == 0) { + return; + } + $sort(nonTrivialLabels, new LabelDummySwitcher$lambda$4$Type); + labelCount = nonTrivialLabels.array.length; + for (labelIndex = 0; labelIndex < labelCount; labelIndex++) { + $assignLayer(this$static, (checkCriticalElementIndex(labelIndex, nonTrivialLabels.array.length) , castTo(nonTrivialLabels.array[labelIndex], 293)), $findPotentiallyWidestLayer(this$static, nonTrivialLabels, labelIndex)); + } +} + +function $doUpdateLongEdgeLabelDummyInfo(labelDummy){ + var longEdgeDummy; + longEdgeDummy = ($clinit_LabelDummySwitcher() , castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner); + while (longEdgeDummy.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_BEFORE_LABEL_DUMMY), ($clinit_Boolean() , true)); + longEdgeDummy = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(longEdgeDummy).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner; + } +} + +function $findCenterLayerTargetId(this$static, labelDummyInfo){ + var i, layerWidthSums, threshold; + layerWidthSums = $computeLayerWidthSums(this$static, labelDummyInfo); + threshold = layerWidthSums[layerWidthSums.length - 1] / 2; + for (i = 0; i < layerWidthSums.length; i++) { + if (layerWidthSums[i] >= threshold) { + return labelDummyInfo.leftmostLayerId + i; + } + } + return labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1(); +} + +function $findPotentiallyWidestLayer(this$static, labelDummyInfos, labelIndex){ + var currLabelInfo, label_0, labelCount, labelDummyInfo, labelDummyWidth, largestUnassignedLabel, layer, potentialWidth, widestLayerIndex, widestLayerWidth; + labelCount = labelDummyInfos.array.length; + labelDummyInfo = (checkCriticalElementIndex(labelIndex, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[labelIndex], 293)); + labelDummyWidth = labelDummyInfo.labelDummy.size_0.x_0; + widestLayerIndex = labelDummyInfo.leftmostLayerId; + widestLayerWidth = 0; + for (layer = labelDummyInfo.leftmostLayerId; layer <= labelDummyInfo.rightmostLayerId; layer++) { + if (labelDummyWidth <= this$static.layerWidths[layer]) { + return layer; + } + potentialWidth = this$static.layerWidths[layer]; + largestUnassignedLabel = null; + for (label_0 = labelIndex + 1; label_0 < labelCount; label_0++) { + currLabelInfo = (checkCriticalElementIndex(label_0, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[label_0], 293)); + currLabelInfo.leftmostLayerId <= layer && currLabelInfo.rightmostLayerId >= layer && (largestUnassignedLabel = currLabelInfo); + } + !!largestUnassignedLabel && (potentialWidth = $wnd.Math.max(potentialWidth, largestUnassignedLabel.labelDummy.size_0.x_0)); + if (potentialWidth > widestLayerWidth) { + widestLayerIndex = layer; + widestLayerWidth = potentialWidth; + } + } + return widestLayerIndex; +} + +function $findWidestLayerTargetId(this$static, labelDummyInfo){ + var index_0, widestLayerIndex; + widestLayerIndex = labelDummyInfo.leftmostLayerId; + for (index_0 = widestLayerIndex + 1; index_0 <= labelDummyInfo.rightmostLayerId; index_0++) { + this$static.layerWidths[index_0] > this$static.layerWidths[widestLayerIndex] && (widestLayerIndex = index_0); + } + return widestLayerIndex; +} + +function $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy){ + var infos, strategy, strategy$array, strategy$index, strategy$max; + infos = new EnumMap(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit); + for (strategy$array = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_37, 232, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { + strategy = strategy$array[strategy$index]; + $put_8(infos, strategy, new ArrayList); + } + $forEach_3($map($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new LabelDummySwitcher$lambda$0$Type), new LabelDummySwitcher$lambda$1$Type), new LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy)), new LabelDummySwitcher$lambda$3$Type(infos)); + return infos; +} + +function $isPartOfReversedEdge(labelDummyInfo){ + var incoming, outgoing; + incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 18); + outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 18); + return $booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || $booleanValue(castToBoolean($getProperty(outgoing, REVERSED))); +} + +function $performTrivialAssignments(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, remainingLabels; + remainingLabels = new ArrayList_0(labelDummyInfos.size_1()); + for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { + labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 293); + labelDummyInfo.leftmostLayerId == labelDummyInfo.rightmostLayerId?$assignLayer(this$static, labelDummyInfo, labelDummyInfo.leftmostLayerId):$assignToWiderLayer(this$static, labelDummyInfo) || (push_1(remainingLabels.array, labelDummyInfo) , true); + } + return remainingLabels; +} + +function $process_28(this$static, layeredGraph, monitor){ + var defaultPlacementStrategy, labelDummyInfos, strategy, strategy$array, strategy$array0, strategy$array1, strategy$index, strategy$index0, strategy$index1, strategy$max, strategy$max0, strategy$max1; + monitor.begin('Label dummy switching', 1); + defaultPlacementStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)), 232); + $assignIdsToLayers(layeredGraph); + labelDummyInfos = $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy); + this$static.layerWidths = initUnidimensionalArray(D_classLit, $intern_66, 28, layeredGraph.layers.array.length, 15, 1); + for (strategy$array0 = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_37, 232, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index0 = 0 , strategy$max0 = strategy$array0.length; strategy$index0 < strategy$max0; ++strategy$index0) { + strategy = strategy$array0[strategy$index0]; + if ((strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && !castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15).isEmpty()) { + $calculateLayerWidths(this$static, layeredGraph); + break; + } + } + for (strategy$array1 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_37, 232, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index1 = 0 , strategy$max1 = strategy$array1.length; strategy$index1 < strategy$max1; ++strategy$index1) { + strategy = strategy$array1[strategy$index1]; + strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER || $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); + } + for (strategy$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_37, 232, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { + strategy = strategy$array[strategy$index]; + (strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); + } + this$static.layerWidths = null; + monitor.done_1(); +} + +function $processStrategy(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, reversed, reversed0, layers, lowerMedian; + if (labelDummyInfos.isEmpty()) { + return; + } + if (castTo(labelDummyInfos.get_0(0), 293).placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , SPACE_EFFICIENT_LAYER)) { + $computeSpaceEfficientAssignment(this$static, labelDummyInfos); + } + else { + for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { + labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 293); + switch (labelDummyInfo.placementStrategy.ordinal) { + case 5: + $assignLayer(this$static, labelDummyInfo, $findCenterLayerTargetId(this$static, labelDummyInfo)); + break; + case 0: + $assignLayer(this$static, labelDummyInfo, (layers = labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1 , lowerMedian = (layers - 1) / 2 | 0 , labelDummyInfo.leftmostLayerId + lowerMedian)); + break; + case 4: + $assignLayer(this$static, labelDummyInfo, $findWidestLayerTargetId(this$static, labelDummyInfo)); + break; + case 2: + $setEndLayerNodeAlignment(labelDummyInfo); + $assignLayer(this$static, labelDummyInfo, (reversed0 = $isPartOfReversedEdge(labelDummyInfo) , reversed0?labelDummyInfo.leftmostLayerId:labelDummyInfo.rightmostLayerId)); + break; + case 1: + $setEndLayerNodeAlignment(labelDummyInfo); + $assignLayer(this$static, labelDummyInfo, (reversed = $isPartOfReversedEdge(labelDummyInfo) , reversed?labelDummyInfo.rightmostLayerId:labelDummyInfo.leftmostLayerId)); + } + $doUpdateLongEdgeLabelDummyInfo(labelDummyInfo.labelDummy); + } + } +} + +function $setEndLayerNodeAlignment(labelDummyInfo){ + var isHeadLabel, isPartOfReversedEdge; + isHeadLabel = labelDummyInfo.placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , HEAD_LAYER); + isPartOfReversedEdge = $isPartOfReversedEdge(labelDummyInfo); + isHeadLabel && !isPartOfReversedEdge || !isHeadLabel && isPartOfReversedEdge?$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , RIGHT_5)):$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , LEFT_5)); +} + +function $swapNodes(labelDummy, longEdgeDummy){ + var dummy1LayerPosition, dummy2LayerPosition, edge, edge$array, edge$array0, edge$array1, edge$array2, edge$index, edge$index0, edge$index1, edge$index2, edge$max, edge$max0, edge$max1, edge$max2, incomingEdges1, incomingEdges2, inputPort1, inputPort2, layer1, layer2, outgoingEdges1, outgoingEdges2, outputPort1, outputPort2; + layer1 = labelDummy.layer; + layer2 = longEdgeDummy.layer; + dummy1LayerPosition = $indexOf_3(layer1.nodes, labelDummy, 0); + dummy2LayerPosition = $indexOf_3(layer2.nodes, longEdgeDummy, 0); + inputPort1 = castTo($getPorts(labelDummy, ($clinit_PortType() , INPUT)).iterator_0().next_1(), 12); + outputPort1 = castTo($getPorts(labelDummy, OUTPUT).iterator_0().next_1(), 12); + inputPort2 = castTo($getPorts(longEdgeDummy, INPUT).iterator_0().next_1(), 12); + outputPort2 = castTo($getPorts(longEdgeDummy, OUTPUT).iterator_0().next_1(), 12); + incomingEdges1 = toEdgeArray(inputPort1.incomingEdges); + outgoingEdges1 = toEdgeArray(outputPort1.outgoingEdges); + incomingEdges2 = toEdgeArray(inputPort2.incomingEdges); + outgoingEdges2 = toEdgeArray(outputPort2.outgoingEdges); + $setLayer(labelDummy, dummy2LayerPosition, layer2); + for (edge$array0 = incomingEdges2 , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { + edge = edge$array0[edge$index0]; + $setTarget_0(edge, inputPort1); + } + for (edge$array1 = outgoingEdges2 , edge$index1 = 0 , edge$max1 = edge$array1.length; edge$index1 < edge$max1; ++edge$index1) { + edge = edge$array1[edge$index1]; + $setSource_0(edge, outputPort1); + } + $setLayer(longEdgeDummy, dummy1LayerPosition, layer1); + for (edge$array2 = incomingEdges1 , edge$index2 = 0 , edge$max2 = edge$array2.length; edge$index2 < edge$max2; ++edge$index2) { + edge = edge$array2[edge$index2]; + $setTarget_0(edge, inputPort2); + } + for (edge$array = outgoingEdges1 , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, outputPort2); + } +} + +function LabelDummySwitcher(){ + $clinit_LabelDummySwitcher(); +} + +function lambda$2_4(defaultPlacementStrategy_0, labelDummy_1){ + $clinit_LabelDummySwitcher(); + return new LabelDummySwitcher$LabelDummyInfo(labelDummy_1, defaultPlacementStrategy_0); +} + +function lambda$3_1(infos_0, dummyInfo_1){ + $clinit_LabelDummySwitcher(); + return castTo($get_14(infos_0, dummyInfo_1.placementStrategy), 15).add_2(dummyInfo_1); +} + +function lambda$4_5(info1_0, info2_1){ + $clinit_LabelDummySwitcher(); + return compare_4(info2_1.labelDummy.size_0.x_0, info1_0.labelDummy.size_0.x_0); +} + +defineClass(1378, 1, $intern_105, LabelDummySwitcher); +_.process = function process_26(layeredGraph, monitor){ + $process_28(this, castTo(layeredGraph, 36), monitor); +} +; +_.layerWidths = null; +var INCLUDE_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher', 1378); +function $gatherLeftLongEdgeDummies(this$static){ + var source; + source = this$static.labelDummy; + do { + source = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(source).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner; + source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && this$static.leftLongEdgeDummies.add_2(source); + } + while (source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); + this$static.leftLongEdgeDummies = reverse_0(this$static.leftLongEdgeDummies); +} + +function $gatherRightLongEdgeDummies(this$static){ + var target; + target = this$static.labelDummy; + do { + target = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(target).val$inputs1.iterator_0(), new Iterables$10))), 18).target.owner; + target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $add_3(this$static.rightLongEdgeDummies, target); + } + while (target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); +} + +function $ithDummyNode(this$static, i){ + return i < this$static.leftLongEdgeDummies.size_1()?castTo(this$static.leftLongEdgeDummies.get_0(i), 10):i == this$static.leftLongEdgeDummies.size_1()?this$static.labelDummy:castTo($get_11(this$static.rightLongEdgeDummies, i - this$static.leftLongEdgeDummies.size_1() - 1), 10); +} + +function LabelDummySwitcher$LabelDummyInfo(labelDummy, defaultPlacementStrategy){ + var label_0, label$iterator; + this.leftLongEdgeDummies = new ArrayList; + this.rightLongEdgeDummies = new ArrayList; + this.labelDummy = labelDummy; + this.placementStrategy = defaultPlacementStrategy; + $gatherLeftLongEdgeDummies(this); + $gatherRightLongEdgeDummies(this); + this.leftLongEdgeDummies.isEmpty()?(this.leftmostLayerId = labelDummy.layer.id_0):(this.leftmostLayerId = castTo(this.leftLongEdgeDummies.get_0(0), 10).layer.id_0); + this.rightLongEdgeDummies.array.length == 0?(this.rightmostLayerId = labelDummy.layer.id_0):(this.rightmostLayerId = castTo($get_11(this.rightLongEdgeDummies, this.rightLongEdgeDummies.array.length - 1), 10).layer.id_0); + for (label$iterator = castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 72); + if ($hasProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0))) { + this.placementStrategy = castTo($getProperty(label_0, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0), 232); + break; + } + } +} + +defineClass(293, 1, {293:1}, LabelDummySwitcher$LabelDummyInfo); +_.leftmostLayerId = 0; +_.placementStrategy = null; +_.rightmostLayerId = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$LabelDummyInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/LabelDummyInfo', 293); +function LabelDummySwitcher$lambda$0$Type(){ +} + +defineClass(1379, 1, {}, LabelDummySwitcher$lambda$0$Type); +_.apply_0 = function apply_89(arg0){ + return $clinit_LabelDummySwitcher() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$0$Type', 1379); +function LabelDummySwitcher$lambda$1$Type(){ +} + +defineClass(1380, 1, $intern_40, LabelDummySwitcher$lambda$1$Type); +_.test_0 = function test_42(arg0){ + return $clinit_LabelDummySwitcher() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , LABEL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$1$Type', 1380); +function LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy_0){ + this.defaultPlacementStrategy_0 = defaultPlacementStrategy_0; +} + +defineClass(1381, 1, {}, LabelDummySwitcher$lambda$2$Type); +_.apply_0 = function apply_90(arg0){ + return lambda$2_4(this.defaultPlacementStrategy_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$2$Type', 1381); +function LabelDummySwitcher$lambda$3$Type(infos_0){ + this.infos_0 = infos_0; +} + +defineClass(1382, 1, $intern_19, LabelDummySwitcher$lambda$3$Type); +_.accept = function accept_78(arg0){ + lambda$3_1(this.infos_0, castTo(arg0, 293)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$3$Type', 1382); +function LabelDummySwitcher$lambda$4$Type(){ +} + +defineClass(1383, 1, $intern_88, LabelDummySwitcher$lambda$4$Type); +_.compare_1 = function compare_46(arg0, arg1){ + return lambda$4_5(castTo(arg0, 293), castTo(arg1, 293)); +} +; +_.equals_0 = function equals_119(other){ + return this === other; +} +; +_.reversed = function reversed_38(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$4$Type', 1383); +function $process_29(layeredGraph, monitor){ + monitor.begin('Label management', 1); + throwClassCastExceptionUnlessNull($getProperty(layeredGraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + monitor.done_1(); +} + +function LabelManagementProcessor(){ +} + +defineClass(802, 1, $intern_105, LabelManagementProcessor); +_.process = function process_27(layeredGraph, monitor){ + $process_29(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelManagementProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelManagementProcessor', 802); +function $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide){ + var currLongEdgeSource, currLongEdgeTarget, currentDummy, currentDummy$iterator, endPort, endPort0, labelDummyRun, prevLongEdgeSource, prevLongEdgeTarget; + labelDummyRun = newArrayListWithCapacity(dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1); + prevLongEdgeSource = null; + prevLongEdgeTarget = null; + for (currentDummy$iterator = new ArrayDeque$IteratorImpl(dummyNodes); currentDummy$iterator.currentIndex != currentDummy$iterator.fence;) { + currentDummy = castTo($next_5(currentDummy$iterator), 10); + currLongEdgeSource = (endPort0 = castTo($getProperty(currentDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE)), 12) , !endPort0?null:endPort0.owner); + currLongEdgeTarget = (endPort = castTo($getProperty(currentDummy, LONG_EDGE_TARGET), 12) , !endPort?null:endPort.owner); + if (prevLongEdgeSource != currLongEdgeSource || prevLongEdgeTarget != currLongEdgeTarget) { + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); + prevLongEdgeSource = currLongEdgeSource; + prevLongEdgeTarget = currLongEdgeTarget; + } + push_1(labelDummyRun.array, currentDummy); + } + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); +} + +function $applyLabelSide(labels, side){ + var label_0, label$iterator; + for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 72); + $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); + } +} + +function $applyLabelSide_0(edge, side){ + var label_0, label$iterator; + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); + } +} + +function $applyLabelSide_1(labelDummy, side){ + var effectiveSide, originEdge, port, port$iterator, portPos, thickness; + if (labelDummy.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + effectiveSide = labelDummy.type_0 == LABEL && !$spliterator($filter(castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).stream(), new Predicate$lambda$2$Type(new LNode$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?($clinit_LabelSide() , INLINE):side; + $setProperty_0(labelDummy, ($clinit_InternalProperties_1() , LABEL_SIDE), effectiveSide); + if (effectiveSide != ($clinit_LabelSide() , BELOW)) { + originEdge = castTo($getProperty(labelDummy, ORIGIN_0), 18); + thickness = $doubleValue(castToDouble($getProperty(originEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + portPos = 0; + if (effectiveSide == ABOVE) { + portPos = labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness / 2); + } + else if (effectiveSide == INLINE) { + portPos = $wnd.Math.ceil(labelDummy.size_0.y_0 - $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))) - thickness) / 2; + labelDummy.size_0.y_0 -= $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))); + labelDummy.size_0.y_0 -= thickness; + } + for (port$iterator = new ArrayList$1(labelDummy.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.pos.y_0 = portPos; + } + } + } +} + +function $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide){ + var dummyNode, dummyNode$iterator; + if (labelDummyRun.array.length != 0) { + if (labelDummyRun.array.length == 2) { + $applyLabelSide_1((checkCriticalElementIndex(0, labelDummyRun.array.length) , castTo(labelDummyRun.array[0], 10)), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide_1((checkCriticalElementIndex(1, labelDummyRun.array.length) , castTo(labelDummyRun.array[1], 10)), BELOW); + } + else { + for (dummyNode$iterator = new ArrayList$1(labelDummyRun); dummyNode$iterator.i < dummyNode$iterator.this$01.array.length;) { + dummyNode = castTo($next_6(dummyNode$iterator), 10); + $applyLabelSide_1(dummyNode, defaultSide); + } + } + labelDummyRun.array.length = 0; + } +} + +function $basedOnDirection(graph, sideForRightwardEdges){ + var edge, edge$iterator, layer, layer$iterator, node, node$iterator, side, incoming, outgoing; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + side = (incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 18) , outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 18) , !$booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || !$booleanValue(castToBoolean($getProperty(outgoing, REVERSED))))?sideForRightwardEdges:$opposite_0(sideForRightwardEdges); + $applyLabelSide_1(node, side); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + side = $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))?$opposite_0(sideForRightwardEdges):sideForRightwardEdges; + $applyLabelSide_0(edge, side); + } + } + } +} + +function $process_30(layeredGraph, monitor){ + var mode; + mode = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 283); + monitor.begin('Label side selection (' + mode + ')', 1); + switch (mode.ordinal) { + case 0: + $sameSide(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 1: + $sameSide(layeredGraph, ($clinit_LabelSide() , BELOW)); + break; + case 2: + $basedOnDirection(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 3: + $basedOnDirection(layeredGraph, ($clinit_LabelSide() , BELOW)); + break; + case 4: + $smart(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 5: + $smart(layeredGraph, ($clinit_LabelSide() , BELOW)); + } + monitor.done_1(); +} + +function $sameSide(graph, labelSide){ + var edge, edge$iterator, layer, layer$iterator, node, node$iterator; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.type_0 == ($clinit_LNode$NodeType() , LABEL) && $applyLabelSide_1(node, labelSide); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + $applyLabelSide_0(edge, labelSide); + } + } + } +} + +function $smart(graph, defaultSide){ + var dummyNodeQueue, labelDummiesInQueue, layer, layer$iterator, node, node$iterator, topGroup; + dummyNodeQueue = new ArrayDeque; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + topGroup = true; + labelDummiesInQueue = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + switch (node.type_0.ordinal) { + case 4: + ++labelDummiesInQueue; + case 1: + $addLast(dummyNodeQueue, node); + break; + case 0: + $smartForRegularNode(node, defaultSide); + default:dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, false, defaultSide); + topGroup = false; + labelDummiesInQueue = 0; + } + } + dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, true, defaultSide); + } +} + +function $smartForConsecutiveDummyNodeRun(dummyNodes, labelDummyCount, topGroup, bottomGroup, defaultSide){ + if (topGroup && (!bottomGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.head], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.head], 10), ($clinit_LabelSide() , ABOVE)); + } + else if (bottomGroup && (!topGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10), ($clinit_LabelSide() , BELOW)); + } + else if ((dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) == 2) { + $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), BELOW); + } + else { + $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide); + } + $clear_4(dummyNodes); +} + +function $smartForRegularNode(node, defaultSide){ + var currentPortSide, endLabelQueue, port, port$iterator, portEndLabels; + endLabelQueue = new ArrayDeque_0(node.ports.array.length); + currentPortSide = null; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if (port.side != currentPortSide) { + endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); + $clear_4(endLabelQueue); + currentPortSide = port.side; + } + portEndLabels = gatherLabels(port); + !!portEndLabels && ($addLast(endLabelQueue, portEndLabels) , true); + } + endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); +} + +function $smartForRegularNodePortEndLabels(endLabelQueue, portSide, defaultSide){ + var labelList, labelList$iterator; + if ((endLabelQueue.tail - endLabelQueue.head & endLabelQueue.array.length - 1) == 2) { + if (portSide == ($clinit_PortSide() , NORTH_3) || portSide == EAST_2) { + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), BELOW); + } + else { + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , BELOW)); + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ABOVE); + } + } + else { + for (labelList$iterator = new ArrayDeque$IteratorImpl(endLabelQueue); labelList$iterator.currentIndex != labelList$iterator.fence;) { + labelList = castTo($next_5(labelList$iterator), 15); + $applyLabelSide(labelList, defaultSide); + } + } +} + +function LabelSideSelector(){ +} + +defineClass(1614, 1, $intern_105, LabelSideSelector); +_.process = function process_28(layeredGraph, monitor){ + $process_30(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector', 1614); +function $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer){ + var layer, layer$iterator, layerIter, node, node$array, node$index, node$max, nodes; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + nodes = toNodeArray(layer.nodes); + for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171).ordinal) { + case 1: + $throwUpUnlessNoIncomingEdges(node); + $setLayer_0(node, firstLayer); + $moveLabelsToLabelLayer(node, true, firstLabelLayer); + break; + case 3: + $throwUpUnlessNoOutgoingEdges(node); + $setLayer_0(node, lastLayer); + $moveLabelsToLabelLayer(node, false, lastLabelLayer); + } + } + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)).nodes.array.length == 0 && $remove_8(layerIter); + } +} + +function $moveLabelsToLabelLayer(node, incoming, labelLayer){ + var edge, edge$iterator, possibleLableDummy; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2((incoming?$getIncomingEdges(node):$getOutgoingEdges(node)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + possibleLableDummy = incoming?edge.source.owner:edge.target.owner; + possibleLableDummy.type_0 == ($clinit_LNode$NodeType() , LABEL) && $setLayer_0(possibleLableDummy, labelLayer); + } +} + +function $process_31(layeredGraph, monitor){ + var firstLabelLayer, firstLayer, firstSeparateLayer, lastLabelLayer, lastLayer, lastSeparateLayer, layers; + monitor.begin('Layer constraint postprocessing', 1); + layers = layeredGraph.layers; + if (layers.array.length != 0) { + firstLayer = (checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 30)); + lastLayer = castTo($get_11(layers, layers.array.length - 1), 30); + firstLabelLayer = new Layer(layeredGraph); + lastLabelLayer = new Layer(layeredGraph); + $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer); + firstLabelLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstLabelLayer)); + lastLabelLayer.nodes.array.length == 0 || (push_1(layers.array, lastLabelLayer) , true); + } + if ($hasProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES))) { + firstSeparateLayer = new Layer(layeredGraph); + lastSeparateLayer = new Layer(layeredGraph); + $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer); + firstSeparateLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstSeparateLayer)); + lastSeparateLayer.nodes.array.length == 0 || (push_1(layers.array, lastSeparateLayer) , true); + } + monitor.done_1(); +} + +function $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer){ + var hiddenEdge, hiddenEdge$iterator, hiddenNode, hiddenNode$iterator, isOutgoing, originalOppositePort; + for (hiddenNode$iterator = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES)), 15).iterator_0(); hiddenNode$iterator.hasNext_0();) { + hiddenNode = castTo(hiddenNode$iterator.next_1(), 10); + switch (castTo($getProperty(hiddenNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171).ordinal) { + case 2: + $setLayer_0(hiddenNode, firstSeparateLayer); + break; + case 4: + $setLayer_0(hiddenNode, lastSeparateLayer); + } + for (hiddenEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(hiddenNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(hiddenEdge$iterator);) { + hiddenEdge = castTo($next_0(hiddenEdge$iterator), 18); + if (!!hiddenEdge.source && !!hiddenEdge.target) { + continue; + } + isOutgoing = !hiddenEdge.target; + originalOppositePort = castTo($getProperty(hiddenEdge, ORIGINAL_OPPOSITE_PORT), 12); + isOutgoing?$setTarget_0(hiddenEdge, originalOppositePort):$setSource_0(hiddenEdge, originalOppositePort); + } + } +} + +function $throwUpUnlessNoIncomingEdges(node){ + var incoming, incoming$iterator; + for (incoming$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incoming$iterator);) { + incoming = castTo($next_0(incoming$iterator), 18); + if (incoming.source.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to FIRST, but has at least one incoming edge that " + ' does not come from a FIRST_SEPARATE node. That must not happen.')); + } + } +} + +function $throwUpUnlessNoOutgoingEdges(node){ + var outgoing, outgoing$iterator; + for (outgoing$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoing$iterator);) { + outgoing = castTo($next_0(outgoing$iterator), 18); + if (outgoing.target.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to LAST, but has at least one outgoing edge that " + ' does not go to a LAST_SEPARATE node. That must not happen.')); + } + } +} + +function LayerConstraintPostprocessor(){ +} + +defineClass(1622, 1, $intern_105, LayerConstraintPostprocessor); +_.process = function process_29(layeredGraph, monitor){ + $process_31(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPostprocessor', 1622); +function $clinit_LayerConstraintPreprocessor(){ + $clinit_LayerConstraintPreprocessor = emptyMethod; + HIDDEN_NODE_CONNECTIONS = new Property_0('separateLayerConnections', ($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , NONE_0)); +} + +function $ensureNoInacceptableEdges(lNode){ + var inEdge, inEdge$iterator, layerConstraint, outEdge, outEdge$iterator; + layerConstraint = castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171); + if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + for (inEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inEdge$iterator);) { + inEdge = castTo($next_0(inEdge$iterator), 18); + if (!$isAcceptableIncidentEdge(inEdge)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. " + 'FIRST_SEPARATE nodes must not have incoming edges.')); + } + } + } + else if (layerConstraint == LAST_SEPARATE_0) { + for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { + outEdge = castTo($next_0(outEdge$iterator), 18); + if (!$isAcceptableIncidentEdge(outEdge)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. " + 'LAST_SEPARATE nodes must not have outgoing edges.')); + } + } + } +} + +function $hide(lNode){ + var lEdge, lEdge$iterator, isOutgoing, oppositePort; + $ensureNoInacceptableEdges(lNode); + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 18); + isOutgoing = lEdge.source.owner == lNode; + oppositePort = isOutgoing?lEdge.target:lEdge.source; + isOutgoing?$setTarget_0(lEdge, null):$setSource_0(lEdge, null); + $setProperty_0(lEdge, ($clinit_InternalProperties_1() , ORIGINAL_OPPOSITE_PORT), oppositePort); + $updateOppositeNodeLayerConstraints(lNode, oppositePort.owner); + } +} + +function $isAcceptableIncidentEdge(edge){ + var sourceNode, targetNode; + sourceNode = edge.source.owner; + targetNode = edge.target.owner; + return sourceNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && targetNode.type_0 == EXTERNAL_PORT; +} + +function $isRelevantNode(lNode){ + switch (castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171).ordinal) { + case 2: + case 4: + return true; + default:return false; + } +} + +function $process_32(layeredGraph, monitor){ + var hiddenNodes, lNode, nodeIterator; + monitor.begin('Layer constraint preprocessing', 1); + hiddenNodes = new ArrayList; + nodeIterator = new AbstractList$ListIteratorImpl(layeredGraph.layerlessNodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + lNode = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if ($isRelevantNode(lNode)) { + $hide(lNode); + push_1(hiddenNodes.array, lNode); + $remove_8(nodeIterator); + } + } + hiddenNodes.array.length == 0 || $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES), hiddenNodes); + monitor.done_1(); +} + +function $updateOppositeNodeLayerConstraints(hiddenNode, oppositeNode){ + var connections; + if ($hasProperty(oppositeNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0))) { + return; + } + connections = $combine_0(castTo($getProperty(oppositeNode, HIDDEN_NODE_CONNECTIONS), 371), castTo($getProperty(hiddenNode, LAYERING_LAYER_CONSTRAINT_0), 171)); + $setProperty_0(oppositeNode, HIDDEN_NODE_CONNECTIONS, connections); + if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(oppositeNode).val$inputs1.iterator_0(), new Iterables$10)))) { + return; + } + switch (connections.ordinal) { + case 1: + $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); + break; + case 2: + $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); + } +} + +function LayerConstraintPreprocessor(){ + $clinit_LayerConstraintPreprocessor(); +} + +defineClass(1623, 1, $intern_105, LayerConstraintPreprocessor); +_.process = function process_30(layeredGraph, monitor){ + $process_32(castTo(layeredGraph, 36), monitor); +} +; +var HIDDEN_NODE_CONNECTIONS; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor', 1623); +function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections = emptyMethod; + NONE_0 = new LayerConstraintPreprocessor$HiddenNodeConnections('NONE', 0); + FIRST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('FIRST_SEPARATE', 1); + LAST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('LAST_SEPARATE', 2); + BOTH = new LayerConstraintPreprocessor$HiddenNodeConnections('BOTH', 3); +} + +function $combine_0(this$static, layerConstraint){ + switch (this$static.ordinal) { + case 0: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:LAST_SEPARATE; + case 1: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:BOTH; + case 2: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?BOTH:LAST_SEPARATE; + default:return BOTH; + } +} + +function LayerConstraintPreprocessor$HiddenNodeConnections(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_31(name_0){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); + return valueOf(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map() , $MAP_21), name_0); +} + +function values_39(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_37, 371, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]); +} + +defineClass(371, 22, {3:1, 34:1, 22:1, 371:1}, LayerConstraintPreprocessor$HiddenNodeConnections); +var BOTH, FIRST_SEPARATE, LAST_SEPARATE, NONE_0; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor/HiddenNodeConnections', 371, Ljava_lang_Enum_2_classLit, values_39, valueOf_31); +function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map = emptyMethod; + $MAP_21 = createValueOfMap(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_37, 371, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]))); +} + +var $MAP_21; +function $process_33(layeredGraph, monitor){ + var bottom, firstNode, foundNodes, lastNode, layer, layer$iterator, layerSize, maxY, minY, node, node$iterator, nodeMargin, nodeSize, top_0; + monitor.begin('Layer size calculation', 1); + minY = $intern_60; + maxY = $intern_61; + foundNodes = false; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layerSize = layer.size_0; + layerSize.x_0 = 0; + layerSize.y_0 = 0; + if (layer.nodes.array.length == 0) { + continue; + } + foundNodes = true; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + nodeSize = node.size_0; + nodeMargin = node.margin; + layerSize.x_0 = $wnd.Math.max(layerSize.x_0, nodeSize.x_0 + nodeMargin.left + nodeMargin.right); + } + firstNode = castTo($get_11(layer.nodes, 0), 10); + top_0 = firstNode.pos.y_0 - firstNode.margin.top_0; + firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (top_0 -= castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 140).top_0); + lastNode = castTo($get_11(layer.nodes, layer.nodes.array.length - 1), 10); + bottom = lastNode.pos.y_0 + lastNode.size_0.y_0 + lastNode.margin.bottom; + lastNode.type_0 == EXTERNAL_PORT && (bottom += castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 140).bottom); + layerSize.y_0 = bottom - top_0; + minY = $wnd.Math.min(minY, top_0); + maxY = $wnd.Math.max(maxY, bottom); + } + if (!foundNodes) { + minY = 0; + maxY = 0; + } + layeredGraph.size_0.y_0 = maxY - minY; + layeredGraph.offset.y_0 -= minY; + monitor.done_1(); +} + +function LayerSizeAndGraphHeightCalculator(){ +} + +defineClass(1624, 1, $intern_105, LayerSizeAndGraphHeightCalculator); +_.process = function process_31(layeredGraph, monitor){ + $process_33(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerSizeAndGraphHeightCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerSizeAndGraphHeightCalculator', 1624); +function $process_34(layeredGraph, monitor){ + var addUnnecessaryBendpoints, layer, layer$iterator, node, nodeIterator; + monitor.begin('Edge joining', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + joinAt(node, addUnnecessaryBendpoints); + $remove_8(nodeIterator); + } + } + } + monitor.done_1(); +} + +function LongEdgeJoiner(){ +} + +function joinAt(longEdgeDummy, addUnnecessaryBendpoints){ + var bendPoint, bendPoint$iterator, droppedEdge, droppedEdgeListIndex, droppedJunctionsPoints, edgeCount, inputPortEdges, jp, jp$iterator, label_0, label$iterator, outputPortEdges, survivingBendPoints, survivingEdge, survivingJunctionPoints, survivingLabels, targetIncomingEdges, unnecessaryBendpoint; + inputPortEdges = castTo($getPorts_1(longEdgeDummy, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 12).incomingEdges; + outputPortEdges = castTo($getPorts_1(longEdgeDummy, EAST_2).iterator_0().next_1(), 12).outgoingEdges; + edgeCount = inputPortEdges.array.length; + unnecessaryBendpoint = $getAbsoluteAnchor(castTo($get_11(longEdgeDummy.ports, 0), 12)); + while (edgeCount-- > 0) { + survivingEdge = (checkCriticalElementIndex(0, inputPortEdges.array.length) , castTo(inputPortEdges.array[0], 18)); + droppedEdge = (checkCriticalElementIndex(0, outputPortEdges.array.length) , castTo(outputPortEdges.array[0], 18)); + targetIncomingEdges = droppedEdge.target.incomingEdges; + droppedEdgeListIndex = $indexOf_3(targetIncomingEdges, droppedEdge, 0); + $setTargetAndInsertAtIndex(survivingEdge, droppedEdge.target, droppedEdgeListIndex); + $setSource_0(droppedEdge, null); + $setTarget_0(droppedEdge, null); + survivingBendPoints = survivingEdge.bendPoints; + addUnnecessaryBendpoints && $add_7(survivingBendPoints, new KVector_2(unnecessaryBendpoint)); + for (bendPoint$iterator = $listIterator_2(droppedEdge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_9(bendPoint$iterator), 8); + $add_7(survivingBendPoints, new KVector_2(bendPoint)); + } + survivingLabels = survivingEdge.labels; + for (label$iterator = new ArrayList$1(droppedEdge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + push_1(survivingLabels.array, label_0); + } + survivingJunctionPoints = castTo($getProperty(survivingEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + droppedJunctionsPoints = castTo($getProperty(droppedEdge, JUNCTION_POINTS), 75); + if (droppedJunctionsPoints) { + if (!survivingJunctionPoints) { + survivingJunctionPoints = new KVectorChain; + $setProperty_0(survivingEdge, JUNCTION_POINTS, survivingJunctionPoints); + } + for (jp$iterator = $listIterator_2(droppedJunctionsPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_9(jp$iterator), 8); + $add_7(survivingJunctionPoints, new KVector_2(jp)); + } + } + } +} + +defineClass(1625, 1, $intern_105, LongEdgeJoiner); +_.process = function process_32(layeredGraph, monitor){ + $process_34(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeJoiner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeJoiner', 1625); +function $process_35(layeredGraph, monitor){ + var edge, edge$iterator, layer, layerIter, nextLayer, node, node$iterator, port, port$iterator, targetLayer, targetPort, dummyNode; + monitor.begin('Edge splitting', 1); + if (layeredGraph.layers.array.length <= 2) { + monitor.done_1(); + return; + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = nextLayer; + nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer != layer && targetLayer != nextLayer && splitEdge(edge, (dummyNode = new LNode(layeredGraph) , $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)) , $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge) , $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)) , $setLayer_0(dummyNode, nextLayer) , dummyNode)); + } + } + } + } + monitor.done_1(); +} + +function LongEdgeSplitter(){ +} + +function moveHeadLabels(oldEdge, newEdge){ + var label_0, labelIterator, labelPlacement; + labelIterator = new AbstractList$ListIteratorImpl(oldEdge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 72)); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 278); + if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { + $remove_8(labelIterator); + $add_3(newEdge.labels, label_0); + $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, oldEdge); + } + } +} + +function setDummyNodeProperties(dummyNode, inEdge, outEdge){ + var inEdgeSourceNode, outEdgeTargetNode; + inEdgeSourceNode = inEdge.source.owner; + outEdgeTargetNode = outEdge.target.owner; + if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 12)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 12)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, castToBoolean($getProperty(inEdgeSourceNode, LONG_EDGE_HAS_LABEL_DUMMIES))); + } + else if (inEdgeSourceNode.type_0 == LABEL) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 12)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 12)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); + } + else if (outEdgeTargetNode.type_0 == LABEL) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(outEdgeTargetNode, LONG_EDGE_SOURCE), 12)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(outEdgeTargetNode, LONG_EDGE_TARGET), 12)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); + } + else { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, outEdge.target); + } +} + +function splitEdge(edge, dummyNode){ + var dummyEdge, dummyInput, dummyOutput, oldEdgeTarget, portPos, thickness; + oldEdgeTarget = edge.target; + thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + dummyNode.size_0.y_0 = thickness; + portPos = $wnd.Math.floor(thickness / 2); + dummyInput = new LPort; + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInput, dummyNode); + dummyInput.pos.y_0 = portPos; + dummyOutput = new LPort; + $setSide(dummyOutput, EAST_2); + $setNode(dummyOutput, dummyNode); + dummyOutput.pos.y_0 = portPos; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, oldEdgeTarget); + setDummyNodeProperties(dummyNode, edge, dummyEdge); + moveHeadLabels(edge, dummyEdge); + return dummyEdge; +} + +defineClass(1626, 1, $intern_105, LongEdgeSplitter); +_.process = function process_33(layeredGraph, monitor){ + $process_35(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeSplitter', 1626); +function $clinit_NodePromotion(){ + $clinit_NodePromotion = emptyMethod; + MODEL_ORDER_NODE_COMPARATOR_DESC = new NodePromotion$1; + MODEL_ORDER_NODE_COMPARATOR_ASC = new NodePromotion$2; +} + +function $modelOrderNodePromotion(this$static, leftToRight){ + var connectedNode, containsLabels, currentLayer, currentLayerId, modelOrderAllowsPromotion, nextLayer, nextLayerId, nextLayerNode, nextLayerNode$iterator, node, nodeConnectedToNextLayer, nodeIndex, nodeToPromote, nodesToPromote, otherNode, otherNodeIndex, promoteThroughDummyLayer, shallBePromoted, somethingChanged; + somethingChanged = false; + do { + somethingChanged = false; + for (currentLayerId = leftToRight?(new AbstractMap$1(this$static.biLayerMap.multiMapKeyToValues)).this$01.size_1() - 2:1; leftToRight?currentLayerId >= 0:currentLayerId < (new AbstractMap$1(this$static.biLayerMap.multiMapKeyToValues)).this$01.size_1(); currentLayerId += leftToRight?-1:1) { + currentLayer = $getValues(this$static.biLayerMap, valueOf_3(currentLayerId)); + for (nodeIndex = 0; nodeIndex < currentLayer.size_0; nodeIndex++) { + node = castTo($get_7(currentLayer, nodeIndex), 10); + if (!$hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_1))) { + continue; + } + if ($isMaximalKey(this$static.biLayerMap, valueOf_3(currentLayerId)) && this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT) || $isMinimalKey(this$static.biLayerMap, valueOf_3(currentLayerId)) && this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , MODEL_ORDER_RIGHT_TO_LEFT)) { + continue; + } + shallBePromoted = true; + for (otherNodeIndex = 0; otherNodeIndex < currentLayer.size_0; otherNodeIndex++) { + otherNode = castTo($get_7(currentLayer, otherNodeIndex), 10); + $hasProperty(otherNode, MODEL_ORDER_1) && (leftToRight && castTo($getProperty(node, MODEL_ORDER_1), 17).value_0 < castTo($getProperty(otherNode, MODEL_ORDER_1), 17).value_0 || !leftToRight && castTo($getProperty(node, MODEL_ORDER_1), 17).value_0 > castTo($getProperty(otherNode, MODEL_ORDER_1), 17).value_0) && (shallBePromoted = false); + } + if (!shallBePromoted) { + continue; + } + nextLayerId = leftToRight?currentLayerId + 1:currentLayerId - 1; + nextLayer = $getValues(this$static.biLayerMap, valueOf_3(nextLayerId)); + modelOrderAllowsPromotion = false; + promoteThroughDummyLayer = true; + containsLabels = false; + for (nextLayerNode$iterator = $listIterator_2(nextLayer, 0); nextLayerNode$iterator.currentNode != nextLayerNode$iterator.this$01.tail;) { + nextLayerNode = castTo($next_9(nextLayerNode$iterator), 10); + if ($hasProperty(nextLayerNode, MODEL_ORDER_1)) { + if (nextLayerNode.id_0 != node.id_0) { + modelOrderAllowsPromotion = modelOrderAllowsPromotion | (leftToRight?castTo($getProperty(nextLayerNode, MODEL_ORDER_1), 17).value_0 < castTo($getProperty(node, MODEL_ORDER_1), 17).value_0:castTo($getProperty(nextLayerNode, MODEL_ORDER_1), 17).value_0 > castTo($getProperty(node, MODEL_ORDER_1), 17).value_0); + promoteThroughDummyLayer = false; + } + } + else if (!modelOrderAllowsPromotion && promoteThroughDummyLayer) { + if (nextLayerNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + containsLabels = true; + leftToRight?(nodeConnectedToNextLayer = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(nextLayerNode).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner):(nodeConnectedToNextLayer = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(nextLayerNode).val$inputs1.iterator_0(), new Iterables$10))), 18).target.owner); + if (nodeConnectedToNextLayer == node) { + leftToRight?(connectedNode = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(nextLayerNode).val$inputs1.iterator_0(), new Iterables$10))), 18).target.owner):(connectedNode = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(nextLayerNode).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner); + (leftToRight?castTo($getKey_0(this$static.biLayerMap, connectedNode), 17).value_0 - castTo($getKey_0(this$static.biLayerMap, nodeConnectedToNextLayer), 17).value_0:castTo($getKey_0(this$static.biLayerMap, nodeConnectedToNextLayer), 17).value_0 - castTo($getKey_0(this$static.biLayerMap, connectedNode), 17).value_0) <= 2 && (promoteThroughDummyLayer = false); + } + } + } + } + if (containsLabels && promoteThroughDummyLayer) { + leftToRight?(connectedNode = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 18).target.owner):(connectedNode = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner); + (leftToRight?castTo($getKey_0(this$static.biLayerMap, connectedNode), 17).value_0 - castTo($getKey_0(this$static.biLayerMap, node), 17).value_0:castTo($getKey_0(this$static.biLayerMap, node), 17).value_0 - castTo($getKey_0(this$static.biLayerMap, connectedNode), 17).value_0) <= 2 && connectedNode.type_0 == ($clinit_LNode$NodeType() , NORMAL) && (promoteThroughDummyLayer = false); + } + if (modelOrderAllowsPromotion || promoteThroughDummyLayer) { + nodesToPromote = $promoteNodeByModelOrder(this$static, node, leftToRight); + while (nodesToPromote.map_0.size_1() != 0) { + nodeToPromote = castTo(nodesToPromote.map_0.keySet_0().iterator_0().next_1(), 10); + nodesToPromote.map_0.remove_0(nodeToPromote) != null; + $addAll(nodesToPromote, $promoteNodeByModelOrder(this$static, nodeToPromote, leftToRight)); + } + --nodeIndex; + somethingChanged = true; + } + } + } + } + while (somethingChanged); +} + +function $precalculateAndSetInformation(this$static){ + var dummyBaggage, inDegree, incoming, layer, layer$iterator, layer$iterator0, layerID, layerSize, layerSizePixel, node, node$iterator, nodeID, nodesNdummies, outDegree, outcoming; + this$static.nodeSizeAffix = $doubleValue(castToDouble($getProperty(this$static.masterGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + this$static.dummySize = $doubleValue(castToDouble($getProperty(this$static.masterGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + this$static.maxHeight = this$static.masterGraph.layers.array.length; + layerID = this$static.maxHeight - 1; + nodeID = 0; + this$static.maxWidth = 0; + this$static.maxWidthPixel = 0; + this$static.currentWidth = newArrayList_1(initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 17, this$static.maxHeight, 0, 1)); + this$static.currentWidthPixel = newArrayList_1(initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, this$static.maxHeight, 7, 1)); + for (layer$iterator0 = new ArrayList$1(this$static.masterGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + layer.id_0 = layerID; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = nodeID; + ++nodeID; + } + --layerID; + } + this$static.layers = initUnidimensionalArray(I_classLit, $intern_49, 28, nodeID, 15, 1); + this$static.degreeDiff = initMultidimensionalArray(I_classLit, [$intern_16, $intern_49], [53, 28], 15, [nodeID, 3], 2); + this$static.nodes = new ArrayList; + this$static.nodesWithIncomingEdges = new ArrayList; + dummyBaggage = 0; + this$static.dummyNodeCount = 0; + for (layer$iterator = new ArrayList$1(this$static.masterGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layerID = layer.id_0; + incoming = 0; + outcoming = 0; + layerSize = layer.nodes.array.length; + layerSizePixel = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + nodeID = node.id_0; + this$static.layers[nodeID] = node.layer.id_0; + layerSizePixel += node.size_0.y_0 + this$static.nodeSizeAffix; + inDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + outDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + this$static.degreeDiff[nodeID][0] = outDegree - inDegree; + this$static.degreeDiff[nodeID][1] = inDegree; + this$static.degreeDiff[nodeID][2] = outDegree; + incoming += inDegree; + outcoming += outDegree; + inDegree > 0 && $add_3(this$static.nodesWithIncomingEdges, node); + $add_3(this$static.nodes, node); + } + dummyBaggage -= incoming; + nodesNdummies = layerSize + dummyBaggage; + layerSizePixel += dummyBaggage * this$static.dummySize; + $set_1(this$static.currentWidth, layerID, valueOf_3(nodesNdummies)); + $set_1(this$static.currentWidthPixel, layerID, layerSizePixel); + this$static.maxWidth = $wnd.Math.max(this$static.maxWidth, nodesNdummies); + this$static.maxWidthPixel = $wnd.Math.max(this$static.maxWidthPixel, layerSizePixel); + this$static.dummyNodeCount += dummyBaggage; + dummyBaggage += outcoming; + } +} + +function $precalculateAndSetInformationModelOrder(this$static){ + var layer, layer$iterator, layer$iterator0, layerId, leftToRight, modelOrderComparator, node, node$iterator, nodeId; + this$static.biLayerMap = new BiLinkedHashMultiMap; + nodeId = 0; + layerId = 0; + for (layer$iterator0 = new ArrayList$1(this$static.masterGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + layer.id_0 = layerId; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = nodeId; + ++nodeId; + } + ++layerId; + } + leftToRight = this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT); + modelOrderComparator = leftToRight?MODEL_ORDER_NODE_COMPARATOR_DESC:MODEL_ORDER_NODE_COMPARATOR_ASC; + for (layer$iterator = new ArrayList$1(this$static.masterGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + $sort(layer.nodes, modelOrderComparator); + $putAll_0(this$static.biLayerMap, valueOf_3(layer.id_0), layer.nodes); + } +} + +function $process_36(this$static, layeredGraph, progressMonitor){ + var donna, donna$iterator, funFunction, martha, martha$iterator, newMaxWidth, newMaxWidthPixel, promoteUntil, promoteUntilD, promoteUntilN; + progressMonitor.begin('Node promotion heuristic', 1); + this$static.masterGraph = layeredGraph; + this$static.promotionStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_NODE_PROMOTION_STRATEGY_0)), 243); + this$static.promotionStrategy != ($clinit_NodePromotionStrategy() , MODEL_ORDER_LEFT_TO_RIGHT) && this$static.promotionStrategy != MODEL_ORDER_RIGHT_TO_LEFT?$precalculateAndSetInformation(this$static):$precalculateAndSetInformationModelOrder(this$static); + promoteUntil = castTo($getProperty(this$static.masterGraph, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0), 17).value_0; + funFunction = new NodePromotion$lambda$0$Type; + switch (this$static.promotionStrategy.ordinal) { + case 2: + case 1: + $promotionMagic(this$static, funFunction); + break; + case 3: + this$static.promotionStrategy = NO_BOUNDARY; + $promotionMagic(this$static, funFunction); + newMaxWidth = 0; + for (martha$iterator = new ArrayList$1(this$static.currentWidth); martha$iterator.i < martha$iterator.this$01.array.length;) { + martha = castTo($next_6(martha$iterator), 17); + newMaxWidth = $wnd.Math.max(newMaxWidth, martha.value_0); + } + + if (newMaxWidth > this$static.maxWidth) { + this$static.promotionStrategy = NIKOLOV; + $promotionMagic(this$static, funFunction); + } + + break; + case 4: + this$static.promotionStrategy = NO_BOUNDARY; + $promotionMagic(this$static, funFunction); + newMaxWidthPixel = 0; + for (donna$iterator = new ArrayList$1(this$static.currentWidthPixel); donna$iterator.i < donna$iterator.this$01.array.length;) { + donna = castToDouble($next_6(donna$iterator)); + newMaxWidthPixel = $wnd.Math.max(newMaxWidthPixel, (checkCriticalNotNull(donna) , donna)); + } + + if (newMaxWidthPixel > this$static.maxWidthPixel) { + this$static.promotionStrategy = NIKOLOV_PIXEL; + $promotionMagic(this$static, funFunction); + } + + break; + case 6: + promoteUntilN = round_int($wnd.Math.ceil(this$static.layers.length * promoteUntil / 100)); + $promotionMagic(this$static, new NodePromotion$lambda$1$Type(promoteUntilN)); + break; + case 5: + promoteUntilD = round_int($wnd.Math.ceil(this$static.dummyNodeCount * promoteUntil / 100)); + $promotionMagic(this$static, new NodePromotion$lambda$2$Type(promoteUntilD)); + break; + case 8: + $modelOrderNodePromotion(this$static, true); + break; + case 9: + $modelOrderNodePromotion(this$static, false); + break; + default:$promotionMagic(this$static, funFunction); + } + this$static.promotionStrategy != MODEL_ORDER_LEFT_TO_RIGHT && this$static.promotionStrategy != MODEL_ORDER_RIGHT_TO_LEFT?$setNewLayering(this$static, layeredGraph):$setNewLayeringModelOrder(this$static, layeredGraph); + progressMonitor.done_1(); +} + +function $promoteNode(this$static, node){ + var dummiesBuilt, dummiesReduced, dummydiff, edge, edge$iterator, masterNode, maxWidthNotExceeded, nodeLayerPos, nodeSize, promotion; + maxWidthNotExceeded = true; + dummydiff = 0; + nodeLayerPos = this$static.layers[node.id_0]; + nodeSize = node.size_0.y_0 + this$static.nodeSizeAffix; + dummiesBuilt = this$static.degreeDiff[node.id_0][2]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_3(castTo($get_11(this$static.currentWidth, nodeLayerPos), 17).value_0 - 1 + dummiesBuilt)); + $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) - nodeSize + dummiesBuilt * this$static.dummySize); + ++nodeLayerPos; + if (nodeLayerPos >= this$static.maxHeight) { + ++this$static.maxHeight; + $add_3(this$static.currentWidth, valueOf_3(1)); + $add_3(this$static.currentWidthPixel, nodeSize); + } + else { + dummiesReduced = this$static.degreeDiff[node.id_0][1]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_3(castTo($get_11(this$static.currentWidth, nodeLayerPos), 17).value_0 + 1 - dummiesReduced)); + $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) + nodeSize - dummiesReduced * this$static.dummySize); + } + (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) && (castTo($get_11(this$static.currentWidth, nodeLayerPos), 17).value_0 > this$static.maxWidth || castTo($get_11(this$static.currentWidth, nodeLayerPos - 1), 17).value_0 > this$static.maxWidth) || this$static.promotionStrategy == NIKOLOV_PIXEL && ($doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) > this$static.maxWidthPixel || $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos - 1))) > this$static.maxWidthPixel)) && (maxWidthNotExceeded = false); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + masterNode = edge.source.owner; + if (this$static.layers[masterNode.id_0] == nodeLayerPos) { + promotion = $promoteNode(this$static, masterNode); + dummydiff = dummydiff + castTo(promotion.first, 17).value_0; + maxWidthNotExceeded = maxWidthNotExceeded && $booleanValue(castToBoolean(promotion.second)); + } + } + this$static.layers[node.id_0] = nodeLayerPos; + dummydiff = dummydiff + this$static.degreeDiff[node.id_0][0]; + return new Pair(valueOf_3(dummydiff), ($clinit_Boolean() , maxWidthNotExceeded?true:false)); +} + +function $promoteNodeByModelOrder(this$static, node, leftToRight){ + var edge, edge$iterator, nextNode, nodesToPromote, old, oldLayerId; + oldLayerId = castTo($getKey_0(this$static.biLayerMap, node), 17).value_0; + leftToRight?$put_13(this$static.biLayerMap, valueOf_3(oldLayerId + 1), node):$put_13(this$static.biLayerMap, valueOf_3(oldLayerId - 1), node); + nodesToPromote = new LinkedHashSet; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2((leftToRight?$getOutgoingEdges(node):$getIncomingEdges(node)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + leftToRight?(nextNode = edge.target.owner):(nextNode = edge.source.owner); + maskUndefined($getKey_0(this$static.biLayerMap, nextNode)) === maskUndefined($getKey_0(this$static.biLayerMap, node)) && (old = nodesToPromote.map_0.put(nextNode, nodesToPromote) , old == null); + } + return nodesToPromote; +} + +function $promotionMagic(this$static, funky){ + var apply_0, currentWidthBackup, currentWidthPixelBackup, dummyBackup, heightBackup, iterationCounter, layeringBackup, node, node$iterator, promotionFlag, promotionPair, promotions, reducedDummies; + iterationCounter = 0; + reducedDummies = 0; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + dummyBackup = this$static.dummyNodeCount; + heightBackup = this$static.maxHeight; + currentWidthBackup = this$static.currentWidth; + currentWidthPixelBackup = this$static.currentWidthPixel; + do { + promotions = 0; + for (node$iterator = new ArrayList$1(this$static.nodesWithIncomingEdges); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + promotionPair = $promoteNode(this$static, node); + apply_0 = true; + (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) || this$static.promotionStrategy == NIKOLOV_PIXEL) && (apply_0 = $booleanValue(castToBoolean(promotionPair.second))); + if (castTo(promotionPair.first, 17).value_0 < 0 && apply_0) { + ++promotions; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + this$static.dummyNodeCount = this$static.dummyNodeCount + castTo(promotionPair.first, 17).value_0; + reducedDummies += dummyBackup - this$static.dummyNodeCount; + dummyBackup = this$static.dummyNodeCount + castTo(promotionPair.first, 17).value_0; + heightBackup = this$static.maxHeight; + currentWidthBackup = newArrayList(this$static.currentWidth); + currentWidthPixelBackup = newArrayList(this$static.currentWidthPixel); + } + else { + this$static.layers = copyOf(layeringBackup, layeringBackup.length); + this$static.dummyNodeCount = dummyBackup; + this$static.currentWidth = (checkNotNull(currentWidthBackup) , currentWidthBackup?new ArrayList_1(currentWidthBackup):newArrayList_0(new ArrayList$1(currentWidthBackup))); + this$static.currentWidthPixel = (checkNotNull(currentWidthPixelBackup) , currentWidthPixelBackup?new ArrayList_1(currentWidthPixelBackup):newArrayList_0(new ArrayList$1(currentWidthPixelBackup))); + this$static.maxHeight = heightBackup; + } + } + ++iterationCounter; + promotionFlag = promotions != 0 && $booleanValue(castToBoolean(funky.apply_0(new Pair(valueOf_3(reducedDummies), valueOf_3(iterationCounter))))); + } + while (promotionFlag); +} + +function $setNewLayering(this$static, layeredGraph){ + var i, laLaLayer, layList, layerIt, node, node$iterator, possiblyEvilLayer; + layList = new ArrayList; + for (i = 0; i <= this$static.maxHeight; i++) { + laLaLayer = new Layer(layeredGraph); + laLaLayer.id_0 = this$static.maxHeight - i; + push_1(layList.array, laLaLayer); + } + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $setLayer_0(node, castTo($get_11(layList, this$static.maxHeight - this$static.layers[node.id_0]), 30)); + } + layerIt = new ArrayList$1(layList); + while (layerIt.i < layerIt.this$01.array.length) { + possiblyEvilLayer = castTo($next_6(layerIt), 30); + possiblyEvilLayer.nodes.array.length == 0 && $remove_13(layerIt); + } + layeredGraph.layers.array.length = 0; + $addAll_2(layeredGraph.layers, layList); +} + +function $setNewLayeringModelOrder(this$static, layeredGraph){ + var keySet, layerIndex, layerIndex$iterator, layerList, layerNodes, newLayer, node, node$iterator; + layerList = new ArrayList; + layeredGraph.layers.array.length = 0; + keySet = castTo($collect_1($sorted_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.biLayerMap.multiMapKeyToValues), 1))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + for (layerIndex$iterator = keySet.iterator_0(); layerIndex$iterator.hasNext_0();) { + layerIndex = castTo(layerIndex$iterator.next_1(), 17); + layerNodes = $getValues(this$static.biLayerMap, layerIndex); + if (layerNodes.size_0 != 0) { + newLayer = new Layer(layeredGraph); + push_1(layerList.array, newLayer); + newLayer.id_0 = layerIndex.value_0; + for (node$iterator = $listIterator_2(layerNodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 10); + $setLayer_0(node, newLayer); + } + } + } + $addAll_2(layeredGraph.layers, layerList); +} + +function NodePromotion(){ + $clinit_NodePromotion(); + this.biLayerMap = new BiLinkedHashMultiMap; +} + +function lambda$1_9(promoteUntilN_0, pair_1){ + $clinit_NodePromotion(); + return $clinit_Boolean() , castTo(pair_1.second, 17).value_0 < promoteUntilN_0?true:false; +} + +function lambda$2_5(promoteUntilD_0, pair_1){ + $clinit_NodePromotion(); + return $clinit_Boolean() , castTo(pair_1.first, 17).value_0 < promoteUntilD_0?true:false; +} + +defineClass(1627, 1, $intern_105, NodePromotion); +_.process = function process_34(layeredGraph, progressMonitor){ + $process_36(this, castTo(layeredGraph, 36), progressMonitor); +} +; +_.dummyNodeCount = 0; +_.dummySize = 0; +_.maxHeight = 0; +_.maxWidth = 0; +_.maxWidthPixel = 0; +_.nodeSizeAffix = 0; +var MODEL_ORDER_NODE_COMPARATOR_ASC, MODEL_ORDER_NODE_COMPARATOR_DESC; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion', 1627); +function $compare_15(o1, o2){ + if ($hasProperty(o1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(o2, MODEL_ORDER_1)) { + return castTo($getProperty(o2, MODEL_ORDER_1), 17).value_0 - castTo($getProperty(o1, MODEL_ORDER_1), 17).value_0; + } + return 0; +} + +function NodePromotion$1(){ +} + +defineClass(1628, 1, $intern_88, NodePromotion$1); +_.compare_1 = function compare_47(o1, o2){ + return $compare_15(castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_120(other){ + return this === other; +} +; +_.reversed = function reversed_39(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/1', 1628); +function $compare_16(o1, o2){ + if ($hasProperty(o1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(o2, MODEL_ORDER_1)) { + return castTo($getProperty(o1, MODEL_ORDER_1), 17).value_0 - castTo($getProperty(o2, MODEL_ORDER_1), 17).value_0; + } + return 0; +} + +function NodePromotion$2(){ +} + +defineClass(1629, 1, $intern_88, NodePromotion$2); +_.compare_1 = function compare_48(o1, o2){ + return $compare_16(castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_121(other){ + return this === other; +} +; +_.reversed = function reversed_40(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/2', 1629); +function NodePromotion$lambda$0$Type(){ +} + +defineClass(1630, 1, {}, NodePromotion$lambda$0$Type); +_.apply_0 = function apply_91(arg0){ + return castTo(arg0, 42) , $clinit_NodePromotion() , $clinit_Boolean() , true; +} +; +_.equals_0 = function equals_122(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$0$Type', 1630); +function NodePromotion$lambda$1$Type(promoteUntilN_0){ + this.promoteUntilN_0 = promoteUntilN_0; +} + +defineClass(1631, 1, {}, NodePromotion$lambda$1$Type); +_.apply_0 = function apply_92(arg0){ + return lambda$1_9(this.promoteUntilN_0, castTo(arg0, 42)); +} +; +_.equals_0 = function equals_123(other){ + return this === other; +} +; +_.promoteUntilN_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$1$Type', 1631); +function NodePromotion$lambda$2$Type(promoteUntilD_0){ + this.promoteUntilD_0 = promoteUntilD_0; +} + +defineClass(1632, 1, {}, NodePromotion$lambda$2$Type); +_.apply_0 = function apply_93(arg0){ + return lambda$2_5(this.promoteUntilD_0, castTo(arg0, 42)); +} +; +_.equals_0 = function equals_124(other){ + return this === other; +} +; +_.promoteUntilD_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$2$Type', 1632); +function $process_37(layeredGraph, monitor){ + var currentPort, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, port, port$iterator, portIterator, previousPort, routing, sameOriginPort, selfLoop, inputPort, outputPort, originInputPort, originOutputPort, bendPoint; + monitor.begin('Odd port side processing', 1); + routing = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 223); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + nodeArray = toNodeArray(layer.nodes); + for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 != ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + continue; + } + if (routing == ($clinit_EdgeRouting() , SPLINES)) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.incomingEdges.array.length == 0 || $processSplineInputPort(port); + port.outgoingEdges.array.length == 0 || $processSplineOutputPort(port); + } + } + else if (instanceOf($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 18)) { + selfLoop = castTo($getProperty(node, ORIGIN_0), 18); + inputPort = castTo($getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 12); + outputPort = castTo($getPorts_1(node, EAST_2).iterator_0().next_1(), 12); + originInputPort = castTo($getProperty(inputPort, ORIGIN_0), 12); + originOutputPort = castTo($getProperty(outputPort, ORIGIN_0), 12); + $setSource_0(selfLoop, originOutputPort); + $setTarget_0(selfLoop, originInputPort); + bendPoint = new KVector_2(outputPort.owner.pos); + bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originOutputPort.owner.pos, originOutputPort.pos, originOutputPort.anchor])).x_0; + $add_7(selfLoop.bendPoints, bendPoint); + bendPoint = new KVector_2(inputPort.owner.pos); + bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originInputPort.owner.pos, originInputPort.pos, originInputPort.anchor])).x_0; + $add_7(selfLoop.bendPoints, bendPoint); + } + else { + if (node.ports.array.length >= 2) { + sameOriginPort = true; + portIterator = new ArrayList$1(node.ports); + currentPort = castTo($next_6(portIterator), 12); + previousPort = null; + while (portIterator.i < portIterator.this$01.array.length) { + previousPort = currentPort; + currentPort = castTo($next_6(portIterator), 12); + if (!equals_Ljava_lang_Object__Z__devirtual$($getProperty(previousPort, ORIGIN_0), $getProperty(currentPort, ORIGIN_0))) { + sameOriginPort = false; + break; + } + } + } + else { + sameOriginPort = false; + } + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.incomingEdges.array.length == 0 || $processInputPort(port, sameOriginPort); + port.outgoingEdges.array.length == 0 || $processOutputPort(port, sameOriginPort); + } + } + $setLayer_0(node, null); + } + } + monitor.done_1(); +} + +function $processInputPort(inputPort, addJunctionPoints){ + var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, junctionPoints, originPort, x_0, y_0; + originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; + y_0 = inputPort.owner.pos.y_0; + edgeArray = toEdgeArray(inputPort.incomingEdges); + for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + $setTarget_0(inEdge, originPort); + $addLast_0(inEdge.bendPoints, new KVector_1(x_0, y_0)); + if (addJunctionPoints) { + junctionPoints = castTo($getProperty(inEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(inEdge, JUNCTION_POINTS, junctionPoints); + } + $add_7(junctionPoints, new KVector_1(x_0, y_0)); + } + } +} + +function $processOutputPort(outputPort, addJunctionPoints){ + var edgeArray, junctionPoints, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max, x_0, y_0; + originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; + y_0 = outputPort.owner.pos.y_0; + edgeArray = toEdgeArray(outputPort.outgoingEdges); + for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + $setSource_0(outEdge, originPort); + $addFirst_0(outEdge.bendPoints, new KVector_1(x_0, y_0)); + if (addJunctionPoints) { + junctionPoints = castTo($getProperty(outEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(outEdge, JUNCTION_POINTS, junctionPoints); + } + $add_7(junctionPoints, new KVector_1(x_0, y_0)); + } + } +} + +function $processSplineInputPort(inputPort){ + var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, originPort; + originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, inputPort.owner.pos.y_0); + edgeArray = toEdgeArray(inputPort.incomingEdges); + for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + $setTarget_0(inEdge, originPort); + } +} + +function $processSplineOutputPort(outputPort){ + var edgeArray, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max; + originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, outputPort.owner.pos.y_0); + edgeArray = toEdgeArray(outputPort.outgoingEdges); + for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + $setSource_0(outEdge, originPort); + } +} + +function NorthSouthPortPostprocessor(){ +} + +defineClass(1633, 1, $intern_105, NorthSouthPortPostprocessor); +_.process = function process_35(layeredGraph, monitor){ + $process_37(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPostprocessor', 1633); +function $createDummyNode_0(layeredGraph, inPort, outPort, dummyNodes){ + var crossingHint, dummy, dummyInputPort, dummyOutputPort, edge, edge$array, edge$index, edge$max, edgeArray; + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + crossingHint = 0; + if (inPort) { + dummyInputPort = new LPort; + $setProperty_0(dummyInputPort, ($clinit_InternalProperties_1() , ORIGIN_0), inPort); + $setProperty_0(dummy, ORIGIN_0, inPort.owner); + $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInputPort, dummy); + edgeArray = toEdgeArray(inPort.incomingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setTarget_0(edge, dummyInputPort); + } + $setProperty_0(inPort, PORT_DUMMY, dummy); + ++crossingHint; + } + if (outPort) { + dummyOutputPort = new LPort; + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), outPort.owner); + $setProperty_0(dummyOutputPort, ORIGIN_0, outPort); + $setSide(dummyOutputPort, ($clinit_PortSide() , EAST_2)); + $setNode(dummyOutputPort, dummy); + edgeArray = toEdgeArray(outPort.outgoingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, dummyOutputPort); + } + $setProperty_0(outPort, PORT_DUMMY, dummy); + ++crossingHint; + } + $setProperty_0(dummy, ($clinit_InternalProperties_1() , CROSSING_HINT), valueOf_3(crossingHint)); + push_1(dummyNodes.array, dummy); + return dummy; +} + +function $createDummyNodes(layeredGraph, ports, dummyNodes, opposingSideDummyNodes, barycenterAssociates){ + var edge, edge$iterator, edge$iterator0, edge$iterator1, in_0, inOutPort, inOutPort$iterator, inOutPorts, inPort, inPort$iterator, inPorts, northSouthSelfLoopEdges, out, outPort, outPort$iterator, outPorts, port, port$iterator, port$iterator0, sameSideSelfLoopEdges, dummy, dummyInputPort, dummyOutputPort; + inPorts = new ArrayList_0(ports.size_0); + outPorts = new ArrayList_0(ports.size_0); + inOutPorts = new ArrayList_0(ports.size_0); + sameSideSelfLoopEdges = new ArrayList_0(ports.size_0); + northSouthSelfLoopEdges = new ArrayList_0(ports.size_0); + for (port$iterator0 = $listIterator_2(ports, 0); port$iterator0.currentNode != port$iterator0.this$01.tail;) { + port = castTo($next_9(port$iterator0), 12); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 18); + if (edge.source.owner == edge.target.owner) { + if (port.side == edge.target.side) { + push_1(sameSideSelfLoopEdges.array, edge); + continue; + } + else if (port.side == ($clinit_PortSide() , NORTH_3) && edge.target.side == SOUTH_2) { + push_1(northSouthSelfLoopEdges.array, edge); + continue; + } + } + } + } + for (edge$iterator1 = new ArrayList$1(northSouthSelfLoopEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_6(edge$iterator1), 18); + $createNorthSouthSelfLoopDummyNodes(layeredGraph, edge, dummyNodes, opposingSideDummyNodes, ($clinit_PortSide() , EAST_2)); + } + for (edge$iterator = new ArrayList$1(sameSideSelfLoopEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + dummyInputPort = new LPort; + $setProperty_0(dummyInputPort, ORIGIN_0, edge.target); + $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInputPort, dummy); + dummyOutputPort = new LPort; + $setProperty_0(dummyOutputPort, ORIGIN_0, edge.source); + $setSide(dummyOutputPort, EAST_2); + $setNode(dummyOutputPort, dummy); + $setProperty_0(edge.source, PORT_DUMMY, dummy); + $setProperty_0(edge.target, PORT_DUMMY, dummy); + $setSource_0(edge, null); + $setTarget_0(edge, null); + push_1(dummyNodes.array, dummy); + $setProperty_0(dummy, CROSSING_HINT, valueOf_3(2)); + } + for (port$iterator = $listIterator_2(ports, 0); port$iterator.currentNode != port$iterator.this$01.tail;) { + port = castTo($next_9(port$iterator), 12); + in_0 = port.incomingEdges.array.length > 0; + out = port.outgoingEdges.array.length > 0; + in_0 && out?(push_1(inOutPorts.array, port) , true):in_0?(push_1(inPorts.array, port) , true):out && (push_1(outPorts.array, port) , true); + } + for (inPort$iterator = new ArrayList$1(inPorts); inPort$iterator.i < inPort$iterator.this$01.array.length;) { + inPort = castTo($next_6(inPort$iterator), 12); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inPort, null, dummyNodes)); + } + for (outPort$iterator = new ArrayList$1(outPorts); outPort$iterator.i < outPort$iterator.this$01.array.length;) { + outPort = castTo($next_6(outPort$iterator), 12); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, null, outPort, dummyNodes)); + } + for (inOutPort$iterator = new ArrayList$1(inOutPorts); inOutPort$iterator.i < inOutPort$iterator.this$01.array.length;) { + inOutPort = castTo($next_6(inOutPort$iterator), 12); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inOutPort, inOutPort, dummyNodes)); + } +} + +function $createNorthSouthSelfLoopDummyNodes(layeredGraph, selfLoop, northDummyNodes, southDummyNodes, portSide){ + var northDummy, northDummyOutputPort, southDummy, southDummyInputPort; + northDummy = new LNode(layeredGraph); + $setType(northDummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(northDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(northDummy, ($clinit_InternalProperties_1() , ORIGIN_0), selfLoop.source.owner); + northDummyOutputPort = new LPort; + $setProperty_0(northDummyOutputPort, ORIGIN_0, selfLoop.source); + $setSide(northDummyOutputPort, portSide); + $setNode(northDummyOutputPort, northDummy); + $setProperty_0(selfLoop.source, PORT_DUMMY, northDummy); + southDummy = new LNode(layeredGraph); + $setType(southDummy, NORTH_SOUTH_PORT); + $setProperty_0(southDummy, PORT_CONSTRAINTS_0, FIXED_POS); + $setProperty_0(southDummy, ORIGIN_0, selfLoop.target.owner); + southDummyInputPort = new LPort; + $setProperty_0(southDummyInputPort, ORIGIN_0, selfLoop.target); + $setSide(southDummyInputPort, portSide); + $setNode(southDummyInputPort, southDummy); + $setProperty_0(selfLoop.target, PORT_DUMMY, southDummy); + $setSource_0(selfLoop, northDummyOutputPort); + $setTarget_0(selfLoop, southDummyInputPort); + checkCriticalPositionIndex(0, northDummyNodes.array.length); + insertTo(northDummyNodes.array, 0, northDummy); + push_1(southDummyNodes.array, southDummy); + $setProperty_0(northDummy, CROSSING_HINT, valueOf_3(1)); + $setProperty_0(southDummy, CROSSING_HINT, valueOf_3(1)); +} + +function $process_38(layeredGraph, monitor){ + var barycenterAssociates, dummy, dummy$iterator, dummy$iterator0, dummyPort, insertPoint, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, northDummyNodes, originPort, pointer, port, port$iterator, portList, predecessor, southDummyNodes, successor; + monitor.begin('Odd port side processing', 1); + northDummyNodes = new ArrayList; + southDummyNodes = new ArrayList; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + pointer = -1; + nodeArray = toNodeArray(layer.nodes); + for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + ++pointer; + if (!(node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101)))) { + continue; + } + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101)) || $sortPortList_0(node); + $setProperty_0(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT), node); + northDummyNodes.array.length = 0; + southDummyNodes.array.length = 0; + barycenterAssociates = new ArrayList; + portList = new LinkedList; + addAll_6(portList, $getPorts_1(node, ($clinit_PortSide() , NORTH_3))); + $createDummyNodes(layeredGraph, portList, northDummyNodes, southDummyNodes, barycenterAssociates); + insertPoint = pointer; + successor = node; + for (dummy$iterator0 = new ArrayList$1(northDummyNodes); dummy$iterator0.i < dummy$iterator0.this$01.array.length;) { + dummy = castTo($next_6(dummy$iterator0), 10); + $setLayer(dummy, insertPoint, layer); + ++pointer; + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 12); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 12); + $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(dummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(successor); + } + $reset_0(portList); + for (port$iterator = $getPorts_1(node, SOUTH_2).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + $addNode_0(portList, port, portList.header, portList.header.next_0); + } + $createDummyNodes(layeredGraph, portList, southDummyNodes, null, barycenterAssociates); + predecessor = node; + for (dummy$iterator = new ArrayList$1(southDummyNodes); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_6(dummy$iterator), 10); + $setLayer(dummy, ++pointer, layer); + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 12); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 12); + $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(predecessor, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(dummy); + } + barycenterAssociates.array.length == 0 || $setProperty_0(node, BARYCENTER_ASSOCIATES, barycenterAssociates); + } + } + monitor.done_1(); +} + +function $sortPortList_0(node){ + var inOutPorts, inPorts, incoming, outPorts, outgoing, port, port$iterator, ports; + ports = node.ports.array.length; + inPorts = 0; + inOutPorts = ports; + outPorts = 2 * ports; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + switch (port.side.ordinal) { + case 2: + case 4: + port.id_0 = -1; + break; + case 1: + case 3: + incoming = port.incomingEdges.array.length; + outgoing = port.outgoingEdges.array.length; + incoming > 0 && outgoing > 0?(port.id_0 = inOutPorts++):incoming > 0?(port.id_0 = inPorts++):outgoing > 0?(port.id_0 = outPorts++):(port.id_0 = inPorts++); + } + } + $clinit_Collections(); + $sort(node.ports, new NorthSouthPortPreprocessor$lambda$0$Type); +} + +function NorthSouthPortPreprocessor(){ +} + +function lambda$0_25(port1_0, port2_1){ + var side1, side2; + side1 = port1_0.side; + side2 = port2_1.side; + return side1 != side2?side1.ordinal - side2.ordinal:port1_0.id_0 == port2_1.id_0?0:side1 == ($clinit_PortSide() , NORTH_3)?port1_0.id_0 - port2_1.id_0:port2_1.id_0 - port1_0.id_0; +} + +defineClass(1634, 1, $intern_105, NorthSouthPortPreprocessor); +_.process = function process_36(layeredGraph, monitor){ + $process_38(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor', 1634); +function NorthSouthPortPreprocessor$lambda$0$Type(){ +} + +defineClass(1635, 1, $intern_88, NorthSouthPortPreprocessor$lambda$0$Type); +_.compare_1 = function compare_49(arg0, arg1){ + return lambda$0_25(castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_125(other){ + return this === other; +} +; +_.reversed = function reversed_41(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor/lambda$0$Type', 1635); +function $connectNodes(firstPartition, secondPartition){ + var edge, node, node$iterator, otherNode, otherNode$iterator, sourcePort, targetPort; + for (node$iterator = firstPartition.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + sourcePort = new LPort; + $setNode(sourcePort, node); + $setSide(sourcePort, ($clinit_PortSide() , EAST_2)); + $setProperty_0(sourcePort, ($clinit_InternalProperties_1() , PARTITION_DUMMY), ($clinit_Boolean() , true)); + for (otherNode$iterator = secondPartition.iterator_0(); otherNode$iterator.hasNext_0();) { + otherNode = castTo(otherNode$iterator.next_1(), 10); + targetPort = new LPort; + $setNode(targetPort, otherNode); + $setSide(targetPort, WEST_2); + $setProperty_0(targetPort, PARTITION_DUMMY, true); + edge = new LEdge; + $setProperty_0(edge, PARTITION_DUMMY, true); + $setSource_0(edge, sourcePort); + $setTarget_0(edge, targetPort); + } + } +} + +function $process_39(lGraph, monitor){ + var firstId, idIterator, partitionToNodesMap, result, secondId, sortedPartitionIDs; + monitor.begin('Partition midprocessing', 1); + partitionToNodesMap = new HashMultimap; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionMidprocessor$lambda$0$Type), new PartitionMidprocessor$lambda$1$Type(partitionToNodesMap)); + if (partitionToNodesMap.totalSize == 0) { + return; + } + sortedPartitionIDs = castTo($collect_1($sorted_0((result = partitionToNodesMap.keySet , new StreamImpl(null, (!result?(partitionToNodesMap.keySet = new AbstractMapBasedMultimap$KeySet(partitionToNodesMap, partitionToNodesMap.map_0)):result).spliterator_0()))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + idIterator = sortedPartitionIDs.iterator_0(); + firstId = castTo(idIterator.next_1(), 17); + while (idIterator.hasNext_0()) { + secondId = castTo(idIterator.next_1(), 17); + $connectNodes(castTo($get(partitionToNodesMap, firstId), 21), castTo($get(partitionToNodesMap, secondId), 21)); + firstId = secondId; + } + monitor.done_1(); +} + +function PartitionMidprocessor(){ +} + +function lambda$1_10(partitionToNodesMap_0, node_1){ + return $put(partitionToNodesMap_0, castTo($getProperty(node_1, ($clinit_LayeredOptions() , PARTITIONING_PARTITION)), 17), node_1); +} + +defineClass(1636, 1, $intern_105, PartitionMidprocessor); +_.process = function process_37(lGraph, monitor){ + $process_39(castTo(lGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor', 1636); +function PartitionMidprocessor$lambda$0$Type(){ +} + +defineClass(1637, 1, $intern_40, PartitionMidprocessor$lambda$0$Type); +_.test_0 = function test_43(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$0$Type', 1637); +function PartitionMidprocessor$lambda$1$Type(partitionToNodesMap_0){ + this.partitionToNodesMap_0 = partitionToNodesMap_0; +} + +defineClass(1638, 1, $intern_19, PartitionMidprocessor$lambda$1$Type); +_.accept = function accept_79(arg0){ + lambda$1_10(this.partitionToNodesMap_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$1$Type', 1638); +function $process_40(lGraph, monitor){ + var layer, layer$iterator, node, node$iterator, port, ports; + monitor.begin('Partition postprocessing', 1); + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + ports = new ArrayList$1(node.ports); + while (ports.i < ports.this$01.array.length) { + port = castTo($next_6(ports), 12); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , PARTITION_DUMMY)))) && $remove_13(ports); + } + } + } + monitor.done_1(); +} + +function PartitionPostprocessor(){ +} + +defineClass(1639, 1, $intern_105, PartitionPostprocessor); +_.process = function process_38(lGraph, monitor){ + $process_40(castTo(lGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPostprocessor', 1639); +function $mustBeReversed(lEdge){ + var sourcePartition, targetPartition; + if ($hasProperty(lEdge.target.owner, ($clinit_LayeredOptions() , PARTITIONING_PARTITION))) { + sourcePartition = castTo($getProperty(lEdge.source.owner, PARTITIONING_PARTITION), 17); + targetPartition = castTo($getProperty(lEdge.target.owner, PARTITIONING_PARTITION), 17); + return compare_5(sourcePartition.value_0, targetPartition.value_0) > 0; + } + else { + return false; + } +} + +function $process_41(lGraph, monitor){ + var edgesToBeReversed; + monitor.begin('Partition preprocessing', 1); + edgesToBeReversed = castTo($collect_1($filter($flatMap($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionPreprocessor$lambda$0$Type), new PartitionPreprocessor$lambda$1$Type), new PartitionPreprocessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + $forEach_3(edgesToBeReversed.stream(), new PartitionPreprocessor$lambda$3$Type); + monitor.done_1(); +} + +function $reverse_1(lEdge){ + var priority; + $reverse_0(lEdge, true); + priority = $intern_46; + $hasProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)) && (priority += castTo($getProperty(lEdge, PRIORITY_DIRECTION_0), 17).value_0); + $setProperty_0(lEdge, PRIORITY_DIRECTION_0, valueOf_3(priority)); +} + +function PartitionPreprocessor(){ +} + +defineClass(1640, 1, $intern_105, PartitionPreprocessor); +_.process = function process_39(lGraph, monitor){ + $process_41(castTo(lGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor', 1640); +function PartitionPreprocessor$lambda$0$Type(){ +} + +defineClass(1641, 1, $intern_40, PartitionPreprocessor$lambda$0$Type); +_.test_0 = function test_44(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$0$Type', 1641); +function PartitionPreprocessor$lambda$1$Type(){ +} + +defineClass(1642, 1, {}, PartitionPreprocessor$lambda$1$Type); +_.apply_0 = function apply_94(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$1$Type', 1642); +function PartitionPreprocessor$lambda$2$Type(){ +} + +defineClass(1643, 1, $intern_40, PartitionPreprocessor$lambda$2$Type); +_.test_0 = function test_45(arg0){ + return $mustBeReversed(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$2$Type', 1643); +function PartitionPreprocessor$lambda$3$Type(){ +} + +defineClass(1644, 1, $intern_19, PartitionPreprocessor$lambda$3$Type); +_.accept = function accept_80(arg0){ + $reverse_1(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$3$Type', 1644); +function $clinit_PortListSorter(){ + $clinit_PortListSorter = emptyMethod; + IN_EDGES = new PortListSorter$lambda$2$Type; + OUT_EDGES = new PortListSorter$lambda$3$Type; + CMP_PORT_SIDE = new PortListSorter$lambda$0$Type; + CMP_PORT_DEGREE_EAST_WEST = new PortListSorter$lambda$4$Type; + CMP_FIXED_ORDER_AND_FIXED_POS = new PortListSorter$lambda$1$Type; + CMP_COMBINED = (checkCriticalNotNull(CMP_FIXED_ORDER_AND_FIXED_POS) , new Comparator$lambda$0$Type); +} + +function $findPortSideRange(ports, side){ + var currentSide, hb, highIdx, lb, lowIdx; + if (ports.array.length == 0) { + return new Pair(valueOf_3(0), valueOf_3(0)); + } + currentSide = (checkCriticalElementIndex(0, ports.array.length) , castTo(ports.array[0], 12)).side; + lowIdx = 0; + lb = side.ordinal; + hb = side.ordinal + 1; + while (lowIdx < ports.array.length - 1 && currentSide.ordinal < lb) { + ++lowIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 12)).side; + } + highIdx = lowIdx; + while (highIdx < ports.array.length - 1 && currentSide.ordinal < hb) { + ++highIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 12)).side; + } + return new Pair(valueOf_3(lowIdx), valueOf_3(highIdx)); +} + +function $process_42(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, portConstraints, ports, pss; + monitor.begin('Port order processing', 1); + pss = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_SORTING_STRATEGY_0)), 430); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + portConstraints = castTo($getProperty(node, PORT_CONSTRAINTS_0), 101); + ports = node.ports; + if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { + $clinit_Collections(); + $sort(ports, CMP_COMBINED); + } + else if (portConstraints != FREE && portConstraints != UNDEFINED_4) { + $clinit_Collections(); + $sort(ports, CMP_PORT_SIDE); + $reverseWestAndSouthSide(ports); + pss == ($clinit_PortSortingStrategy() , PORT_DEGREE) && $sort(ports, CMP_PORT_DEGREE_EAST_WEST); + } + node.portSidesCached = true; + $findPortIndices(node); + } + } + monitor.done_1(); +} + +function $reverse_2(ports, lowIdx, highIdx){ + var i, n, tmp; + if (highIdx <= lowIdx + 2) { + return; + } + n = (highIdx - lowIdx) / 2 | 0; + for (i = 0; i < n; ++i) { + tmp = (checkCriticalElementIndex(lowIdx + i, ports.array.length) , castTo(ports.array[lowIdx + i], 12)); + $set_1(ports, lowIdx + i, (checkCriticalElementIndex(highIdx - i - 1, ports.array.length) , castTo(ports.array[highIdx - i - 1], 12))); + checkCriticalElementIndex(highIdx - i - 1, ports.array.length); + ports.array[highIdx - i - 1] = tmp; + } +} + +function $reverseWestAndSouthSide(ports){ + var southIndices, westIndices; + if (ports.array.length <= 1) { + return; + } + southIndices = $findPortSideRange(ports, ($clinit_PortSide() , SOUTH_2)); + $reverse_2(ports, castTo(southIndices.first, 17).value_0, castTo(southIndices.second, 17).value_0); + westIndices = $findPortSideRange(ports, WEST_2); + $reverse_2(ports, castTo(westIndices.first, 17).value_0, castTo(westIndices.second, 17).value_0); +} + +function PortListSorter(){ + $clinit_PortListSorter(); +} + +function lambda$0_26(p1_0, p2_1){ + $clinit_PortListSorter(); + var ordinalDifference; + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + return 0; +} + +function lambda$1_11(p1_0, p2_1){ + $clinit_PortListSorter(); + var index1, index2, indexDifference, ordinalDifference, portConstraints; + portConstraints = castTo($getProperty(p1_0.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0 || !(portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS)) { + return 0; + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER)) { + index1 = castTo($getProperty(p1_0, PORT_INDEX), 17); + index2 = castTo($getProperty(p2_1, PORT_INDEX), 17); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + } + switch (p1_0.side.ordinal) { + case 1: + return compare_4(p1_0.pos.x_0, p2_1.pos.x_0); + case 2: + return compare_4(p1_0.pos.y_0, p2_1.pos.y_0); + case 3: + return compare_4(p2_1.pos.x_0, p1_0.pos.x_0); + case 4: + return compare_4(p2_1.pos.y_0, p1_0.pos.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function lambda$4_6(p1_0, p2_1){ + $clinit_PortListSorter(); + var ordinalDifference; + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0) { + return 0; + } + switch (p1_0.side.ordinal) { + case 2: + return realDegree_0(p2_1, OUT_EDGES) - realDegree_0(p1_0, OUT_EDGES); + case 4: + return realDegree_0(p1_0, IN_EDGES) - realDegree_0(p2_1, IN_EDGES); + } + return 0; +} + +function realDegree_0(p, edgesFun){ + var e, e$iterator, realDegree; + realDegree = 0; + for (e$iterator = castTo(edgesFun.apply_0(p), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 18); + $booleanValue(castToBoolean($getProperty(e, ($clinit_InternalProperties_1() , REVERSED)))) || ++realDegree; + } + return realDegree; +} + +defineClass(1645, 1, $intern_105, PortListSorter); +_.process = function process_40(layeredGraph, monitor){ + $process_42(castTo(layeredGraph, 36), monitor); +} +; +var CMP_COMBINED, CMP_FIXED_ORDER_AND_FIXED_POS, CMP_PORT_DEGREE_EAST_WEST, CMP_PORT_SIDE, IN_EDGES, OUT_EDGES; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter', 1645); +function PortListSorter$lambda$0$Type(){ +} + +defineClass(1648, 1, $intern_88, PortListSorter$lambda$0$Type); +_.compare_1 = function compare_50(arg0, arg1){ + return lambda$0_26(castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_126(other){ + return this === other; +} +; +_.reversed = function reversed_42(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$0$Type', 1648); +function PortListSorter$lambda$1$Type(){ +} + +defineClass(1650, 1, $intern_88, PortListSorter$lambda$1$Type); +_.compare_1 = function compare_51(arg0, arg1){ + return lambda$1_11(castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_127(other){ + return this === other; +} +; +_.reversed = function reversed_43(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$1$Type', 1650); +function PortListSorter$lambda$2$Type(){ +} + +defineClass(1646, 1, {}, PortListSorter$lambda$2$Type); +_.apply_0 = function apply_95(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 12).incomingEdges; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$2$Type', 1646); +function PortListSorter$lambda$3$Type(){ +} + +defineClass(1647, 1, {}, PortListSorter$lambda$3$Type); +_.apply_0 = function apply_96(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 12).outgoingEdges; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$3$Type', 1647); +function PortListSorter$lambda$4$Type(){ +} + +defineClass(1649, 1, $intern_88, PortListSorter$lambda$4$Type); +_.compare_1 = function compare_52(arg0, arg1){ + return lambda$4_6(castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_128(other){ + return this === other; +} +; +_.reversed = function reversed_44(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$4$Type', 1649); +function $process_43(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, node$iterator0; + monitor.begin('Port side processing', 1); + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + $process_44(node); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $process_44(node); + } + } + monitor.done_1(); +} + +function $process_44(node){ + var port, port$iterator, portDummy; + if ($isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.side == ($clinit_PortSide() , UNDEFINED_5) && (portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10) , portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 64)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, EAST_2):$setSide(port, WEST_2)); + } + } + else { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 64)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, ($clinit_PortSide() , EAST_2)):$setSide(port, ($clinit_PortSide() , WEST_2)); + } + $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)); + } +} + +function PortSideProcessor(){ +} + +defineClass(1651, 1, $intern_105, PortSideProcessor); +_.process = function process_41(layeredGraph, monitor){ + $process_43(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortSideProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortSideProcessor', 1651); +function $process_45(layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$max, edgeArray, layer, layer$iterator, node, node$iterator, port, port$iterator; + monitor.begin('Restoring reversed edges', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + edgeArray = toEdgeArray(port.outgoingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) && $reverse_0(edge, false); + } + } + } + } + monitor.done_1(); +} + +function ReversedEdgeRestorer(){ +} + +defineClass(1652, 1, $intern_105, ReversedEdgeRestorer); +_.process = function process_42(layeredGraph, monitor){ + $process_45(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ReversedEdgeRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ReversedEdgeRestorer', 1652); +function $process_46(this$static, graph, progressMonitor){ + progressMonitor.begin('Self-Loop ordering', 1); + $forEach_3($map($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPortRestorer$lambda$0$Type), new SelfLoopPortRestorer$lambda$1$Type), new SelfLoopPortRestorer$lambda$2$Type), new SelfLoopPortRestorer$lambda$3$Type), new SelfLoopPortRestorer$lambda$4$Type(this$static)); + progressMonitor.done_1(); +} + +function $processNode_4(this$static, slHolder){ + if (slHolder.arePortsHidden) { + switch (castTo($getProperty(slHolder.lNode, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS)), 101).ordinal) { + case 0: + case 1: + $assignPortSides(slHolder); + case 2: + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); + $restorePorts_0(this$static.portRestorer, slHolder); + } + } + else { + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); + } +} + +function SelfLoopPortRestorer(){ + this.portRestorer = new PortRestorer; +} + +defineClass(1657, 1, $intern_105, SelfLoopPortRestorer); +_.process = function process_43(graph, progressMonitor){ + $process_46(this, castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer', 1657); +function SelfLoopPortRestorer$lambda$0$Type(){ +} + +defineClass(1658, 1, {}, SelfLoopPortRestorer$lambda$0$Type); +_.apply_0 = function apply_97(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$0$Type', 1658); +function SelfLoopPortRestorer$lambda$1$Type(){ +} + +defineClass(1659, 1, $intern_40, SelfLoopPortRestorer$lambda$1$Type); +_.test_0 = function test_46(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$1$Type', 1659); +function SelfLoopPortRestorer$lambda$2$Type(){ +} + +defineClass(1660, 1, $intern_40, SelfLoopPortRestorer$lambda$2$Type); +_.test_0 = function test_47(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$2$Type', 1660); +function SelfLoopPortRestorer$lambda$3$Type(){ +} + +defineClass(1661, 1, {}, SelfLoopPortRestorer$lambda$3$Type); +_.apply_0 = function apply_98(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 337); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$3$Type', 1661); +function SelfLoopPortRestorer$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1662, 1, $intern_19, SelfLoopPortRestorer$lambda$4$Type); +_.accept = function accept_81(arg0){ + $processNode_4(this.$$outer_0, castTo(arg0, 337)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$4$Type', 1662); +function SelfLoopPortRestorer$lambda$5$Type(){ +} + +defineClass(805, 1, $intern_19, SelfLoopPortRestorer$lambda$5$Type); +_.accept = function accept_82(arg0){ + $computePortsPerSide(castTo(arg0, 105)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$5$Type', 805); +function $process_47(graph, progressMonitor){ + progressMonitor.begin('Self-Loop post-processing', 1); + $forEach_3($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPostProcessor$lambda$0$Type), new SelfLoopPostProcessor$lambda$1$Type), new SelfLoopPostProcessor$lambda$2$Type), new SelfLoopPostProcessor$lambda$3$Type); + progressMonitor.done_1(); +} + +function $processNode_5(lNode){ + var slHolder; + slHolder = castTo($getProperty(lNode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 337); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$4$Type), new SelfLoopPostProcessor$lambda$5$Type(lNode)); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$6$Type), new SelfLoopPostProcessor$lambda$7$Type(lNode)); +} + +function $restoreEdge(lNode, slEdge){ + var lEdge; + lEdge = slEdge.lEdge; + $setSource_0(lEdge, slEdge.slSource.lPort); + $setTarget_0(lEdge, slEdge.slTarget.lPort); + $offset_2(lEdge.bendPoints, lNode.pos); +} + +function SelfLoopPostProcessor(){ +} + +function lambda$7_1(lNode_0, slLoop_1){ + $applyPlacement(slLoop_1.slLabels, lNode_0.pos); +} + +defineClass(1663, 1, $intern_105, SelfLoopPostProcessor); +_.process = function process_44(graph, progressMonitor){ + $process_47(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor', 1663); +function SelfLoopPostProcessor$lambda$0$Type(){ +} + +defineClass(1664, 1, {}, SelfLoopPostProcessor$lambda$0$Type); +_.apply_0 = function apply_99(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$0$Type', 1664); +function SelfLoopPostProcessor$lambda$1$Type(){ +} + +defineClass(1665, 1, $intern_40, SelfLoopPostProcessor$lambda$1$Type); +_.test_0 = function test_48(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$1$Type', 1665); +function SelfLoopPostProcessor$lambda$2$Type(){ +} + +defineClass(1666, 1, $intern_40, SelfLoopPostProcessor$lambda$2$Type); +_.test_0 = function test_49(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$2$Type', 1666); +function SelfLoopPostProcessor$lambda$3$Type(){ +} + +defineClass(1667, 1, $intern_19, SelfLoopPostProcessor$lambda$3$Type); +_.accept = function accept_83(arg0){ + $processNode_5(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$3$Type', 1667); +function SelfLoopPostProcessor$lambda$4$Type(){ +} + +defineClass(1668, 1, {}, SelfLoopPostProcessor$lambda$4$Type); +_.apply_0 = function apply_100(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 105).slEdges, 1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$4$Type', 1668); +function SelfLoopPostProcessor$lambda$5$Type(lNode_1){ + this.lNode_1 = lNode_1; +} + +defineClass(1669, 1, $intern_19, SelfLoopPostProcessor$lambda$5$Type); +_.accept = function accept_84(arg0){ + $restoreEdge(this.lNode_1, castTo(arg0, 340)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$5$Type', 1669); +function SelfLoopPostProcessor$lambda$6$Type(){ +} + +defineClass(1670, 1, $intern_40, SelfLoopPostProcessor$lambda$6$Type); +_.test_0 = function test_50(arg0){ + return !!castTo(arg0, 105).slLabels; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$6$Type', 1670); +function SelfLoopPostProcessor$lambda$7$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1671, 1, $intern_19, SelfLoopPostProcessor$lambda$7$Type); +_.accept = function accept_85(arg0){ + lambda$7_1(this.lNode_0, castTo(arg0, 105)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$7$Type', 1671); +function $hidePorts(slHolder){ + var entry, hierarchyMode, lNode, lPort, nestedGraph, orderFixed, outerIter, slPort, slPort$iterator; + lNode = slHolder.lNode; + nestedGraph = lNode.nestedGraph; + orderFixed = $isOrderFixed(castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101)); + hierarchyMode = !!nestedGraph && castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + if (orderFixed || hierarchyMode) { + return; + } + for (slPort$iterator = (outerIter = (new AbstractMap$2(slHolder.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 113)); + if (slPort.hadOnlySelfLoops) { + lPort = slPort.lPort; + $setNode(lPort, null); + slPort.isHidden = true; + slHolder.arePortsHidden = true; + } + } +} + +function $lambda$2_0(lEdge_0){ + $setSource_0(lEdge_0, null); + $setTarget_0(lEdge_0, null); +} + +function $process_48(graph, progressMonitor){ + var lnode, lnode$iterator, slHolder, holder; + progressMonitor.begin('Self-Loop pre-processing', 1); + for (lnode$iterator = new ArrayList$1(graph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { + lnode = castTo($next_6(lnode$iterator), 10); + if (needsSelfLoopProcessing(lnode)) { + slHolder = (holder = new SelfLoopHolder(lnode) , $setProperty_0(lnode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER), holder) , $initialize_3(holder) , holder); + $forEach_3($map($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPreProcessor$lambda$0$Type), new SelfLoopPreProcessor$lambda$1$Type), new SelfLoopPreProcessor$lambda$2$Type); + $hidePorts(slHolder); + } + } + progressMonitor.done_1(); +} + +function SelfLoopPreProcessor(){ +} + +defineClass(1653, 1, $intern_105, SelfLoopPreProcessor); +_.process = function process_45(graph, progressMonitor){ + $process_48(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor', 1653); +function SelfLoopPreProcessor$lambda$0$Type(){ +} + +defineClass(1654, 1, {}, SelfLoopPreProcessor$lambda$0$Type); +_.apply_0 = function apply_101(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 105).slEdges, 1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$0$Type', 1654); +function SelfLoopPreProcessor$lambda$1$Type(){ +} + +defineClass(1655, 1, {}, SelfLoopPreProcessor$lambda$1$Type); +_.apply_0 = function apply_102(arg0){ + return castTo(arg0, 340).lEdge; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$1$Type', 1655); +function SelfLoopPreProcessor$lambda$2$Type(){ +} + +defineClass(1656, 1, $intern_19, SelfLoopPreProcessor$lambda$2$Type); +_.accept = function accept_86(arg0){ + $lambda$2_0(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$2$Type', 1656); +function $lambda$4(this$static, router_2, slHolder_3){ + $determineLoopRoutes(this$static.routingDirector, slHolder_3); + $placeLabels_1(slHolder_3); + $assignRoutingSlots(this$static.routingSlotAssigner, slHolder_3); + $routeSelfLoops(router_2, slHolder_3); +} + +function $process_49(this$static, graph, progressMonitor){ + var router; + progressMonitor.begin('Self-Loop routing', 1); + router = $routerForGraph(graph); + throwClassCastExceptionUnlessNull($getProperty(graph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $forEach_3($map($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopRouter$lambda$0$Type), new SelfLoopRouter$lambda$1$Type), new SelfLoopRouter$lambda$2$Type), new SelfLoopRouter$lambda$3$Type), new SelfLoopRouter$lambda$4$Type(this$static, router)); + progressMonitor.done_1(); +} + +function $routerForGraph(graph){ + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 223).ordinal) { + case 1: + return new PolylineSelfLoopRouter; + case 3: + return new SplineSelfLoopRouter; + default:return new OrthogonalSelfLoopRouter; + } +} + +function SelfLoopRouter(){ + this.routingDirector = new RoutingDirector; + this.routingSlotAssigner = new RoutingSlotAssigner; +} + +defineClass(1672, 1, $intern_105, SelfLoopRouter); +_.process = function process_46(graph, progressMonitor){ + $process_49(this, castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter', 1672); +function SelfLoopRouter$lambda$0$Type(){ +} + +defineClass(1673, 1, {}, SelfLoopRouter$lambda$0$Type); +_.apply_0 = function apply_103(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$0$Type', 1673); +function SelfLoopRouter$lambda$1$Type(){ +} + +defineClass(1674, 1, $intern_40, SelfLoopRouter$lambda$1$Type); +_.test_0 = function test_51(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$1$Type', 1674); +function SelfLoopRouter$lambda$2$Type(){ +} + +defineClass(1675, 1, $intern_40, SelfLoopRouter$lambda$2$Type); +_.test_0 = function test_52(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$2$Type', 1675); +function SelfLoopRouter$lambda$3$Type(){ +} + +defineClass(1676, 1, {}, SelfLoopRouter$lambda$3$Type); +_.apply_0 = function apply_104(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 337); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$3$Type', 1676); +function SelfLoopRouter$lambda$4$Type($$outer_0, router_2){ + this.$$outer_0 = $$outer_0; + this.router_2 = router_2; +} + +defineClass(1677, 1, $intern_19, SelfLoopRouter$lambda$4$Type); +_.accept = function accept_87(arg0){ + $lambda$4(this.$$outer_0, this.router_2, castTo(arg0, 337)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$4$Type', 1677); +function $process_50(layeredGraph, progressMonitor){ + var addedConstraints, l, l$iterator, reduced; + progressMonitor.begin('Semi-Interactive Crossing Minimization Processor', 1); + addedConstraints = false; + for (l$iterator = new ArrayList$1(layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + reduced = $reduce_0($sorted_1($filter($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(l.nodes, 16)), new SemiInteractiveCrossMinProcessor$lambda$0$Type), new SemiInteractiveCrossMinProcessor$lambda$1$Type), new SemiInteractiveCrossMinProcessor$lambda$2$Type), new SemiInteractiveCrossMinProcessor$lambda$3$Type); + addedConstraints = addedConstraints | reduced.ref != null; + } + addedConstraints && $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES), ($clinit_Boolean() , true)); + progressMonitor.done_1(); +} + +function SemiInteractiveCrossMinProcessor(){ +} + +function lambda$2_6(n1_0, n2_1){ + var origPos1, origPos2; + origPos1 = castTo($getProperty(n1_0, ($clinit_LayeredOptions() , POSITION)), 8); + origPos2 = castTo($getProperty(n2_1, POSITION), 8); + return compare_4(origPos1.y_0, origPos2.y_0); +} + +function lambda$3_2(prev_0, cur_1){ + castTo($getProperty(prev_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).add_2(cur_1); + return cur_1; +} + +defineClass(1678, 1, $intern_105, SemiInteractiveCrossMinProcessor); +_.process = function process_47(layeredGraph, progressMonitor){ + $process_50(castTo(layeredGraph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor', 1678); +function SemiInteractiveCrossMinProcessor$lambda$0$Type(){ +} + +defineClass(1679, 1, $intern_40, SemiInteractiveCrossMinProcessor$lambda$0$Type); +_.test_0 = function test_53(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$0$Type', 1679); +function SemiInteractiveCrossMinProcessor$lambda$1$Type(){ +} + +defineClass(1680, 1, $intern_40, SemiInteractiveCrossMinProcessor$lambda$1$Type); +_.test_0 = function test_54(arg0){ + return $getAllProperties(castTo(arg0, 10)).containsKey(($clinit_LayeredOptions() , POSITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$1$Type', 1680); +function SemiInteractiveCrossMinProcessor$lambda$2$Type(){ +} + +defineClass(1681, 1, $intern_88, SemiInteractiveCrossMinProcessor$lambda$2$Type); +_.compare_1 = function compare_53(arg0, arg1){ + return lambda$2_6(castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_129(other){ + return this === other; +} +; +_.reversed = function reversed_45(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$2$Type', 1681); +function SemiInteractiveCrossMinProcessor$lambda$3$Type(){ +} + +defineClass(1682, 1, {}, SemiInteractiveCrossMinProcessor$lambda$3$Type); +_.apply_3 = function apply_105(arg0, arg1){ + return lambda$3_2(castTo(arg0, 10), castTo(arg1, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$3$Type', 1682); +function $process_51(graph, progressMonitor){ + var layer, layer$iterator, layerIndex, node, node$iterator, previousLayer, previousLayerIndex; + progressMonitor.begin('Sort By Input Model ' + $getProperty(graph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + previousLayerIndex = layerIndex == 0?0:layerIndex - 1; + previousLayer = castTo($get_11(graph.layers, previousLayerIndex), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(($clinit_PortConstraints() , FIXED_ORDER)) && maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(FIXED_POS)) { + $clinit_Collections(); + $sort(node.ports, new ModelOrderPortComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 284), longEdgeTargetNodePreprocessing(node), $booleanValue(castToBoolean($getProperty(graph, CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER_0))))); + progressMonitor.log_0('Node ' + node + ' ports: ' + node.ports); + } + } + $clinit_Collections(); + $sort(layer.nodes, new ModelOrderNodeComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 284), castTo($getProperty(graph, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0), 390))); + progressMonitor.log_0('Layer ' + layerIndex + ': ' + layer); + ++layerIndex; + } + progressMonitor.done_1(); +} + +function SortByInputModelProcessor(){ +} + +function getTargetNode(port){ + var edge, node; + node = null; + edge = castTo($get_11(port.outgoingEdges, 0), 18); + do { + node = edge.target.owner; + if ($hasProperty(node, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET))) { + return castTo($getProperty(node, LONG_EDGE_TARGET), 12).owner; + } + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))) { + edge = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 18); + } + else if (node.type_0 != NORMAL) { + return null; + } + } + while (!!node && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)); + return node; +} + +function lambda$1_12(targetNodeModelOrder_0, p_1){ + var edge, previousOrder, targetNode; + targetNode = getTargetNode(p_1); + $setProperty_0(p_1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE), targetNode); + if (targetNode) { + previousOrder = $intern_0; + !!$getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode) && (previousOrder = castTo(getEntryValueOrNull($getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode)), 17).value_0); + edge = castTo($get_11(p_1.outgoingEdges, 0), 18); + $booleanValue(castToBoolean($getProperty(edge, REVERSED))) || $put_6(targetNodeModelOrder_0, targetNode, valueOf_3($wnd.Math.min(castTo($getProperty(edge, MODEL_ORDER_1), 17).value_0, previousOrder))); + } +} + +function longEdgeTargetNodePreprocessing(node){ + var targetNodeModelOrder; + targetNodeModelOrder = new HashMap; + if ($hasProperty(node, ($clinit_InternalProperties_1() , TARGET_NODE_MODEL_ORDER))) { + return castTo($getProperty(node, TARGET_NODE_MODEL_ORDER), 85); + } + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(node.ports, 16)), new SortByInputModelProcessor$lambda$0$Type), new SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder)); + $setProperty_0(node, TARGET_NODE_MODEL_ORDER, targetNodeModelOrder); + return targetNodeModelOrder; +} + +defineClass(1684, 1, $intern_105, SortByInputModelProcessor); +_.process = function process_48(graph, progressMonitor){ + $process_51(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor', 1684); +function SortByInputModelProcessor$lambda$0$Type(){ +} + +defineClass(1685, 1, $intern_40, SortByInputModelProcessor$lambda$0$Type); +_.test_0 = function test_55(arg0){ + return castTo(arg0, 12).outgoingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$0$Type', 1685); +function SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder_0){ + this.targetNodeModelOrder_0 = targetNodeModelOrder_0; +} + +defineClass(1686, 1, $intern_19, SortByInputModelProcessor$lambda$1$Type); +_.accept = function accept_88(arg0){ + lambda$1_12(this.targetNodeModelOrder_0, castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$1$Type', 1686); +function $alterGroupedHitboxOrthogonal(g, spacing, fac){ + var delta, master, n, n$iterator, vs; + master = g.master; + !master && (master = castTo(g.cNodes.map_0.keySet_0().iterator_0().next_1(), 60)); + $alterHitbox(master, spacing, fac); + if (g.cNodes.map_0.size_1() == 1) { + return; + } + delta = spacing * fac; + for (n$iterator = g.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 60); + if (n != master) { + vs = getVerticalSegmentOrNull(n); + if (vs.ignoreSpacing.up) { + n.hitbox.y_0 += delta + $intern_94; + n.hitbox.height -= delta + $intern_94; + } + else + vs.ignoreSpacing.down && (n.hitbox.height -= delta + $intern_94); + } + } +} + +function $alterHitbox(n, spacing, fac){ + var delta, vs; + delta = spacing * fac; + if (instanceOf(n.origin_0, 154)) { + vs = getVerticalSegmentOrNull(n); + if (vs.ignoreSpacing.up) { + vs.ignoreSpacing.down || (n.hitbox.height += delta + $intern_94); + } + else { + n.hitbox.y_0 -= delta + $intern_94; + n.hitbox.height += delta + $intern_94; + } + } + else if (instanceOf(n.origin_0, 10)) { + n.hitbox.y_0 -= delta; + n.hitbox.height += 2 * delta; + } +} + +function $lambda$1_1(this$static, n_0){ + var lNode, spacing, vs; + if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return $intern_60; + } + vs = getVerticalSegmentOrNull(n_0); + if (vs) { + return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + } + lNode = getLNodeOrNull(n_0); + if (lNode) { + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + return $wnd.Math.max(0, spacing / 2 - 0.5); + } + return $intern_60; +} + +function $lambda$14(schedule_1, n_1){ + var finalSpacing, lNode, spacing; + lNode = getLNodeOrNull(n_1); + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + finalSpacing = $wnd.Math.max(0, spacing / 2 - 0.5); + $alterHitbox(n_1, finalSpacing, 1); + $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing)); +} + +function $lambda$18(this$static, n_0){ + var lNode, spacing, vs; + if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return $intern_60; + } + vs = getVerticalSegmentOrNull(n_0); + if (vs) { + return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + } + lNode = getLNodeOrNull(n_0); + if (lNode) { + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + return $wnd.Math.max(0, spacing / 2 - 0.5); + } + return $intern_60; +} + +function $lambda$20(minSpacing_1, schedule_3, g_2){ + $alterGroupedHitboxOrthogonal(g_2, minSpacing_1, 1); + $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_2, minSpacing_1)); +} + +function $lambda$4_0(minSpacing_1, schedule_3, n_2){ + $alterHitbox(n_2, minSpacing_1, 1); + $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_2, minSpacing_1)); +} + +function $lambda$9(this$static, schedule_1, n_1){ + var spacing; + spacing = $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + $alterHitbox(n_1, spacing, 1); + $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing)); +} + +function EdgeAwareScanlineConstraintCalculation(graph){ + ScanlineConstraintCalculator.call(this); + this.verticalEdgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + this.edgeRouting = castTo($getProperty(graph, EDGE_ROUTING), 223); +} + +defineClass(1759, 817, {}, EdgeAwareScanlineConstraintCalculation); +_.calculateConstraints = function calculateConstraints_1(theCompactor){ + var schedule, minSpacing, schedule_0, minSpacing_0; + this.compactor = theCompactor; + switch (this.edgeRouting.ordinal) { + case 2: + schedule = new ArrayList; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$8$Type), new EdgeAwareScanlineConstraintCalculation$lambda$9$Type(this, schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$11$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$12$Type); + schedule.array.length = 0; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$13$Type), new EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$16$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$17$Type); + schedule.array.length = 0; + minSpacing = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$18$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$19$Type); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cGroups, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing, schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$22$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$23$Type); + schedule.array.length = 0; + break; + case 3: + schedule_0 = new ArrayList; + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$0$Type); + minSpacing_0 = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$1$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$2$Type); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$3$Type), new EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_0, schedule_0)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$6$Type); + $forEach_1(schedule_0, new EdgeAwareScanlineConstraintCalculation$lambda$7$Type); + schedule_0.array.length = 0; + break; + default:throw toJs(new UnsupportedConfigurationException); + } +} +; +_.verticalEdgeEdgeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation', 1759); +function EdgeAwareScanlineConstraintCalculation$lambda$0$Type(){ +} + +defineClass(1760, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$0$Type); +_.apply_1 = function apply_106(arg0){ + return instanceOf(castTo(arg0, 60).origin_0, 154); +} +; +_.equals_0 = function equals_130(other){ + return this === other; +} +; +_.test_0 = function test_56(input_0){ + return instanceOf(castTo(input_0, 60).origin_0, 154); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$0$Type', 1760); +function EdgeAwareScanlineConstraintCalculation$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1761, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$1$Type); +_.applyAsDouble = function applyAsDouble_1(arg0){ + return $lambda$1_1(this.$$outer_0, castTo(arg0, 60)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$1$Type', 1761); +function EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing_2){ + this.n_1 = n_1; + this.spacing_2 = spacing_2; +} + +defineClass(1769, 1, $intern_41, EdgeAwareScanlineConstraintCalculation$lambda$10$Type); +_.run = function run_1(){ + $alterHitbox(this.n_1, this.spacing_2, -1); +} +; +_.spacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$10$Type', 1769); +function EdgeAwareScanlineConstraintCalculation$lambda$11$Type(){ +} + +defineClass(1771, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$11$Type); +_.apply_1 = function apply_107(arg0){ + return instanceOf(castTo(arg0, 60).origin_0, 154); +} +; +_.equals_0 = function equals_131(other){ + return this === other; +} +; +_.test_0 = function test_57(input_0){ + return instanceOf(castTo(input_0, 60).origin_0, 154); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$11$Type', 1771); +function EdgeAwareScanlineConstraintCalculation$lambda$12$Type(){ +} + +defineClass(1772, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$12$Type); +_.accept = function accept_89(arg0){ + castTo(arg0, 380).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$12$Type', 1772); +function EdgeAwareScanlineConstraintCalculation$lambda$13$Type(){ +} + +defineClass(1773, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$13$Type); +_.test_0 = function test_58(arg0){ + return instanceOf(castTo(arg0, 60).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$13$Type', 1773); +function EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule_1){ + this.schedule_1 = schedule_1; +} + +defineClass(1775, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$14$Type); +_.accept = function accept_90(arg0){ + $lambda$14(this.schedule_1, castTo(arg0, 60)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$14$Type', 1775); +function EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing_2){ + this.n_1 = n_1; + this.finalSpacing_2 = finalSpacing_2; +} + +defineClass(1774, 1, $intern_41, EdgeAwareScanlineConstraintCalculation$lambda$15$Type); +_.run = function run_2(){ + $alterHitbox(this.n_1, this.finalSpacing_2, -1); +} +; +_.finalSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$15$Type', 1774); +function EdgeAwareScanlineConstraintCalculation$lambda$16$Type(){ +} + +defineClass(1776, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$16$Type); +_.apply_1 = function apply_108(arg0){ + return instanceOf(castTo(arg0, 60).origin_0, 10); +} +; +_.equals_0 = function equals_132(other){ + return this === other; +} +; +_.test_0 = function test_59(input_0){ + return instanceOf(castTo(input_0, 60).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$16$Type', 1776); +function EdgeAwareScanlineConstraintCalculation$lambda$17$Type(){ +} + +defineClass(1777, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$17$Type); +_.accept = function accept_91(arg0){ + castTo(arg0, 380).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$17$Type', 1777); +function EdgeAwareScanlineConstraintCalculation$lambda$18$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1778, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$18$Type); +_.applyAsDouble = function applyAsDouble_2(arg0){ + return $lambda$18(this.$$outer_0, castTo(arg0, 60)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$18$Type', 1778); +function EdgeAwareScanlineConstraintCalculation$lambda$19$Type(){ +} + +defineClass(1779, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$19$Type); +_.getAsDouble = function getAsDouble(){ + return 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$19$Type', 1779); +function EdgeAwareScanlineConstraintCalculation$lambda$2$Type(){ +} + +defineClass(1762, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$2$Type); +_.getAsDouble = function getAsDouble_0(){ + return 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$2$Type', 1762); +function EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1781, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$20$Type); +_.accept = function accept_92(arg0){ + $lambda$20(this.minSpacing_1, this.schedule_3, castTo(arg0, 316)); +} +; +_.minSpacing_1 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$20$Type', 1781); +function EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_1, minSpacing_2){ + this.g_1 = g_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1780, 1, $intern_41, EdgeAwareScanlineConstraintCalculation$lambda$21$Type); +_.run = function run_3(){ + $alterGroupedHitboxOrthogonal(this.g_1, this.minSpacing_2, -1); +} +; +_.minSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$21$Type', 1780); +function EdgeAwareScanlineConstraintCalculation$lambda$22$Type(){ +} + +defineClass(1782, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$22$Type); +_.apply_1 = function apply_109(arg0){ + return castTo(arg0, 60) , true; +} +; +_.equals_0 = function equals_133(other){ + return this === other; +} +; +_.test_0 = function test_60(input_0){ + return castTo(input_0, 60) , true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$22$Type', 1782); +function EdgeAwareScanlineConstraintCalculation$lambda$23$Type(){ +} + +defineClass(1783, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$23$Type); +_.accept = function accept_93(arg0){ + castTo(arg0, 380).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$23$Type', 1783); +function EdgeAwareScanlineConstraintCalculation$lambda$3$Type(){ +} + +defineClass(1763, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$3$Type); +_.test_0 = function test_61(arg0){ + return instanceOf(castTo(arg0, 60).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$3$Type', 1763); +function EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1765, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$4$Type); +_.accept = function accept_94(arg0){ + $lambda$4_0(this.minSpacing_1, this.schedule_3, castTo(arg0, 60)); +} +; +_.minSpacing_1 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$4$Type', 1765); +function EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_1, minSpacing_2){ + this.n_1 = n_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1764, 1, $intern_41, EdgeAwareScanlineConstraintCalculation$lambda$5$Type); +_.run = function run_4(){ + $alterHitbox(this.n_1, this.minSpacing_2, -1); +} +; +_.minSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$5$Type', 1764); +function EdgeAwareScanlineConstraintCalculation$lambda$6$Type(){ +} + +defineClass(1766, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$6$Type); +_.apply_1 = function apply_110(arg0){ + return castTo(arg0, 60) , true; +} +; +_.equals_0 = function equals_134(other){ + return this === other; +} +; +_.test_0 = function test_62(input_0){ + return castTo(input_0, 60) , true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$6$Type', 1766); +function EdgeAwareScanlineConstraintCalculation$lambda$7$Type(){ +} + +defineClass(1767, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$7$Type); +_.accept = function accept_95(arg0){ + castTo(arg0, 380).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$7$Type', 1767); +function EdgeAwareScanlineConstraintCalculation$lambda$8$Type(){ +} + +defineClass(1768, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$8$Type); +_.test_0 = function test_63(arg0){ + return instanceOf(castTo(arg0, 60).origin_0, 154); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$8$Type', 1768); +function EdgeAwareScanlineConstraintCalculation$lambda$9$Type($$outer_0, schedule_1){ + this.$$outer_0 = $$outer_0; + this.schedule_1 = schedule_1; +} + +defineClass(1770, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$9$Type); +_.accept = function accept_96(arg0){ + $lambda$9(this.$$outer_0, this.schedule_1, castTo(arg0, 60)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$9$Type', 1770); +function $clinit_HorizontalGraphCompactor(){ + $clinit_HorizontalGraphCompactor = emptyMethod; + NETWORK_SIMPLEX_COMPACTION = new NetworkSimplexCompaction; +} + +function $process_52(this$static, layeredGraph, progressMonitor){ + var odc, strategy, transformer; + strategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , COMPACTION_POST_COMPACTION_STRATEGY_0)), 282); + if (strategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return; + } + progressMonitor.begin('Horizontal Compaction', 1); + this$static.lGraph = layeredGraph; + transformer = new LGraphToCGraphTransformer; + odc = new OneDimensionalCompactor((transformer.layeredGraph = layeredGraph , transformer.edgeRouting = castTo($getProperty(transformer.layeredGraph, EDGE_ROUTING), 223) , $init(transformer) , $transformNodes_0(transformer) , $transformEdges_0(transformer) , transformer.cGraph)); + $setSpacingsHandler(odc, this$static.specialSpacingsHandler); + switch (castTo($getProperty(layeredGraph, COMPACTION_POST_COMPACTION_CONSTRAINTS_0), 431).ordinal) { + case 1: + $setConstraintAlgorithm(odc, new EdgeAwareScanlineConstraintCalculation(this$static.lGraph)); + break; + default:$setConstraintAlgorithm(odc, ($clinit_OneDimensionalCompactor() , QUADRATIC_CONSTRAINTS)); + } + switch (strategy.ordinal) { + case 1: + $compact(odc); + break; + case 2: + $compact($changeDirection(odc, ($clinit_Direction_0() , RIGHT_6))); + break; + case 3: + $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$0$Type)); + break; + case 4: + $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$1$Type(transformer))); + break; + case 5: + $compact($setCompactionAlgorithm(odc, NETWORK_SIMPLEX_COMPACTION)); + } + $changeDirection(odc, ($clinit_Direction_0() , LEFT_6)); + odc.finished = true; + $applyLayout_3(transformer); + progressMonitor.done_1(); +} + +function HorizontalGraphCompactor(){ + $clinit_HorizontalGraphCompactor(); + this.specialSpacingsHandler = new HorizontalGraphCompactor$1(this); +} + +function getLNodeOrNull(cNode){ + $clinit_HorizontalGraphCompactor(); + if (instanceOf(cNode.origin_0, 10)) { + return castTo(cNode.origin_0, 10); + } + return null; +} + +function getVerticalSegmentOrNull(cNode){ + $clinit_HorizontalGraphCompactor(); + if (instanceOf(cNode.origin_0, 154)) { + return castTo(cNode.origin_0, 154); + } + return null; +} + +function isVerticalSegmentsOfSameEdge(cNode1, cNode2){ + $clinit_HorizontalGraphCompactor(); + var v1, v2; + v1 = getVerticalSegmentOrNull(cNode1); + v2 = getVerticalSegmentOrNull(cNode2); + return !!v1 && !!v2 && !disjoint(v1.representedLEdges, v2.representedLEdges); +} + +function lambda$1_13(transformer_0, node_1, dir_2){ + $clinit_HorizontalGraphCompactor(); + return $get_18(castTo($get_10(transformer_0.lockMap, node_1), 529), dir_2); +} + +defineClass(1586, 1, $intern_105, HorizontalGraphCompactor); +_.process = function process_49(layeredGraph, progressMonitor){ + $process_52(this, castTo(layeredGraph, 36), progressMonitor); +} +; +var NETWORK_SIMPLEX_COMPACTION; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor', 1586); +function HorizontalGraphCompactor$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1587, 1, {}, HorizontalGraphCompactor$1); +_.getHorizontalSpacing = function getHorizontalSpacing_2(cNode1, cNode2){ + var node1, node2, spacings; + if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { + return 0; + } + node1 = getLNodeOrNull(cNode1); + node2 = getLNodeOrNull(cNode2); + if (!!node1 && node1.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || !!node2 && node2.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return 0; + } + spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + return $getHorizontalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); +} +; +_.getVerticalSpacing = function getVerticalSpacing_2(cNode1, cNode2){ + var node1, node2, spacings; + if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { + return 1; + } + node1 = getLNodeOrNull(cNode1); + node2 = getLNodeOrNull(cNode2); + spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + return $getVerticalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/1', 1587); +function HorizontalGraphCompactor$lambda$0$Type(){ +} + +defineClass(1588, 1, {}, HorizontalGraphCompactor$lambda$0$Type); +_.isLocked = function isLocked(arg0, arg1){ + return $clinit_HorizontalGraphCompactor() , arg0.cGroup.outDegreeReal == 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$0$Type', 1588); +function HorizontalGraphCompactor$lambda$1$Type(transformer_0){ + this.transformer_0 = transformer_0; +} + +defineClass(1589, 1, {}, HorizontalGraphCompactor$lambda$1$Type); +_.isLocked = function isLocked_0(arg0, arg1){ + return lambda$1_13(this.transformer_0, arg0, arg1); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$1$Type', 1589); +function $clinit_LGraphToCGraphTransformer(){ + $clinit_LGraphToCGraphTransformer = emptyMethod; + NODE_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$0$Type; + VS_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$1$Type; +} + +function $adjustControlPointBetweenSegments(this$static, left, right, leftIdx, rightIdx, spline){ + var adjust, chunk, chunks, endX, idx1, idx2, k, n, newPos, startX, strip, width_0; + idx1 = leftIdx; + if (left.initialSegment && left.isStraight) { + n = castTo($get_10(this$static.nodesMap, left.sourceNode), 60); + startX = n.hitbox.x_0 + n.hitbox.width_0; + --idx1; + } + else { + startX = left.boundingBox.x_0 + left.boundingBox.width_0; + } + idx2 = rightIdx; + if (right.lastSegment && right.isStraight) { + n = castTo($get_10(this$static.nodesMap, right.targetNode), 60); + endX = n.hitbox.x_0; + ++idx2; + } + else { + endX = right.boundingBox.x_0; + } + strip = endX - startX; + chunks = $wnd.Math.max(2, idx2 - idx1); + chunk = strip / chunks; + newPos = startX + chunk; + for (k = idx1; k < idx2; ++k) { + adjust = castTo(spline.get_0(k), 131); + width_0 = adjust.boundingBox.width_0; + adjust.boundingBox.x_0 = newPos - width_0 / 2; + newPos += chunk; + } +} + +function $adjustSplineControlPoints(this$static, spline){ + var i, j, lastSeg, needle, nextSeg; + if (spline.isEmpty()) { + return; + } + lastSeg = castTo(spline.get_0(0), 131); + if (spline.size_1() == 1) { + $adjustControlPointBetweenSegments(this$static, lastSeg, lastSeg, 1, 0, spline); + return; + } + i = 1; + while (i < spline.size_1()) { + if (lastSeg.initialSegment || !lastSeg.isStraight) { + needle = $firstNonStraightSegment(spline, i); + if (needle) { + j = castTo(needle.first, 17).value_0; + nextSeg = castTo(needle.second, 131); + $adjustControlPointBetweenSegments(this$static, lastSeg, nextSeg, i, j, spline); + i = j + 1; + lastSeg = nextSeg; + } + } + } +} + +function $applyCommentPositions(this$static){ + var comment, e, e$iterator, offset, other; + for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.commentOffsets)).this$01); e$iterator.hasNext;) { + e = $next_3(e$iterator); + comment = castTo(e.getKey(), 10); + other = castTo(castTo(e.getValue(), 42).first, 10); + offset = castTo(castTo(e.getValue(), 42).second, 8); + $add_19($reset_5(comment.pos), $add_19($clone_1(other.pos), offset)); + } +} + +function $applyExternalPortPositions(this$static, topLeft, bottomRight){ + var cNode, cNode$iterator, lNode; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + lNode = getLNodeOrNull(cNode); + if (lNode) { + if (lNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + switch (castTo($getProperty(lNode, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64).ordinal) { + case 4: + lNode.pos.x_0 = topLeft.x_0; + break; + case 2: + lNode.pos.x_0 = bottomRight.x_0 - (lNode.size_0.x_0 + lNode.margin.right); + break; + case 1: + lNode.pos.y_0 = topLeft.y_0; + break; + case 3: + lNode.pos.y_0 = bottomRight.y_0 - (lNode.size_0.y_0 + lNode.margin.bottom); + } + } + } + } +} + +function $applyLayout_3(this$static){ + var bottomRight, cNode, cNode$iterator, topLeft; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$10$Type), new LGraphToCGraphTransformer$lambda$11$Type); + $applyCommentPositions(this$static); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$12$Type), new LGraphToCGraphTransformer$lambda$13$Type); + if (this$static.edgeRouting == ($clinit_EdgeRouting() , SPLINES)) { + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.nodesMap), 1)), new LGraphToCGraphTransformer$lambda$17$Type), new LGraphToCGraphTransformer$lambda$18$Type), new LGraphToCGraphTransformer$lambda$19$Type(this$static)); + $forEach_3($filter($map($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$20$Type), new LGraphToCGraphTransformer$lambda$21$Type), new LGraphToCGraphTransformer$lambda$22$Type), new LGraphToCGraphTransformer$lambda$23$Type), new LGraphToCGraphTransformer$lambda$24$Type(this$static)); + } + topLeft = new KVector_1($intern_60, $intern_60); + bottomRight = new KVector_1($intern_61, $intern_61); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + $add_19($reset_5(this$static.layeredGraph.offset), $negate_0(new KVector_1(topLeft.x_0, topLeft.y_0))); + $add_19($reset_5(this$static.layeredGraph.size_0), $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft)); + $applyExternalPortPositions(this$static, topLeft, bottomRight); + $reset(this$static.nodesMap); + $reset(this$static.commentOffsets); + $reset(this$static.verticalSegmentsMap); + $reset(this$static.lockMap); + this$static.cGraph.cGroups.array.length = 0; + this$static.cGraph.cNodes.array.length = 0; + this$static.cGraph = null; + this$static.layeredGraph = null; +} + +function $collectVerticalSegmentsOrthogonal(this$static){ + var bend1, bend2, bends, cNode, cTargetNode, edge, edge$iterator, edge$iterator0, first, lastSegment, layer, layer$iterator, node, node$iterator, verticalSegments, vs; + verticalSegments = new ArrayList; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + cNode = castTo($get_10(this$static.nodesMap, node), 60); + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 18); + bends = $listIterator_2(edge.bendPoints, 0); + first = true; + lastSegment = null; + if (bends.currentNode != bends.this$01.tail) { + bend1 = castTo($next_9(bends), 8); + bend2 = null; + if (edge.source.side == ($clinit_PortSide() , NORTH_3)) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); + vs.ignoreSpacing.down = true; + vs.aPort = edge.source; + push_1(verticalSegments.array, vs); + } + if (edge.source.side == SOUTH_2) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); + vs.ignoreSpacing.up = true; + vs.aPort = edge.source; + push_1(verticalSegments.array, vs); + } + while (bends.currentNode != bends.this$01.tail) { + bend2 = castTo($next_9(bends), 8); + if (!eq_0(bend1.y_0, bend2.y_0)) { + lastSegment = new VerticalSegment(bend1, bend2, null, edge); + push_1(verticalSegments.array, lastSegment); + if (first) { + first = false; + if (bend2.y_0 < cNode.hitbox.y_0) { + lastSegment.ignoreSpacing.down = true; + } + else if (bend2.y_0 > cNode.hitbox.y_0 + cNode.hitbox.height) { + lastSegment.ignoreSpacing.up = true; + } + else { + lastSegment.ignoreSpacing.up = true; + lastSegment.ignoreSpacing.down = true; + } + } + } + bends.currentNode != bends.this$01.tail && (bend1 = bend2); + } + if (lastSegment) { + cTargetNode = castTo($get_10(this$static.nodesMap, edge.target.owner), 60); + if (bend1.y_0 < cTargetNode.hitbox.y_0) { + lastSegment.ignoreSpacing.down = true; + } + else if (bend1.y_0 > cTargetNode.hitbox.y_0 + cTargetNode.hitbox.height) { + lastSegment.ignoreSpacing.up = true; + } + else { + lastSegment.ignoreSpacing.up = true; + lastSegment.ignoreSpacing.down = true; + } + } + } + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (edge.bendPoints.size_0 != 0) { + bend1 = castTo($getLast(edge.bendPoints), 8); + if (edge.target.side == ($clinit_PortSide() , NORTH_3)) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); + vs.ignoreSpacing.down = true; + vs.aPort = edge.target; + push_1(verticalSegments.array, vs); + } + if (edge.target.side == SOUTH_2) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); + vs.ignoreSpacing.up = true; + vs.aPort = edge.target; + push_1(verticalSegments.array, vs); + } + } + } + } + } + return verticalSegments; +} + +function $firstNonStraightSegment(spline, index_0){ + var i, seg; + if (index_0 < 0 || index_0 >= spline.size_1()) { + return null; + } + for (i = index_0; i < spline.size_1(); ++i) { + seg = castTo(spline.get_0(i), 131); + if (i == spline.size_1() - 1 || !seg.isStraight) { + return new Pair(valueOf_3(i), seg); + } + } + return null; +} + +function $init(this$static){ + var hasEdges, index_0, l, l$iterator, n, n$iterator, supportedDirections; + hasEdges = false; + index_0 = 0; + for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + l.id_0 = index_0++; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + !hasEdges && !isEmpty_13($getConnectedEdges_0(n)) && (hasEdges = true); + } + } + supportedDirections = of_2(($clinit_Direction_0() , UNDEFINED_2), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_37, 88, 0, [LEFT_6, RIGHT_6])); + if (!hasEdges) { + $add_5(supportedDirections, UP_1); + $add_5(supportedDirections, DOWN_1); + } + this$static.cGraph = new CGraph(supportedDirections); + $reset(this$static.nodesMap); + $reset(this$static.commentOffsets); + $reset(this$static.lockMap); + $reset(this$static.verticalSegmentsMap); +} + +function $lambda$19(this$static, sl_0){ + var cNode, deltaX, lNode; + lNode = sl_0.source.owner; + cNode = castTo($get_10(this$static.nodesMap, lNode), 60); + deltaX = cNode.hitbox.x_0 - cNode.hitboxPreCompaction.x_0; + $offset_1(sl_0.bendPoints, deltaX, 0); +} + +function $lambda$2_1(this$static, vs_0){ + var vsNode; + vsNode = castTo($get_10(this$static.verticalSegmentsMap, vs_0), 60); + $forEach_1(vs_0.constraints, new LGraphToCGraphTransformer$lambda$3$Type(this$static, vsNode)); +} + +function $lambda$3(this$static, vsNode_1, other_1){ + var otherNode; + otherNode = castTo($get_10(this$static.verticalSegmentsMap, other_1), 60); + $add_3(this$static.cGraph.predefinedHorizontalConstraints, new Pair(vsNode_1, otherNode)); +} + +function $lambda$9_0(this$static, cNode_1, other_1){ + return $put_6(this$static.verticalSegmentsMap, other_1, cNode_1); +} + +function $mergeVerticalSegments(this$static, verticalSegments){ + var next, survivor, vsIt, newX, newY, maxX, newW, maxY, newH; + if (verticalSegments.array.length == 0) { + return; + } + $clinit_Collections(); + sort_4(verticalSegments.array, verticalSegments.array.length, null); + vsIt = new ArrayList$1(verticalSegments); + survivor = castTo($next_6(vsIt), 154); + while (vsIt.i < vsIt.this$01.array.length) { + next = castTo($next_6(vsIt), 154); + if (eq_0(survivor.hitbox.x_0, next.hitbox.x_0) && !(lt_0($getBottomLeft(survivor.hitbox).y_0, next.hitbox.y_0) || lt_0($getBottomLeft(next.hitbox).y_0, survivor.hitbox.y_0))) { + survivor = ($addAll_2(survivor.representedLEdges, next.representedLEdges) , $addAll_2(survivor.affectedBends, next.affectedBends) , $addAll_2(survivor.affectedBoundingBoxes, next.affectedBoundingBoxes) , $addAll(survivor.junctionPoints, next.junctionPoints) , $addAll_2(survivor.constraints, next.constraints) , $addAll_2(survivor.potentialGroupParents, next.potentialGroupParents) , newX = $wnd.Math.min(survivor.hitbox.x_0, next.hitbox.x_0) , newY = $wnd.Math.min(survivor.hitbox.y_0, next.hitbox.y_0) , maxX = $wnd.Math.max(survivor.hitbox.x_0 + survivor.hitbox.width_0, next.hitbox.x_0 + next.hitbox.width_0) , newW = maxX - newX , maxY = $wnd.Math.max(survivor.hitbox.y_0 + survivor.hitbox.height, next.hitbox.y_0 + next.hitbox.height) , newH = maxY - newY , $setRect(survivor.hitbox, newX, newY, newW, newH) , $applyOr(survivor.ignoreSpacing, next.ignoreSpacing) , !survivor.aPort && (survivor.aPort = next.aPort) , $addAll_2(survivor.joined, next.joined) , $add_3(survivor.joined, next) , survivor); + } + else { + $verticalSegmentToCNode(this$static, survivor); + survivor = next; + } + } + $verticalSegmentToCNode(this$static, survivor); +} + +function $transformEdges_0(this$static){ + var style, verticalSegments, verticalSegments_0; + style = castTo($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 223); + switch (style.ordinal) { + case 2: + verticalSegments = $collectVerticalSegmentsOrthogonal(this$static); + break; + case 3: + verticalSegments = (verticalSegments_0 = new ArrayList , $forEach_3($filter($map($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$4$Type), new LGraphToCGraphTransformer$lambda$5$Type), new LGraphToCGraphTransformer$lambda$6$Type), new LGraphToCGraphTransformer$0methodref$nonNull$Type), new LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0)) , verticalSegments_0); + break; + default:throw toJs(new IllegalStateException_0('Compaction not supported for ' + style + ' edges.')); + } + $mergeVerticalSegments(this$static, verticalSegments); + $forEach_0(new AbstractMap$1(this$static.verticalSegmentsMap), new LGraphToCGraphTransformer$lambda$2$Type(this$static)); +} + +function $transformNodes_0(this$static){ + var cNode, difference, e, hitbox, layer, layer$iterator, node, node$iterator, nodeLock, other, p; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + if (!isEmpty_13($getConnectedEdges_0(node))) { + e = castTo(get_22($getConnectedEdges_0(node)), 18); + other = e.source.owner; + other == node && (other = e.target.owner); + p = new Pair(other, $sub_0($clone_1(node.pos), other.pos)); + $put_6(this$static.commentOffsets, node, p); + continue; + } + } + hitbox = new ElkRectangle_0(node.pos.x_0 - node.margin.left, node.pos.y_0 - node.margin.top_0, node.size_0.x_0 + node.margin.left + node.margin.right, node.size_0.y_0 + node.margin.top_0 + node.margin.bottom); + cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, node), hitbox), NODE_TO_STRING_DELEGATE), this$static.cGraph); + $create($master($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 60, 0, [cNode])), cNode), this$static.cGraph); + nodeLock = new Quadruplet; + $put_6(this$static.lockMap, cNode, nodeLock); + difference = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))) - size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + difference < 0?$set_2(nodeLock, true, ($clinit_Direction_0() , LEFT_6)):difference > 0 && $set_2(nodeLock, true, ($clinit_Direction_0() , RIGHT_6)); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && $set_3(nodeLock); + $put_6(this$static.nodesMap, node, cNode); + } + } +} + +function $verticalSegmentToCNode(this$static, verticalSegment){ + var cNode, difference, e, e$iterator, inc, out, vsLock; + cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, verticalSegment), new ElkRectangle_1(verticalSegment.hitbox)), VS_TO_STRING_DELEGATE), this$static.cGraph); + verticalSegment.potentialGroupParents.array.length == 0 || $addCNode(castTo($get_11(verticalSegment.potentialGroupParents, 0), 60).cGroup, cNode); + vsLock = new Quadruplet; + $put_6(this$static.lockMap, cNode, vsLock); + inc = new HashSet; + out = new HashSet; + for (e$iterator = new ArrayList$1(verticalSegment.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + $add_6(inc, e.source); + $add_6(out, e.target); + } + difference = inc.map_0.size_1() - out.map_0.size_1(); + if (difference < 0) { + $set_2(vsLock, true, ($clinit_Direction_0() , LEFT_6)); + $set_2(vsLock, false, RIGHT_6); + } + else if (difference > 0) { + $set_2(vsLock, false, ($clinit_Direction_0() , LEFT_6)); + $set_2(vsLock, true, RIGHT_6); + } + $forEach_1(verticalSegment.joined, new LGraphToCGraphTransformer$lambda$9$Type(this$static, cNode)); + $put_6(this$static.verticalSegmentsMap, verticalSegment, cNode); +} + +function LGraphToCGraphTransformer(){ + $clinit_LGraphToCGraphTransformer(); + this.commentOffsets = new HashMap; + this.nodesMap = new HashMap; + this.verticalSegmentsMap = new HashMap; + this.lockMap = new HashMap; +} + +function lambda$11(cNode_0){ + $clinit_LGraphToCGraphTransformer(); + var lNode; + lNode = castTo(cNode_0.origin_0, 10); + lNode.pos.x_0 = cNode_0.hitbox.x_0 + lNode.margin.left; +} + +function lambda$13(cNode_0){ + $clinit_LGraphToCGraphTransformer(); + var deltaX, vs; + deltaX = cNode_0.hitbox.x_0 - cNode_0.hitboxPreCompaction.x_0; + vs = castTo(cNode_0.origin_0, 154); + $forEach_1(vs.affectedBends, new LGraphToCGraphTransformer$lambda$14$Type(deltaX)); + $forEach_1(vs.affectedBoundingBoxes, new LGraphToCGraphTransformer$lambda$15$Type(deltaX)); + $forEach_0(vs.junctionPoints, new LGraphToCGraphTransformer$lambda$16$Type(deltaX)); +} + +function lambda$14(deltaX_0, b_1){ + $clinit_LGraphToCGraphTransformer(); + return b_1.x_0 += deltaX_0; +} + +function lambda$15(deltaX_0, bb_1){ + $clinit_LGraphToCGraphTransformer(); + return bb_1.x_0 += deltaX_0; +} + +function lambda$16(deltaX_0, jp_1){ + $clinit_LGraphToCGraphTransformer(); + return jp_1.x_0 += deltaX_0; +} + +function lambda$23(chain_0){ + $clinit_LGraphToCGraphTransformer(); + return !!chain_0 && !chain_0.isEmpty(); +} + +function lambda$8_0(verticalSegments_0, spline_1){ + $clinit_LGraphToCGraphTransformer(); + var lastVs, leftTop, rightBottom, s, s$iterator, vs; + lastVs = null; + for (s$iterator = spline_1.iterator_0(); s$iterator.hasNext_0();) { + s = castTo(s$iterator.next_1(), 131); + if (s.isStraight) { + continue; + } + leftTop = $getTopLeft(s.boundingBox); + rightBottom = $getBottomRight(s.boundingBox); + vs = new VerticalSegment(leftTop, rightBottom, null, castTo(s.edges.map_0.keySet_0().iterator_0().next_1(), 18)); + $add_3(vs.affectedBoundingBoxes, s.boundingBox); + push_1(verticalSegments_0.array, vs); + !!lastVs && $add_3(lastVs.constraints, vs); + lastVs = vs; + } +} + +defineClass(1730, 1, {}, LGraphToCGraphTransformer); +var NODE_TO_STRING_DELEGATE, VS_TO_STRING_DELEGATE; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer', 1730); +function LGraphToCGraphTransformer$0methodref$nonNull$Type(){ +} + +defineClass(1738, 1, $intern_40, LGraphToCGraphTransformer$0methodref$nonNull$Type); +_.test_0 = function test_64(arg0){ + return arg0 != null; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$0methodref$nonNull$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/0methodref$nonNull$Type', 1738); +function LGraphToCGraphTransformer$lambda$0$Type(){ +} + +defineClass(1731, 1, {}, LGraphToCGraphTransformer$lambda$0$Type); +_.apply_0 = function apply_111(arg0){ + return $clinit_LGraphToCGraphTransformer() , toString_40($getProperty(castTo(castTo(arg0, 60).origin_0, 10), ($clinit_InternalProperties_1() , ORIGIN_0))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$0$Type', 1731); +function LGraphToCGraphTransformer$lambda$1$Type(){ +} + +defineClass(1732, 1, {}, LGraphToCGraphTransformer$lambda$1$Type); +_.apply_0 = function apply_112(arg0){ + return $clinit_LGraphToCGraphTransformer() , $toString_14(castTo(castTo(arg0, 60).origin_0, 154)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$1$Type', 1732); +function LGraphToCGraphTransformer$lambda$10$Type(){ +} + +defineClass(1741, 1, $intern_40, LGraphToCGraphTransformer$lambda$10$Type); +_.test_0 = function test_65(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 60).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$10$Type', 1741); +function LGraphToCGraphTransformer$lambda$11$Type(){ +} + +defineClass(1742, 1, $intern_19, LGraphToCGraphTransformer$lambda$11$Type); +_.accept = function accept_97(arg0){ + lambda$11(castTo(arg0, 60)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$11$Type', 1742); +function LGraphToCGraphTransformer$lambda$12$Type(){ +} + +defineClass(1743, 1, $intern_40, LGraphToCGraphTransformer$lambda$12$Type); +_.test_0 = function test_66(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 60).origin_0, 154); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$12$Type', 1743); +function LGraphToCGraphTransformer$lambda$13$Type(){ +} + +defineClass(1747, 1, $intern_19, LGraphToCGraphTransformer$lambda$13$Type); +_.accept = function accept_98(arg0){ + lambda$13(castTo(arg0, 60)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$13$Type', 1747); +function LGraphToCGraphTransformer$lambda$14$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1744, 1, $intern_19, LGraphToCGraphTransformer$lambda$14$Type); +_.accept = function accept_99(arg0){ + lambda$14(this.deltaX_0, castTo(arg0, 8)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$14$Type', 1744); +function LGraphToCGraphTransformer$lambda$15$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1745, 1, $intern_19, LGraphToCGraphTransformer$lambda$15$Type); +_.accept = function accept_100(arg0){ + lambda$15(this.deltaX_0, castTo(arg0, 116)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$15$Type', 1745); +function LGraphToCGraphTransformer$lambda$16$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1746, 1, $intern_19, LGraphToCGraphTransformer$lambda$16$Type); +_.accept = function accept_101(arg0){ + lambda$16(this.deltaX_0, castTo(arg0, 8)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$16$Type', 1746); +function LGraphToCGraphTransformer$lambda$17$Type(){ +} + +defineClass(1748, 1, {}, LGraphToCGraphTransformer$lambda$17$Type); +_.apply_0 = function apply_113(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$17$Type', 1748); +function LGraphToCGraphTransformer$lambda$18$Type(){ +} + +defineClass(1749, 1, $intern_40, LGraphToCGraphTransformer$lambda$18$Type); +_.test_0 = function test_67(arg0){ + return $clinit_LGraphToCGraphTransformer() , $isSelfLoop(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$18$Type', 1749); +function LGraphToCGraphTransformer$lambda$19$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1750, 1, $intern_19, LGraphToCGraphTransformer$lambda$19$Type); +_.accept = function accept_102(arg0){ + $lambda$19(this.$$outer_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$19$Type', 1750); +function LGraphToCGraphTransformer$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1734, 1, $intern_19, LGraphToCGraphTransformer$lambda$2$Type); +_.accept = function accept_103(arg0){ + $lambda$2_1(this.$$outer_0, castTo(arg0, 154)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$2$Type', 1734); +function LGraphToCGraphTransformer$lambda$20$Type(){ +} + +defineClass(1751, 1, {}, LGraphToCGraphTransformer$lambda$20$Type); +_.apply_0 = function apply_114(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$20$Type', 1751); +function LGraphToCGraphTransformer$lambda$21$Type(){ +} + +defineClass(1752, 1, {}, LGraphToCGraphTransformer$lambda$21$Type); +_.apply_0 = function apply_115(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$21$Type', 1752); +function LGraphToCGraphTransformer$lambda$22$Type(){ +} + +defineClass(1753, 1, {}, LGraphToCGraphTransformer$lambda$22$Type); +_.apply_0 = function apply_116(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 18), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$22$Type', 1753); +function LGraphToCGraphTransformer$lambda$23$Type(){ +} + +defineClass(1754, 1, $intern_40, LGraphToCGraphTransformer$lambda$23$Type); +_.test_0 = function test_68(arg0){ + return lambda$23(castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$23$Type', 1754); +function LGraphToCGraphTransformer$lambda$24$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1755, 1, $intern_19, LGraphToCGraphTransformer$lambda$24$Type); +_.accept = function accept_104(arg0){ + $adjustSplineControlPoints(this.$$outer_0, castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$24$Type', 1755); +function LGraphToCGraphTransformer$lambda$3$Type($$outer_0, vsNode_1){ + this.$$outer_0 = $$outer_0; + this.vsNode_1 = vsNode_1; +} + +defineClass(1733, 1, $intern_19, LGraphToCGraphTransformer$lambda$3$Type); +_.accept = function accept_105(arg0){ + $lambda$3(this.$$outer_0, this.vsNode_1, castTo(arg0, 154)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$3$Type', 1733); +function LGraphToCGraphTransformer$lambda$4$Type(){ +} + +defineClass(1735, 1, {}, LGraphToCGraphTransformer$lambda$4$Type); +_.apply_0 = function apply_117(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$4$Type', 1735); +function LGraphToCGraphTransformer$lambda$5$Type(){ +} + +defineClass(1736, 1, {}, LGraphToCGraphTransformer$lambda$5$Type); +_.apply_0 = function apply_118(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$5$Type', 1736); +function LGraphToCGraphTransformer$lambda$6$Type(){ +} + +defineClass(1737, 1, {}, LGraphToCGraphTransformer$lambda$6$Type); +_.apply_0 = function apply_119(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 18), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$6$Type', 1737); +function LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0){ + this.verticalSegments_0 = verticalSegments_0; +} + +defineClass(1739, 1, $intern_19, LGraphToCGraphTransformer$lambda$8$Type); +_.accept = function accept_106(arg0){ + lambda$8_0(this.verticalSegments_0, castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$8$Type', 1739); +function LGraphToCGraphTransformer$lambda$9$Type($$outer_0, cNode_1){ + this.$$outer_0 = $$outer_0; + this.cNode_1 = cNode_1; +} + +defineClass(1740, 1, $intern_19, LGraphToCGraphTransformer$lambda$9$Type); +_.accept = function accept_107(arg0){ + $lambda$9_0(this.$$outer_0, this.cNode_1, castTo(arg0, 154)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$9$Type', 1740); +function $addArtificialSourceNode(this$static){ + var dummySource, lastArg, n, n$iterator, sources, src_0, src$iterator; + sources = new LinkedList; + for (n$iterator = new ArrayList$1(this$static.networkSimplexGraph.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 125); + n.incomingEdges.list.array.length == 0 && ($addNode_0(sources, n, sources.tail.prev, sources.tail) , true); + } + if (sources.size_0 > 1) { + dummySource = $create_2((lastArg = new NNode$NNodeBuilder , ++this$static.index_0 , lastArg), this$static.networkSimplexGraph); + for (src$iterator = $listIterator_2(sources, 0); src$iterator.currentNode != src$iterator.this$01.tail;) { + src_0 = castTo($next_9(src$iterator), 125); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 0), dummySource), src_0)); + } + } +} + +function $addEdgeConstraints(this$static){ + var cNode, cNode$iterator, cNode$iterator0, e, e$iterator, lEdge, lEdge$iterator, lEdgeMap, lNode, lNodeMap, n, n$iterator, src_0, srcPort, target, tgt, tgtPort, vs; + lNodeMap = new HashMap; + lEdgeMap = new HashMultimap; + for (cNode$iterator0 = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator0), 60); + lNode = getLNodeOrNull(cNode); + if (lNode) { + $put_9(lNodeMap.hashCodeMap, lNode, cNode); + } + else { + vs = getVerticalSegmentOrNull(cNode); + if (vs) { + for (e$iterator = new ArrayList$1(vs.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + $put(lEdgeMap, e, cNode); + } + } + } + } + for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + lNode = getLNodeOrNull(cNode); + if (lNode) { + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 18); + if ($isSelfLoop(lEdge)) { + continue; + } + srcPort = lEdge.source; + tgtPort = lEdge.target; + if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(lEdge.source.side) && SIDES_NORTH_SOUTH.contains(lEdge.target.side)) { + continue; + } + target = castTo($get_10(lNodeMap, lEdge.target.owner), 60); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 100), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[target.cGroup.id_0])); + if (srcPort.side == WEST_2 && $apply_13(($clinit_LPort() , OUTPUT_PREDICATE , srcPort))) { + for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 60); + if (n.hitbox.x_0 < cNode.hitbox.x_0) { + src_0 = this$static.nNodes[n.cGroup.id_0]; + tgt = this$static.nNodes[cNode.cGroup.id_0]; + if (src_0 == tgt) { + continue; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); + } + } + } + if (tgtPort.side == EAST_2 && $apply_14(($clinit_LPort() , INPUT_PREDICATE , tgtPort))) { + for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 60); + if (n.hitbox.x_0 > cNode.hitbox.x_0) { + src_0 = this$static.nNodes[cNode.cGroup.id_0]; + tgt = this$static.nNodes[n.cGroup.id_0]; + if (src_0 == tgt) { + continue; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); + } + } + } + } + } + } +} + +function $addSeparationConstraints(this$static){ + var adjust, alterOffset, cNode, cNode$iterator, delta, helper, incNode, incNode$iterator, offsetDelta, port, spacing, weight; + for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + for (incNode$iterator = cNode.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 60); + if (cNode.cGroup == incNode.cGroup) { + continue; + } + $isHorizontal(this$static.compactor.direction)?(spacing = this$static.compactor.spacingsHandler.getHorizontalSpacing(cNode, incNode)):(spacing = this$static.compactor.spacingsHandler.getVerticalSpacing(cNode, incNode)); + delta = cNode.cGroupOffset.x_0 + cNode.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0; + delta = $wnd.Math.ceil(delta); + delta = $wnd.Math.max(0, delta); + if (isVerticalSegmentsOfSameEdge(cNode, incNode)) { + helper = $create_2(new NNode$NNodeBuilder, this$static.networkSimplexGraph); + offsetDelta = round_int($wnd.Math.ceil(incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0)); + adjust = offsetDelta - (incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0); + port = getVerticalSegmentOrNull(cNode).aPort; + alterOffset = cNode; + if (!port) { + port = getVerticalSegmentOrNull(incNode).aPort; + adjust = -adjust; + alterOffset = incNode; + } + if (port) { + alterOffset.cGroupOffset.x_0 -= adjust; + port.pos.x_0 -= adjust; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, offsetDelta)), 1), helper), this$static.nNodes[cNode.cGroup.id_0])); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, -offsetDelta)), 1), helper), this$static.nNodes[incNode.cGroup.id_0])); + } + else { + weight = 1; + (instanceOf(cNode.origin_0, 154) && instanceOf(incNode.origin_0, 10) || instanceOf(incNode.origin_0, 154) && instanceOf(cNode.origin_0, 10)) && (weight = 2); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int(delta)), weight), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[incNode.cGroup.id_0])); + } + } + } +} + +function NetworkSimplexCompaction(){ +} + +defineClass(1729, 1, {}, NetworkSimplexCompaction); +_.compact = function compact_1(theCompactor){ + var cGroup, cGroup$iterator, cNode, cNode$iterator, nNode; + this.compactor = theCompactor; + this.networkSimplexGraph = new NGraph; + this.nNodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit, $intern_2, 125, this.compactor.cGraph.cGroups.array.length, 0, 1); + this.index_0 = 0; + for (cGroup$iterator = new ArrayList$1(this.compactor.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { + cGroup = castTo($next_6(cGroup$iterator), 316); + cGroup.id_0 = this.index_0; + nNode = $create_2($origin_0(new NNode$NNodeBuilder, cGroup), this.networkSimplexGraph); + this.nNodes[this.index_0] = nNode; + ++this.index_0; + } + $addSeparationConstraints(this); + $addEdgeConstraints(this); + $addArtificialSourceNode(this); + $execute_0(forGraph(this.networkSimplexGraph), new BasicProgressMonitor); + for (cNode$iterator = new ArrayList$1(this.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_6(cNode$iterator), 60); + cNode.hitbox.x_0 = this.nNodes[cNode.cGroup.id_0].layer + cNode.cGroupOffset.x_0; + } +} +; +_.index_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_NetworkSimplexCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'NetworkSimplexCompaction', 1729); +function $compareTo_12(this$static, o){ + var d; + d = fuzzyCompare(this$static.hitbox.x_0, o.hitbox.x_0); + if (d == 0) { + return compare_4(this$static.hitbox.y_0, o.hitbox.y_0); + } + return d; +} + +function $toString_14(this$static){ + var sb; + sb = new StringBuilder; + sb.string += 'VerticalSegment '; + $append_10(sb, this$static.hitbox); + sb.string += ' '; + $append_11(sb, $join(new Joiner, new ArrayList$1(this$static.representedLEdges))); + return sb.string; +} + +function VerticalSegment(bend1, bend2, cNode, lEdge){ + var inJPs, jp, jp$iterator; + this.potentialGroupParents = new ArrayList; + this.representedLEdges = new ArrayList; + this.affectedBends = new ArrayList; + this.affectedBoundingBoxes = new ArrayList; + this.hitbox = new ElkRectangle; + this.junctionPoints = new KVectorChain; + this.ignoreSpacing = new Quadruplet; + this.constraints = new ArrayList; + this.joined = new ArrayList; + $add_3(this.affectedBends, bend1); + $add_3(this.affectedBends, bend2); + this.hitbox.x_0 = $wnd.Math.min(bend1.x_0, bend2.x_0); + this.hitbox.y_0 = $wnd.Math.min(bend1.y_0, bend2.y_0); + this.hitbox.width_0 = $wnd.Math.abs(bend1.x_0 - bend2.x_0); + this.hitbox.height = $wnd.Math.abs(bend1.y_0 - bend2.y_0); + inJPs = castTo($getProperty(lEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (inJPs) { + for (jp$iterator = $listIterator_2(inJPs, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_9(jp$iterator), 8); + eq_0(jp.x_0, bend1.x_0) && $add_7(this.junctionPoints, jp); + } + } + !!cNode && $add_3(this.potentialGroupParents, cNode); + $add_3(this.representedLEdges, lEdge); +} + +defineClass(154, 1, {34:1, 154:1}, VerticalSegment); +_.compareTo_0 = function compareTo_13(o){ + return $compareTo_12(this, castTo(o, 154)); +} +; +_.toString_0 = function toString_94(){ + return $toString_14(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_VerticalSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'VerticalSegment', 154); +function $addEasternCrossings(this$static, upperNode, lowerNode){ + this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , EAST_2), this$static.easternAdjacencies); + this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, EAST_2, this$static.easternAdjacencies); + if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { + return; + } + $countCrossingsByMergingAdjacencyLists(this$static); +} + +function $addWesternCrossings(this$static, upperNode, lowerNode){ + this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , WEST_2), this$static.westernAdjacencies); + this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, WEST_2, this$static.westernAdjacencies); + if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { + return; + } + $countCrossingsByMergingAdjacencyLists(this$static); +} + +function $countBothSideCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addWesternCrossings(this$static, upperNode, lowerNode); + $addEasternCrossings(this$static, upperNode, lowerNode); +} + +function $countCrossingsByMergingAdjacencyLists(this$static){ + while (this$static.upperAdjacencies.currentSize != 0 && this$static.lowerAdjacencies.currentSize != 0) { + if ($currentAdjacency(this$static.upperAdjacencies).position > $currentAdjacency(this$static.lowerAdjacencies).position) { + this$static.upperLowerCrossings += this$static.upperAdjacencies.currentSize; + $removeFirst_1(this$static.lowerAdjacencies); + } + else if ($currentAdjacency(this$static.lowerAdjacencies).position > $currentAdjacency(this$static.upperAdjacencies).position) { + this$static.lowerUpperCrossings += this$static.lowerAdjacencies.currentSize; + $removeFirst_1(this$static.upperAdjacencies); + } + else { + this$static.upperLowerCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.upperAdjacencies); + this$static.lowerUpperCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.lowerAdjacencies); + $removeFirst_1(this$static.upperAdjacencies); + $removeFirst_1(this$static.lowerAdjacencies); + } + } +} + +function $countEasternEdgeCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addEasternCrossings(this$static, upperNode, lowerNode); +} + +function $countWesternEdgeCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addWesternCrossings(this$static, upperNode, lowerNode); +} + +function $getAdjacencyFor(this$static, node, side, adjacencies){ + var aL, n, n$array, n$index, n$max; + if (adjacencies.hashCodeMap.size_0 + adjacencies.stringMap.size_0 == 0) { + for (n$array = this$static.currentNodeOrder[this$static.freeLayerIndex] , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { + n = n$array[n$index]; + $put_6(adjacencies, n, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$static, n, side)); + } + } + aL = castTo(getEntryValueOrNull($getEntry_0(adjacencies.hashCodeMap, node)), 677); + aL.currentIndex = 0; + aL.currentSize = aL.size_0; + aL.currentSize == 0 || $reset_3(castTo($get_11(aL.adjacencyList, aL.currentIndex), 294)); + return aL; +} + +function $setPortPositionsForLayer(this$static, layerIndex, portSide){ + var node, node$array, node$index, node$max, port, port$iterator, portId, ports; + portId = 0; + for (node$array = this$static.currentNodeOrder[layerIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + ports = inNorthSouthEastWestOrder(node, portSide); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + $put_6(this$static.portPositions, port, valueOf_3(portId++)); + } + } +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter(currentNodeOrder, freeLayerIndex){ + this.portPositions = new HashMap; + this.easternAdjacencies = new HashMap; + this.westernAdjacencies = new HashMap; + this.currentNodeOrder = currentNodeOrder; + this.freeLayerIndex = freeLayerIndex; + this.freeLayerIndex > 0 && $setPortPositionsForLayer(this, this.freeLayerIndex - 1, ($clinit_PortSide() , EAST_2)); + this.freeLayerIndex < this.currentNodeOrder.length - 1 && $setPortPositionsForLayer(this, this.freeLayerIndex + 1, ($clinit_PortSide() , WEST_2)); +} + +defineClass(841, 1, {}, BetweenLayerEdgeTwoNodeCrossingsCounter); +_.freeLayerIndex = 0; +_.lowerUpperCrossings = 0; +_.upperLowerCrossings = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter', 841); +function $addAdjacencyOf(this$static, edge){ + var adjacentPort, adjacentPortPosition, lastIndex; + adjacentPort = $adjacentPortOf(edge, this$static.side); + adjacentPortPosition = castTo($get_10(this$static.this$01.portPositions, adjacentPort), 17).value_0; + lastIndex = this$static.adjacencyList.array.length - 1; + if (this$static.adjacencyList.array.length != 0 && castTo($get_11(this$static.adjacencyList, lastIndex), 294).position == adjacentPortPosition) { + ++castTo($get_11(this$static.adjacencyList, lastIndex), 294).cardinality; + ++castTo($get_11(this$static.adjacencyList, lastIndex), 294).currentCardinality; + } + else { + $add_3(this$static.adjacencyList, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition)); + } +} + +function $adjacentPortOf(e, s){ + return s == ($clinit_PortSide() , WEST_2)?e.source:e.target; +} + +function $countAdjacenciesBelowNodeOfFirstPort(this$static){ + return this$static.currentSize - castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 294).currentCardinality; +} + +function $currentAdjacency(this$static){ + return castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 294); +} + +function $iterateTroughEdgesCollectingAdjacencies(this$static){ + var edge, edge$iterator, edges, port, port$iterator, ports; + ports = inNorthSouthEastWestOrder(this$static.node, this$static.side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + edges = this$static.side == ($clinit_PortSide() , WEST_2)?port.incomingEdges:port.outgoingEdges; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (!$isSelfLoop(edge) && edge.source.owner.layer != edge.target.owner.layer) { + $addAdjacencyOf(this$static, edge); + ++this$static.size_0; + ++this$static.currentSize; + } + } + } +} + +function $removeFirst_1(this$static){ + var currentEntry; + if (this$static.currentSize == 0) { + return; + } + currentEntry = castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 294); + currentEntry.currentCardinality == 1?(++this$static.currentIndex , this$static.currentIndex < this$static.adjacencyList.array.length && $reset_3(castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 294))):--currentEntry.currentCardinality; + --this$static.currentSize; +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$0, node, side){ + this.this$01 = this$0; + this.node = node; + this.side = side; + this.adjacencyList = new ArrayList; + $iterateTroughEdgesCollectingAdjacencies(this); + $clinit_Collections(); + $sort(this.adjacencyList, null); +} + +defineClass(677, 1, {677:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList); +_.toString_0 = function toString_95(){ + return 'AdjacencyList [node=' + this.node + ', adjacencies= ' + this.adjacencyList + ']'; +} +; +_.currentIndex = 0; +_.currentSize = 0; +_.size_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList', 677); +function $compareTo_13(this$static, o){ + return this$static.position < o.position?-1:this$static.position == o.position?0:1; +} + +function $reset_3(this$static){ + this$static.currentCardinality = this$static.cardinality; +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition){ + this.position = adjacentPortPosition; + this.cardinality = 1; + this.currentCardinality = 1; +} + +defineClass(294, 1, {34:1, 294:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency); +_.compareTo_0 = function compareTo_14(o){ + return $compareTo_13(this, castTo(o, 294)); +} +; +_.toString_0 = function toString_96(){ + return 'Adjacency [position=' + this.position + ', cardinality=' + this.cardinality + ', currentCardinality=' + this.currentCardinality + ']'; +} +; +_.cardinality = 0; +_.currentCardinality = 0; +_.position = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency', 294); +function $fillCrossingMatrix(this$static, upperNode, lowerNode){ + if (this$static.oneSided) { + switch (this$static.direction) { + case 1: + $countEasternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + break; + case 0: + $countWesternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + } + } + else { + $countBothSideCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + } + this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0] = this$static.inBetweenLayerCrossingCounter.upperLowerCrossings; + this$static.crossingMatrix[lowerNode.id_0][upperNode.id_0] = this$static.inBetweenLayerCrossingCounter.lowerUpperCrossings; +} + +function $getCrossingMatrixEntry(this$static, upperNode, lowerNode){ + if (!this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0]) { + $fillCrossingMatrix(this$static, upperNode, lowerNode); + this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0] = true; + this$static.isCrossingMatrixFilled[lowerNode.id_0][upperNode.id_0] = true; + } + return this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0]; +} + +function CrossingMatrixFiller(greedySwitchType, graph, freeLayerIndex, direction){ + var freeLayer; + this.direction = direction; + this.oneSided = greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); + freeLayer = graph[freeLayerIndex]; + this.isCrossingMatrixFilled = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [183, 28], 16, [freeLayer.length, freeLayer.length], 2); + this.crossingMatrix = initMultidimensionalArray(I_classLit, [$intern_16, $intern_49], [53, 28], 15, [freeLayer.length, freeLayer.length], 2); + this.inBetweenLayerCrossingCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(graph, freeLayerIndex); +} + +defineClass(2026, 1, {}, CrossingMatrixFiller); +_.direction = 0; +_.oneSided = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_CrossingMatrixFiller_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'CrossingMatrixFiller', 2026); +function init_0(initializables, order){ + var e, edge, edge$iterator, i, i$iterator, i$iterator0, i$iterator1, i$iterator2, i$iterator3, l, n, p, port, ports; + for (l = 0; l < order.length; l++) { + for (i$iterator0 = initializables.iterator_0(); i$iterator0.hasNext_0();) { + i = castTo(i$iterator0.next_1(), 230); + i.initAtLayerLevel(l, order); + } + for (n = 0; n < order[l].length; n++) { + for (i$iterator1 = initializables.iterator_0(); i$iterator1.hasNext_0();) { + i = castTo(i$iterator1.next_1(), 230); + i.initAtNodeLevel(l, n, order); + } + ports = order[l][n].ports; + for (p = 0; p < ports.array.length; p++) { + for (i$iterator2 = initializables.iterator_0(); i$iterator2.hasNext_0();) { + i = castTo(i$iterator2.next_1(), 230); + i.initAtPortLevel(l, n, p, order); + } + port = (checkCriticalElementIndex(p, ports.array.length) , castTo(ports.array[p], 12)); + e = 0; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + for (i$iterator3 = initializables.iterator_0(); i$iterator3.hasNext_0();) { + i = castTo(i$iterator3.next_1(), 230); + i.initAtEdgeLevel(l, n, p, e++, edge, order); + } + } + } + } + } + for (i$iterator = initializables.iterator_0(); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 230); + i.initAfterTraversal(); + } +} + +var Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit = createForInterface('org.eclipse.elk.alg.layered.p3order.counting', 'IInitializable'); +function $continueSwitchingUntilNoImprovementInLayer(this$static, freeLayerIndex){ + var continueSwitching, improved; + improved = false; + do { + continueSwitching = $sweepDownwardInLayer(this$static, freeLayerIndex); + improved = improved | continueSwitching; + } + while (continueSwitching); + return improved; +} + +function $setUp(this$static, order, freeLayerIndex, forwardSweep){ + var crossingMatrixFiller, side; + this$static.currentNodeOrder = order; + side = forwardSweep?0:1; + this$static.switchDecider = (crossingMatrixFiller = new CrossingMatrixFiller(this$static.greedySwitchType, this$static.currentNodeOrder, freeLayerIndex, side) , new SwitchDecider(freeLayerIndex, this$static.currentNodeOrder, crossingMatrixFiller, this$static.portPositions, this$static.graphData, this$static.greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0))); +} + +function $startIndex(isForwardSweep, length_0){ + return isForwardSweep?0:length_0 - 1; +} + +function $sweepDownwardInLayer(this$static, layerIndex){ + var continueSwitching, lengthOfFreeLayer, lowerNodeIndex, upperNodeIndex; + continueSwitching = false; + lengthOfFreeLayer = this$static.currentNodeOrder[layerIndex].length; + for (upperNodeIndex = 0; upperNodeIndex < lengthOfFreeLayer - 1; upperNodeIndex++) { + lowerNodeIndex = upperNodeIndex + 1; + continueSwitching = continueSwitching | $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex); + } + return continueSwitching; +} + +function $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex){ + var continueSwitching, layer, temp; + continueSwitching = false; + if ($doesSwitchReduceCrossings(this$static.switchDecider, upperNodeIndex, lowerNodeIndex)) { + $notifyOfSwitch(this$static.switchDecider, this$static.currentNodeOrder[layerIndex][upperNodeIndex], this$static.currentNodeOrder[layerIndex][lowerNodeIndex]); + layer = this$static.currentNodeOrder[layerIndex]; + temp = layer[lowerNodeIndex]; + layer[lowerNodeIndex] = layer[upperNodeIndex]; + layer[upperNodeIndex] = temp; + continueSwitching = true; + } + return continueSwitching; +} + +function GreedySwitchHeuristic(greedyType, graphData){ + this.graphData = graphData; + this.greedySwitchType = greedyType; +} + +defineClass(1867, 1, $intern_111, GreedySwitchHeuristic); +_.initAtEdgeLevel = function initAtEdgeLevel(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtNodeLevel = function initAtNodeLevel(l, n, nodeOrder){ +} +; +_.alwaysImproves = function alwaysImproves(){ + return this.greedySwitchType != ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); +} +; +_.initAfterTraversal = function initAfterTraversal(){ + this.portPositions = initUnidimensionalArray(I_classLit, $intern_49, 28, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; +} +; +_.initAtPortLevel = function initAtPortLevel(l, n, p, nodeOrder){ + ++this.nPorts; +} +; +_.isDeterministic = function isDeterministic(){ + return true; +} +; +_.minimizeCrossings = function minimizeCrossings(order, freeLayerIndex, forwardSweep, isFirstSweep){ + $setUp(this, order, freeLayerIndex, forwardSweep); + return $continueSwitchingUntilNoImprovementInLayer(this, freeLayerIndex); +} +; +_.setFirstLayerOrder = function setFirstLayerOrder(currentOrder, isForwardSweep){ + var startIndex; + startIndex = $startIndex(isForwardSweep, currentOrder.length); + $setUp(this, currentOrder, startIndex, isForwardSweep); + return $sweepDownwardInLayer(this, startIndex); +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_GreedySwitchHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'GreedySwitchHeuristic', 1867); +function $countCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + upperNode.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode.type_0 == NORTH_SOUTH_PORT && castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 10) == castTo($getProperty(lowerNode, ORIGIN_0), 10) && ($originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?$countCrossingsOfTwoNorthSouthDummies(this$static, upperNode, lowerNode):$countCrossingsOfTwoNorthSouthDummies(this$static, lowerNode, upperNode)); + upperNode.type_0 == NORTH_SOUTH_PORT && lowerNode.type_0 == LONG_EDGE?$originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.upperLowerCrossings = 1):(this$static.lowerUpperCrossings = 1):lowerNode.type_0 == NORTH_SOUTH_PORT && upperNode.type_0 == LONG_EDGE && ($originPortOf(lowerNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.lowerUpperCrossings = 1):(this$static.upperLowerCrossings = 1)); + $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode); +} + +function $countCrossingsOfTwoNorthSouthDummies(this$static, furtherFromNormalNode, closerToNormalNode){ + var closerEastPorts, closerWestPorts, furtherEastPorts, furtherWestPorts; + if ($originPortPositionOf(this$static, furtherFromNormalNode) > $originPortPositionOf(this$static, closerToNormalNode)) { + closerEastPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , EAST_2)); + this$static.upperLowerCrossings = closerEastPorts.isEmpty()?0:$getDegree(castTo(closerEastPorts.get_0(0), 12)); + furtherWestPorts = $getPortSideView(furtherFromNormalNode, WEST_2); + this$static.lowerUpperCrossings = furtherWestPorts.isEmpty()?0:$getDegree(castTo(furtherWestPorts.get_0(0), 12)); + } + else { + closerWestPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , WEST_2)); + this$static.upperLowerCrossings = closerWestPorts.isEmpty()?0:$getDegree(castTo(closerWestPorts.get_0(0), 12)); + furtherEastPorts = $getPortSideView(furtherFromNormalNode, EAST_2); + this$static.lowerUpperCrossings = furtherEastPorts.isEmpty()?0:$getDegree(castTo(furtherEastPorts.get_0(0), 12)); + } +} + +function $initializePortPositions(this$static){ + var node, node$array, node$index, node$max; + for (node$array = this$static.layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $setPortIdsOn(this$static, node, ($clinit_PortSide() , SOUTH_2)); + $setPortIdsOn(this$static, node, NORTH_3); + } +} + +function $numberOfNorthSouthEdges(node, side){ + var numberOfEdges, port, port$iterator; + numberOfEdges = 0; + for (port$iterator = $getPortSideView(node, side).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + numberOfEdges += $getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null?1:0; + } + return numberOfEdges; +} + +function $originPortOf(node){ + var origin_0, port; + port = castTo($get_11(node.ports, 0), 12); + origin_0 = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + return origin_0; +} + +function $originPortPositionOf(this$static, node){ + var origin_0, port; + origin_0 = $originPortOf(node); + port = origin_0; + return castTo($get_10(this$static.portPositions, port), 17).value_0; +} + +function $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode){ + if (upperNode.type_0 == ($clinit_LNode$NodeType() , NORMAL) && lowerNode.type_0 == LONG_EDGE) { + this$static.upperLowerCrossings = $numberOfNorthSouthEdges(upperNode, ($clinit_PortSide() , SOUTH_2)); + this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(upperNode, NORTH_3); + } + if (lowerNode.type_0 == NORMAL && upperNode.type_0 == LONG_EDGE) { + this$static.upperLowerCrossings = $numberOfNorthSouthEdges(lowerNode, ($clinit_PortSide() , NORTH_3)); + this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(lowerNode, SOUTH_2); + } +} + +function $setPortIdsOn(this$static, node, side){ + var port, port$iterator, portId, ports; + ports = inNorthSouthEastWestOrder(node, side); + portId = 0; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + $put_6(this$static.portPositions, port, valueOf_3(portId++)); + } +} + +function NorthSouthEdgeNeighbouringNodeCrossingsCounter(nodes){ + this.layer = nodes; + this.portPositions = new HashMap; + $initializePortPositions(this); +} + +defineClass(2029, 1, {}, NorthSouthEdgeNeighbouringNodeCrossingsCounter); +_.lowerUpperCrossings = 0; +_.upperLowerCrossings = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_NorthSouthEdgeNeighbouringNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'NorthSouthEdgeNeighbouringNodeCrossingsCounter', 2029); +function $doesSwitchReduceCrossings(this$static, upperNodeIndex, lowerNodeIndex){ + var crossingNumbers, leftInlayer, lowerNode, lowerPort, lowerUpperCrossings, rightInlayer, upperLowerCrossings, upperNode, upperPort, upperNode_0, lowerNode_0, constraints, neitherNodeIsLongEdgeDummy, upperLayoutUnit, lowerLayoutUnit, areInDifferentLayoutUnits, nodesHaveLayoutUnits, upperNodeHasNorthernEdges, lowerNodeHasSouthernEdges, hasLayoutUnitConstraint; + if (upperNode_0 = this$static.freeLayer[upperNodeIndex] , lowerNode_0 = this$static.freeLayer[lowerNodeIndex] , (constraints = castTo($getProperty(upperNode_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15) , !!constraints && constraints.size_1() != 0 && constraints.contains(lowerNode_0)) || (neitherNodeIsLongEdgeDummy = upperNode_0.type_0 != ($clinit_LNode$NodeType() , LONG_EDGE) && lowerNode_0.type_0 != LONG_EDGE , upperLayoutUnit = castTo($getProperty(upperNode_0, IN_LAYER_LAYOUT_UNIT), 10) , lowerLayoutUnit = castTo($getProperty(lowerNode_0, IN_LAYER_LAYOUT_UNIT), 10) , areInDifferentLayoutUnits = upperLayoutUnit != lowerLayoutUnit , nodesHaveLayoutUnits = !!upperLayoutUnit && upperLayoutUnit != upperNode_0 || !!lowerLayoutUnit && lowerLayoutUnit != lowerNode_0 , upperNodeHasNorthernEdges = $hasEdgesOnSide(upperNode_0, ($clinit_PortSide() , NORTH_3)) , lowerNodeHasSouthernEdges = $hasEdgesOnSide(lowerNode_0, SOUTH_2) , nodesHaveLayoutUnits = nodesHaveLayoutUnits | ($hasEdgesOnSide(upperNode_0, SOUTH_2) || $hasEdgesOnSide(lowerNode_0, NORTH_3)) , hasLayoutUnitConstraint = nodesHaveLayoutUnits && areInDifferentLayoutUnits || upperNodeHasNorthernEdges || lowerNodeHasSouthernEdges , neitherNodeIsLongEdgeDummy && hasLayoutUnitConstraint) || upperNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode_0.type_0 == NORMAL || lowerNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && upperNode_0.type_0 == NORMAL) { + return false; + } + upperNode = this$static.freeLayer[upperNodeIndex]; + lowerNode = this$static.freeLayer[lowerNodeIndex]; + leftInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); + rightInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); + $countCrossings(this$static.northSouthCounter, upperNode, lowerNode); + upperLowerCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, upperNode, lowerNode) + castTo(leftInlayer.first, 17).value_0 + castTo(rightInlayer.first, 17).value_0 + this$static.northSouthCounter.upperLowerCrossings; + lowerUpperCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, lowerNode, upperNode) + castTo(leftInlayer.second, 17).value_0 + castTo(rightInlayer.second, 17).value_0 + this$static.northSouthCounter.lowerUpperCrossings; + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ORIGIN_0), 12); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 12); + crossingNumbers = $countCrossingsBetweenPortsInBothOrders(this$static.parentCrossCounter, upperPort, lowerPort); + upperLowerCrossings += castTo(crossingNumbers.first, 17).value_0; + lowerUpperCrossings += castTo(crossingNumbers.second, 17).value_0; + } + return upperLowerCrossings > lowerUpperCrossings; +} + +function $hasEdgesOnSide(node, side){ + var port, port$iterator, ports; + ports = $getPortSideView(node, side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + if ($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null || $hasNext_6(new LPort$CombineIter$1(port.connectedEdges))) { + return true; + } + } + return false; +} + +function $initParentCrossingsCounters(this$static, freeLayerIndex, length_0){ + var leftLayer, middleLayer, parentGraphData, parentNodeLayerPos, parentNodeOrder, portPos, rightLayer, rightMostLayer; + parentGraphData = this$static.graphData.parentGraphData; + parentNodeOrder = parentGraphData.currentNodeOrder; + portPos = parentGraphData.portPositions; + this$static.parentCrossCounter = new CrossingsCounter(portPos); + parentNodeLayerPos = this$static.graphData.parent_0.layer.id_0; + leftLayer = parentNodeLayerPos > 0?parentNodeOrder[parentNodeLayerPos - 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); + middleLayer = parentNodeOrder[parentNodeLayerPos]; + rightLayer = parentNodeLayerPos < parentNodeOrder.length - 1?parentNodeOrder[parentNodeLayerPos + 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); + rightMostLayer = freeLayerIndex == length_0 - 1; + rightMostLayer?$initForCountingBetween(this$static.parentCrossCounter, middleLayer, rightLayer):$initForCountingBetween(this$static.parentCrossCounter, leftLayer, middleLayer); +} + +function $notifyOfSwitch(this$static, upperNode, lowerNode){ + var lowerPort, upperPort; + $switchNodes(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); + $switchNodes(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 12); + $switchPorts(this$static.parentCrossCounter, upperPort, lowerPort); + } +} + +function SwitchDecider(freeLayerIndex, graph, crossingMatrixFiller, portPositions, graphData, oneSided){ + this.crossingMatrixFiller = crossingMatrixFiller; + this.graphData = graphData; + if (freeLayerIndex >= graph.length) { + throw toJs(new IndexOutOfBoundsException_0('Greedy SwitchDecider: Free layer not in graph.')); + } + this.freeLayer = graph[freeLayerIndex]; + this.leftInLayerCounter = new CrossingsCounter(portPositions); + $initPortPositionsForInLayerCrossings(this.leftInLayerCounter, this.freeLayer, ($clinit_PortSide() , WEST_2)); + this.rightInLayerCounter = new CrossingsCounter(portPositions); + $initPortPositionsForInLayerCrossings(this.rightInLayerCounter, this.freeLayer, EAST_2); + this.northSouthCounter = new NorthSouthEdgeNeighbouringNodeCrossingsCounter(this.freeLayer); + this.countCrossingsCausedByPortSwitch = !oneSided && graphData.hasParent && !graphData.useBottomUp && this.freeLayer[0].type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); + this.countCrossingsCausedByPortSwitch && $initParentCrossingsCounters(this, freeLayerIndex, graph.length); +} + +defineClass(2016, 1, {}, SwitchDecider); +_.countCrossingsCausedByPortSwitch = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_SwitchDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'SwitchDecider', 2016); +function $addSelfLoopEdge(this$static, slEdge){ + var lLabels, slSource, slTarget; + if ($add_6(this$static.slEdges, slEdge)) { + slEdge.slHyperLoop = this$static; + slSource = slEdge.slSource; + $indexOf_3(this$static.slPorts, slSource, 0) != -1 || $add_3(this$static.slPorts, slSource); + slTarget = slEdge.slTarget; + $indexOf_3(this$static.slPorts, slTarget, 0) != -1 || $add_3(this$static.slPorts, slTarget); + lLabels = slEdge.lEdge.labels; + if (lLabels.array.length != 0) { + !this$static.slLabels && (this$static.slLabels = new SelfHyperLoopLabels(this$static)); + $addLLabels(this$static.slLabels, lLabels); + } + } +} + +function $computePortsPerSide(this$static){ + var portSide, slPort, slPort$iterator; + this$static.slPortsBySide = new ArrayListMultimap_0(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, this$static.slPorts.array.length); + for (slPort$iterator = new ArrayList$1(this$static.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_6(slPort$iterator), 113); + portSide = slPort.lPort.side; + $put(this$static.slPortsBySide, portSide, slPort); + } + this$static.selfLoopType = fromPortSides($keySet(this$static.slPortsBySide)); +} + +function $setLeftmostPort(this$static, leftmostPort){ + this$static.leftmostPort = leftmostPort; +} + +function $setRightmostPort(this$static, rightmostPort){ + this$static.rightmostPort = rightmostPort; +} + +function $setRoutingSlot(this$static, portSide, slot){ + var slotCount; + this$static.routingSlot[portSide.ordinal] = slot; + slotCount = this$static.slHolder.routingSlotCount; + slotCount[portSide.ordinal] = $wnd.Math.max(slotCount[portSide.ordinal], slot + 1); +} + +function SelfHyperLoop(slHolder){ + var all; + this.slPorts = new ArrayList; + this.slEdges = new HashSet; + this.occupiedPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.routingSlot = initUnidimensionalArray(I_classLit, $intern_49, 28, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.slHolder = slHolder; +} + +defineClass(105, 1, {105:1}, SelfHyperLoop); +_.leftmostPort = null; +_.rightmostPort = null; +_.slLabels = null; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoop_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoop', 105); +function $addLLabels(this$static, newLLabels){ + var newLLabel, newLLabel$iterator; + for (newLLabel$iterator = new ArrayList$1(newLLabels); newLLabel$iterator.i < newLLabel$iterator.this$01.array.length;) { + newLLabel = castTo($next_6(newLLabel$iterator), 72); + $add_3(this$static.lLabels, newLLabel); + $updateSize(this$static, newLLabel); + } +} + +function $applyPlacement(this$static, offset){ + $isHorizontal(this$static.layoutDirection)?$applyPlacementForHorizontalLayout(this$static, offset):$applyPlacementVerticalForVerticalLayout(this$static, offset); +} + +function $applyPlacementForHorizontalLayout(this$static, offset){ + var lLabel, lLabel$iterator, labelPos, x_0, y_0; + x_0 = this$static.position.x_0; + y_0 = this$static.position.y_0; + for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { + lLabel = castTo($next_6(lLabel$iterator), 72); + labelPos = lLabel.pos; + this$static.alignment == ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1) || this$static.side == ($clinit_PortSide() , EAST_2)?(labelPos.x_0 = x_0):this$static.alignment == RIGHT_1 || this$static.side == ($clinit_PortSide() , WEST_2)?(labelPos.x_0 = x_0 + this$static.size_0.x_0 - lLabel.size_0.x_0):(labelPos.x_0 = x_0 + (this$static.size_0.x_0 - lLabel.size_0.x_0) / 2); + labelPos.y_0 = y_0; + $add_19(labelPos, offset); + y_0 += lLabel.size_0.y_0 + this$static.labelLabelSpacing; + } +} + +function $applyPlacementVerticalForVerticalLayout(this$static, offset){ + var lLabel, lLabel$iterator, labelPos, x_0, y_0; + x_0 = this$static.position.x_0; + y_0 = this$static.position.y_0; + for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { + lLabel = castTo($next_6(lLabel$iterator), 72); + labelPos = lLabel.pos; + labelPos.x_0 = x_0; + this$static.side == ($clinit_PortSide() , NORTH_3)?(labelPos.y_0 = y_0 + this$static.size_0.y_0 - lLabel.size_0.y_0):(labelPos.y_0 = y_0); + $add_19(labelPos, offset); + x_0 += lLabel.size_0.x_0 + this$static.labelLabelSpacing; + } +} + +function $updateSize(this$static, newLLabel){ + var newLLabelSize; + newLLabelSize = newLLabel.size_0; + if ($isHorizontal(this$static.layoutDirection)) { + this$static.size_0.x_0 = $wnd.Math.max(this$static.size_0.x_0, newLLabelSize.x_0); + this$static.size_0.y_0 += newLLabelSize.y_0; + this$static.lLabels.array.length > 1 && (this$static.size_0.y_0 += this$static.labelLabelSpacing); + } + else { + this$static.size_0.x_0 += newLLabelSize.x_0; + this$static.size_0.y_0 = $wnd.Math.max(this$static.size_0.y_0, newLLabelSize.y_0); + this$static.lLabels.array.length > 1 && (this$static.size_0.x_0 += this$static.labelLabelSpacing); + } +} + +function SelfHyperLoopLabels(slLoop){ + var lNode; + this.lLabels = new ArrayList; + this.size_0 = new KVector; + this.position = new KVector; + lNode = slLoop.slHolder.lNode; + this.layoutDirection = castTo($getProperty($getGraph(lNode), ($clinit_LayeredOptions() , DIRECTION)), 88); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_LABEL_LABEL))); +} + +defineClass(2013, 1, {}, SelfHyperLoopLabels); +_.id_0 = 0; +_.labelLabelSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels', 2013); +function $clinit_SelfHyperLoopLabels$Alignment(){ + $clinit_SelfHyperLoopLabels$Alignment = emptyMethod; + CENTER_2 = new SelfHyperLoopLabels$Alignment('CENTER', 0); + LEFT_1 = new SelfHyperLoopLabels$Alignment('LEFT', 1); + RIGHT_1 = new SelfHyperLoopLabels$Alignment('RIGHT', 2); + TOP_0 = new SelfHyperLoopLabels$Alignment('TOP', 3); +} + +function SelfHyperLoopLabels$Alignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_32(name_0){ + $clinit_SelfHyperLoopLabels$Alignment(); + return valueOf(($clinit_SelfHyperLoopLabels$Alignment$Map() , $MAP_22), name_0); +} + +function values_40(){ + $clinit_SelfHyperLoopLabels$Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_37, 421, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]); +} + +defineClass(421, 22, {3:1, 34:1, 22:1, 421:1}, SelfHyperLoopLabels$Alignment); +var CENTER_2, LEFT_1, RIGHT_1, TOP_0; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels/Alignment', 421, Ljava_lang_Enum_2_classLit, values_40, valueOf_32); +function $clinit_SelfHyperLoopLabels$Alignment$Map(){ + $clinit_SelfHyperLoopLabels$Alignment$Map = emptyMethod; + $MAP_22 = createValueOfMap(($clinit_SelfHyperLoopLabels$Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_37, 421, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]))); +} + +var $MAP_22; +function SelfLoopEdge(lEdge, slSource, slTarget){ + this.lEdge = lEdge; + this.slSource = slSource; + this.slTarget = slTarget; + $add_3(slSource.outgoingSLEdges, this); + $add_3(slTarget.incomingSLEdges, this); +} + +defineClass(340, 1, {340:1}, SelfLoopEdge); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopEdge', 340); +function $initialize_3(this$static){ + var entry, lEdge, lEdge$iterator, outerIter, outerIter0, slEdges, slPort, slPort$iterator, slPort$iterator0; + slEdges = new ArrayList; + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(this$static.lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 18); + $isSelfLoop(lEdge) && $add_3(slEdges, new SelfLoopEdge(lEdge, $selfLoopPortFor(this$static, lEdge.source), $selfLoopPortFor(this$static, lEdge.target))); + } + for (slPort$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); slPort$iterator0.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator0.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 113)); + slPort.lPort.id_0 = 0; + } + for (slPort$iterator = (outerIter = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 113)); + slPort.lPort.id_0 == 0 && $add_3(this$static.slHyperLoops, $initializeHyperLoop(this$static, slPort)); + } +} + +function $initializeHyperLoop(this$static, slPort){ + var bfsQueue, currentSLPort, slEdge, slEdge$iterator, slEdge$iterator0, slLoop, slSourcePort, slTargetPort; + slLoop = new SelfHyperLoop(this$static); + bfsQueue = new LinkedList; + $addNode_0(bfsQueue, slPort, bfsQueue.tail.prev, bfsQueue.tail); + while (bfsQueue.size_0 != 0) { + currentSLPort = castTo(bfsQueue.size_0 == 0?null:(checkCriticalElement(bfsQueue.size_0 != 0) , $removeNode_0(bfsQueue, bfsQueue.header.next_0)), 113); + currentSLPort.lPort.id_0 = 1; + for (slEdge$iterator0 = new ArrayList$1(currentSLPort.outgoingSLEdges); slEdge$iterator0.i < slEdge$iterator0.this$01.array.length;) { + slEdge = castTo($next_6(slEdge$iterator0), 340); + $addSelfLoopEdge(slLoop, slEdge); + slTargetPort = slEdge.slTarget; + slTargetPort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slTargetPort, bfsQueue.tail.prev, bfsQueue.tail) , true); + } + for (slEdge$iterator = new ArrayList$1(currentSLPort.incomingSLEdges); slEdge$iterator.i < slEdge$iterator.this$01.array.length;) { + slEdge = castTo($next_6(slEdge$iterator), 340); + $addSelfLoopEdge(slLoop, slEdge); + slSourcePort = slEdge.slSource; + slSourcePort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slSourcePort, bfsQueue.tail.prev, bfsQueue.tail) , true); + } + } + return slLoop; +} + +function $selfLoopPortFor(this$static, lport){ + $containsKey_6(this$static.slPorts, lport) || $put_11(this$static.slPorts, lport, new SelfLoopPort(lport)); + return castTo($get_16(this$static.slPorts, lport), 113); +} + +function SelfLoopHolder(node){ + this.slHyperLoops = new ArrayList; + this.slPorts = new LinkedHashMap; + this.routingSlotCount = initUnidimensionalArray(I_classLit, $intern_49, 28, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.lNode = node; +} + +function needsSelfLoopProcessing(lNode){ + if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + return false; + } + return $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)))), new SelfLoopHolder$lambda$0$Type); +} + +defineClass(337, 1, {337:1}, SelfLoopHolder); +_.arePortsHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder', 337); +function SelfLoopHolder$lambda$0$Type(){ +} + +defineClass(1790, 1, $intern_40, SelfLoopHolder$lambda$0$Type); +_.test_0 = function test_69(arg0){ + return $isSelfLoop(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder/lambda$0$Type', 1790); +function $getSLNetFlow(this$static){ + return this$static.incomingSLEdges.array.length - this$static.outgoingSLEdges.array.length; +} + +function SelfLoopPort(lPort){ + this.incomingSLEdges = new ArrayList; + this.outgoingSLEdges = new ArrayList; + this.lPort = lPort; + this.hadOnlySelfLoops = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new LPort$CombineIter$1(lPort.connectedEdges))), new Predicate$lambda$2$Type(new SelfLoopPort$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); +} + +defineClass(113, 1, {113:1}, SelfLoopPort); +_.hadOnlySelfLoops = false; +_.isHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort', 113); +function SelfLoopPort$lambda$0$Type(){ +} + +defineClass(1855, 1, $intern_40, SelfLoopPort$lambda$0$Type); +_.test_0 = function test_70(arg0){ + return $isSelfLoop(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort/lambda$0$Type', 1855); +function $clinit_SelfLoopType(){ + $clinit_SelfLoopType = emptyMethod; + ONE_SIDE = new SelfLoopType('ONE_SIDE', 0); + TWO_SIDES_CORNER = new SelfLoopType('TWO_SIDES_CORNER', 1); + TWO_SIDES_OPPOSING = new SelfLoopType('TWO_SIDES_OPPOSING', 2); + THREE_SIDES = new SelfLoopType('THREE_SIDES', 3); + FOUR_SIDES = new SelfLoopType('FOUR_SIDES', 4); +} + +function SelfLoopType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function fromPortSides(portSides){ + $clinit_SelfLoopType(); + var eastWest, northSouth; + if (portSides.contains(($clinit_PortSide() , UNDEFINED_5))) { + throw toJs(new IllegalArgumentException_0('Port sides must not contain UNDEFINED')); + } + switch (portSides.size_1()) { + case 1: + return ONE_SIDE; + case 2: + eastWest = portSides.contains(EAST_2) && portSides.contains(WEST_2); + northSouth = portSides.contains(NORTH_3) && portSides.contains(SOUTH_2); + return eastWest || northSouth?TWO_SIDES_OPPOSING:TWO_SIDES_CORNER; + case 3: + return THREE_SIDES; + case 4: + return FOUR_SIDES; + default:return null; + } +} + +function valueOf_33(name_0){ + $clinit_SelfLoopType(); + return valueOf(($clinit_SelfLoopType$Map() , $MAP_23), name_0); +} + +function values_41(){ + $clinit_SelfLoopType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_37, 375, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]); +} + +defineClass(375, 22, {3:1, 34:1, 22:1, 375:1}, SelfLoopType); +var FOUR_SIDES, ONE_SIDE, THREE_SIDES, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopType', 375, Ljava_lang_Enum_2_classLit, values_41, valueOf_33); +function $clinit_SelfLoopType$Map(){ + $clinit_SelfLoopType$Map = emptyMethod; + $MAP_23 = createValueOfMap(($clinit_SelfLoopType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_37, 375, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]))); +} + +var $MAP_23; +function $clinit_PortRestorer(){ + $clinit_PortRestorer = emptyMethod; + NES = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [($clinit_PortSide() , NORTH_3), EAST_2, SOUTH_2]); + ESW = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [EAST_2, SOUTH_2, WEST_2]); + SWN = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [SOUTH_2, WEST_2, NORTH_3]); + WNE = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [WEST_2, NORTH_3, EAST_2]); +} + +function $addAll_5(slPorts, lNode){ + $forEach_3($map(slPorts.stream(), new PortRestorer$lambda$11$Type), new PortRestorer$lambda$12$Type(lNode)); +} + +function $addAllThat(lPorts, fromIndex, condition, target){ + var i, lPort; + for (i = fromIndex; i < lPorts.array.length; i++) { + lPort = (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 12)); + if (condition.test_0(lPort)) { + push_1(target.array, lPort); + } + else { + return i; + } + } + return lPorts.array.length; +} + +function $addToTargetArea(this$static, slPorts, portSide, area, addMode){ + var hiddenPorts, targetArea; + hiddenPorts = castTo($collect_1($filter(slPorts.stream(), new PortRestorer$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + reverse_2(hiddenPorts); + targetArea = castTo($get_1(this$static.targetAreas, portSide, area), 15); + addMode == 0?targetArea.addAll_0(0, hiddenPorts):targetArea.addAll(hiddenPorts); +} + +function $addToTargetArea_0(this$static, slLoop, portSide, area, addMode){ + $addToTargetArea(this$static, castTo($get(slLoop.slPortsBySide, portSide), 15), portSide, area, addMode); +} + +function $computePortListSplitIndex(sortedPorts){ + var nonNegativeNetFlowIndex, positiveNetFlowIndex; + positiveNetFlowIndex = 0; + for (; positiveNetFlowIndex < sortedPorts.array.length; positiveNetFlowIndex++) { + if ($getSLNetFlow((checkCriticalElementIndex(positiveNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[positiveNetFlowIndex], 113))) > 0) { + break; + } + } + if (positiveNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { + return positiveNetFlowIndex; + } + nonNegativeNetFlowIndex = 0; + for (; nonNegativeNetFlowIndex < sortedPorts.array.length; nonNegativeNetFlowIndex++) { + if ($getSLNetFlow((checkCriticalElementIndex(nonNegativeNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[nonNegativeNetFlowIndex], 113))) > 0) { + break; + } + } + if (nonNegativeNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { + return nonNegativeNetFlowIndex; + } + return sortedPorts.array.length / 2 | 0; +} + +function $initTargetAreas(this$static){ + var area, area$array, area$index, area$max, side, side$array, side$index, side$max; + this$static.targetAreas = new ArrayTable(new Arrays$ArrayList(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))), new Arrays$ArrayList(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_37, 372, 0, [START, MIDDLE, END_0])))); + for (side$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { + side = side$array[side$index]; + for (area$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_37, 372, 0, [START, MIDDLE, END_0]) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { + area = area$array[area$index]; + $put_0(this$static.targetAreas, side, area, new ArrayList); + } + } +} + +function $lambda$5(lPort_0){ + var connections, eastConnections, westConnections; + return lPort_0.side == ($clinit_PortSide() , NORTH_3) && (connections = $northSouthPortConnectionSides(lPort_0) , eastConnections = $containsEnum(connections, EAST_2) , westConnections = $containsEnum(connections, WEST_2) , westConnections || westConnections && eastConnections); +} + +function $lambda$8(lPort_0){ + var connections; + return lPort_0.side == ($clinit_PortSide() , SOUTH_2) && (connections = $northSouthPortConnectionSides(lPort_0) , $containsEnum(connections, EAST_2)); +} + +function $northSouthPortConnectionSides(lPort){ + var all, connectionSides, dummyLPort, dummyLPort$iterator, portDummy; + connectionSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + portDummy = castTo($getProperty(lPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (dummyLPort$iterator = new ArrayList$1(portDummy.ports); dummyLPort$iterator.i < dummyLPort$iterator.this$01.array.length;) { + dummyLPort = castTo($next_6(dummyLPort$iterator), 12); + maskUndefined($getProperty(dummyLPort, ORIGIN_0)) === maskUndefined(lPort) && $hasNext_6(new LPort$CombineIter$1(dummyLPort.connectedEdges)) && $add_5(connectionSides, dummyLPort.side); + } + } + return connectionSides; +} + +function $processFourSideLoops(this$static){ + var side, side$iterator, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , FOUR_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 105); + for (side$iterator = $keySet(slLoop.slPortsBySide).iterator_0(); side$iterator.hasNext_0();) { + side = castTo(side$iterator.next_1(), 64); + $addToTargetArea_0(this$static, slLoop, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + } + } +} + +function $processOneSideLoops(this$static, ordering){ + var side, slLoop, slLoop$iterator, sortedPorts, splitIndex; + ordering == ($clinit_SelfLoopOrderingStrategy() , REVERSE_STACKED) && reverse_2(castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , ONE_SIDE)), 15)); + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , ONE_SIDE)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 105); + side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; + sortedPorts = new ArrayList_1(slLoop.slPorts); + $sort(sortedPorts, new PortRestorer$lambda$3$Type); + switch (ordering.ordinal) { + case 2: + $addToTargetArea(this$static, sortedPorts, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + break; + case 1: + case 0: + splitIndex = $computePortListSplitIndex(sortedPorts); + $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, 0, splitIndex), side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 0); + $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, splitIndex, sortedPorts.array.length), side, MIDDLE, 1); + } + } +} + +function $processThreeSideLoops(this$static){ + var portSides, sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , THREE_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 105); + sides = (portSides = $keySet(slLoop.slPortsBySide) , portSides.contains(($clinit_PortSide() , NORTH_3))?portSides.contains(EAST_2)?portSides.contains(SOUTH_2)?portSides.contains(WEST_2)?null:NES:WNE:SWN:ESW); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], MIDDLE, 1); + $addToTargetArea_0(this$static, slLoop, sides[2], START, 1); + } +} + +function $processTwoSideCornerLoops(this$static){ + var sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_CORNER)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 105); + sides = sortedTwoSideLoopPortSides(slLoop); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); + } +} + +function $processTwoSideOpposingLoops(this$static){ + var sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_OPPOSING)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 105); + sides = sortedTwoSideLoopPortSides(slLoop); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); + } +} + +function $restorePorts(this$static, slHolder){ + var lNode, newPortList, nextOldPortIndex, oldPortList; + lNode = slHolder.lNode; + oldPortList = new ArrayList_1(lNode.ports); + nextOldPortIndex = 0; + newPortList = lNode.ports; + newPortList.array.length = 0; + $addAll_5(castTo($get_1(this$static.targetAreas, ($clinit_PortSide() , NORTH_3), ($clinit_PortRestorer$PortSideArea() , START)), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$5$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$6$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, START), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$7$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, START), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$8$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$9$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, START), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$10$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, MIDDLE), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, END_0), 15), lNode); +} + +function $restorePorts_0(this$static, slHolder){ + var loops; + $initTargetAreas(this$static); + this$static.slLoopsByType = (loops = new ArrayListMultimap , $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortRestorer$lambda$2$Type(loops)) , loops); + $processOneSideLoops(this$static, castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 349)); + $processTwoSideCornerLoops(this$static); + $processThreeSideLoops(this$static); + $processFourSideLoops(this$static); + $processTwoSideOpposingLoops(this$static); + $restorePorts(this$static, slHolder); + $forEach_3($flatMap(new StreamImpl(null, $valuesSpliterator($values_1(this$static.targetAreas).this$01)), new PortRestorer$lambda$0$Type), new PortRestorer$lambda$1$Type); + slHolder.arePortsHidden = false; + this$static.slLoopsByType = null; +} + +function PortRestorer(){ + $clinit_PortRestorer(); +} + +function lambda$12(lNode_0, lPort_1){ + $clinit_PortRestorer(); + $setNode(lPort_1, lNode_0); +} + +function lambda$2_7(loops_0, slLoop_1){ + $clinit_PortRestorer(); + return $put(loops_0, slLoop_1.selfLoopType, slLoop_1); +} + +function lambda$3_3(slPort1_0, slPort2_1){ + $clinit_PortRestorer(); + return compare_5(slPort1_0.incomingSLEdges.array.length - slPort1_0.outgoingSLEdges.array.length, slPort2_1.incomingSLEdges.array.length - slPort2_1.outgoingSLEdges.array.length); +} + +function sortedTwoSideLoopPortSides(slLoop){ + $clinit_PortRestorer(); + var sides; + sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 64, 2, 0, 1)), 126); + mergeSort(sides, 0, sides.length, null); + if (sides[0] == ($clinit_PortSide() , NORTH_3) && sides[1] == WEST_2) { + setCheck(sides, 0, WEST_2); + setCheck(sides, 1, NORTH_3); + } + return sides; +} + +defineClass(1798, 1, {}, PortRestorer); +var ESW, NES, SWN, WNE; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer', 1798); +function $clinit_PortRestorer$PortSideArea(){ + $clinit_PortRestorer$PortSideArea = emptyMethod; + START = new PortRestorer$PortSideArea('START', 0); + MIDDLE = new PortRestorer$PortSideArea('MIDDLE', 1); + END_0 = new PortRestorer$PortSideArea('END', 2); +} + +function PortRestorer$PortSideArea(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_34(name_0){ + $clinit_PortRestorer$PortSideArea(); + return valueOf(($clinit_PortRestorer$PortSideArea$Map() , $MAP_24), name_0); +} + +function values_42(){ + $clinit_PortRestorer$PortSideArea(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_37, 372, 0, [START, MIDDLE, END_0]); +} + +defineClass(372, 22, {3:1, 34:1, 22:1, 372:1}, PortRestorer$PortSideArea); +var END_0, MIDDLE, START; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/PortSideArea', 372, Ljava_lang_Enum_2_classLit, values_42, valueOf_34); +function $clinit_PortRestorer$PortSideArea$Map(){ + $clinit_PortRestorer$PortSideArea$Map = emptyMethod; + $MAP_24 = createValueOfMap(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_37, 372, 0, [START, MIDDLE, END_0]))); +} + +var $MAP_24; +function PortRestorer$lambda$0$Type(){ +} + +defineClass(1799, 1, {}, PortRestorer$lambda$0$Type); +_.apply_0 = function apply_120(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 15).stream(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$0$Type', 1799); +function PortRestorer$lambda$1$Type(){ +} + +defineClass(1800, 1, $intern_19, PortRestorer$lambda$1$Type); +_.accept = function accept_108(arg0){ + $clinit_PortRestorer(); + castTo(arg0, 113).isHidden = false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$1$Type', 1800); +function PortRestorer$lambda$10$Type(){ +} + +defineClass(1809, 1, $intern_40, PortRestorer$lambda$10$Type); +_.test_0 = function test_71(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 12).side == ($clinit_PortSide() , WEST_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$10$Type', 1809); +function PortRestorer$lambda$11$Type(){ +} + +defineClass(1810, 1, {}, PortRestorer$lambda$11$Type); +_.apply_0 = function apply_121(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$11$Type', 1810); +function PortRestorer$lambda$12$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1811, 1, $intern_19, PortRestorer$lambda$12$Type); +_.accept = function accept_109(arg0){ + lambda$12(this.lNode_0, castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$12$Type', 1811); +function PortRestorer$lambda$2$Type(loops_0){ + this.loops_0 = loops_0; +} + +defineClass(1801, 1, $intern_19, PortRestorer$lambda$2$Type); +_.accept = function accept_110(arg0){ + lambda$2_7(this.loops_0, castTo(arg0, 105)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$2$Type', 1801); +function PortRestorer$lambda$3$Type(){ +} + +defineClass(1802, 1, $intern_88, PortRestorer$lambda$3$Type); +_.compare_1 = function compare_54(arg0, arg1){ + return lambda$3_3(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_135(other){ + return this === other; +} +; +_.reversed = function reversed_46(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$3$Type', 1802); +function PortRestorer$lambda$4$Type(){ +} + +defineClass(1803, 1, $intern_40, PortRestorer$lambda$4$Type); +_.test_0 = function test_72(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 113).isHidden; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$4$Type', 1803); +function PortRestorer$lambda$5$Type(){ +} + +defineClass(1804, 1, $intern_40, PortRestorer$lambda$5$Type); +_.test_0 = function test_73(arg0){ + return $lambda$5(castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$5$Type', 1804); +function PortRestorer$lambda$6$Type(){ +} + +defineClass(1805, 1, $intern_40, PortRestorer$lambda$6$Type); +_.test_0 = function test_74(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 12).side == ($clinit_PortSide() , NORTH_3); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$6$Type', 1805); +function PortRestorer$lambda$7$Type(){ +} + +defineClass(1806, 1, $intern_40, PortRestorer$lambda$7$Type); +_.test_0 = function test_75(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 12).side == ($clinit_PortSide() , EAST_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$7$Type', 1806); +function PortRestorer$lambda$8$Type(){ +} + +defineClass(1807, 1, $intern_40, PortRestorer$lambda$8$Type); +_.test_0 = function test_76(arg0){ + return $lambda$8(castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$8$Type', 1807); +function PortRestorer$lambda$9$Type(){ +} + +defineClass(1808, 1, $intern_40, PortRestorer$lambda$9$Type); +_.test_0 = function test_77(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 12).side == ($clinit_PortSide() , SOUTH_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$9$Type', 1808); +function $assignPortSides(slHolder){ + switch (castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)), 387).ordinal) { + case 1: + $forEach_3($map($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortSideAssigner$lambda$1$Type), new PortSideAssigner$lambda$2$Type), new PortSideAssigner$lambda$3$Type); + break; + case 2: + $assignToNorthOrSouthSide(slHolder); + break; + case 0: + $assignToAllSides(slHolder); + } +} + +function $assignToAllSides(slHolder){ + var assignmentTargets, currLoop, currTarget, slLoop, slLoop$iterator, slSortedLoops; + slSortedLoops = new ArrayList_1(slHolder.slHyperLoops); + $sort(slSortedLoops, new PortSideAssigner$lambda$6$Type); + assignmentTargets = ($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_37, 276, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER])); + currLoop = 0; + for (slLoop$iterator = new ArrayList$1(slSortedLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + currTarget = assignmentTargets[currLoop % assignmentTargets.length]; + $assignToTarget(slLoop, currTarget); + ++currLoop; + } +} + +function $assignToNorthOrSouthSide(slHolder){ + var finalNewPortSide, newPortSide, northPorts, slHiddenPorts, slLoop, slLoop$iterator, southPorts; + northPorts = 0; + southPorts = 0; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + slHiddenPorts = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slLoop.slPorts, 16)), new PortSideAssigner$lambda$8$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + newPortSide = null; + if (northPorts <= southPorts) { + newPortSide = ($clinit_PortSide() , NORTH_3); + northPorts += slHiddenPorts.size_1(); + } + else if (southPorts < northPorts) { + newPortSide = ($clinit_PortSide() , SOUTH_2); + southPorts += slHiddenPorts.size_1(); + } + finalNewPortSide = newPortSide; + $forEach_3($map(slHiddenPorts.stream(), new PortSideAssigner$lambda$4$Type), new PortSideAssigner$lambda$5$Type(finalNewPortSide)); + } +} + +function $assignToTarget(slLoop, target){ + var i, i0, secondHalfStartIndex, slPort, slPorts; + slPorts = slLoop.slPorts; + target.firstSide != target.secondSide && $sort(slPorts, new PortSideAssigner$lambda$7$Type); + secondHalfStartIndex = slPorts.array.length / 2 | 0; + for (i0 = 0; i0 < secondHalfStartIndex; i0++) { + slPort = (checkCriticalElementIndex(i0, slPorts.array.length) , castTo(slPorts.array[i0], 113)); + slPort.isHidden && $setSide(slPort.lPort, target.firstSide); + } + for (i = secondHalfStartIndex; i < slPorts.array.length; i++) { + slPort = (checkCriticalElementIndex(i, slPorts.array.length) , castTo(slPorts.array[i], 113)); + slPort.isHidden && $setSide(slPort.lPort, target.secondSide); + } +} + +function lambda$5_2(finalNewPortSide_0, lPort_1){ + $setSide(lPort_1, finalNewPortSide_0); +} + +function lambda$6_0(slLoop1_0, slLoop2_1){ + return compare_5(slLoop2_1.slPorts.array.length, slLoop1_0.slPorts.array.length); +} + +function lambda$7_2(slPort1_0, slPort2_1){ + return compare_5($getNetFlow(slPort1_0.lPort), $getNetFlow(slPort2_1.lPort)); +} + +function $clinit_PortSideAssigner$Target(){ + $clinit_PortSideAssigner$Target = emptyMethod; + NORTH_1 = new PortSideAssigner$Target('NORTH', 0, ($clinit_PortSide() , NORTH_3), NORTH_3); + SOUTH_1 = new PortSideAssigner$Target('SOUTH', 1, SOUTH_2, SOUTH_2); + EAST_1 = new PortSideAssigner$Target('EAST', 2, EAST_2, EAST_2); + WEST_1 = new PortSideAssigner$Target('WEST', 3, WEST_2, WEST_2); + NORTH_WEST_CORNER = new PortSideAssigner$Target('NORTH_WEST_CORNER', 4, WEST_2, NORTH_3); + NORTH_EAST_CORNER = new PortSideAssigner$Target('NORTH_EAST_CORNER', 5, NORTH_3, EAST_2); + SOUTH_WEST_CORNER = new PortSideAssigner$Target('SOUTH_WEST_CORNER', 6, SOUTH_2, WEST_2); + SOUTH_EAST_CORNER = new PortSideAssigner$Target('SOUTH_EAST_CORNER', 7, EAST_2, SOUTH_2); +} + +function PortSideAssigner$Target(enum$name, enum$ordinal, firstSide, secondSide){ + Enum.call(this, enum$name, enum$ordinal); + this.firstSide = firstSide; + this.secondSide = secondSide; +} + +function valueOf_35(name_0){ + $clinit_PortSideAssigner$Target(); + return valueOf(($clinit_PortSideAssigner$Target$Map() , $MAP_25), name_0); +} + +function values_43(){ + $clinit_PortSideAssigner$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_37, 276, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]); +} + +defineClass(276, 22, {3:1, 34:1, 22:1, 276:1}, PortSideAssigner$Target); +var EAST_1, NORTH_1, NORTH_EAST_CORNER, NORTH_WEST_CORNER, SOUTH_1, SOUTH_EAST_CORNER, SOUTH_WEST_CORNER, WEST_1; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/Target', 276, Ljava_lang_Enum_2_classLit, values_43, valueOf_35); +function $clinit_PortSideAssigner$Target$Map(){ + $clinit_PortSideAssigner$Target$Map = emptyMethod; + $MAP_25 = createValueOfMap(($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_37, 276, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]))); +} + +var $MAP_25; +function PortSideAssigner$lambda$1$Type(){ +} + +defineClass(1791, 1, {}, PortSideAssigner$lambda$1$Type); +_.apply_0 = function apply_122(arg0){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 105).slPorts, 16)), new PortSideAssigner$lambda$8$Type); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$1$Type', 1791); +function PortSideAssigner$lambda$2$Type(){ +} + +defineClass(1792, 1, {}, PortSideAssigner$lambda$2$Type); +_.apply_0 = function apply_123(arg0){ + return castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$2$Type', 1792); +function PortSideAssigner$lambda$3$Type(){ +} + +defineClass(1793, 1, $intern_19, PortSideAssigner$lambda$3$Type); +_.accept = function accept_111(arg0){ + $setSide(castTo(arg0, 12), ($clinit_PortSide() , NORTH_3)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$3$Type', 1793); +function PortSideAssigner$lambda$4$Type(){ +} + +defineClass(1794, 1, {}, PortSideAssigner$lambda$4$Type); +_.apply_0 = function apply_124(arg0){ + return castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$4$Type', 1794); +function PortSideAssigner$lambda$5$Type(finalNewPortSide_0){ + this.finalNewPortSide_0 = finalNewPortSide_0; +} + +defineClass(1795, 1, $intern_19, PortSideAssigner$lambda$5$Type); +_.accept = function accept_112(arg0){ + lambda$5_2(this.finalNewPortSide_0, castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$5$Type', 1795); +function PortSideAssigner$lambda$6$Type(){ +} + +defineClass(1796, 1, $intern_88, PortSideAssigner$lambda$6$Type); +_.compare_1 = function compare_55(arg0, arg1){ + return lambda$6_0(castTo(arg0, 105), castTo(arg1, 105)); +} +; +_.equals_0 = function equals_136(other){ + return this === other; +} +; +_.reversed = function reversed_47(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$6$Type', 1796); +function PortSideAssigner$lambda$7$Type(){ +} + +defineClass(1797, 1, $intern_88, PortSideAssigner$lambda$7$Type); +_.compare_1 = function compare_56(arg0, arg1){ + return lambda$7_2(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_137(other){ + return this === other; +} +; +_.reversed = function reversed_48(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$7$Type', 1797); +function PortSideAssigner$lambda$8$Type(){ +} + +defineClass(820, 1, $intern_40, PortSideAssigner$lambda$8$Type); +_.test_0 = function test_78(arg0){ + return castTo(arg0, 113).isHidden; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$8$Type', 820); +defineClass(2108, 1, {}); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_AbstractSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'AbstractSelfLoopRouter', 2108); +function $assignOneSidedSequencedSideAndAlignment(slLoops, portSide){ + var id_0, lPort, lPort$iterator, leftLoopAlignmentReference, leftSlLoop, leftSlLoopIdx, rightLoopAlignmentReference, rightSlLoop, rightSlLoopIdx; + id_0 = 0; + for (lPort$iterator = new ArrayList$1((checkCriticalElementIndex(0, slLoops.array.length) , castTo(slLoops.array[0], 105)).slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_6(lPort$iterator), 12); + lPort.id_0 = id_0++; + } + portSide == ($clinit_PortSide() , NORTH_3)?$sort(slLoops, new LabelPlacer$lambda$0$Type_0):$sort(slLoops, new LabelPlacer$lambda$1$Type_0); + leftSlLoopIdx = 0; + rightSlLoopIdx = slLoops.array.length - 1; + while (leftSlLoopIdx < rightSlLoopIdx) { + leftSlLoop = (checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 105)); + rightSlLoop = (checkCriticalElementIndex(rightSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[rightSlLoopIdx], 105)); + leftLoopAlignmentReference = portSide == NORTH_3?leftSlLoop.rightmostPort:leftSlLoop.leftmostPort; + rightLoopAlignmentReference = portSide == NORTH_3?rightSlLoop.leftmostPort:rightSlLoop.rightmostPort; + $assignSideAndAlignment(leftSlLoop, portSide, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), leftLoopAlignmentReference); + $assignSideAndAlignment(rightSlLoop, portSide, LEFT_1, rightLoopAlignmentReference); + ++leftSlLoopIdx; + --rightSlLoopIdx; + } + leftSlLoopIdx == rightSlLoopIdx && $assignSideAndAlignment((checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 105)), portSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); +} + +function $assignOneSidedSimpleSideAndAlignment(slLoop, loopSide){ + var topmostPort; + switch (loopSide.ordinal) { + case 2: + case 4: + topmostPort = slLoop.leftmostPort; + slLoop.rightmostPort.lPort.pos.y_0 < topmostPort.lPort.pos.y_0 && (topmostPort = slLoop.rightmostPort); + $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , TOP_0), topmostPort); + break; + case 1: + case 3: + $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + } +} + +function $assignSideAndAlignment(slLoop, side, alignment, alignmentReference){ + var slLabels; + slLabels = slLoop.slLabels; + slLabels.side = side; + slLabels.alignment = alignment; + slLabels.alignmentReferenceSLPort = alignmentReference; +} + +function $assignSideAndAlignment_0(slHolder){ + var loopSide, northernOneSidedSLLoops, occupiedSides, orderingStrategy, slLabels, slLoop, slLoop$iterator, southernOneSidedSLLoops, leftmostPortSide, rightmostPortSide, leftmostPortSide_0, rightmostPortSide_0; + northernOneSidedSLLoops = null; + southernOneSidedSLLoops = null; + orderingStrategy = castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 349); + if (orderingStrategy == ($clinit_SelfLoopOrderingStrategy() , SEQUENCED)) { + northernOneSidedSLLoops = new ArrayList; + southernOneSidedSLLoops = new ArrayList; + } + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + slLabels = slLoop.slLabels; + if (!slLabels) { + continue; + } + switch (slLoop.selfLoopType.ordinal) { + case 0: + loopSide = castTo($next_7(new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides)), 64); + orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , NORTH_3)?(push_1(northernOneSidedSLLoops.array, slLoop) , true):orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , SOUTH_2)?(push_1(southernOneSidedSLLoops.array, slLoop) , true):$assignOneSidedSimpleSideAndAlignment(slLoop, loopSide); + break; + case 1: + leftmostPortSide = slLoop.leftmostPort.lPort.side; + rightmostPortSide = slLoop.rightmostPort.lPort.side; + leftmostPortSide == ($clinit_PortSide() , NORTH_3)?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):rightmostPortSide == NORTH_3?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):leftmostPortSide == SOUTH_2?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.leftmostPort):rightmostPortSide == SOUTH_2 && $assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.rightmostPort); + break; + case 2: + case 3: + occupiedSides = slLoop.occupiedPortSides; + $containsEnum(occupiedSides, ($clinit_PortSide() , NORTH_3))?$containsEnum(occupiedSides, SOUTH_2)?$containsEnum(occupiedSides, WEST_2)?$containsEnum(occupiedSides, EAST_2) || $assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + break; + case 4: + leftmostPortSide_0 = slLoop.leftmostPort.lPort.side; + rightmostPortSide_0 = slLoop.leftmostPort.lPort.side; + leftmostPortSide_0 == ($clinit_PortSide() , NORTH_3) || rightmostPortSide_0 == NORTH_3?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + } + } + if (northernOneSidedSLLoops) { + northernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(northernOneSidedSLLoops, ($clinit_PortSide() , NORTH_3)); + southernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(southernOneSidedSLLoops, ($clinit_PortSide() , SOUTH_2)); + } +} + +function $computeCoordinates(slLoop){ + var alignRef, pos, size_0, slLabels; + slLabels = slLoop.slLabels; + alignRef = slLabels.alignmentReferenceSLPort; + size_0 = slLabels.size_0; + pos = slLabels.position; + switch (slLabels.alignment.ordinal) { + case 0: + pos.x_0 = (slLoop.slHolder.lNode.size_0.x_0 - size_0.x_0) / 2; + break; + case 1: + pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0; + break; + case 2: + pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0 - size_0.x_0; + break; + case 3: + pos.y_0 = alignRef.lPort.pos.y_0 + alignRef.lPort.anchor.y_0; + } +} + +function $placeLabels_1(slHolder){ + var slLoop, slLoop$iterator; + $assignSideAndAlignment_0(slHolder); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + !!slLoop.slLabels && $computeCoordinates(slLoop); + } +} + +function lambda$0_27(slLoop1_0, slLoop2_1){ + return compare_5(slLoop1_0.leftmostPort.lPort.id_0, slLoop2_1.leftmostPort.lPort.id_0); +} + +function lambda$1_14(slLoop1_0, slLoop2_1){ + return compare_5(slLoop2_1.leftmostPort.lPort.id_0, slLoop1_0.leftmostPort.lPort.id_0); +} + +function LabelPlacer$lambda$0$Type_0(){ +} + +defineClass(1816, 1, $intern_88, LabelPlacer$lambda$0$Type_0); +_.compare_1 = function compare_57(arg0, arg1){ + return lambda$0_27(castTo(arg0, 105), castTo(arg1, 105)); +} +; +_.equals_0 = function equals_138(other){ + return this === other; +} +; +_.reversed = function reversed_49(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$0$Type', 1816); +function LabelPlacer$lambda$1$Type_0(){ +} + +defineClass(1817, 1, $intern_88, LabelPlacer$lambda$1$Type_0); +_.compare_1 = function compare_58(arg0, arg1){ + return lambda$1_14(castTo(arg0, 105), castTo(arg1, 105)); +} +; +_.equals_0 = function equals_139(other){ + return this === other; +} +; +_.reversed = function reversed_50(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$1$Type', 1817); +function $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints){ + var currPortSide, currPortSideComponent, lSourcePort, lTargetPort, nextPortSide, nextPortSideComponent, slLoop; + lSourcePort = slEdge.slSource.lPort; + lTargetPort = slEdge.slTarget.lPort; + if (lSourcePort.side == lTargetPort.side) { + return; + } + slLoop = slEdge.slHyperLoop; + currPortSide = lSourcePort.side; + nextPortSide = null; + while (currPortSide != lTargetPort.side) { + nextPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); + currPortSideComponent = $getBaseVector(currPortSide, slLoop.routingSlot[currPortSide.ordinal], routingSlotPositions); + nextPortSideComponent = $getBaseVector(nextPortSide, slLoop.routingSlot[nextPortSide.ordinal], routingSlotPositions); + $add_7(bendPoints, $add_19(currPortSideComponent, nextPortSideComponent)); + currPortSide = nextPortSide; + } +} + +function $addOuterBendPoint(slEdge, slPort, routingSlotPositions, bendPoints){ + var anchor, lPort, portSide, result, slLoop; + slLoop = slEdge.slHyperLoop; + lPort = slPort.lPort; + portSide = lPort.side; + result = $getBaseVector(portSide, slLoop.routingSlot[portSide.ordinal], routingSlotPositions); + anchor = $add_19($clone_1(lPort.pos), lPort.anchor); + switch (lPort.side.ordinal) { + case 1: + case 3: + result.x_0 += anchor.x_0; + break; + case 2: + case 4: + result.y_0 += anchor.y_0; + } + $addNode_0(bendPoints, result, bendPoints.tail.prev, bendPoints.tail); +} + +function $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance){ + var lMargins, lNode; + lNode = slHolder.lNode; + lMargins = lNode.margin; + switch (portSide.ordinal) { + case 1: + return -lMargins.top_0 - nodeSelfLoopDistance; + case 2: + return lNode.size_0.x_0 + lMargins.right + nodeSelfLoopDistance; + case 3: + return lNode.size_0.y_0 + lMargins.bottom + nodeSelfLoopDistance; + case 4: + return -lMargins.left - nodeSelfLoopDistance; + default:return -1; + } +} + +function $computeEdgeRoutingDirection(slEdge){ + var slLoop, sourceLPort, sourcePortSide, targetLPort, targetPortSide; + sourceLPort = slEdge.slSource.lPort; + sourcePortSide = sourceLPort.side; + targetLPort = slEdge.slTarget.lPort; + targetPortSide = targetLPort.side; + if (sourcePortSide == targetPortSide) { + return sourceLPort.id_0 < targetLPort.id_0?0:1; + } + else if ($right(sourcePortSide) == targetPortSide) { + return 0; + } + else if ($left(sourcePortSide) == targetPortSide) { + return 1; + } + else { + slLoop = slEdge.slHyperLoop; + return $containsEnum(slLoop.occupiedPortSides, $right(sourcePortSide))?0:1; + } +} + +function $computePositions(positions, slHolder, portSide, edgeEdgeDistance, edgeLabelDistance, nodeSelfLoopDistance){ + var currPos, factor, largestLabelSize, sidePositions, slot; + currPos = $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance); + factor = portSide == ($clinit_PortSide() , NORTH_3) || portSide == WEST_2?-1:1; + sidePositions = positions[portSide.ordinal]; + for (slot = 0; slot < sidePositions.length; slot++) { + largestLabelSize = sidePositions[slot]; + largestLabelSize > 0 && (largestLabelSize += edgeLabelDistance); + sidePositions[slot] = currPos; + currPos += factor * (largestLabelSize + edgeEdgeDistance); + } +} + +function $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance){ + var portSide, portSide$array, portSide$index, portSide$max, positions; + positions = initUnidimensionalArray(D_classLit, $intern_16, 109, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 0, 2); + for (portSide$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , portSide$index = 0 , portSide$max = portSide$array.length; portSide$index < portSide$max; ++portSide$index) { + portSide = portSide$array[portSide$index]; + positions[portSide.ordinal] = initUnidimensionalArray(D_classLit, $intern_66, 28, slHolder.routingSlotCount[portSide.ordinal], 15, 1); + } + $initializeWithMaxLabelHeight(positions, slHolder, NORTH_3); + $initializeWithMaxLabelHeight(positions, slHolder, SOUTH_2); + $computePositions(positions, slHolder, NORTH_3, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, EAST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, SOUTH_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, WEST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + return positions; +} + +function $getBaseVector(portSide, routingSlot, routingSlotPositions){ + var position; + position = routingSlotPositions[portSide.ordinal][routingSlot]; + switch (portSide.ordinal) { + case 1: + case 3: + return new KVector_1(0, position); + case 2: + case 4: + return new KVector_1(position, 0); + default:return null; + } +} + +function $initializeWithMaxLabelHeight(positions, slHolder, portSide){ + var routingSlot, sidePositions, slLabels, slLoop, slLoop$iterator; + sidePositions = positions[portSide.ordinal]; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + slLabels = slLoop.slLabels; + if (!!slLabels && slLabels.side == portSide) { + routingSlot = slLoop.routingSlot[portSide.ordinal]; + sidePositions[routingSlot] = $wnd.Math.max(sidePositions[routingSlot], slLabels.size_0.y_0); + } + } +} + +function $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance){ + var labelPosition, labelSide; + labelSide = slLabels.side; + labelPosition = routingSlotPositions[labelSide.ordinal][slLoop.routingSlot[labelSide.ordinal]]; + switch (labelSide.ordinal) { + case 1: + labelPosition -= edgeLabelDistance + slLabels.size_0.y_0; + slLabels.position.y_0 = labelPosition; + break; + case 3: + labelPosition += edgeLabelDistance; + slLabels.position.y_0 = labelPosition; + break; + case 4: + labelPosition -= edgeLabelDistance + slLabels.size_0.x_0; + slLabels.position.x_0 = labelPosition; + break; + case 2: + labelPosition += edgeLabelDistance; + slLabels.position.x_0 = labelPosition; + } +} + +function $routeSelfLoops(this$static, slHolder){ + var bendPoints, edgeEdgeDistance, edgeLabelDistance, lEdge, lNode, newNodeMargins, nodeMargins, nodeSLDistance, nodeSize, routingDirection, routingSlotPositions, slEdge, slEdge$iterator, slLabels, slLoop, slLoop$iterator, bendPoints_0, pos; + lNode = slHolder.lNode; + nodeSize = lNode.size_0; + nodeMargins = lNode.margin; + edgeEdgeDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_EDGE_LABEL_0))); + nodeSLDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_NODE_SELF_LOOP))); + newNodeMargins = new LMargin; + $set_6(newNodeMargins, nodeMargins.top_0, nodeMargins.right, nodeMargins.bottom, nodeMargins.left); + routingSlotPositions = $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + for (slEdge$iterator = slLoop.slEdges.map_0.keySet_0().iterator_0(); slEdge$iterator.hasNext_0();) { + slEdge = castTo(slEdge$iterator.next_1(), 340); + lEdge = slEdge.lEdge; + routingDirection = $computeEdgeRoutingDirection(slEdge); + bendPoints = (bendPoints_0 = new KVectorChain , $addOuterBendPoint(slEdge, slEdge.slSource, routingSlotPositions, bendPoints_0) , $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints_0) , $addOuterBendPoint(slEdge, slEdge.slTarget, routingSlotPositions, bendPoints_0) , bendPoints_0); + bendPoints = this$static.modifyBendPoints(slEdge, routingDirection, bendPoints); + $reset_0(lEdge.bendPoints); + $addAll(lEdge.bendPoints, bendPoints); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(bendPoints, 16)), new OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize, newNodeMargins)); + } + slLabels = slLoop.slLabels; + if (slLabels) { + $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance); + pos = new KVector_2(slLabels.position); + $updateNewNodeMargins(nodeSize, newNodeMargins, pos); + $add_19(pos, slLabels.size_0); + $updateNewNodeMargins(nodeSize, newNodeMargins, pos); + } + } + $set_6(nodeMargins, newNodeMargins.top_0, newNodeMargins.right, newNodeMargins.bottom, newNodeMargins.left); +} + +function $updateNewNodeMargins(nodeSize, newNodeMargins, bendPoint){ + newNodeMargins.left = $wnd.Math.max(newNodeMargins.left, -bendPoint.x_0); + newNodeMargins.right = $wnd.Math.max(newNodeMargins.right, bendPoint.x_0 - nodeSize.x_0); + newNodeMargins.top_0 = $wnd.Math.max(newNodeMargins.top_0, -bendPoint.y_0); + newNodeMargins.bottom = $wnd.Math.max(newNodeMargins.bottom, bendPoint.y_0 - nodeSize.y_0); +} + +function OrthogonalSelfLoopRouter(){ +} + +defineClass(1856, 2108, {}, OrthogonalSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints(slEdge, routingDirection, bendPoints){ + return bendPoints; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter', 1856); +function OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize_1, newNodeMargins_2){ + this.nodeSize_1 = nodeSize_1; + this.newNodeMargins_2 = newNodeMargins_2; +} + +defineClass(1858, 1, $intern_19, OrthogonalSelfLoopRouter$lambda$0$Type); +_.accept = function accept_113(arg0){ + $updateNewNodeMargins(this.nodeSize_1, this.newNodeMargins_2, castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter/lambda$0$Type', 1858); +function $cutCorners(bendPoints){ + var bpIterator, corner, effectiveDistance, next, offset1, offset2, previous, result; + result = new KVectorChain; + bpIterator = $listIterator_2(bendPoints, 0); + previous = null; + corner = castTo($next_9(bpIterator), 8); + next = castTo($next_9(bpIterator), 8); + while (bpIterator.currentNode != bpIterator.this$01.tail) { + previous = corner; + corner = next; + next = castTo($next_9(bpIterator), 8); + offset1 = $nearZeroToZero($sub_0(new KVector_1(previous.x_0, previous.y_0), corner)); + offset2 = $nearZeroToZero($sub_0(new KVector_1(next.x_0, next.y_0), corner)); + effectiveDistance = 10; + effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset1.x_0 + offset1.y_0) / 2); + effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset2.x_0 + offset2.y_0) / 2); + offset1.x_0 = signum(offset1.x_0) * effectiveDistance; + offset1.y_0 = signum(offset1.y_0) * effectiveDistance; + offset2.x_0 = signum(offset2.x_0) * effectiveDistance; + offset2.y_0 = signum(offset2.y_0) * effectiveDistance; + $add_7(result, $add_19(offset1, corner)); + $add_7(result, $add_19(offset2, corner)); + } + return result; +} + +function $nearZeroToZero(vector){ + vector.x_0 >= -0.01 && vector.x_0 <= $intern_94 && (vector.x_0 = 0); + vector.y_0 >= -0.01 && vector.y_0 <= $intern_94 && (vector.y_0 = 0); + return vector; +} + +function PolylineSelfLoopRouter(){ +} + +defineClass(1857, 1856, {}, PolylineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_0(slEdge, routingDirection, bendPoints){ + var lSourcePort, lTargetPort; + lSourcePort = slEdge.slSource.lPort; + $add_0(bendPoints, 0, $add_19($clone_1(lSourcePort.pos), lSourcePort.anchor)); + lTargetPort = slEdge.slTarget.lPort; + $add_7(bendPoints, $add_19($clone_1(lTargetPort.pos), lTargetPort.anchor)); + return $cutCorners(bendPoints); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_PolylineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'PolylineSelfLoopRouter', 1857); +function $clinit_RoutingDirector(){ + $clinit_RoutingDirector = emptyMethod; + COMPARE_BY_ID = new RoutingDirector$lambda$0$Type; +} + +function $assignPortIds(lPorts){ + var i; + for (i = 0; i < lPorts.array.length; i++) { + (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 12)).id_0 = i; + } +} + +function $computeEdgePenalty(this$static, slHolder, leftmostPort, rightmostPort){ + var leftOfRightmostPortId, leftmostPortId, portCount, rightmostPortId; + this$static.portPenalties == null && $computePenalties(this$static, slHolder); + portCount = slHolder.lNode.ports.array.length; + leftmostPortId = leftmostPort.lPort.id_0; + rightmostPortId = rightmostPort.lPort.id_0; + leftOfRightmostPortId = rightmostPortId - 1; + leftOfRightmostPortId < 0 && (leftOfRightmostPortId = portCount - 1); + return leftmostPortId <= leftOfRightmostPortId?this$static.portPenalties[leftOfRightmostPortId] - this$static.portPenalties[leftmostPortId]:this$static.portPenalties[portCount - 1] - this$static.portPenalties[leftmostPortId] + this$static.portPenalties[leftOfRightmostPortId]; +} + +function $computeMissingPortSide(slLoop){ + var side, side$array, side$index, side$max, sides; + sides = $keySet(slLoop.slPortsBySide); + for (side$array = ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { + side = side$array[side$index]; + if (side != UNDEFINED_5 && !sides.contains(side)) { + return side; + } + } + return null; +} + +function $computeOccupiedPortSides(slLoop){ + var currPortSide, targetSide; + currPortSide = slLoop.leftmostPort.lPort.side; + targetSide = slLoop.rightmostPort.lPort.side; + while (currPortSide != targetSide) { + $add_5(slLoop.occupiedPortSides, currPortSide); + currPortSide = $right(currPortSide); + } + $add_5(slLoop.occupiedPortSides, currPortSide); +} + +function $computePenalties(this$static, slHolder){ + var currPort, i, penaltySum, ports; + ports = slHolder.lNode.ports; + this$static.portPenalties = initUnidimensionalArray(I_classLit, $intern_49, 28, ports.array.length, 15, 1); + penaltySum = 0; + for (i = 0; i < ports.array.length; i++) { + currPort = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 12)); + currPort.incomingEdges.array.length == 0 && currPort.outgoingEdges.array.length == 0?(penaltySum += 1):(penaltySum += 3); + this$static.portPenalties[i] = penaltySum; + } +} + +function $determineFourSideLoopRoutes(this$static, slLoop){ + var currLeftPort, currPenalty, currRightPort, rightPortIndex, slHolder, sortedSLPorts, worstLeftPort, worstPenalty, worstRightPort; + sortedSLPorts = slLoop.slPorts; + slHolder = slLoop.slHolder; + worstLeftPort = castTo($get_11(sortedSLPorts, sortedSLPorts.array.length - 1), 113); + worstRightPort = (checkCriticalElementIndex(0, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[0], 113)); + worstPenalty = $computeEdgePenalty(this$static, slHolder, worstLeftPort, worstRightPort); + for (rightPortIndex = 1; rightPortIndex < sortedSLPorts.array.length; rightPortIndex++) { + currLeftPort = (checkCriticalElementIndex(rightPortIndex - 1, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex - 1], 113)); + currRightPort = (checkCriticalElementIndex(rightPortIndex, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex], 113)); + currPenalty = $computeEdgePenalty(this$static, slHolder, currLeftPort, currRightPort); + if (currPenalty > worstPenalty) { + worstLeftPort = currLeftPort; + worstRightPort = currRightPort; + worstPenalty = currPenalty; + } + } + slLoop.leftmostPort = worstRightPort; + slLoop.rightmostPort = worstLeftPort; +} + +function $determineLoopRoutes(this$static, slHolder){ + var side, sides, slLoop, slLoop$iterator; + $assignPortIds(slHolder.lNode.ports); + $forEach_3($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingDirector$lambda$1$Type), new RoutingDirector$lambda$2$Type); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + switch (slLoop.selfLoopType.ordinal) { + case 0: + side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); + break; + case 1: + sides = sortedTwoSideLoopPortSides(slLoop); + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, sides[0]), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, sides[1]), 15).stream(), COMPARE_BY_ID)), 113)); + break; + case 2: + $determineTwoSideOpposingLoopRoutes(this$static, slLoop); + break; + case 3: + $determineThreeSideLoopRoutes(slLoop); + break; + case 4: + $determineFourSideLoopRoutes(this$static, slLoop); + } + $computeOccupiedPortSides(slLoop); + } + this$static.portPenalties = null; +} + +function $determineThreeSideLoopRoutes(slLoop){ + var leftmostSide, rightmostSide; + leftmostSide = null; + rightmostSide = null; + switch ($computeMissingPortSide(slLoop).ordinal) { + case 1: + leftmostSide = ($clinit_PortSide() , EAST_2); + rightmostSide = WEST_2; + break; + case 2: + leftmostSide = ($clinit_PortSide() , SOUTH_2); + rightmostSide = NORTH_3; + break; + case 3: + leftmostSide = ($clinit_PortSide() , WEST_2); + rightmostSide = EAST_2; + break; + case 4: + leftmostSide = ($clinit_PortSide() , NORTH_3); + rightmostSide = SOUTH_2; + } + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, leftmostSide), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, rightmostSide), 15).stream(), COMPARE_BY_ID)), 113)); +} + +function $determineTwoSideOpposingLoopRoutes(this$static, slLoop){ + var option1LeftmostPort, option1Penalty, option1RightmostPort, option2LeftmostPort, option2Penalty, option2RightmostPort, sides, slHolder; + sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 64, 2, 0, 1)), 126); + slHolder = slLoop.slHolder; + option1LeftmostPort = $lowestPortOnSide(slLoop, sides[0]); + option1RightmostPort = $highestPortOnSide(slLoop, sides[1]); + option1Penalty = $computeEdgePenalty(this$static, slHolder, option1LeftmostPort, option1RightmostPort); + option2LeftmostPort = $lowestPortOnSide(slLoop, sides[1]); + option2RightmostPort = $highestPortOnSide(slLoop, sides[0]); + option2Penalty = $computeEdgePenalty(this$static, slHolder, option2LeftmostPort, option2RightmostPort); + if (option1Penalty <= option2Penalty) { + slLoop.leftmostPort = option1LeftmostPort; + slLoop.rightmostPort = option1RightmostPort; + } + else { + slLoop.leftmostPort = option2LeftmostPort; + slLoop.rightmostPort = option2RightmostPort; + } +} + +function $highestPortOnSide(slLoop, side){ + return castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); +} + +function $lowestPortOnSide(slLoop, side){ + return castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); +} + +function RoutingDirector(){ + $clinit_RoutingDirector(); +} + +function lambda$0_28(slPort1_0, slPort2_1){ + $clinit_RoutingDirector(); + return compare_5(slPort1_0.lPort.id_0, slPort2_1.lPort.id_0); +} + +defineClass(1812, 1, {}, RoutingDirector); +_.portPenalties = null; +var COMPARE_BY_ID; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector', 1812); +function RoutingDirector$lambda$0$Type(){ +} + +defineClass(1813, 1, $intern_88, RoutingDirector$lambda$0$Type); +_.compare_1 = function compare_59(arg0, arg1){ + return lambda$0_28(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_140(other){ + return this === other; +} +; +_.reversed = function reversed_51(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$0$Type', 1813); +function RoutingDirector$lambda$1$Type(){ +} + +defineClass(1814, 1, {}, RoutingDirector$lambda$1$Type); +_.apply_0 = function apply_125(arg0){ + return $clinit_RoutingDirector() , castTo(arg0, 105).slPorts; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$1$Type', 1814); +function RoutingDirector$lambda$2$Type(){ +} + +defineClass(1815, 1, $intern_19, RoutingDirector$lambda$2$Type); +_.accept = function accept_114(arg0){ + $clinit_RoutingDirector(); + castTo(arg0, 15).sort_0(COMPARE_BY_ID); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$2$Type', 1815); +function $assignRawRoutingSlotsToLoops(this$static, slHolder){ + var portSide, portSide$iterator, slLoop, slLoop$iterator, slot; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + slot = castTo($get_10(this$static.slLoopToSegmentMap, slLoop), 118).routingSlot; + for (portSide$iterator = new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides); portSide$iterator.i < portSide$iterator.this$11.all.length;) { + portSide = castTo($next_7(portSide$iterator), 64); + $setRoutingSlot(slLoop, portSide, slot); + } + } +} + +function $assignRawRoutingSlotsToSegments(this$static){ + var inDependency, inDependency$iterator, nextRoutingSlot, segment, segment$iterator, sinks, sourceSegment; + sinks = new LinkedList; + for (segment$iterator = new ArrayList$1(this$static.hyperEdgeSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_6(segment$iterator), 118); + $setInWeight(segment, segment.incomingSegmentDependencies.array.length); + $setOutWeight(segment, segment.outgoingSegmentDependencies.array.length); + if (segment.outDepWeight == 0) { + segment.routingSlot = 0; + $addNode_0(sinks, segment, sinks.tail.prev, sinks.tail); + } + } + while (sinks.size_0 != 0) { + segment = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 118); + nextRoutingSlot = segment.routingSlot + 1; + for (inDependency$iterator = new ArrayList$1(segment.incomingSegmentDependencies); inDependency$iterator.i < inDependency$iterator.this$01.array.length;) { + inDependency = castTo($next_6(inDependency$iterator), 132); + sourceSegment = inDependency.source; + $setRoutingSlot_0(sourceSegment, $wnd.Math.max(sourceSegment.routingSlot, nextRoutingSlot)); + $setOutWeight(sourceSegment, sourceSegment.outDepWeight - 1); + sourceSegment.outDepWeight == 0 && ($addNode_0(sinks, sourceSegment, sinks.tail.prev, sinks.tail) , true); + } + } +} + +function $assignRoutingSlots(this$static, slHolder){ + var labelCrossingMatrix, nextFreeRoutingSlotAtPort; + labelCrossingMatrix = $computeLabelCrossingMatrix(slHolder); + $createCrossingGraph(this$static, slHolder, labelCrossingMatrix); + breakNonCriticalCycles(this$static.hyperEdgeSegments, castTo($getProperty($getGraph(slHolder.lNode), ($clinit_InternalProperties_1() , RANDOM_0)), 234)); + $assignRawRoutingSlotsToSegments(this$static); + $assignRawRoutingSlotsToLoops(this$static, slHolder); + nextFreeRoutingSlotAtPort = initUnidimensionalArray(I_classLit, $intern_49, 28, slHolder.lNode.ports.array.length, 15, 1); + $shiftTowardsNodeOnSide(this$static, slHolder, ($clinit_PortSide() , NORTH_3), nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, EAST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, SOUTH_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, WEST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + this$static.hyperEdgeSegments = null; + this$static.slLoopToSegmentMap = null; + this$static.slLoopActivityOverPorts = null; +} + +function $computeLabelCrossingMatrix(slHolder){ + var crossingMatrix, labelID, overlap, sl1Idx, sl2Idx, slLoop, slLoop$iterator, slLoop1, slLoop2, slLoops; + labelID = 0; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + !!slLoop.slLabels && (slLoop.slLabels.id_0 = labelID++); + } + crossingMatrix = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [183, 28], 16, [labelID, labelID], 2); + slLoops = slHolder.slHyperLoops; + for (sl1Idx = 0; sl1Idx < slLoops.array.length; sl1Idx++) { + slLoop1 = (checkCriticalElementIndex(sl1Idx, slLoops.array.length) , castTo(slLoops.array[sl1Idx], 105)); + if (slLoop1.slLabels) { + for (sl2Idx = sl1Idx + 1; sl2Idx < slLoops.array.length; sl2Idx++) { + slLoop2 = (checkCriticalElementIndex(sl2Idx, slLoops.array.length) , castTo(slLoops.array[sl2Idx], 105)); + if (slLoop2.slLabels) { + overlap = $labelsOverlap(slLoop1, slLoop2); + crossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0] = overlap; + crossingMatrix[slLoop2.slLabels.id_0][slLoop1.slLabels.id_0] = overlap; + } + } + } + } + return crossingMatrix; +} + +function $computeLoopActivity(this$static, slHolder){ + var lPortIdx, lPortTargetIdx, lPorts, loopActivity, slLoop, slLoop$iterator, slLoops; + slLoops = slHolder.slHyperLoops; + lPorts = slHolder.lNode.ports; + for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + loopActivity = initUnidimensionalArray(Z_classLit, $intern_91, 28, lPorts.array.length, 16, 1); + $put_6(this$static.slLoopActivityOverPorts, slLoop, loopActivity); + lPortIdx = slLoop.leftmostPort.lPort.id_0 - 1; + lPortTargetIdx = slLoop.rightmostPort.lPort.id_0; + while (lPortIdx != lPortTargetIdx) { + lPortIdx = (lPortIdx + 1) % lPorts.array.length; + loopActivity[lPortIdx] = true; + } + } +} + +function $countCrossings_0(this$static, slUpperLoop, slLowerLoop){ + var crossings, lowerLoopActivity, slPort, slPort$iterator; + lowerLoopActivity = castTo($get_10(this$static.slLoopActivityOverPorts, slLowerLoop), 183); + crossings = 0; + for (slPort$iterator = new ArrayList$1(slUpperLoop.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_6(slPort$iterator), 113); + lowerLoopActivity[slPort.lPort.id_0] && ++crossings; + } + return crossings; +} + +function $createCrossingGraph(this$static, slHolder, labelCrossingMatrix){ + var firstIdx, secondIdx, segment, slLoop, slLoop$iterator, slLoop1, slLoops; + slLoops = slHolder.slHyperLoops; + this$static.hyperEdgeSegments = new ArrayList_0(slLoops.array.length); + this$static.slLoopToSegmentMap = new HashMap; + for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_6(slLoop$iterator), 105); + segment = new HyperEdgeSegment(null); + $add_3(this$static.hyperEdgeSegments, segment); + $put_6(this$static.slLoopToSegmentMap, slLoop, segment); + } + this$static.slLoopActivityOverPorts = new HashMap; + $computeLoopActivity(this$static, slHolder); + for (firstIdx = 0; firstIdx < slLoops.array.length - 1; firstIdx++) { + slLoop1 = castTo($get_11(slHolder.slHyperLoops, firstIdx), 105); + for (secondIdx = firstIdx + 1; secondIdx < slLoops.array.length; secondIdx++) { + $createDependencies(this$static, slLoop1, castTo($get_11(slHolder.slHyperLoops, secondIdx), 105), labelCrossingMatrix); + } + } +} + +function $createDependencies(this$static, slLoop1, slLoop2, labelCrossingMatrix){ + var firstAboveSecondCrossings, secondAboveFirstCrossings, segment1, segment2; + firstAboveSecondCrossings = $countCrossings_0(this$static, slLoop1, slLoop2); + secondAboveFirstCrossings = $countCrossings_0(this$static, slLoop2, slLoop1); + segment1 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop1), 118); + segment2 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop2), 118); + if (firstAboveSecondCrossings < secondAboveFirstCrossings) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, secondAboveFirstCrossings - firstAboveSecondCrossings); + } + else if (secondAboveFirstCrossings < firstAboveSecondCrossings) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment2, segment1, firstAboveSecondCrossings - secondAboveFirstCrossings); + } + else if (firstAboveSecondCrossings != 0 || !(!slLoop1.slLabels || !slLoop2.slLabels) && labelCrossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0]) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, 0); + new HyperEdgeSegmentDependency(REGULAR, segment2, segment1, 0); + } +} + +function $labelsOverlap(slLoop1, slLoop2){ + var end1, end2, slLabels1, slLabels2, start1, start2; + slLabels1 = slLoop1.slLabels; + slLabels2 = slLoop2.slLabels; + if (!slLabels1 || !slLabels2) { + return false; + } + if (slLabels1.side != slLabels2.side || slLabels1.side == ($clinit_PortSide() , EAST_2) || slLabels1.side == ($clinit_PortSide() , WEST_2)) { + return false; + } + start1 = slLabels1.position.x_0; + end1 = start1 + slLabels1.size_0.x_0; + start2 = slLabels2.position.x_0; + end2 = start2 + slLabels2.size_0.x_0; + return start1 <= end2 && end1 >= start2; +} + +function $shiftTowardsNodeOnSide(this$static, slHolder, side, nextFreeRoutingSlotAtPort, labelCrossingMatrix){ + var activeAtPort, i, lPort, lPort$iterator, lowestAvailableSlot, maxLPortIndex, minLPortIndex, otherLabelIdx, ourLabelIdx, portIndex, portIndex0, slLoop, slLoop$iterator, slLoops, slotAssignedToLabel, slotsWithLabelConflicts; + slLoops = castTo($collect_1($sorted_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingSlotAssigner$lambda$0$Type(side)), new RoutingSlotAssigner$lambda$1$Type(side)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minLPortIndex = $intern_0; + maxLPortIndex = $intern_43; + for (lPort$iterator = new ArrayList$1(slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_6(lPort$iterator), 12); + if (lPort.side == side) { + minLPortIndex = $wnd.Math.min(minLPortIndex, lPort.id_0); + maxLPortIndex = $wnd.Math.max(maxLPortIndex, lPort.id_0); + } + } + if (minLPortIndex == $intern_0) { + for (i = 0; i < slLoops.size_1(); i++) { + $setRoutingSlot(castTo(slLoops.get_0(i), 105), side, i); + } + } + else { + slotAssignedToLabel = initUnidimensionalArray(I_classLit, $intern_49, 28, labelCrossingMatrix.length, 15, 1); + fill0_1(slotAssignedToLabel, slotAssignedToLabel.length); + for (slLoop$iterator = slLoops.iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 105); + activeAtPort = castTo($get_10(this$static.slLoopActivityOverPorts, slLoop), 183); + lowestAvailableSlot = 0; + for (portIndex0 = minLPortIndex; portIndex0 <= maxLPortIndex; portIndex0++) { + activeAtPort[portIndex0] && (lowestAvailableSlot = $wnd.Math.max(lowestAvailableSlot, nextFreeRoutingSlotAtPort[portIndex0])); + } + if (slLoop.slLabels) { + ourLabelIdx = slLoop.slLabels.id_0; + slotsWithLabelConflicts = new HashSet; + for (otherLabelIdx = 0; otherLabelIdx < labelCrossingMatrix.length; otherLabelIdx++) { + labelCrossingMatrix[ourLabelIdx][otherLabelIdx] && $add_6(slotsWithLabelConflicts, valueOf_3(slotAssignedToLabel[otherLabelIdx])); + } + while ($contains_6(slotsWithLabelConflicts, valueOf_3(lowestAvailableSlot))) { + ++lowestAvailableSlot; + } + } + $setRoutingSlot(slLoop, side, lowestAvailableSlot); + for (portIndex = minLPortIndex; portIndex <= maxLPortIndex; portIndex++) { + activeAtPort[portIndex] && (nextFreeRoutingSlotAtPort[portIndex] = lowestAvailableSlot + 1); + } + !!slLoop.slLabels && (slotAssignedToLabel[slLoop.slLabels.id_0] = lowestAvailableSlot); + } + } +} + +function RoutingSlotAssigner(){ +} + +function lambda$0_29(side_0, slLoop_1){ + return $containsEnum(slLoop_1.occupiedPortSides, side_0); +} + +function lambda$1_15(side_0, sl1_1, sl2_2){ + return compare_5(sl1_1.routingSlot[side_0.ordinal], sl2_2.routingSlot[side_0.ordinal]); +} + +defineClass(1818, 1, {}, RoutingSlotAssigner); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner', 1818); +function RoutingSlotAssigner$lambda$0$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1819, 1, $intern_40, RoutingSlotAssigner$lambda$0$Type); +_.test_0 = function test_79(arg0){ + return lambda$0_29(this.side_0, castTo(arg0, 105)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$0$Type', 1819); +function RoutingSlotAssigner$lambda$1$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1820, 1, $intern_88, RoutingSlotAssigner$lambda$1$Type); +_.compare_1 = function compare_60(arg0, arg1){ + return lambda$1_15(this.side_0, castTo(arg0, 105), castTo(arg1, 105)); +} +; +_.equals_0 = function equals_141(other){ + return this === other; +} +; +_.reversed = function reversed_52(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$1$Type', 1820); +function $addSplineControlPoints(slEdge, routingDirection, orthoBendPoints, newBendPoints, edgeLabelDistance){ + var currPortSide, firstBP, midBP, offset, secondBP, secondBPIndex; + currPortSide = slEdge.slSource.lPort.side; + firstBP = castTo($get_7(orthoBendPoints, 0), 8); + for (secondBPIndex = 1; secondBPIndex < orthoBendPoints.size_0; secondBPIndex++) { + secondBP = castTo($get_7(orthoBendPoints, secondBPIndex), 8); + $addNode_0(newBendPoints, firstBP, newBendPoints.tail.prev, newBendPoints.tail); + midBP = $scale($add_19(new KVector_2(firstBP), secondBP), 0.5); + offset = $scale(new KVector_0(portSideToDirection(currPortSide)), edgeLabelDistance); + $add_19(midBP, offset); + $addNode_0(newBendPoints, midBP, newBendPoints.tail.prev, newBendPoints.tail); + firstBP = secondBP; + currPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); + } + $add_7(newBendPoints, (checkCriticalElement(orthoBendPoints.size_0 != 0) , castTo(orthoBendPoints.tail.prev.value_0, 8))); +} + +function SplineSelfLoopRouter(){ +} + +defineClass(1859, 1856, {}, SplineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_1(slEdge, routingDirection, bendPoints){ + var edgeLabelDistance, lPort, lPort0, splineBendPoints; + edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(slEdge.slHyperLoop.slHolder.lNode, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + splineBendPoints = new KVectorChain_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [(lPort0 = slEdge.slSource.lPort , $add_19(new KVector_2(lPort0.pos), lPort0.anchor))])); + $addSplineControlPoints(slEdge, routingDirection, bendPoints, splineBendPoints, edgeLabelDistance); + $add_7(splineBendPoints, (lPort = slEdge.slTarget.lPort , $add_19(new KVector_2(lPort.pos), lPort.anchor))); + return $getBezierCP(new NubSpline(splineBendPoints)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_SplineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'SplineSelfLoopRouter', 1859); +function $compare_17(this$static, n1, n2){ + var n1ModelOrder, n1ModelOrder0, n2ModelOrder, n2ModelOrder0, p, p$iterator, p$iterator0, p1Node, p1SourcePort, p2Node, p2SourcePort, port, port$iterator, previousNode, previousNode$array, previousNode$index, previousNode$max; + if ($containsKey_3(this$static.biggerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 49), n2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 49), n1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, n2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 49), n2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 49), n1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, n2, new HashSet); + } + if (this$static.orderingStrategy == ($clinit_OrderingStrategy() , PREFER_EDGES) || !$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) || !$hasProperty(n2, ($clinit_InternalProperties_1() , MODEL_ORDER_1))) { + p1SourcePort = null; + for (p$iterator0 = new ArrayList$1(n1.ports); p$iterator0.i < p$iterator0.this$01.array.length;) { + p = castTo($next_6(p$iterator0), 12); + p.incomingEdges.array.length == 0 || castTo($get_11(p.incomingEdges, 0), 18).source.owner.layer != n1.layer && (p1SourcePort = castTo($get_11(p.incomingEdges, 0), 18).source); + } + p2SourcePort = null; + for (p$iterator = new ArrayList$1(n2.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 12); + p.incomingEdges.array.length == 0 || castTo($get_11(p.incomingEdges, 0), 18).source.owner.layer != n2.layer && (p2SourcePort = castTo($get_11(p.incomingEdges, 0), 18).source); + } + if (!!p1SourcePort && !!p2SourcePort) { + p1Node = p1SourcePort.owner; + p2Node = p2SourcePort.owner; + if (!!p1Node && p1Node == p2Node) { + for (port$iterator = new ArrayList$1(p1Node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if (port == p1SourcePort) { + $updateBiggerAndSmallerAssociations(this$static, n2, n1); + return -1; + } + else if (port == p2SourcePort) { + $updateBiggerAndSmallerAssociations(this$static, n1, n2); + return 1; + } + } + return compare_5($getModelOrderFromConnectedEdges(this$static, n1), $getModelOrderFromConnectedEdges(this$static, n2)); + } + for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { + previousNode = previousNode$array[previousNode$index]; + if (previousNode == p1Node) { + $updateBiggerAndSmallerAssociations(this$static, n2, n1); + return -1; + } + else if (previousNode == p2Node) { + $updateBiggerAndSmallerAssociations(this$static, n1, n2); + return 1; + } + } + } + if (!$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) || !$hasProperty(n2, MODEL_ORDER_1)) { + n1ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n1); + n2ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n2); + n1ModelOrder0 > n2ModelOrder0?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); + return n1ModelOrder0 < n2ModelOrder0?-1:n1ModelOrder0 > n2ModelOrder0?1:0; + } + } + n1ModelOrder = castTo($getProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)), 17).value_0; + n2ModelOrder = castTo($getProperty(n2, MODEL_ORDER_1), 17).value_0; + n1ModelOrder > n2ModelOrder?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); + return n1ModelOrder < n2ModelOrder?-1:n1ModelOrder > n2ModelOrder?1:0; +} + +function $getModelOrderFromConnectedEdges(this$static, n){ + var edge, sourcePort; + sourcePort = castTo($orElse($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n.ports, 16)), new ModelOrderNodeComparator$lambda$0$Type))), 12); + if (sourcePort) { + edge = castTo($get_11(sourcePort.incomingEdges, 0), 18); + if (edge) { + return castTo($getProperty(edge, ($clinit_InternalProperties_1() , MODEL_ORDER_1)), 17).value_0; + } + } + return $returnValue(this$static.longEdgeNodeOrder); +} + +function $updateBiggerAndSmallerAssociations(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 49); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 49); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 49); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 49); + biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); + smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); + for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 10); + biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 49), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 49), biggerNodeSmallerThan); + } + for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 10); + smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 49), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 49), smallerNodeBiggerThan); + } +} + +function ModelOrderNodeComparator(thePreviousLayer, orderingStrategy, longEdgeOrderingStrategy){ + ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, thePreviousLayer.nodes.array.length, 0, 1); + $toArray_1(thePreviousLayer.nodes, this.previousLayer); +} + +function ModelOrderNodeComparator_0(orderingStrategy, longEdgeOrderingStrategy){ + this.biggerThan = new HashMap; + this.smallerThan = new HashMap; + this.longEdgeNodeOrder = ($clinit_LongEdgeOrderingStrategy() , EQUAL); + this.orderingStrategy = orderingStrategy; + this.longEdgeNodeOrder = longEdgeOrderingStrategy; +} + +function ModelOrderNodeComparator_1(previousLayer, orderingStrategy, longEdgeOrderingStrategy){ + ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); + this.previousLayer = previousLayer; +} + +defineClass(586, 1, $intern_88, ModelOrderNodeComparator, ModelOrderNodeComparator_1); +_.compare_1 = function compare_61(n1, n2){ + return $compare_17(this, castTo(n1, 10), castTo(n2, 10)); +} +; +_.equals_0 = function equals_142(other){ + return this === other; +} +; +_.reversed = function reversed_53(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator', 586); +function ModelOrderNodeComparator$lambda$0$Type(){ +} + +defineClass(1821, 1, $intern_40, ModelOrderNodeComparator$lambda$0$Type); +_.test_0 = function test_80(arg0){ + return castTo(arg0, 12).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$0$Type', 1821); +function $$init_7(this$static){ + this$static.biggerThan = new HashMap; + this$static.smallerThan = new HashMap; +} + +function $checkPortModelOrder(p1, p2){ + if ($hasProperty(p1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(p2, MODEL_ORDER_1)) { + return compare_5(castTo($getProperty(p1, MODEL_ORDER_1), 17).value_0, castTo($getProperty(p2, MODEL_ORDER_1), 17).value_0); + } + return 0; +} + +function $compare_18(this$static, originalP1, originalP2){ + return $compare_19(this$static, castTo(originalP1, 12), castTo(originalP2, 12)); +} + +function $compare_19(this$static, originalP1, originalP2){ + var p1, p1MO, p1Node, p1Order, p1TargetNode, p2, p2MO, p2Node, p2Order, p2TargetNode, previousNode, previousNode$array, previousNode$index, previousNode$max, result, temp; + p1 = originalP1; + p2 = originalP2; + if (this$static.portModelOrder && p1.side == ($clinit_PortSide() , WEST_2) && p2.side == ($clinit_PortSide() , WEST_2)) { + temp = p1; + p1 = p2; + p2 = temp; + } + if ($containsKey_3(this$static.biggerThan, p1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, p1), 49), p2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, p1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, p2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, p2), 49), p1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, p2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, p1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, p1), 49), p2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, p1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, p2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, p2), 49), p1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, p2, new HashSet); + } + if (p1.side != p2.side) { + result = $compare_20(p1.side, p2.side); + result == -1?$updateBiggerAndSmallerAssociations_0(this$static, p2, p1):$updateBiggerAndSmallerAssociations_0(this$static, p1, p2); + return result; + } + if (p1.incomingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { + if (this$static.portModelOrder) { + result = $checkPortModelOrder(p1, p2); + if (result != 0) { + result == -1?$updateBiggerAndSmallerAssociations_0(this$static, p2, p1):result == 1 && $updateBiggerAndSmallerAssociations_0(this$static, p1, p2); + return result; + } + } + p1Node = castTo($get_11(p1.incomingEdges, 0), 18).source.owner; + p2Node = castTo($get_11(p2.incomingEdges, 0), 18).source.owner; + if (p1Node == p2Node) { + p1MO = castTo($getProperty(castTo($get_11(p1.incomingEdges, 0), 18), ($clinit_InternalProperties_1() , MODEL_ORDER_1)), 17).value_0; + p2MO = castTo($getProperty(castTo($get_11(p2.incomingEdges, 0), 18), MODEL_ORDER_1), 17).value_0; + p1MO > p2MO?$updateBiggerAndSmallerAssociations_0(this$static, p1, p2):$updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return p1MO < p2MO?-1:p1MO > p2MO?1:0; + } + for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { + previousNode = previousNode$array[previousNode$index]; + if (previousNode == p1Node) { + $updateBiggerAndSmallerAssociations_0(this$static, p1, p2); + return 1; + } + else if (previousNode == p2Node) { + $updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return -1; + } + } + } + if (p1.outgoingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0) { + p1TargetNode = castTo($getProperty(p1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE)), 10); + p2TargetNode = castTo($getProperty(p2, LONG_EDGE_TARGET_NODE), 10); + if (this$static.strategy == ($clinit_OrderingStrategy() , PREFER_NODES) && !!p1TargetNode && !!p2TargetNode && $hasProperty(p1TargetNode, MODEL_ORDER_1) && $hasProperty(p2TargetNode, MODEL_ORDER_1)) { + p1MO = castTo($getProperty(p1TargetNode, MODEL_ORDER_1), 17).value_0; + p2MO = castTo($getProperty(p2TargetNode, MODEL_ORDER_1), 17).value_0; + p1MO > p2MO?$updateBiggerAndSmallerAssociations_0(this$static, p1, p2):$updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return p1MO < p2MO?-1:p1MO > p2MO?1:0; + } + if (this$static.portModelOrder) { + result = $checkPortModelOrder(p1, p2); + if (result != 0) { + result == -1?$updateBiggerAndSmallerAssociations_0(this$static, p2, p1):result == 1 && $updateBiggerAndSmallerAssociations_0(this$static, p1, p2); + return result; + } + } + p1Order = 0; + p2Order = 0; + $hasProperty(castTo($get_11(p1.outgoingEdges, 0), 18), MODEL_ORDER_1) && (p1Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 18), MODEL_ORDER_1), 17).value_0); + $hasProperty(castTo($get_11(p2.outgoingEdges, 0), 18), MODEL_ORDER_1) && (p2Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 18), MODEL_ORDER_1), 17).value_0); + if (!!p1TargetNode && p1TargetNode == p2TargetNode) { + if ($booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 18), REVERSED))) && !$booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 18), REVERSED)))) { + $updateBiggerAndSmallerAssociations_0(this$static, p1, p2); + return 1; + } + else if (!$booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 18), REVERSED))) && $booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 18), REVERSED)))) { + $updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return -1; + } + p1Order > p2Order?$updateBiggerAndSmallerAssociations_0(this$static, p1, p2):$updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + if (this$static.targetNodeModelOrder) { + this$static.targetNodeModelOrder.containsKey(p1TargetNode) && (p1Order = castTo(this$static.targetNodeModelOrder.get_3(p1TargetNode), 17).value_0); + this$static.targetNodeModelOrder.containsKey(p2TargetNode) && (p2Order = castTo(this$static.targetNodeModelOrder.get_3(p2TargetNode), 17).value_0); + } + p1Order > p2Order?$updateBiggerAndSmallerAssociations_0(this$static, p1, p2):$updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + if (p1.incomingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0) { + $updateBiggerAndSmallerAssociations_0(this$static, p1, p2); + return 1; + } + else if (p1.outgoingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { + $updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return -1; + } + else if ($hasProperty(p1, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(p2, MODEL_ORDER_1)) { + p1MO = castTo($getProperty(p1, MODEL_ORDER_1), 17).value_0; + p2MO = castTo($getProperty(p2, MODEL_ORDER_1), 17).value_0; + p1MO > p2MO?$updateBiggerAndSmallerAssociations_0(this$static, p1, p2):$updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return p1MO < p2MO?-1:p1MO > p2MO?1:0; + } + else { + $updateBiggerAndSmallerAssociations_0(this$static, p2, p1); + return -1; + } +} + +function $updateBiggerAndSmallerAssociations_0(this$static, bigger, smaller){ + var biggerPortBiggerThan, biggerPortSmallerThan, smallerPortBiggerThan, smallerPortSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerPortBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 49); + smallerPortBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 49); + biggerPortSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 49); + smallerPortSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 49); + biggerPortBiggerThan.map_0.put(smaller, biggerPortBiggerThan); + smallerPortSmallerThan.map_0.put(bigger, smallerPortSmallerThan); + for (verySmall$iterator = smallerPortBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 12); + biggerPortBiggerThan.map_0.put(verySmall, biggerPortBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 49), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 49), biggerPortSmallerThan); + } + for (veryBig$iterator = biggerPortSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 12); + smallerPortSmallerThan.map_0.put(veryBig, smallerPortSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 49), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 49), smallerPortBiggerThan); + } +} + +function ModelOrderPortComparator(previousLayer, strategy, targetNodeModelOrder, portModelOrder){ + $$init_7(this); + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, previousLayer.nodes.array.length, 0, 1); + this.strategy = strategy; + $toArray_1(previousLayer.nodes, this.previousLayer); + this.targetNodeModelOrder = targetNodeModelOrder; + this.portModelOrder = portModelOrder; +} + +function ModelOrderPortComparator_0(previousLayer, strategy, targetNodeModelOrder, portModelOrder){ + $$init_7(this); + this.previousLayer = previousLayer; + this.strategy = strategy; + this.targetNodeModelOrder = targetNodeModelOrder; + this.portModelOrder = portModelOrder; +} + +defineClass(821, 1, $intern_88, ModelOrderPortComparator, ModelOrderPortComparator_0); +_.compare_1 = function compare_62(originalP1, originalP2){ + return $compare_18(this, originalP1, originalP2); +} +; +_.equals_0 = function equals_143(other){ + return this === other; +} +; +_.reversed = function reversed_54(){ + return new Comparators$ReversedComparator(this); +} +; +_.portModelOrder = false; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderPortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderPortComparator', 821); +function $compare_20(ps1, ps2){ + return compare_5(ps1.ordinal, ps2.ordinal); +} + +function ARDCutIndexHeuristic(){ +} + +function getChunkCount(gs){ + var rows_0, rowsd; + rowsd = $wnd.Math.sqrt((gs.sumWidth == null && (gs.sumWidth = $determineWidth(gs, new GraphStats$lambda$1$Type)) , $doubleValue(gs.sumWidth) / (gs.dar * (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight))))); + rows_0 = toInt_0(fromDouble_0($wnd.Math.round(rowsd))); + rows_0 = $wnd.Math.min(rows_0, gs.longestPath); + return rows_0; +} + +defineClass(815, 1, {}, ARDCutIndexHeuristic); +_.getCutIndexes = function getCutIndexes(graph, gs){ + var cuts, idx, rows_0, step; + rows_0 = getChunkCount(gs); + cuts = new ArrayList; + step = gs.longestPath / rows_0; + for (idx = 1; idx < rows_0; ++idx) { + $add_3(cuts, valueOf_3(toInt_0(fromDouble_0($wnd.Math.round(idx * step))))); + } + return cuts; +} +; +_.guaranteeValid = function guaranteeValid(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ARDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ARDCutIndexHeuristic', 815); +function $applyCuts(graph, cuts){ + var alreadySplit, bpEndMarker, bpLayer1, bpLayer2, bpStartMarker, bpi, bpiPrev, cut, cutIt, e, e$iterator, e$iterator0, idx, inPortBp1, inPortBp2, layer, layerIt, n, n$iterator, noSplitEdges, nodeStartEdge, openEdges, originalEdge, originalEdge$iterator, outPortBp1, outPortBp2, prevNode, startEndEdge; + layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); + cutIt = cuts.iterator_0(); + idx = 0; + cut = castTo(cutIt.next_1(), 17).value_0; + noSplitEdges = 0; + alreadySplit = new HashSet; + openEdges = new LinkedHashSet; + while (layerIt.i < layerIt.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 30)); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + for (e$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator0);) { + e = castTo($next_0(e$iterator0), 18); + openEdges.map_0.put(e, openEdges); + } + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + openEdges.map_0.remove_0(e) != null; + } + } + if (idx + 1 == cut) { + bpLayer1 = new Layer(graph); + $add_1(layerIt, bpLayer1); + bpLayer2 = new Layer(graph); + $add_1(layerIt, bpLayer2); + for (originalEdge$iterator = openEdges.map_0.keySet_0().iterator_0(); originalEdge$iterator.hasNext_0();) { + originalEdge = castTo(originalEdge$iterator.next_1(), 18); + if (!alreadySplit.map_0.containsKey(originalEdge)) { + ++noSplitEdges; + alreadySplit.map_0.put(originalEdge, alreadySplit); + } + bpStartMarker = new LNode(graph); + $setProperty_0(bpStartMarker, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); + $setLayer_0(bpStartMarker, bpLayer1); + $setType(bpStartMarker, ($clinit_LNode$NodeType() , BREAKING_POINT)); + inPortBp1 = new LPort; + $setNode(inPortBp1, bpStartMarker); + $setSide(inPortBp1, ($clinit_PortSide() , WEST_2)); + outPortBp1 = new LPort; + $setNode(outPortBp1, bpStartMarker); + $setSide(outPortBp1, EAST_2); + bpEndMarker = new LNode(graph); + $setProperty_0(bpEndMarker, PORT_CONSTRAINTS_0, FIXED_SIDE); + $setLayer_0(bpEndMarker, bpLayer2); + $setType(bpEndMarker, BREAKING_POINT); + inPortBp2 = new LPort; + $setNode(inPortBp2, bpEndMarker); + $setSide(inPortBp2, WEST_2); + outPortBp2 = new LPort; + $setNode(outPortBp2, bpEndMarker); + $setSide(outPortBp2, EAST_2); + nodeStartEdge = new LEdge; + $setSource_0(nodeStartEdge, originalEdge.source); + $setTarget_0(nodeStartEdge, inPortBp1); + $setProperty_0(nodeStartEdge, ($clinit_InternalProperties_1() , MODEL_ORDER_1), castTo($getProperty(originalEdge, MODEL_ORDER_1), 17)); + startEndEdge = new LEdge; + $setSource_0(startEndEdge, outPortBp1); + $setTarget_0(startEndEdge, inPortBp2); + $setProperty_0(startEndEdge, MODEL_ORDER_1, castTo($getProperty(originalEdge, MODEL_ORDER_1), 17)); + $setSource_0(originalEdge, outPortBp2); + bpi = new BreakingPointInserter$BPInfo(bpStartMarker, bpEndMarker, nodeStartEdge, startEndEdge, originalEdge); + $setProperty_0(bpStartMarker, BREAKING_POINT_INFO, bpi); + $setProperty_0(bpEndMarker, BREAKING_POINT_INFO, bpi); + prevNode = nodeStartEdge.source.owner; + if (prevNode.type_0 == BREAKING_POINT) { + bpiPrev = castTo($getProperty(prevNode, BREAKING_POINT_INFO), 313); + bpiPrev.next_0 = bpi; + bpi.prev = bpiPrev; + } + } + if (cutIt.hasNext_0()) { + cut = castTo(cutIt.next_1(), 17).value_0; + } + else { + break; + } + } + ++idx; + } + return valueOf_3(noSplitEdges); +} + +function $computeEdgeSpans(graph){ + var e, e$iterator, i, l, l$iterator, n, n$iterator, n$iterator0, open_0, spans; + spans = initUnidimensionalArray(I_classLit, $intern_49, 28, graph.layers.array.length + 1, 15, 1); + open_0 = new HashSet; + i = 0; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + spans[i++] = open_0.map_0.size_1(); + for (n$iterator0 = new ArrayList$1(l.nodes); n$iterator0.i < n$iterator0.this$01.array.length;) { + n = castTo($next_6(n$iterator0), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + open_0.map_0.put(e, open_0); + } + } + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + open_0.map_0.remove_0(e) != null; + } + } + } + return spans; +} + +function $improveCuts(graph, cuts){ + var bestCut, bestScore, ccuts, cut, cutIdx, cutIdx$iterator, dist, hit, i, idx, improvedCuts, lCut, lDist, lastCut, rCut, rDist, score, spans, distancePenalty; + improvedCuts = new ArrayList; + ccuts = new ArrayList; + lastCut = null; + for (cutIdx$iterator = cuts.iterator_0(); cutIdx$iterator.hasNext_0();) { + cutIdx = castTo(cutIdx$iterator.next_1(), 17); + cut = new BreakingPointInserter$Cut(cutIdx.value_0); + push_1(ccuts.array, cut); + if (lastCut) { + cut.prev = lastCut; + lastCut.suc = cut; + } + lastCut = cut; + } + spans = $computeEdgeSpans(graph); + for (i = 0; i < ccuts.array.length; ++i) { + lCut = null; + rCut = $selfOrNext((checkCriticalElementIndex(0, ccuts.array.length) , castTo(ccuts.array[0], 661))); + bestCut = null; + bestScore = $intern_60; + for (idx = 1; idx < graph.layers.array.length; ++idx) { + rDist = rCut?$wnd.Math.abs(rCut.index_0 - idx):$wnd.Math.abs(idx - lCut.index_0) + 1; + lDist = lCut?$wnd.Math.abs(idx - lCut.index_0):rDist + 1; + if (lDist < rDist) { + hit = lCut; + dist = lDist; + } + else { + hit = rCut; + dist = rDist; + } + score = (distancePenalty = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)))) , spans[idx] + $wnd.Math.pow(dist, distancePenalty)); + if (score < bestScore) { + bestScore = score; + bestCut = hit; + bestCut.newIndex = idx; + } + if (!!rCut && idx == rCut.index_0) { + lCut = rCut; + rCut = $next_11(rCut); + } + } + if (bestCut) { + $add_3(improvedCuts, valueOf_3(bestCut.newIndex)); + bestCut.assigned = true; + $offset(bestCut); + } + } + $clinit_Collections(); + sort_4(improvedCuts.array, improvedCuts.array.length, null); + return improvedCuts; +} + +function $process_53(graph, progressMonitor){ + var cuts, gs, icic; + progressMonitor.begin('Breaking Point Insertion', 1); + gs = new GraphStats(graph); + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 351).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + break; + case 0: + icic = new ARDCutIndexHeuristic; + break; + default:icic = new MSDCutIndexHeuristic; + } + cuts = icic.getCutIndexes(graph, gs); + $booleanValue(castToBoolean($getProperty(graph, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0))) && (cuts = $improveCuts(graph, cuts)); + if (!icic.guaranteeValid() && $hasProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0)) { + switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 352).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + if (cuts.isEmpty()) { + progressMonitor.done_1(); + return; + } + $applyCuts(graph, cuts); + progressMonitor.done_1(); +} + +function BreakingPointInserter(){ +} + +defineClass(1544, 1, $intern_105, BreakingPointInserter); +_.process = function process_50(graph, progressMonitor){ + $process_53(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter', 1544); +function BreakingPointInserter$BPInfo(startDummy, endDummy, nodeStartEdge, startEndEdge, originalEdge){ + this.start_0 = startDummy; + this.end = endDummy; + this.nodeStartEdge = nodeStartEdge; + this.startEndEdge = startEndEdge; + this.originalEdge = originalEdge; +} + +function isEnd(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 313); + if (bpi) { + return bpi.end == n; + } + return false; +} + +function isStart(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 313); + if (bpi) { + return bpi.start_0 == n; + } + return false; +} + +defineClass(313, 1, {313:1}, BreakingPointInserter$BPInfo); +_.toString_0 = function toString_97(){ + var sb; + sb = new StringBuilder; + sb.string += 'BPInfo['; + sb.string += '\n\tstart='; + $append_10(sb, this.start_0); + sb.string += '\n\tend='; + $append_10(sb, this.end); + sb.string += '\n\tnodeStartEdge='; + $append_10(sb, this.nodeStartEdge); + sb.string += '\n\tstartEndEdge='; + $append_10(sb, this.startEndEdge); + sb.string += '\n\toriginalEdge='; + $append_10(sb, this.originalEdge); + sb.string += '\n\tstartInLayerDummy='; + $append_10(sb, this.startInLayerDummy); + sb.string += '\n\tstartInLayerEdge='; + $append_10(sb, this.startInLayerEdge); + sb.string += '\n\tendInLayerDummy='; + $append_10(sb, this.endInLayerDummy); + sb.string += '\n\tendInLayerEdge='; + $append_10(sb, this.endInLayerEdge); + return sb.string; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$BPInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/BPInfo', 313); +function $next_11(this$static){ + if (this$static.suc) { + return $selfOrNext(this$static.suc); + } + return null; +} + +function $offset(this$static){ + var offset; + if (!this$static.assigned) { + throw toJs(new IllegalStateException_0('Cannot offset an unassigned cut.')); + } + offset = this$static.newIndex - this$static.index_0; + this$static.index_0 += offset; + $offsetPrev(this$static, offset); + $offsetSuc(this$static, offset); +} + +function $offset_0(this$static, offset){ + this$static.index_0 += offset; +} + +function $offsetPrev(this$static, offset){ + if (!!this$static.prev && !this$static.prev.assigned) { + $offset_0(this$static.prev, offset); + $offsetPrev(this$static.prev, offset); + } +} + +function $offsetSuc(this$static, offset){ + if (!!this$static.suc && !this$static.suc.assigned) { + $offset_0(this$static.suc, offset); + $offsetSuc(this$static.suc, offset); + } +} + +function $selfOrNext(this$static){ + if (this$static.assigned) { + if (this$static.suc) { + return $selfOrNext(this$static.suc); + } + } + else { + return this$static; + } + return null; +} + +function BreakingPointInserter$Cut(index_0){ + this.index_0 = index_0; +} + +defineClass(661, 1, {661:1}, BreakingPointInserter$Cut); +_.assigned = false; +_.index_0 = 0; +_.newIndex = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$Cut_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/Cut', 661); +function $dropDummies(bpNode, inLayerDummy, forwards, force){ + var didsome, newLayer, nextOne, nextTwo, predOne, predTwo; + predOne = $nextLongEdgeDummy(bpNode, forwards); + predTwo = $nextLongEdgeDummy(inLayerDummy, forwards); + didsome = false; + while (!!predOne && !!predTwo) { + if (force || $isAdjacentOrSeparatedByBreakingpoints(predOne, predTwo, forwards)) { + nextOne = $nextLongEdgeDummy(predOne, forwards); + nextTwo = $nextLongEdgeDummy(predTwo, forwards); + $updateIndexesAfter(inLayerDummy); + $updateIndexesAfter(bpNode); + newLayer = predOne.layer; + joinAt(predOne, false); + joinAt(predTwo, false); + if (forwards) { + $setLayer(inLayerDummy, predTwo.id_0, newLayer); + inLayerDummy.id_0 = predTwo.id_0; + $setLayer(bpNode, predOne.id_0 + 1, newLayer); + bpNode.id_0 = predOne.id_0; + } + else { + $setLayer(bpNode, predOne.id_0, newLayer); + bpNode.id_0 = predOne.id_0; + $setLayer(inLayerDummy, predTwo.id_0 + 1, newLayer); + inLayerDummy.id_0 = predTwo.id_0; + } + $setLayer_0(predOne, null); + $setLayer_0(predTwo, null); + predOne = nextOne; + predTwo = nextTwo; + didsome = true; + } + else { + break; + } + } + return didsome; +} + +function $improveMultiCutIndexEdges(graph){ + var current, info, l, l$iterator, n, n$iterator, newInfo, next; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (n$iterator = new ArrayList$1(newArrayList(l.nodes)); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + if (isStart(n)) { + info = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 313); + if (!info.prev && !!info.next_0) { + current = info; + next = info.next_0; + while (next) { + $dropDummies(next.start_0, next.startInLayerDummy, false, true); + $updateIndexesAfter(current.end); + $updateIndexesAfter(next.start_0); + $updateIndexesAfter(next.startInLayerDummy); + $updateIndexesAfter(next.endInLayerDummy); + $setTarget_0(next.endInLayerEdge, current.endInLayerEdge.target); + $setTarget_0(current.endInLayerEdge, null); + $setLayer_0(current.end, null); + $setLayer_0(next.start_0, null); + $setLayer_0(next.startInLayerDummy, null); + $setLayer_0(next.endInLayerDummy, null); + newInfo = new BreakingPointInserter$BPInfo(current.start_0, next.end, current.nodeStartEdge, next.startEndEdge, next.originalEdge); + newInfo.startInLayerDummy = current.startInLayerDummy; + newInfo.startInLayerEdge = current.startInLayerEdge; + newInfo.endInLayerDummy = current.endInLayerDummy; + newInfo.endInLayerEdge = next.endInLayerEdge; + newInfo.prev = current.prev; + newInfo.next_0 = next.next_0; + $setProperty_0(current.start_0, BREAKING_POINT_INFO, newInfo); + $setProperty_0(next.end, BREAKING_POINT_INFO, newInfo); + next = next.next_0; + current = newInfo; + } + } + } + } + } +} + +function $improveUnneccesarilyLongEdges(graph, forwards){ + var bpInfo, bpNode, check, didsome, dummy, layer, layer$iterator, layers, n, n$iterator, nodes; + check = forwards?new BreakingPointProcessor$0methodref$isEnd$Type:new BreakingPointProcessor$1methodref$isStart$Type; + didsome = false; + do { + didsome = false; + layers = forwards?reverse_0(graph.layers):graph.layers; + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 30); + nodes = newArrayList(layer.nodes); + forwards || reverse_0(nodes); + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + if (check.test_0(n)) { + bpNode = n; + bpInfo = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 313); + dummy = forwards?bpInfo.endInLayerDummy:bpInfo.startInLayerDummy; + didsome = $dropDummies(bpNode, dummy, forwards, false); + } + } + } + } + while (didsome); +} + +function $isAdjacentOrSeparatedByBreakingpoints(dummy1, dummy2, forwards){ + var end, i, layer, node, start_0; + layer = dummy1.layer; + start_0 = forwards?dummy2:dummy1; + end = forwards?dummy1:dummy2; + for (i = start_0.id_0 + 1; i < end.id_0; ++i) { + node = castTo($get_11(layer.nodes, i), 10); + if (!(node.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT) || $isInLayerDummy(node))) { + return false; + } + } + return true; +} + +function $isInLayerDummy(node){ + var e, e$iterator; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + if (!$isSelfLoop(e) && node.layer == $getOther_1(e, node).layer) { + return true; + } + } + } + return false; +} + +function $nextLongEdgeDummy(start_0, forwards){ + var e, e$iterator, edges, other; + edges = forwards?$getOutgoingEdges(start_0):$getIncomingEdges(start_0); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + other = $getOther_1(e, start_0); + if (other.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && other.layer != start_0.layer) { + return other; + } + } + return null; +} + +function $performWrapping(graph){ + var aNode, bpi, dummyEdges, e, e$iterator, idx, it, l, layer, layerIt, layers, n, n$iterator, n$iterator0, newLayer, nodesToMove, offset, reverse, startInLayerEdge; + layers = graph.layers; + layerIt = new AbstractList$ListIteratorImpl(layers, 0); + $add_1(layerIt, new Layer(graph)); + reverse = false; + idx = 1; + while (layerIt.i < layerIt.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 30)); + newLayer = (checkCriticalElementIndex(idx, layers.array.length) , castTo(layers.array[idx], 30)); + nodesToMove = newArrayList(layer.nodes); + offset = nodesToMove.array.length; + for (n$iterator0 = new ArrayList$1(nodesToMove); n$iterator0.i < n$iterator0.this$01.array.length;) { + n = castTo($next_6(n$iterator0), 10); + $setLayer_0(n, newLayer); + } + if (reverse) { + for (n$iterator = reverse_0(nodesToMove).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 10); + for (e$iterator = new ArrayList$1(newArrayList($getIncomingEdges(n))); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + $reverse_0(e, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + dummyEdges = insertDummies(graph, e, offset); + bpi = castTo($getProperty(n, BREAKING_POINT_INFO), 313); + startInLayerEdge = castTo($get_11(dummyEdges, dummyEdges.array.length - 1), 18); + bpi.startInLayerDummy = startInLayerEdge.source.owner; + bpi.startInLayerEdge = startInLayerEdge; + bpi.endInLayerDummy = e.target.owner; + bpi.endInLayerEdge = e; + } + } + reverse = false; + } + else { + if (nodesToMove.array.length != 0) { + aNode = (checkCriticalElementIndex(0, nodesToMove.array.length) , castTo(nodesToMove.array[0], 10)); + if (aNode.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT)) { + reverse = true; + idx = -1; + } + } + } + ++idx; + } + it = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (it.i < it.this$01_0.size_1()) { + l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 30)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_54(graph, progressMonitor){ + var index_0, l, l$iterator, n, n$iterator; + progressMonitor.begin('Breaking Point Processor', 1); + $performWrapping(graph); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0))))) { + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + n.id_0 = index_0++; + } + } + $improveMultiCutIndexEdges(graph); + $improveUnneccesarilyLongEdges(graph, true); + $improveUnneccesarilyLongEdges(graph, false); + } + progressMonitor.done_1(); +} + +function $updateIndexesAfter(node){ + var i; + for (i = node.id_0 + 1; i < node.layer.nodes.array.length; ++i) { + --castTo($get_11(node.layer.nodes, i), 10).id_0; + } +} + +function BreakingPointProcessor(){ +} + +defineClass(1545, 1, $intern_105, BreakingPointProcessor); +_.process = function process_51(graph, progressMonitor){ + $process_54(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor', 1545); +function BreakingPointProcessor$0methodref$isEnd$Type(){ +} + +defineClass(1546, 1, $intern_40, BreakingPointProcessor$0methodref$isEnd$Type); +_.test_0 = function test_81(arg0){ + return isEnd(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$0methodref$isEnd$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/0methodref$isEnd$Type', 1546); +function BreakingPointProcessor$1methodref$isStart$Type(){ +} + +defineClass(1547, 1, $intern_40, BreakingPointProcessor$1methodref$isStart$Type); +_.test_0 = function test_82(arg0){ + return isStart(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$1methodref$isStart$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/1methodref$isStart$Type', 1547); +function $addNullSafe(container, toAdd){ + if (!toAdd) { + return false; + } + return $addAll(container, toAdd); +} + +function $process_55(this$static, graph, progressMonitor){ + var bpi, l, l$iterator, node, node$iterator; + progressMonitor.begin('Breaking Point Removing', 1); + this$static.edgeRouting = castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 223); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (node$iterator = new ArrayList$1(newArrayList(l.nodes)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (isEnd(node)) { + bpi = castTo($getProperty(node, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 313); + !bpi.next_0 && $remove_30(this$static, bpi); + } + } + } + progressMonitor.done_1(); +} + +function $remove_30(this$static, bpi){ + var e1, e2, e3, joinedEdges, joinedSegments, junctionPointsOne, junctionPointsThree, junctionPointsTwo, newBends, newJunctionPoints, s1, s2, s3; + newBends = new KVectorChain; + switch (this$static.edgeRouting.ordinal) { + case 3: + s1 = castTo($getProperty(bpi.nodeStartEdge, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); + s2 = castTo($getProperty(bpi.startEndEdge, SPLINE_ROUTE_START), 15); + s3 = castTo($getProperty(bpi.originalEdge, SPLINE_ROUTE_START), 15); + e1 = castTo($getProperty(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN), 15); + e2 = castTo($getProperty(bpi.startEndEdge, SPLINE_EDGE_CHAIN), 15); + e3 = castTo($getProperty(bpi.originalEdge, SPLINE_EDGE_CHAIN), 15); + joinedSegments = new ArrayList; + $addAll_2(joinedSegments, s1); + s2.forEach_0(new BreakingPointRemover$lambda$0$Type); + $addAll_2(joinedSegments, reverse_0(s2)); + $addAll_2(joinedSegments, s3); + joinedEdges = new ArrayList; + $addAll_2(joinedEdges, e1); + $addAll_2(joinedEdges, reverse_0(e2)); + $addAll_2(joinedEdges, e3); + $setProperty_0(bpi.originalEdge, SPLINE_ROUTE_START, joinedSegments); + $setProperty_0(bpi.originalEdge, SPLINE_EDGE_CHAIN, joinedEdges); + $setProperty_0(bpi.originalEdge, SPLINE_SURVIVING_EDGE, bpi.originalEdge); + $setProperty_0(bpi.nodeStartEdge, SPLINE_ROUTE_START, null); + $setProperty_0(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN, null); + $setProperty_0(bpi.startEndEdge, SPLINE_ROUTE_START, null); + $setProperty_0(bpi.startEndEdge, SPLINE_EDGE_CHAIN, null); + break; + case 1: + $addAll(newBends, bpi.nodeStartEdge.bendPoints); + $add_7(newBends, bpi.start_0.pos); + $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); + $add_7(newBends, bpi.end.pos); + $addAll(newBends, bpi.originalEdge.bendPoints); + break; + default:$addAll(newBends, bpi.nodeStartEdge.bendPoints); + $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); + $addAll(newBends, bpi.originalEdge.bendPoints); + } + $reset_0(bpi.originalEdge.bendPoints); + $addAll(bpi.originalEdge.bendPoints, newBends); + $setSource_0(bpi.originalEdge, bpi.nodeStartEdge.source); + junctionPointsOne = castTo($getProperty(bpi.nodeStartEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + junctionPointsTwo = castTo($getProperty(bpi.startEndEdge, JUNCTION_POINTS), 75); + junctionPointsThree = castTo($getProperty(bpi.originalEdge, JUNCTION_POINTS), 75); + if (!!junctionPointsOne || !!junctionPointsTwo || !!junctionPointsThree) { + newJunctionPoints = new KVectorChain; + $addNullSafe(newJunctionPoints, junctionPointsThree); + $addNullSafe(newJunctionPoints, junctionPointsTwo); + $addNullSafe(newJunctionPoints, junctionPointsOne); + $setProperty_0(bpi.originalEdge, JUNCTION_POINTS, newJunctionPoints); + } + $setSource_0(bpi.startEndEdge, null); + $setTarget_0(bpi.startEndEdge, null); + $setSource_0(bpi.nodeStartEdge, null); + $setTarget_0(bpi.nodeStartEdge, null); + $setLayer_0(bpi.end, null); + $setLayer_0(bpi.start_0, null); + !!bpi.prev && $remove_30(this$static, bpi.prev); +} + +function BreakingPointRemover(){ +} + +defineClass(1548, 1, $intern_105, BreakingPointRemover); +_.process = function process_52(graph, progressMonitor){ + $process_55(this, castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover', 1548); +function BreakingPointRemover$lambda$0$Type(){ +} + +defineClass(1549, 1, $intern_19, BreakingPointRemover$lambda$0$Type); +_.accept = function accept_115(arg0){ + castTo(arg0, 131).inverseOrder = true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover/lambda$0$Type', 1549); +function insertDummies(layeredGraph, originalEdge, offsetFirstInLayerDummy){ + var additionalSpacing, createdEdges, dummyEdge, dummyInput, dummyNode, dummyOutput, edge, edgeNodeSpacing, i, is, nextLayer, portPos, src_0, srcIndex, targetPort, tgt, tgtIndex, thickness; + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE)))); + additionalSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, WRAPPING_ADDITIONAL_EDGE_SPACING_0))); + is = new IndividualSpacings; + $setProperty_0(is, SPACING_EDGE_NODE, edgeNodeSpacing + additionalSpacing); + edge = originalEdge; + targetPort = edge.target; + src_0 = edge.source.owner; + tgt = edge.target.owner; + srcIndex = $getIndex_0(src_0.layer); + tgtIndex = $getIndex_0(tgt.layer); + createdEdges = new ArrayList; + for (i = srcIndex; i <= tgtIndex; i++) { + dummyNode = new LNode(layeredGraph); + $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummyNode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummyNode, SPACING_INDIVIDUAL, is); + nextLayer = castTo($get_11(layeredGraph.layers, i), 30); + i == srcIndex?$setLayer(dummyNode, nextLayer.nodes.array.length - offsetFirstInLayerDummy, nextLayer):$setLayer_0(dummyNode, nextLayer); + thickness = $doubleValue(castToDouble($getProperty(edge, EDGE_THICKNESS_0))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + dummyNode.size_0.y_0 = thickness; + portPos = $wnd.Math.floor(thickness / 2); + dummyInput = new LPort; + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInput, dummyNode); + dummyInput.pos.y_0 = portPos; + dummyOutput = new LPort; + $setSide(dummyOutput, EAST_2); + $setNode(dummyOutput, dummyNode); + dummyOutput.pos.y_0 = portPos; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, targetPort); + setDummyProperties(dummyNode, edge, dummyEdge); + push_1(createdEdges.array, dummyEdge); + edge = dummyEdge; + } + return createdEdges; +} + +function setDummyProperties(dummy, inEdge, outEdge){ + var inEdgeSourceNode; + inEdgeSourceNode = inEdge.source.owner; + if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 12)); + $setProperty_0(dummy, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 12)); + } + else { + $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); + $setProperty_0(dummy, LONG_EDGE_TARGET, outEdge.target); + } +} + +function $determineHeight(this$static, fun){ + return $doubleValue(castToDouble($get_17($reduce_0($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$6$Type(this$static)), fun)))); +} + +function $determineLayerHeight(this$static, layer){ + var inc, inc$iterator, lH, n, n$iterator, origin_0, src_0; + lH = 0; + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + lH += n.size_0.y_0 + n.margin.bottom + n.margin.top_0 + this$static.inLayerSpacing; + for (inc$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inc$iterator);) { + inc = castTo($next_0(inc$iterator), 18); + if (inc.source.owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + src_0 = inc.source.owner; + origin_0 = castTo($getProperty(src_0, ($clinit_InternalProperties_1() , ORIGIN_0)), 10); + lH += origin_0.size_0.y_0 + origin_0.margin.bottom + origin_0.margin.top_0; + } + } + } + return lH; +} + +function $determineLayerWidth(this$static, l){ + var maxW, n, n$iterator, nW; + maxW = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + nW = n.size_0.x_0 + n.margin.right + n.margin.left + this$static.spacing; + maxW = $wnd.Math.max(maxW, nW); + } + return maxW; +} + +function $determineWidth(this$static, fun){ + return $doubleValue(castToDouble($get_17($reduce_0($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$2$Type(this$static)), fun)))); +} + +function $initCutAllowed(this$static){ + var f, f$iterator, forbidden, i, layer, layerIt; + if (this$static.cutsAllowed != null) { + return; + } + this$static.cutsAllowed = initUnidimensionalArray(Z_classLit, $intern_91, 28, this$static.graph_0.layers.array.length, 16, 1); + this$static.cutsAllowed[0] = false; + if ($hasProperty(this$static.graph_0, ($clinit_LayeredOptions() , WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0))) { + forbidden = castTo($getProperty(this$static.graph_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0), 15); + for (f$iterator = forbidden.iterator_0(); f$iterator.hasNext_0();) { + f = castTo(f$iterator.next_1(), 17).value_0; + f > 0 && f < this$static.cutsAllowed.length && (this$static.cutsAllowed[f] = false); + } + } + else { + layerIt = new ArrayList$1(this$static.graph_0.layers); + layerIt.i < layerIt.this$01.array.length && $next_6(layerIt); + i = 1; + while (layerIt.i < layerIt.this$01.array.length) { + layer = castTo($next_6(layerIt), 30); + this$static.cutsAllowed[i++] = $isCutAllowed_0(layer); + } + } +} + +function $initWidthsAndHeights(this$static){ + var i, l, n; + n = this$static.longestPath; + this$static.widths = initUnidimensionalArray(D_classLit, $intern_66, 28, n, 15, 1); + this$static.heights = initUnidimensionalArray(D_classLit, $intern_66, 28, n, 15, 1); + for (i = 0; i < n; i++) { + l = castTo($get_11(this$static.graph_0.layers, i), 30); + this$static.widths[i] = $determineLayerWidth(this$static, l); + this$static.heights[i] = $determineLayerHeight(this$static, l); + } +} + +function $isCutAllowed(this$static, layerIndex){ + this$static.cutsAllowed == null && $initCutAllowed(this$static); + return this$static.cutsAllowed[layerIndex]; +} + +function $isCutAllowed_0(layer){ + var cutAllowed, e, e$iterator, n1, n2, src_0, tgt, tgt$iterator; + cutAllowed = true; + n1 = null; + n2 = null; + check: for (tgt$iterator = new ArrayList$1(layer.nodes); tgt$iterator.i < tgt$iterator.this$01.array.length;) { + tgt = castTo($next_6(tgt$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(tgt).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + if (!!n1 && n1 != tgt) { + cutAllowed = false; + break check; + } + n1 = tgt; + src_0 = e.source.owner; + if (!!n2 && n2 != src_0) { + cutAllowed = false; + break check; + } + n2 = src_0; + } + } + return cutAllowed; +} + +function GraphStats(graph){ + var aspectRatio, correction, dir_0; + this.graph_0 = graph; + dir_0 = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 88); + aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); + correction = $doubleValue(castToDouble($getProperty(graph, WRAPPING_CORRECTION_FACTOR_0))); + dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6 || dir_0 == UNDEFINED_2?(this.dar = aspectRatio * correction):(this.dar = 1 / (aspectRatio * correction)); + this.spacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + this.inLayerSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_0))); + this.longestPath = graph.layers.array.length; +} + +function lambda$1_16(a_0, b_1){ + return (checkCriticalNotNull(a_0) , a_0) + (checkCriticalNotNull(b_1) , b_1); +} + +defineClass(811, 1, {}, GraphStats); +_.dar = 0; +_.inLayerSpacing = 0; +_.longestPath = 0; +_.spacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats', 811); +function GraphStats$0methodref$max$Type(){ +} + +defineClass(812, 1, {}, GraphStats$0methodref$max$Type); +_.apply_3 = function apply_126(arg0, arg1){ + return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$0methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/0methodref$max$Type', 812); +function GraphStats$2methodref$max$Type(){ +} + +defineClass(813, 1, {}, GraphStats$2methodref$max$Type); +_.apply_3 = function apply_127(arg0, arg1){ + return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$2methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/2methodref$max$Type', 813); +function GraphStats$lambda$1$Type(){ +} + +defineClass(1726, 1, {}, GraphStats$lambda$1$Type); +_.apply_3 = function apply_128(arg0, arg1){ + return lambda$1_16(castToDouble(arg0), castToDouble(arg1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$1$Type', 1726); +function GraphStats$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1727, 1, {}, GraphStats$lambda$2$Type); +_.apply_0 = function apply_129(arg0){ + return $determineLayerWidth(this.$$outer_0, castTo(arg0, 30)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$2$Type', 1727); +function GraphStats$lambda$6$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1728, 1, {}, GraphStats$lambda$6$Type); +_.apply_0 = function apply_130(arg0){ + return $determineLayerHeight(this.$$outer_0, castTo(arg0, 30)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$6$Type', 1728); +function ICutIndexCalculator$ManualCutIndexCalculator(){ +} + +defineClass(814, 1, {}, ICutIndexCalculator$ManualCutIndexCalculator); +_.getCutIndexes = function getCutIndexes_0(graph, gs){ + var cuts; + cuts = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_CUTS_0)), 15); + return cuts?cuts:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); +} +; +_.guaranteeValid = function guaranteeValid_0(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ICutIndexCalculator$ManualCutIndexCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ICutIndexCalculator/ManualCutIndexCalculator', 814); +function MSDCutIndexHeuristic(){ +} + +defineClass(816, 1, {}, MSDCutIndexHeuristic); +_.getCutIndexes = function getCutIndexes_1(graph, gs){ + var bestCuts, bestMaxScale, cutCnt, cuts, freedom, height, heights, i, index_0, lastCutWidth, m, maxScale, rowHeightMax, rowSum, sumSoFar, total, width_0, widthAtIndex, widths; + widths = (gs.widths == null && $initWidthsAndHeights(gs) , gs.widths); + heights = (gs.heights == null && $initWidthsAndHeights(gs) , gs.heights); + widthAtIndex = initUnidimensionalArray(D_classLit, $intern_66, 28, widths.length, 15, 1); + widthAtIndex[0] = widths[0]; + total = widths[0]; + for (i = 1; i < widths.length; i++) { + widthAtIndex[i] = widthAtIndex[i - 1] + widths[i]; + total += widths[i]; + } + cutCnt = getChunkCount(gs) - 1; + freedom = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_MSD_FREEDOM_0)), 17).value_0; + bestMaxScale = $intern_61; + bestCuts = new ArrayList; + for (m = $wnd.Math.max(0, cutCnt - freedom); m <= $wnd.Math.min(gs.longestPath - 1, cutCnt + freedom); m++) { + rowSum = total / (m + 1); + sumSoFar = 0; + index_0 = 1; + cuts = new ArrayList; + width_0 = $intern_61; + lastCutWidth = 0; + height = 0; + rowHeightMax = heights[0]; + if (m == 0) { + width_0 = total; + height = (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight)); + } + else { + while (index_0 < gs.longestPath) { + if (widthAtIndex[index_0 - 1] - sumSoFar >= rowSum) { + $add_3(cuts, valueOf_3(index_0)); + width_0 = $wnd.Math.max(width_0, widthAtIndex[index_0 - 1] - lastCutWidth); + height += rowHeightMax; + sumSoFar += widthAtIndex[index_0 - 1] - sumSoFar; + lastCutWidth = widthAtIndex[index_0 - 1]; + rowHeightMax = heights[index_0]; + } + rowHeightMax = $wnd.Math.max(rowHeightMax, heights[index_0]); + ++index_0; + } + height += rowHeightMax; + } + maxScale = $wnd.Math.min(1 / width_0, 1 / gs.dar / height); + if (maxScale > bestMaxScale) { + bestMaxScale = maxScale; + bestCuts = cuts; + } + } + return bestCuts; +} +; +_.guaranteeValid = function guaranteeValid_1(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_MSDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'MSDCutIndexHeuristic', 816); +function $performCuts(graph, gs, cuts){ + var cutIt, e, e$iterator, incEdges, index_0, it, l, n, n$iterator, newIndex, newLayer, nextCut, nodesToMove, oldLayer; + if (cuts.isEmpty()) { + return; + } + index_0 = 0; + newIndex = 0; + cutIt = cuts.iterator_0(); + nextCut = castTo(cutIt.next_1(), 17).value_0; + while (index_0 < gs.longestPath) { + if (index_0 == nextCut) { + newIndex = 0; + cutIt.hasNext_0()?(nextCut = castTo(cutIt.next_1(), 17).value_0):(nextCut = gs.longestPath + 1); + } + if (index_0 != newIndex) { + oldLayer = castTo($get_11(graph.layers, index_0), 30); + newLayer = castTo($get_11(graph.layers, newIndex), 30); + nodesToMove = newArrayList(oldLayer.nodes); + for (n$iterator = new ArrayList$1(nodesToMove); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + $setLayer(n, newLayer.nodes.array.length, newLayer); + if (newIndex == 0) { + incEdges = newArrayList($getIncomingEdges(n)); + for (e$iterator = new ArrayList$1(incEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 18); + $reverse_0(e, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + insertDummies(graph, e, 1); + } + } + } + } + ++newIndex; + ++index_0; + } + it = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (it.i < it.this$01_0.size_1()) { + l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 30)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_56(graph, progressMonitor){ + var currentAR, cuts, gs, icic, sumWidth; + progressMonitor.begin('Path-Like Graph Wrapping', 1); + if (graph.layers.array.length == 0) { + progressMonitor.done_1(); + return; + } + gs = new GraphStats(graph); + sumWidth = (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth) * gs.longestPath); + currentAR = sumWidth / (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth)); + if (gs.dar > currentAR) { + progressMonitor.done_1(); + return; + } + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 351).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + break; + case 0: + icic = new ARDCutIndexHeuristic; + break; + default:icic = new MSDCutIndexHeuristic; + } + cuts = icic.getCutIndexes(graph, gs); + if (!icic.guaranteeValid()) { + switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 352).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + $performCuts(graph, gs, cuts); + progressMonitor.done_1(); +} + +function SingleEdgeGraphWrapper(){ +} + +function validifyIndexesGreedily(gs, cuts){ + var cut, cutIt, offset, validCuts; + validCuts = new ArrayList; + offset = 0; + cutIt = cuts.iterator_0(); + while (cutIt.hasNext_0()) { + cut = valueOf_3(castTo(cutIt.next_1(), 17).value_0 + offset); + while (cut.value_0 < gs.longestPath && !$isCutAllowed(gs, cut.value_0)) { + cut = valueOf_3(cut.value_0 + 1); + ++offset; + } + if (cut.value_0 >= gs.longestPath) { + break; + } + push_1(validCuts.array, cut); + } + return validCuts; +} + +function validifyIndexesLookingBack(desiredCuts, validCuts){ + var cIdx, current, distHigher, distLower, finalCuts, iIdx, offset, select; + finalCuts = new ArrayList; + iIdx = 0; + cIdx = 0; + offset = 0; + while (iIdx < validCuts.array.length - 1 && cIdx < desiredCuts.size_1()) { + current = castTo(desiredCuts.get_0(cIdx), 17).value_0 + offset; + while ((checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 17)).value_0 < current) { + ++iIdx; + } + select = 0; + distLower = current - (checkCriticalElementIndex(iIdx, validCuts.array.length) , castTo(validCuts.array[iIdx], 17)).value_0; + distHigher = (checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 17)).value_0 - current; + distLower > distHigher && ++select; + $add_3(finalCuts, (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 17))); + offset += (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 17)).value_0 - current; + ++cIdx; + while (cIdx < desiredCuts.size_1() && castTo(desiredCuts.get_0(cIdx), 17).value_0 + offset <= (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 17)).value_0) { + ++cIdx; + } + iIdx += 1 + select; + } + return finalCuts; +} + +function validifyIndexesLookingBack_0(gs, desiredCuts){ + var i, validCuts; + if (desiredCuts.isEmpty()) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + validCuts = new ArrayList; + $add_3(validCuts, valueOf_3($intern_43)); + for (i = 1; i < gs.longestPath; ++i) { + gs.cutsAllowed == null && $initCutAllowed(gs); + gs.cutsAllowed[i] && $add_3(validCuts, valueOf_3(i)); + } + if (validCuts.array.length == 1) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + $add_3(validCuts, valueOf_3($intern_0)); + return validifyIndexesLookingBack(desiredCuts, validCuts); +} + +defineClass(1683, 1, $intern_105, SingleEdgeGraphWrapper); +_.process = function process_53(graph, progressMonitor){ + $process_56(castTo(graph, 36), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_SingleEdgeGraphWrapper_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'SingleEdgeGraphWrapper', 1683); +function $clinit_CenterEdgeLabelPlacementStrategy(){ + $clinit_CenterEdgeLabelPlacementStrategy = emptyMethod; + MEDIAN_LAYER = new CenterEdgeLabelPlacementStrategy('MEDIAN_LAYER', 0); + TAIL_LAYER = new CenterEdgeLabelPlacementStrategy('TAIL_LAYER', 1); + HEAD_LAYER = new CenterEdgeLabelPlacementStrategy('HEAD_LAYER', 2); + SPACE_EFFICIENT_LAYER = new CenterEdgeLabelPlacementStrategy('SPACE_EFFICIENT_LAYER', 3); + WIDEST_LAYER = new CenterEdgeLabelPlacementStrategy('WIDEST_LAYER', 4); + CENTER_LAYER = new CenterEdgeLabelPlacementStrategy('CENTER_LAYER', 5); +} + +function CenterEdgeLabelPlacementStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_36(name_0){ + $clinit_CenterEdgeLabelPlacementStrategy(); + return valueOf(($clinit_CenterEdgeLabelPlacementStrategy$Map() , $MAP_26), name_0); +} + +function values_44(){ + $clinit_CenterEdgeLabelPlacementStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_37, 232, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]); +} + +defineClass(232, 22, {3:1, 34:1, 22:1, 232:1}, CenterEdgeLabelPlacementStrategy); +var CENTER_LAYER, HEAD_LAYER, MEDIAN_LAYER, SPACE_EFFICIENT_LAYER, TAIL_LAYER, WIDEST_LAYER; +var Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CenterEdgeLabelPlacementStrategy', 232, Ljava_lang_Enum_2_classLit, values_44, valueOf_36); +function $clinit_CenterEdgeLabelPlacementStrategy$Map(){ + $clinit_CenterEdgeLabelPlacementStrategy$Map = emptyMethod; + $MAP_26 = createValueOfMap(($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_37, 232, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]))); +} + +var $MAP_26; +function $clinit_ConstraintCalculationStrategy(){ + $clinit_ConstraintCalculationStrategy = emptyMethod; + QUADRATIC = new ConstraintCalculationStrategy('QUADRATIC', 0); + SCANLINE = new ConstraintCalculationStrategy('SCANLINE', 1); +} + +function ConstraintCalculationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_37(name_0){ + $clinit_ConstraintCalculationStrategy(); + return valueOf(($clinit_ConstraintCalculationStrategy$Map() , $MAP_27), name_0); +} + +function values_45(){ + $clinit_ConstraintCalculationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_37, 431, 0, [QUADRATIC, SCANLINE]); +} + +defineClass(431, 22, {3:1, 34:1, 22:1, 431:1}, ConstraintCalculationStrategy); +var QUADRATIC, SCANLINE; +var Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ConstraintCalculationStrategy', 431, Ljava_lang_Enum_2_classLit, values_45, valueOf_37); +function $clinit_ConstraintCalculationStrategy$Map(){ + $clinit_ConstraintCalculationStrategy$Map = emptyMethod; + $MAP_27 = createValueOfMap(($clinit_ConstraintCalculationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_37, 431, 0, [QUADRATIC, SCANLINE]))); +} + +var $MAP_27; +function $clinit_CrossingMinimizationStrategy(){ + $clinit_CrossingMinimizationStrategy = emptyMethod; + LAYER_SWEEP = new CrossingMinimizationStrategy('LAYER_SWEEP', 0); + INTERACTIVE_1 = new CrossingMinimizationStrategy('INTERACTIVE', 1); + NONE_1 = new CrossingMinimizationStrategy('NONE', 2); +} + +function $create_3(this$static){ + switch (this$static.ordinal) { + case 0: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER)); + case 1: + return new InteractiveCrossingMinimizer; + case 2: + return new NoCrossingMinimizer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the crossing minimizer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CrossingMinimizationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_38(name_0){ + $clinit_CrossingMinimizationStrategy(); + return valueOf(($clinit_CrossingMinimizationStrategy$Map() , $MAP_28), name_0); +} + +function values_46(){ + $clinit_CrossingMinimizationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_37, 322, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]); +} + +defineClass(322, 22, {3:1, 34:1, 22:1, 322:1, 188:1, 196:1}, CrossingMinimizationStrategy); +_.create_1 = function create_7(){ + return $create_3(this); +} +; +_.create_2 = function create_6(){ + return $create_3(this); +} +; +var INTERACTIVE_1, LAYER_SWEEP, NONE_1; +var Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CrossingMinimizationStrategy', 322, Ljava_lang_Enum_2_classLit, values_46, valueOf_38); +function $clinit_CrossingMinimizationStrategy$Map(){ + $clinit_CrossingMinimizationStrategy$Map = emptyMethod; + $MAP_28 = createValueOfMap(($clinit_CrossingMinimizationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_37, 322, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]))); +} + +var $MAP_28; +function $clinit_CuttingStrategy(){ + $clinit_CuttingStrategy = emptyMethod; + ARD = new CuttingStrategy('ARD', 0); + MSD = new CuttingStrategy('MSD', 1); + MANUAL = new CuttingStrategy('MANUAL', 2); +} + +function CuttingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_39(name_0){ + $clinit_CuttingStrategy(); + return valueOf(($clinit_CuttingStrategy$Map() , $MAP_29), name_0); +} + +function values_47(){ + $clinit_CuttingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_37, 351, 0, [ARD, MSD, MANUAL]); +} + +defineClass(351, 22, {3:1, 34:1, 22:1, 351:1}, CuttingStrategy); +var ARD, MANUAL, MSD; +var Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CuttingStrategy', 351, Ljava_lang_Enum_2_classLit, values_47, valueOf_39); +function $clinit_CuttingStrategy$Map(){ + $clinit_CuttingStrategy$Map = emptyMethod; + $MAP_29 = createValueOfMap(($clinit_CuttingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_37, 351, 0, [ARD, MSD, MANUAL]))); +} + +var $MAP_29; +function $clinit_CycleBreakingStrategy(){ + $clinit_CycleBreakingStrategy = emptyMethod; + GREEDY = new CycleBreakingStrategy('GREEDY', 0); + DEPTH_FIRST = new CycleBreakingStrategy('DEPTH_FIRST', 1); + INTERACTIVE_2 = new CycleBreakingStrategy('INTERACTIVE', 2); + MODEL_ORDER_0 = new CycleBreakingStrategy('MODEL_ORDER', 3); + GREEDY_MODEL_ORDER = new CycleBreakingStrategy('GREEDY_MODEL_ORDER', 4); +} + +function $create_4(this$static){ + switch (this$static.ordinal) { + case 0: + return new GreedyCycleBreaker; + case 1: + return new DepthFirstCycleBreaker; + case 2: + return new InteractiveCycleBreaker; + case 3: + return new ModelOrderCycleBreaker; + case 4: + return new GreedyModelOrderCycleBreaker; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the cycle breaker ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CycleBreakingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_40(name_0){ + $clinit_CycleBreakingStrategy(); + return valueOf(($clinit_CycleBreakingStrategy$Map() , $MAP_30), name_0); +} + +function values_48(){ + $clinit_CycleBreakingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_37, 348, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER_0, GREEDY_MODEL_ORDER]); +} + +defineClass(348, 22, {3:1, 34:1, 22:1, 348:1, 188:1, 196:1}, CycleBreakingStrategy); +_.create_1 = function create_9(){ + return $create_4(this); +} +; +_.create_2 = function create_8(){ + return $create_4(this); +} +; +var DEPTH_FIRST, GREEDY, GREEDY_MODEL_ORDER, INTERACTIVE_2, MODEL_ORDER_0; +var Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CycleBreakingStrategy', 348, Ljava_lang_Enum_2_classLit, values_48, valueOf_40); +function $clinit_CycleBreakingStrategy$Map(){ + $clinit_CycleBreakingStrategy$Map = emptyMethod; + $MAP_30 = createValueOfMap(($clinit_CycleBreakingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_37, 348, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER_0, GREEDY_MODEL_ORDER]))); +} + +var $MAP_30; +function $clinit_DirectionCongruency(){ + $clinit_DirectionCongruency = emptyMethod; + READING_DIRECTION = new DirectionCongruency('READING_DIRECTION', 0); + ROTATION = new DirectionCongruency('ROTATION', 1); +} + +function DirectionCongruency(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_41(name_0){ + $clinit_DirectionCongruency(); + return valueOf(($clinit_DirectionCongruency$Map() , $MAP_31), name_0); +} + +function values_49(){ + $clinit_DirectionCongruency(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_37, 428, 0, [READING_DIRECTION, ROTATION]); +} + +defineClass(428, 22, {3:1, 34:1, 22:1, 428:1}, DirectionCongruency); +var READING_DIRECTION, ROTATION; +var Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'DirectionCongruency', 428, Ljava_lang_Enum_2_classLit, values_49, valueOf_41); +function $clinit_DirectionCongruency$Map(){ + $clinit_DirectionCongruency$Map = emptyMethod; + $MAP_31 = createValueOfMap(($clinit_DirectionCongruency() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_37, 428, 0, [READING_DIRECTION, ROTATION]))); +} + +var $MAP_31; +function $clinit_EdgeConstraint(){ + $clinit_EdgeConstraint = emptyMethod; + NONE_2 = new EdgeConstraint('NONE', 0); + INCOMING_ONLY = new EdgeConstraint('INCOMING_ONLY', 1); + OUTGOING_ONLY = new EdgeConstraint('OUTGOING_ONLY', 2); +} + +function EdgeConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_42(name_0){ + $clinit_EdgeConstraint(); + return valueOf(($clinit_EdgeConstraint$Map() , $MAP_32), name_0); +} + +function values_50(){ + $clinit_EdgeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_37, 460, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]); +} + +defineClass(460, 22, {3:1, 34:1, 22:1, 460:1}, EdgeConstraint); +var INCOMING_ONLY, NONE_2, OUTGOING_ONLY; +var Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeConstraint', 460, Ljava_lang_Enum_2_classLit, values_50, valueOf_42); +function $clinit_EdgeConstraint$Map(){ + $clinit_EdgeConstraint$Map = emptyMethod; + $MAP_32 = createValueOfMap(($clinit_EdgeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_37, 460, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]))); +} + +var $MAP_32; +function $clinit_EdgeLabelSideSelection(){ + $clinit_EdgeLabelSideSelection = emptyMethod; + ALWAYS_UP = new EdgeLabelSideSelection('ALWAYS_UP', 0); + ALWAYS_DOWN = new EdgeLabelSideSelection('ALWAYS_DOWN', 1); + DIRECTION_UP = new EdgeLabelSideSelection('DIRECTION_UP', 2); + DIRECTION_DOWN = new EdgeLabelSideSelection('DIRECTION_DOWN', 3); + SMART_UP = new EdgeLabelSideSelection('SMART_UP', 4); + SMART_DOWN = new EdgeLabelSideSelection('SMART_DOWN', 5); +} + +function $transpose_2(this$static){ + switch (this$static.ordinal) { + case 0: + return ALWAYS_DOWN; + case 1: + return ALWAYS_UP; + case 2: + return DIRECTION_DOWN; + case 3: + return DIRECTION_UP; + case 4: + return SMART_DOWN; + case 5: + return SMART_UP; + default:return null; + } +} + +function EdgeLabelSideSelection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_43(name_0){ + $clinit_EdgeLabelSideSelection(); + return valueOf(($clinit_EdgeLabelSideSelection$Map() , $MAP_33), name_0); +} + +function values_51(){ + $clinit_EdgeLabelSideSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_37, 283, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]); +} + +defineClass(283, 22, {3:1, 34:1, 22:1, 283:1}, EdgeLabelSideSelection); +var ALWAYS_DOWN, ALWAYS_UP, DIRECTION_DOWN, DIRECTION_UP, SMART_DOWN, SMART_UP; +var Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeLabelSideSelection', 283, Ljava_lang_Enum_2_classLit, values_51, valueOf_43); +function $clinit_EdgeLabelSideSelection$Map(){ + $clinit_EdgeLabelSideSelection$Map = emptyMethod; + $MAP_33 = createValueOfMap(($clinit_EdgeLabelSideSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_37, 283, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]))); +} + +var $MAP_33; +function $clinit_EdgeStraighteningStrategy(){ + $clinit_EdgeStraighteningStrategy = emptyMethod; + NONE_3 = new EdgeStraighteningStrategy('NONE', 0); + IMPROVE_STRAIGHTNESS = new EdgeStraighteningStrategy('IMPROVE_STRAIGHTNESS', 1); +} + +function EdgeStraighteningStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_44(name_0){ + $clinit_EdgeStraighteningStrategy(); + return valueOf(($clinit_EdgeStraighteningStrategy$Map() , $MAP_34), name_0); +} + +function values_52(){ + $clinit_EdgeStraighteningStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_37, 488, 0, [NONE_3, IMPROVE_STRAIGHTNESS]); +} + +defineClass(488, 22, {3:1, 34:1, 22:1, 488:1}, EdgeStraighteningStrategy); +var IMPROVE_STRAIGHTNESS, NONE_3; +var Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeStraighteningStrategy', 488, Ljava_lang_Enum_2_classLit, values_52, valueOf_44); +function $clinit_EdgeStraighteningStrategy$Map(){ + $clinit_EdgeStraighteningStrategy$Map = emptyMethod; + $MAP_34 = createValueOfMap(($clinit_EdgeStraighteningStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_37, 488, 0, [NONE_3, IMPROVE_STRAIGHTNESS]))); +} + +var $MAP_34; +function $clinit_FixedAlignment(){ + $clinit_FixedAlignment = emptyMethod; + NONE_4 = new FixedAlignment('NONE', 0); + LEFTUP = new FixedAlignment('LEFTUP', 1); + RIGHTUP = new FixedAlignment('RIGHTUP', 2); + LEFTDOWN = new FixedAlignment('LEFTDOWN', 3); + RIGHTDOWN = new FixedAlignment('RIGHTDOWN', 4); + BALANCED = new FixedAlignment('BALANCED', 5); +} + +function FixedAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_45(name_0){ + $clinit_FixedAlignment(); + return valueOf(($clinit_FixedAlignment$Map() , $MAP_35), name_0); +} + +function values_53(){ + $clinit_FixedAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_37, 281, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]); +} + +defineClass(281, 22, {3:1, 34:1, 22:1, 281:1}, FixedAlignment); +var BALANCED, LEFTDOWN, LEFTUP, NONE_4, RIGHTDOWN, RIGHTUP; +var Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'FixedAlignment', 281, Ljava_lang_Enum_2_classLit, values_53, valueOf_45); +function $clinit_FixedAlignment$Map(){ + $clinit_FixedAlignment$Map = emptyMethod; + $MAP_35 = createValueOfMap(($clinit_FixedAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_37, 281, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]))); +} + +var $MAP_35; +function $clinit_GraphCompactionStrategy(){ + $clinit_GraphCompactionStrategy = emptyMethod; + NONE_5 = new GraphCompactionStrategy('NONE', 0); + LEFT_2 = new GraphCompactionStrategy('LEFT', 1); + RIGHT_2 = new GraphCompactionStrategy('RIGHT', 2); + LEFT_RIGHT_CONSTRAINT_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONSTRAINT_LOCKING', 3); + LEFT_RIGHT_CONNECTION_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONNECTION_LOCKING', 4); + EDGE_LENGTH = new GraphCompactionStrategy('EDGE_LENGTH', 5); +} + +function GraphCompactionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_46(name_0){ + $clinit_GraphCompactionStrategy(); + return valueOf(($clinit_GraphCompactionStrategy$Map() , $MAP_36), name_0); +} + +function values_54(){ + $clinit_GraphCompactionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_37, 282, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]); +} + +defineClass(282, 22, {3:1, 34:1, 22:1, 282:1}, GraphCompactionStrategy); +var EDGE_LENGTH, LEFT_2, LEFT_RIGHT_CONNECTION_LOCKING, LEFT_RIGHT_CONSTRAINT_LOCKING, NONE_5, RIGHT_2; +var Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphCompactionStrategy', 282, Ljava_lang_Enum_2_classLit, values_54, valueOf_46); +function $clinit_GraphCompactionStrategy$Map(){ + $clinit_GraphCompactionStrategy$Map = emptyMethod; + $MAP_36 = createValueOfMap(($clinit_GraphCompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_37, 282, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]))); +} + +var $MAP_36; +function $clinit_GraphProperties(){ + $clinit_GraphProperties = emptyMethod; + COMMENTS = new GraphProperties('COMMENTS', 0); + EXTERNAL_PORTS = new GraphProperties('EXTERNAL_PORTS', 1); + HYPEREDGES = new GraphProperties('HYPEREDGES', 2); + HYPERNODES = new GraphProperties('HYPERNODES', 3); + NON_FREE_PORTS = new GraphProperties('NON_FREE_PORTS', 4); + NORTH_SOUTH_PORTS = new GraphProperties('NORTH_SOUTH_PORTS', 5); + SELF_LOOPS = new GraphProperties('SELF_LOOPS', 6); + CENTER_LABELS = new GraphProperties('CENTER_LABELS', 7); + END_LABELS = new GraphProperties('END_LABELS', 8); + PARTITIONS = new GraphProperties('PARTITIONS', 9); +} + +function GraphProperties(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_47(name_0){ + $clinit_GraphProperties(); + return valueOf(($clinit_GraphProperties$Map() , $MAP_37), name_0); +} + +function values_55(){ + $clinit_GraphProperties(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_37, 259, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]); +} + +defineClass(259, 22, {3:1, 34:1, 22:1, 259:1}, GraphProperties); +var CENTER_LABELS, COMMENTS, END_LABELS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, PARTITIONS, SELF_LOOPS; +var Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphProperties', 259, Ljava_lang_Enum_2_classLit, values_55, valueOf_47); +function $clinit_GraphProperties$Map(){ + $clinit_GraphProperties$Map = emptyMethod; + $MAP_37 = createValueOfMap(($clinit_GraphProperties() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_37, 259, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]))); +} + +var $MAP_37; +function $clinit_GreedySwitchType(){ + $clinit_GreedySwitchType = emptyMethod; + ONE_SIDED = new GreedySwitchType('ONE_SIDED', 0); + TWO_SIDED = new GreedySwitchType('TWO_SIDED', 1); + OFF = new GreedySwitchType('OFF', 2); +} + +function GreedySwitchType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_48(name_0){ + $clinit_GreedySwitchType(); + return valueOf(($clinit_GreedySwitchType$Map() , $MAP_38), name_0); +} + +function values_56(){ + $clinit_GreedySwitchType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_37, 299, 0, [ONE_SIDED, TWO_SIDED, OFF]); +} + +defineClass(299, 22, {3:1, 34:1, 22:1, 299:1}, GreedySwitchType); +var OFF, ONE_SIDED, TWO_SIDED; +var Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GreedySwitchType', 299, Ljava_lang_Enum_2_classLit, values_56, valueOf_48); +function $clinit_GreedySwitchType$Map(){ + $clinit_GreedySwitchType$Map = emptyMethod; + $MAP_38 = createValueOfMap(($clinit_GreedySwitchType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_37, 299, 0, [ONE_SIDED, TWO_SIDED, OFF]))); +} + +var $MAP_38; +function $clinit_InLayerConstraint(){ + $clinit_InLayerConstraint = emptyMethod; + NONE_6 = new InLayerConstraint('NONE', 0); + TOP_1 = new InLayerConstraint('TOP', 1); + BOTTOM_0 = new InLayerConstraint('BOTTOM', 2); +} + +function InLayerConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_49(name_0){ + $clinit_InLayerConstraint(); + return valueOf(($clinit_InLayerConstraint$Map() , $MAP_39), name_0); +} + +function values_57(){ + $clinit_InLayerConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_37, 311, 0, [NONE_6, TOP_1, BOTTOM_0]); +} + +defineClass(311, 22, {3:1, 34:1, 22:1, 311:1}, InLayerConstraint); +var BOTTOM_0, NONE_6, TOP_1; +var Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InLayerConstraint', 311, Ljava_lang_Enum_2_classLit, values_57, valueOf_49); +function $clinit_InLayerConstraint$Map(){ + $clinit_InLayerConstraint$Map = emptyMethod; + $MAP_39 = createValueOfMap(($clinit_InLayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_37, 311, 0, [NONE_6, TOP_1, BOTTOM_0]))); +} + +var $MAP_39; +function $clinit_InteractiveReferencePoint(){ + $clinit_InteractiveReferencePoint = emptyMethod; + CENTER_3 = new InteractiveReferencePoint('CENTER', 0); + TOP_LEFT = new InteractiveReferencePoint('TOP_LEFT', 1); +} + +function InteractiveReferencePoint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_50(name_0){ + $clinit_InteractiveReferencePoint(); + return valueOf(($clinit_InteractiveReferencePoint$Map() , $MAP_40), name_0); +} + +function values_58(){ + $clinit_InteractiveReferencePoint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_37, 429, 0, [CENTER_3, TOP_LEFT]); +} + +defineClass(429, 22, {3:1, 34:1, 22:1, 429:1}, InteractiveReferencePoint); +var CENTER_3, TOP_LEFT; +var Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InteractiveReferencePoint', 429, Ljava_lang_Enum_2_classLit, values_58, valueOf_50); +function $clinit_InteractiveReferencePoint$Map(){ + $clinit_InteractiveReferencePoint$Map = emptyMethod; + $MAP_40 = createValueOfMap(($clinit_InteractiveReferencePoint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_37, 429, 0, [CENTER_3, TOP_LEFT]))); +} + +var $MAP_40; +function $clinit_InternalProperties_1(){ + $clinit_InternalProperties_1 = emptyMethod; + var all, all0; + ORIGIN_0 = new Property('origin'); + COORDINATE_SYSTEM_ORIGIN = new Property('coordinateOrigin'); + PROCESSORS = new Property('processors'); + COMPOUND_NODE = new Property_0('compoundNode', ($clinit_Boolean() , false)); + INSIDE_CONNECTIONS = new Property_0('insideConnections', false); + ORIGINAL_BENDPOINTS = new Property('originalBendpoints'); + ORIGINAL_DUMMY_NODE_POSITION = new Property('originalDummyNodePosition'); + ORIGINAL_LABEL_EDGE = new Property('originalLabelEdge'); + REPRESENTED_LABELS = new Property('representedLabels'); + END_LABELS_0 = new Property('endLabels'); + END_LABEL_EDGE = new Property('endLabel.origin'); + LABEL_SIDE = new Property_0('labelSide', ($clinit_LabelSide() , UNKNOWN)); + MAX_EDGE_THICKNESS = new Property_0('maxEdgeThickness', 0); + REVERSED = new Property_0('reversed', false); + RANDOM_0 = new Property('random'); + LONG_EDGE_SOURCE = new Property_0('longEdgeSource', null); + LONG_EDGE_TARGET = new Property_0('longEdgeTarget', null); + LONG_EDGE_HAS_LABEL_DUMMIES = new Property_0('longEdgeHasLabelDummies', false); + LONG_EDGE_BEFORE_LABEL_DUMMY = new Property_0('longEdgeBeforeLabelDummy', false); + EDGE_CONSTRAINT = new Property_0('edgeConstraint', ($clinit_EdgeConstraint() , NONE_2)); + IN_LAYER_LAYOUT_UNIT = new Property('inLayerLayoutUnit'); + IN_LAYER_CONSTRAINT = new Property_0('inLayerConstraint', ($clinit_InLayerConstraint() , NONE_6)); + IN_LAYER_SUCCESSOR_CONSTRAINTS = new Property_0('inLayerSuccessorConstraint', new ArrayList); + IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES = new Property_0('inLayerSuccessorConstraintBetweenNonDummies', false); + PORT_DUMMY = new Property('portDummy'); + CROSSING_HINT = new Property_0('crossingHint', valueOf_3(0)); + GRAPH_PROPERTIES = new Property_0('graphProperties', (all0 = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0))); + EXT_PORT_SIDE = new Property_0('externalPortSide', ($clinit_PortSide() , UNDEFINED_5)); + EXT_PORT_SIZE = new Property_0('externalPortSize', new KVector); + EXT_PORT_REPLACED_DUMMIES = new Property('externalPortReplacedDummies'); + EXT_PORT_REPLACED_DUMMY = new Property('externalPortReplacedDummy'); + EXT_PORT_CONNECTIONS = new Property_0('externalPortConnections', (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + PORT_RATIO_OR_POSITION_0 = new Property_0('portRatioOrPosition', 0); + BARYCENTER_ASSOCIATES = new Property('barycenterAssociates'); + TOP_COMMENTS = new Property('TopSideComments'); + BOTTOM_COMMENTS = new Property('BottomSideComments'); + COMMENT_CONN_PORT = new Property('CommentConnectionPort'); + INPUT_COLLECT = new Property_0('inputCollect', false); + OUTPUT_COLLECT = new Property_0('outputCollect', false); + CYCLIC = new Property_0('cyclic', false); + CROSS_HIERARCHY_MAP = new Property('crossHierarchyMap'); + TARGET_OFFSET = new Property('targetOffset'); + new Property_0('splineLabelSize', new KVector); + SPACINGS = new Property('spacings'); + PARTITION_DUMMY = new Property_0('partitionConstraint', false); + BREAKING_POINT_INFO = new Property('breakingPoint.info'); + SPLINE_SURVIVING_EDGE = new Property('splines.survivingEdge'); + SPLINE_ROUTE_START = new Property('splines.route.start'); + SPLINE_EDGE_CHAIN = new Property('splines.edgeChain'); + ORIGINAL_PORT_CONSTRAINTS = new Property('originalPortConstraints'); + SELF_LOOP_HOLDER = new Property('selfLoopHolder'); + SPLINE_NS_PORT_Y_COORD = new Property('splines.nsPortY'); + MODEL_ORDER_1 = new Property('modelOrder'); + LONG_EDGE_TARGET_NODE = new Property('longEdgeTargetNode'); + FIRST_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); + SECOND_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); + HIDDEN_NODES = new Property('layerConstraints.hiddenNodes'); + ORIGINAL_OPPOSITE_PORT = new Property('layerConstraints.opposidePort'); + TARGET_NODE_MODEL_ORDER = new Property('targetNode.modelOrder'); +} + +var BARYCENTER_ASSOCIATES, BOTTOM_COMMENTS, BREAKING_POINT_INFO, COMMENT_CONN_PORT, COMPOUND_NODE, COORDINATE_SYSTEM_ORIGIN, CROSSING_HINT, CROSS_HIERARCHY_MAP, CYCLIC, EDGE_CONSTRAINT, END_LABELS_0, END_LABEL_EDGE, EXT_PORT_CONNECTIONS, EXT_PORT_REPLACED_DUMMIES, EXT_PORT_REPLACED_DUMMY, EXT_PORT_SIDE, EXT_PORT_SIZE, FIRST_TRY_WITH_INITIAL_ORDER, GRAPH_PROPERTIES, HIDDEN_NODES, INPUT_COLLECT, INSIDE_CONNECTIONS, IN_LAYER_CONSTRAINT, IN_LAYER_LAYOUT_UNIT, IN_LAYER_SUCCESSOR_CONSTRAINTS, IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES, LABEL_SIDE, LONG_EDGE_BEFORE_LABEL_DUMMY, LONG_EDGE_HAS_LABEL_DUMMIES, LONG_EDGE_SOURCE, LONG_EDGE_TARGET, LONG_EDGE_TARGET_NODE, MAX_EDGE_THICKNESS, MODEL_ORDER_1, ORIGIN_0, ORIGINAL_BENDPOINTS, ORIGINAL_DUMMY_NODE_POSITION, ORIGINAL_LABEL_EDGE, ORIGINAL_OPPOSITE_PORT, ORIGINAL_PORT_CONSTRAINTS, OUTPUT_COLLECT, PARTITION_DUMMY, PORT_DUMMY, PORT_RATIO_OR_POSITION_0, PROCESSORS, RANDOM_0, REPRESENTED_LABELS, REVERSED, SECOND_TRY_WITH_INITIAL_ORDER, SELF_LOOP_HOLDER, SPACINGS, SPLINE_EDGE_CHAIN, SPLINE_NS_PORT_Y_COORD, SPLINE_ROUTE_START, SPLINE_SURVIVING_EDGE, TARGET_NODE_MODEL_ORDER, TARGET_OFFSET, TOP_COMMENTS; +function $clinit_LayerConstraint(){ + $clinit_LayerConstraint = emptyMethod; + NONE_7 = new LayerConstraint('NONE', 0); + FIRST = new LayerConstraint('FIRST', 1); + FIRST_SEPARATE_0 = new LayerConstraint('FIRST_SEPARATE', 2); + LAST = new LayerConstraint('LAST', 3); + LAST_SEPARATE_0 = new LayerConstraint('LAST_SEPARATE', 4); +} + +function LayerConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_51(name_0){ + $clinit_LayerConstraint(); + return valueOf(($clinit_LayerConstraint$Map() , $MAP_41), name_0); +} + +function values_59(){ + $clinit_LayerConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_37, 171, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]); +} + +defineClass(171, 22, {3:1, 34:1, 22:1, 171:1}, LayerConstraint); +var FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0, NONE_7; +var Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayerConstraint', 171, Ljava_lang_Enum_2_classLit, values_59, valueOf_51); +function $clinit_LayerConstraint$Map(){ + $clinit_LayerConstraint$Map = emptyMethod; + $MAP_41 = createValueOfMap(($clinit_LayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_37, 171, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]))); +} + +var $MAP_41; +function $clinit_LayeredMetaDataProvider(){ + $clinit_LayeredMetaDataProvider = emptyMethod; + DIRECTION_CONGRUENCY_DEFAULT = ($clinit_DirectionCongruency() , READING_DIRECTION); + DIRECTION_CONGRUENCY = new Property_1('org.eclipse.elk.layered.directionCongruency', DIRECTION_CONGRUENCY_DEFAULT); + FEEDBACK_EDGES = new Property_1('org.eclipse.elk.layered.feedbackEdges', ($clinit_Boolean() , false)); + INTERACTIVE_REFERENCE_POINT_DEFAULT = ($clinit_InteractiveReferencePoint() , CENTER_3); + INTERACTIVE_REFERENCE_POINT = new Property_1('org.eclipse.elk.layered.interactiveReferencePoint', INTERACTIVE_REFERENCE_POINT_DEFAULT); + MERGE_EDGES = new Property_1('org.eclipse.elk.layered.mergeEdges', false); + MERGE_HIERARCHY_EDGES = new Property_1('org.eclipse.elk.layered.mergeHierarchyEdges', true); + ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES = new Property_1('org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', false); + PORT_SORTING_STRATEGY_DEFAULT = ($clinit_PortSortingStrategy() , INPUT_ORDER); + PORT_SORTING_STRATEGY = new Property_1('org.eclipse.elk.layered.portSortingStrategy', PORT_SORTING_STRATEGY_DEFAULT); + valueOf_3(1); + THOROUGHNESS = new Property_1('org.eclipse.elk.layered.thoroughness', valueOf_3(7)); + UNNECESSARY_BENDPOINTS = new Property_1('org.eclipse.elk.layered.unnecessaryBendpoints', false); + GENERATE_POSITION_AND_LAYER_IDS = new Property_1('org.eclipse.elk.layered.generatePositionAndLayerIds', false); + CYCLE_BREAKING_STRATEGY_DEFAULT = ($clinit_CycleBreakingStrategy() , GREEDY); + CYCLE_BREAKING_STRATEGY = new Property_1('org.eclipse.elk.layered.cycleBreaking.strategy', CYCLE_BREAKING_STRATEGY_DEFAULT); + LAYERING_STRATEGY_DEFAULT = ($clinit_LayeringStrategy() , NETWORK_SIMPLEX); + LAYERING_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.strategy', LAYERING_STRATEGY_DEFAULT); + LAYERING_LAYER_CONSTRAINT_DEFAULT = ($clinit_LayerConstraint() , NONE_7); + LAYERING_LAYER_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerConstraint', LAYERING_LAYER_CONSTRAINT_DEFAULT); + valueOf_3(-1); + LAYERING_LAYER_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerChoiceConstraint', null); + valueOf_3(-1); + LAYERING_LAYER_ID = new Property_1('org.eclipse.elk.layered.layering.layerId', valueOf_3(-1)); + valueOf_3(-1); + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', valueOf_3(4)); + valueOf_3(-1); + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', valueOf_3(2)); + LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT = ($clinit_NodePromotionStrategy() , NONE_9); + LAYERING_NODE_PROMOTION_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.strategy', LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT); + valueOf_3(0); + LAYERING_NODE_PROMOTION_MAX_ITERATIONS = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.maxIterations', valueOf_3(0)); + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND = new Property_1('org.eclipse.elk.layered.layering.coffmanGraham.layerBound', valueOf_3($intern_0)); + CROSSING_MINIMIZATION_STRATEGY_DEFAULT = ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP); + CROSSING_MINIMIZATION_STRATEGY = new Property_1('org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_STRATEGY_DEFAULT); + CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', false); + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS = new Property_1('org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 0.1); + CROSSING_MINIMIZATION_SEMI_INTERACTIVE = new Property_1('org.eclipse.elk.layered.crossingMinimization.semiInteractive', false); + CROSSING_MINIMIZATION_IN_LAYER_PRED_OF = new Property_1('org.eclipse.elk.layered.crossingMinimization.inLayerPredOf', null); + CROSSING_MINIMIZATION_IN_LAYER_SUCC_OF = new Property_1('org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf', null); + valueOf_3(-1); + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', null); + valueOf_3(-1); + CROSSING_MINIMIZATION_POSITION_ID = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionId', valueOf_3(-1)); + valueOf_3(0); + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', valueOf_3(40)); + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT = ($clinit_GreedySwitchType() , TWO_SIDED); + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT); + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT = OFF; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT); + NODE_PLACEMENT_STRATEGY_DEFAULT = ($clinit_NodePlacementStrategy() , BRANDES_KOEPF); + NODE_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_STRATEGY_DEFAULT); + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES = new Property('org.eclipse.elk.layered.nodePlacement.favorStraightEdges'); + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT = ($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS); + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT); + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT = ($clinit_FixedAlignment() , NONE_4); + NODE_PLACEMENT_BK_FIXED_ALIGNMENT = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT); + new ExclusiveBounds$ExclusiveLowerBound; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING = new Property_1('org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 0.3); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY = new Property('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT = ($clinit_NodeFlexibility() , NONE_8); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT = new Property_1('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT); + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT = ($clinit_SelfLoopDistributionStrategy() , NORTH_2); + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT); + EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT = ($clinit_SelfLoopOrderingStrategy() , STACKED); + EDGE_ROUTING_SELF_LOOP_ORDERING = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT); + EDGE_ROUTING_SPLINES_MODE_DEFAULT = ($clinit_SplineRoutingMode() , SLOPPY); + EDGE_ROUTING_SPLINES_MODE = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_MODE_DEFAULT); + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 0.2); + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH = new Property_1('org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 2); + SPACING_BASE_VALUE = new Property_1('org.eclipse.elk.layered.spacing.baseValue', null); + SPACING_EDGE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', 10); + SPACING_EDGE_EDGE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', 10); + SPACING_NODE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', 20); + valueOf_3(0); + PRIORITY_DIRECTION = new Property_1('org.eclipse.elk.layered.priority.direction', valueOf_3(0)); + valueOf_3(0); + PRIORITY_SHORTNESS = new Property_1('org.eclipse.elk.layered.priority.shortness', valueOf_3(0)); + valueOf_3(0); + PRIORITY_STRAIGHTNESS = new Property_1('org.eclipse.elk.layered.priority.straightness', valueOf_3(0)); + COMPACTION_CONNECTED_COMPONENTS = new Property_1('org.eclipse.elk.layered.compaction.connectedComponents', false); + COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT = ($clinit_GraphCompactionStrategy() , NONE_5); + COMPACTION_POST_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.strategy', COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT); + COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT = ($clinit_ConstraintCalculationStrategy() , SCANLINE); + COMPACTION_POST_COMPACTION_CONSTRAINTS = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.constraints', COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT); + HIGH_DEGREE_NODES_TREATMENT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treatment', false); + valueOf_3(0); + HIGH_DEGREE_NODES_THRESHOLD = new Property_1('org.eclipse.elk.layered.highDegreeNodes.threshold', valueOf_3(16)); + valueOf_3(0); + HIGH_DEGREE_NODES_TREE_HEIGHT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treeHeight', valueOf_3(5)); + WRAPPING_STRATEGY_DEFAULT = ($clinit_WrappingStrategy() , OFF_0); + WRAPPING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.strategy', WRAPPING_STRATEGY_DEFAULT); + WRAPPING_ADDITIONAL_EDGE_SPACING = new Property_1('org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 10); + WRAPPING_CORRECTION_FACTOR = new Property_1('org.eclipse.elk.layered.wrapping.correctionFactor', 1); + WRAPPING_CUTTING_STRATEGY_DEFAULT = ($clinit_CuttingStrategy() , MSD); + WRAPPING_CUTTING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_STRATEGY_DEFAULT); + WRAPPING_CUTTING_CUTS = new Property('org.eclipse.elk.layered.wrapping.cutting.cuts'); + WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT = valueOf_3(1); + valueOf_3(0); + WRAPPING_CUTTING_MSD_FREEDOM = new Property_1('org.eclipse.elk.layered.wrapping.cutting.msd.freedom', WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT); + WRAPPING_VALIDIFY_STRATEGY_DEFAULT = ($clinit_ValidifyStrategy() , GREEDY_0); + WRAPPING_VALIDIFY_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.validify.strategy', WRAPPING_VALIDIFY_STRATEGY_DEFAULT); + WRAPPING_VALIDIFY_FORBIDDEN_INDICES = new Property('org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'); + WRAPPING_MULTI_EDGE_IMPROVE_CUTS = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 2); + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', true); + EDGE_LABELS_SIDE_SELECTION_DEFAULT = ($clinit_EdgeLabelSideSelection() , SMART_DOWN); + EDGE_LABELS_SIDE_SELECTION = new Property_1('org.eclipse.elk.layered.edgeLabels.sideSelection', EDGE_LABELS_SIDE_SELECTION_DEFAULT); + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT = ($clinit_CenterEdgeLabelPlacementStrategy() , MEDIAN_LAYER); + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT = ($clinit_OrderingStrategy() , NONE_10); + CONSIDER_MODEL_ORDER_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.strategy', CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.considerModelOrder.portModelOrder', false); + CONSIDER_MODEL_ORDER_NO_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.considerModelOrder.noModelOrder', false); + CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT = ($clinit_ComponentOrderingStrategy() , NONE); + CONSIDER_MODEL_ORDER_COMPONENTS = new Property_1('org.eclipse.elk.layered.considerModelOrder.components', CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT); + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT = ($clinit_LongEdgeOrderingStrategy() , DUMMY_NODE_OVER); + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 0); + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 0); + INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0 = INTERACTIVE_2; + INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1 = INTERACTIVE_1; + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0 = COFFMAN_GRAHAM; + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0 = ($clinit_HierarchyHandling() , INCLUDE_CHILDREN); + CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1 = INCLUDE_CHILDREN; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1 = BRANDES_KOEPF; + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0 = LINEAR_SEGMENTS; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0 = ($clinit_EdgeRouting() , SPLINES); + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0 = SPLINES; + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1 = SLOPPY; + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0 = POLYLINE; + WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0 = MANUAL; + WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0 = MSD; + WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; +} + +function LayeredMetaDataProvider(){ + $clinit_LayeredMetaDataProvider(); +} + +defineClass(859, 1, $intern_90, LayeredMetaDataProvider); +_.apply_4 = function apply_131(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.directionCongruency'), ''), 'Direction Congruency'), 'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'), DIRECTION_CONGRUENCY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.feedbackEdges'), ''), 'Feedback Edges'), 'Whether feedback edges should be highlighted by routing around the nodes.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.interactiveReferencePoint'), ''), 'Interactive Reference Point'), 'Determines which point of a node is considered by interactive layout phases.'), INTERACTIVE_REFERENCE_POINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.cycleBreaking.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.crossingMinimization.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeEdges'), ''), 'Merge Edges'), 'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeHierarchyEdges'), ''), 'Merge Hierarchy-Crossing Edges'), 'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($legacyIds($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides'), ''), 'Allow Non-Flow Ports To Switch Sides'), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PORTS)), stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['org.eclipse.elk.layered.northOrSouthPort'])))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.portSortingStrategy'), ''), 'Port Sorting Strategy'), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), PORT_SORTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.thoroughness'), ''), 'Thoroughness'), 'How much effort should be spent to produce a nice layout.'), valueOf_3(7)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.unnecessaryBendpoints'), ''), 'Add Unnecessary Bendpoints'), 'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.generatePositionAndLayerIds'), ''), 'Generate Position and Layer IDs'), 'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.cycleBreaking.strategy'), 'cycleBreaking'), 'Cycle Breaking Strategy'), 'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'), CYCLE_BREAKING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.strategy'), 'layering'), 'Node Layering Strategy'), 'Strategy for node layering.'), LAYERING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerConstraint'), 'layering'), 'Layer Constraint'), 'Determines a constraint on the placement of the node regarding the layering.'), LAYERING_LAYER_CONSTRAINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerChoiceConstraint'), 'layering'), 'Layer Choice Constraint'), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), null), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerId'), 'layering'), 'Layer ID'), 'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_3(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth'), 'layering.minWidth'), 'Upper Bound On Width [MinWidth Layerer]'), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), valueOf_3(4)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor'), 'layering.minWidth'), 'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), valueOf_3(2)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.strategy'), 'layering.nodePromotion'), 'Node Promotion Strategy'), 'Reduces number of dummy nodes after layering phase (if possible).'), LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations'), 'layering.nodePromotion'), 'Max Node Promotion Iterations'), 'Limits the number of iterations for node promotion.'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound'), 'layering.coffmanGraham'), 'Layer Bound'), 'The maximum number of nodes allowed per layer.'), valueOf_3($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', 'org.eclipse.elk.layered.layering.strategy', LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.strategy'), 'crossingMinimization'), 'Crossing Minimization Strategy'), 'Strategy for crossing minimization.'), CROSSING_MINIMIZATION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder'), 'crossingMinimization'), 'Force Node Model Order'), 'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness'), 'crossingMinimization'), 'Hierarchical Sweepiness'), 'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'), 0.1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive'), 'crossingMinimization'), 'Semi-Interactive Crossing Minimization'), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.inLayerPredOf'), 'crossingMinimization'), 'In Layer Predecessor of'), "Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"), null), STRING), Ljava_lang_String_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf'), 'crossingMinimization'), 'In Layer Successor of'), "Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"), null), STRING), Ljava_lang_String_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint'), 'crossingMinimization'), 'Position Choice Constraint'), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), null), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionId'), 'crossingMinimization'), 'Position ID'), 'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_3(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Activation Threshold'), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), valueOf_3(40)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Crossing Minimization'), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type'), 'crossingMinimization.greedySwitchHierarchical'), 'Greedy Switch Crossing Minimization (hierarchical)'), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.strategy'), 'nodePlacement'), 'Node Placement Strategy'), 'Strategy for node placement.'), NODE_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges'), 'nodePlacement'), 'Favor Straight Edges Over Balancing'), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening'), 'nodePlacement.bk'), 'BK Edge Straightening'), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment'), 'nodePlacement.bk'), 'BK Fixed Alignment'), 'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'), NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening'), 'nodePlacement.linearSegments'), 'Linear Segments Deflection Dampening'), 'Dampens the movement of nodes to keep the diagram from getting too large.'), 0.3), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'), 'nodePlacement.networkSimplex'), 'Node Flexibility'), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default'), 'nodePlacement.networkSimplex.nodeFlexibility'), 'Node Flexibility Default'), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution'), 'edgeRouting'), 'Self-Loop Distribution'), 'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering'), 'edgeRouting'), 'Self-Loop Ordering'), 'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.mode'), 'edgeRouting.splines'), 'Spline Routing Mode'), 'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'), EDGE_ROUTING_SPLINES_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.mode', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor'), 'edgeRouting.splines.sloppy'), 'Sloppy Spline Layer Spacing Factor'), 'Spacing factor for routing area between layers when using sloppy spline routing.'), 0.2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth'), 'edgeRouting.polyline'), 'Sloped Edge Zone Width'), 'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.baseValue'), 'spacing'), 'Spacing Base Value'), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers'), 'spacing'), 'Edge Node Between Layers Spacing'), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers'), 'spacing'), 'Edge Edge Between Layer Spacing'), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers'), 'spacing'), 'Node Node Between Layers Spacing'), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.direction'), 'priority'), 'Direction Priority'), 'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.shortness'), 'priority'), 'Shortness Priority'), 'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.straightness'), 'priority'), 'Straightness Priority'), 'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.connectedComponents'), 'compaction'), 'Connected Components Compaction'), 'Tries to further compact components (disconnected sub-graphs).'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.compaction.connectedComponents', 'org.eclipse.elk.separateConnectedComponents', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.strategy'), 'compaction.postCompaction'), 'Post Compaction Strategy'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.constraints'), 'compaction.postCompaction'), 'Post Compaction Constraint Calculation'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treatment'), 'highDegreeNodes'), 'High Degree Node Treatment'), 'Makes room around high degree nodes to place leafs and trees.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.threshold'), 'highDegreeNodes'), 'High Degree Node Threshold'), 'Whether a node is considered to have a high degree.'), valueOf_3(16)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.threshold', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight'), 'highDegreeNodes'), 'High Degree Node Maximum Tree Height'), 'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'), valueOf_3(5)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.strategy'), 'wrapping'), 'Graph Wrapping Strategy'), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), WRAPPING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing'), 'wrapping'), 'Additional Wrapped Edges Spacing'), 'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.correctionFactor'), 'wrapping'), 'Correction Factor for Wrapping'), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.strategy'), 'wrapping.cutting'), 'Cutting Strategy'), 'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'), WRAPPING_CUTTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.cuts'), 'wrapping.cutting'), 'Manually Specified Cuts'), 'Allows the user to specify her own cuts for a certain graph.'), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.cuts', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom'), 'wrapping.cutting.msd'), 'MSD Freedom'), 'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'), WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.strategy'), 'wrapping.validify'), 'Validification Strategy'), 'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'), WRAPPING_VALIDIFY_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'), 'wrapping.validify'), 'Valid Indices for Wrapping'), null), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts'), 'wrapping.multiEdge'), 'Improve Cuts'), 'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty'), 'wrapping.multiEdge'), 'Distance Penalty When Improving Cuts'), null), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges'), 'wrapping.multiEdge'), 'Improve Wrapped Edges'), 'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.sideSelection'), 'edgeLabels'), 'Edge Label Side Selection'), 'Method to decide on edge label sides.'), EDGE_LABELS_SIDE_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy'), 'edgeLabels'), 'Edge Center Label Placement Strategy'), 'Determines in which layer center labels of long edges should be placed.'), EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.strategy'), 'considerModelOrder'), 'Consider Model Order'), 'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'), CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.portModelOrder'), 'considerModelOrder'), 'Consider Port Order'), 'If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.noModelOrder'), 'considerModelOrder'), 'No Model Order'), 'Set on a node to not set a model order for this node even though it is a real node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.components'), 'considerModelOrder'), 'Consider Model Order for Components'), 'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'), CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.components', 'org.eclipse.elk.separateConnectedComponents', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy'), 'considerModelOrder'), 'Long Edge Ordering Strategy'), 'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'), CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence'), 'considerModelOrder'), 'Crossing Counter Node Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence'), 'considerModelOrder'), 'Crossing Counter Port Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); + $apply_15((new LayeredOptions , registry)); +} +; +var ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES, COMPACTION_CONNECTED_COMPONENTS, COMPACTION_POST_COMPACTION_CONSTRAINTS, COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT, COMPACTION_POST_COMPACTION_STRATEGY, COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_COMPONENTS, CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER, CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER, CONSIDER_MODEL_ORDER_STRATEGY, CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0, CROSSING_MINIMIZATION_IN_LAYER_PRED_OF, CROSSING_MINIMIZATION_IN_LAYER_SUCC_OF, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT, CROSSING_MINIMIZATION_POSITION_ID, CROSSING_MINIMIZATION_SEMI_INTERACTIVE, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_STRATEGY, CROSSING_MINIMIZATION_STRATEGY_DEFAULT, CYCLE_BREAKING_STRATEGY, CYCLE_BREAKING_STRATEGY_DEFAULT, DIRECTION_CONGRUENCY, DIRECTION_CONGRUENCY_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT, EDGE_LABELS_SIDE_SELECTION, EDGE_LABELS_SIDE_SELECTION_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT, EDGE_ROUTING_SELF_LOOP_ORDERING, EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT, EDGE_ROUTING_SPLINES_MODE, EDGE_ROUTING_SPLINES_MODE_DEFAULT, EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1, FEEDBACK_EDGES, GENERATE_POSITION_AND_LAYER_IDS, HIGH_DEGREE_NODES_THRESHOLD, HIGH_DEGREE_NODES_TREATMENT, HIGH_DEGREE_NODES_TREE_HEIGHT, INTERACTIVE_REFERENCE_POINT, INTERACTIVE_REFERENCE_POINT_DEFAULT, INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1, INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0, LAYERING_LAYER_CHOICE_CONSTRAINT, LAYERING_LAYER_CONSTRAINT, LAYERING_LAYER_CONSTRAINT_DEFAULT, LAYERING_LAYER_ID, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS, LAYERING_NODE_PROMOTION_STRATEGY, LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT, LAYERING_STRATEGY, LAYERING_STRATEGY_DEFAULT, MERGE_EDGES, MERGE_HIERARCHY_EDGES, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_STRATEGY, NODE_PLACEMENT_STRATEGY_DEFAULT, PORT_SORTING_STRATEGY, PORT_SORTING_STRATEGY_DEFAULT, PRIORITY_DIRECTION, PRIORITY_SHORTNESS, PRIORITY_STRAIGHTNESS, SPACING_BASE_VALUE, SPACING_EDGE_EDGE_BETWEEN_LAYERS, SPACING_EDGE_NODE_BETWEEN_LAYERS, SPACING_NODE_NODE_BETWEEN_LAYERS, THOROUGHNESS, UNNECESSARY_BENDPOINTS, WRAPPING_ADDITIONAL_EDGE_SPACING, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1, WRAPPING_CORRECTION_FACTOR, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1, WRAPPING_CUTTING_CUTS, WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_MSD_FREEDOM, WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT, WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY, WRAPPING_CUTTING_STRATEGY_DEFAULT, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0, WRAPPING_STRATEGY, WRAPPING_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_FORBIDDEN_INDICES, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1, WRAPPING_VALIDIFY_STRATEGY, WRAPPING_VALIDIFY_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1; +var Lorg_eclipse_elk_alg_layered_options_LayeredMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredMetaDataProvider', 859); +function $clinit_LayeredOptions(){ + $clinit_LayeredOptions = emptyMethod; + SPACING_COMMENT_COMMENT = ($clinit_CoreOptions() , SPACING_COMMENT_COMMENT_0); + SPACING_COMMENT_NODE = SPACING_COMMENT_NODE_0; + SPACING_COMPONENT_COMPONENT_0 = SPACING_COMPONENT_COMPONENT_1; + SPACING_EDGE_EDGE = SPACING_EDGE_EDGE_0; + SPACING_EDGE_LABEL_0 = SPACING_EDGE_LABEL_1; + SPACING_EDGE_NODE = SPACING_EDGE_NODE_1; + SPACING_LABEL_LABEL = SPACING_LABEL_LABEL_0; + SPACING_LABEL_PORT_HORIZONTAL = SPACING_LABEL_PORT_HORIZONTAL_0; + SPACING_LABEL_PORT_VERTICAL = SPACING_LABEL_PORT_VERTICAL_0; + SPACING_LABEL_NODE = SPACING_LABEL_NODE_0; + SPACING_NODE_NODE_0 = SPACING_NODE_NODE_6; + SPACING_NODE_SELF_LOOP = SPACING_NODE_SELF_LOOP_0; + SPACING_PORT_PORT = SPACING_PORT_PORT_0; + SPACING_INDIVIDUAL = SPACING_INDIVIDUAL_0; + SPACING_BASE_VALUE_0 = ($clinit_LayeredMetaDataProvider() , SPACING_BASE_VALUE); + SPACING_EDGE_EDGE_BETWEEN_LAYERS_0 = SPACING_EDGE_EDGE_BETWEEN_LAYERS; + SPACING_EDGE_NODE_BETWEEN_LAYERS_0 = SPACING_EDGE_NODE_BETWEEN_LAYERS; + SPACING_NODE_NODE_BETWEEN_LAYERS_0 = SPACING_NODE_NODE_BETWEEN_LAYERS; + PRIORITY_0 = new Property_2(PRIORITY_3, valueOf_3(0)); + PRIORITY_DIRECTION_0 = PRIORITY_DIRECTION; + PRIORITY_SHORTNESS_0 = PRIORITY_SHORTNESS; + PRIORITY_STRAIGHTNESS_0 = PRIORITY_STRAIGHTNESS; + WRAPPING_STRATEGY_0 = WRAPPING_STRATEGY; + WRAPPING_ADDITIONAL_EDGE_SPACING_0 = WRAPPING_ADDITIONAL_EDGE_SPACING; + WRAPPING_CORRECTION_FACTOR_0 = WRAPPING_CORRECTION_FACTOR; + WRAPPING_CUTTING_STRATEGY_0 = WRAPPING_CUTTING_STRATEGY; + WRAPPING_CUTTING_CUTS_0 = WRAPPING_CUTTING_CUTS; + WRAPPING_CUTTING_MSD_FREEDOM_0 = WRAPPING_CUTTING_MSD_FREEDOM; + WRAPPING_VALIDIFY_STRATEGY_0 = WRAPPING_VALIDIFY_STRATEGY; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0 = WRAPPING_VALIDIFY_FORBIDDEN_INDICES; + WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0 = WRAPPING_MULTI_EDGE_IMPROVE_CUTS; + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0 = WRAPPING_MULTI_EDGE_DISTANCE_PENALTY; + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0 = WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT; + EDGE_ROUTING_SPLINES_MODE_0 = EDGE_ROUTING_SPLINES_MODE; + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0 = EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR; + TOPDOWN_LAYOUT_0 = TOPDOWN_LAYOUT_2; + TOPDOWN_SCALE_FACTOR_0 = TOPDOWN_SCALE_FACTOR_2; + TOPDOWN_HIERARCHICAL_NODE_WIDTH_0 = TOPDOWN_HIERARCHICAL_NODE_WIDTH_2; + TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_0 = TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_2; + TOPDOWN_NODE_TYPE_DEFAULT_0 = ($clinit_TopdownNodeTypes() , HIERARCHICAL_NODE); + new Property_2(TOPDOWN_NODE_TYPE, TOPDOWN_NODE_TYPE_DEFAULT_0); + PADDING_DEFAULT_0 = new ElkPadding_0(12); + PADDING_1 = new Property_2(PADDING_6, PADDING_DEFAULT_0); + EDGE_ROUTING_DEFAULT = ($clinit_EdgeRouting() , ORTHOGONAL); + EDGE_ROUTING = new Property_2(EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT); + PORT_BORDER_OFFSET = new Property_2(PORT_BORDER_OFFSET_0, 0); + RANDOM_SEED_0 = new Property_2(RANDOM_SEED_1, valueOf_3(1)); + ASPECT_RATIO_1 = new Property_2(ASPECT_RATIO_5, $intern_102); + NO_LAYOUT = NO_LAYOUT_0; + PORT_CONSTRAINTS_0 = PORT_CONSTRAINTS_1; + PORT_SIDE = PORT_SIDE_0; + DEBUG_MODE = DEBUG_MODE_3; + ALIGNMENT = ALIGNMENT_0; + HIERARCHY_HANDLING = HIERARCHY_HANDLING_0; + SEPARATE_CONNECTED_COMPONENTS_0 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + INSIDE_SELF_LOOPS_ACTIVATE = INSIDE_SELF_LOOPS_ACTIVATE_0; + INSIDE_SELF_LOOPS_YO = INSIDE_SELF_LOOPS_YO_0; + NODE_SIZE_CONSTRAINTS_1 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_OPTIONS_1 = NODE_SIZE_OPTIONS_6; + NODE_SIZE_FIXED_GRAPH_SIZE_0 = NODE_SIZE_FIXED_GRAPH_SIZE_3; + DIRECTION_DEFAULT = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION = new Property_2(DIRECTION_1, DIRECTION_DEFAULT); + NODE_LABELS_PLACEMENT_1 = NODE_LABELS_PLACEMENT_5; + NODE_LABELS_PADDING = NODE_LABELS_PADDING_0; + PORT_LABELS_PLACEMENT_1 = PORT_LABELS_PLACEMENT_5; + PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE = PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0; + PORT_LABELS_TREAT_AS_GROUP = PORT_LABELS_TREAT_AS_GROUP_0; + PORT_ALIGNMENT_DEFAULT_DEFAULT = ($clinit_PortAlignment() , JUSTIFIED); + new Property_2(PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT); + PORT_ALIGNMENT_NORTH = PORT_ALIGNMENT_NORTH_0; + PORT_ALIGNMENT_SOUTH = PORT_ALIGNMENT_SOUTH_0; + PORT_ALIGNMENT_WEST = PORT_ALIGNMENT_WEST_0; + PORT_ALIGNMENT_EAST = PORT_ALIGNMENT_EAST_0; + UNNECESSARY_BENDPOINTS_0 = UNNECESSARY_BENDPOINTS; + LAYERING_STRATEGY_0 = LAYERING_STRATEGY; + LAYERING_NODE_PROMOTION_STRATEGY_0 = LAYERING_NODE_PROMOTION_STRATEGY; + THOROUGHNESS_0 = THOROUGHNESS; + LAYERING_LAYER_CONSTRAINT_0 = LAYERING_LAYER_CONSTRAINT; + CYCLE_BREAKING_STRATEGY_0 = CYCLE_BREAKING_STRATEGY; + CROSSING_MINIMIZATION_STRATEGY_0 = CROSSING_MINIMIZATION_STRATEGY; + CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0 = CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER; + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD; + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE; + CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0 = CROSSING_MINIMIZATION_SEMI_INTERACTIVE; + MERGE_EDGES_0 = MERGE_EDGES; + MERGE_HIERARCHY_EDGES_0 = MERGE_HIERARCHY_EDGES; + INTERACTIVE_REFERENCE_POINT_0 = INTERACTIVE_REFERENCE_POINT; + NODE_PLACEMENT_STRATEGY_0 = NODE_PLACEMENT_STRATEGY; + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0 = NODE_PLACEMENT_BK_FIXED_ALIGNMENT; + FEEDBACK_EDGES_0 = FEEDBACK_EDGES; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0 = NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING; + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0 = EDGE_ROUTING_SELF_LOOP_DISTRIBUTION; + EDGE_ROUTING_SELF_LOOP_ORDERING_0 = EDGE_ROUTING_SELF_LOOP_ORDERING; + CONTENT_ALIGNMENT = CONTENT_ALIGNMENT_2; + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0 = NODE_PLACEMENT_BK_EDGE_STRAIGHTENING; + COMPACTION_POST_COMPACTION_STRATEGY_0 = COMPACTION_POST_COMPACTION_STRATEGY; + COMPACTION_POST_COMPACTION_CONSTRAINTS_0 = COMPACTION_POST_COMPACTION_CONSTRAINTS; + COMPACTION_CONNECTED_COMPONENTS_0 = COMPACTION_CONNECTED_COMPONENTS; + HIGH_DEGREE_NODES_TREATMENT_0 = HIGH_DEGREE_NODES_TREATMENT; + HIGH_DEGREE_NODES_THRESHOLD_0 = HIGH_DEGREE_NODES_THRESHOLD; + HIGH_DEGREE_NODES_TREE_HEIGHT_0 = HIGH_DEGREE_NODES_TREE_HEIGHT; + NODE_SIZE_MINIMUM_0 = NODE_SIZE_MINIMUM_5; + JUNCTION_POINTS = JUNCTION_POINTS_0; + EDGE_THICKNESS_0 = EDGE_THICKNESS_1; + EDGE_LABELS_PLACEMENT = EDGE_LABELS_PLACEMENT_0; + EDGE_LABELS_INLINE_0 = EDGE_LABELS_INLINE_1; + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0 = CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS; + PORT_INDEX = PORT_INDEX_0; + COMMENT_BOX = COMMENT_BOX_0; + HYPERNODE = HYPERNODE_0; + PORT_ANCHOR = PORT_ANCHOR_0; + PARTITIONING_ACTIVATE = PARTITIONING_ACTIVATE_0; + PARTITIONING_PARTITION = PARTITIONING_PARTITION_0; + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0 = LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH; + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0 = LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR; + POSITION = POSITION_2; + ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0 = ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES; + LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0 = LAYERING_NODE_PROMOTION_MAX_ITERATIONS; + EDGE_LABELS_SIDE_SELECTION_0 = EDGE_LABELS_SIDE_SELECTION; + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0 = EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY; + MARGINS = MARGINS_0; + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0 = LAYERING_COFFMAN_GRAHAM_LAYER_BOUND; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0 = NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES; + SPACING_PORTS_SURROUNDING = SPACING_PORTS_SURROUNDING_0; + DIRECTION_CONGRUENCY_0 = DIRECTION_CONGRUENCY; + PORT_SORTING_STRATEGY_0 = PORT_SORTING_STRATEGY; + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0 = EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH; + CROSSING_MINIMIZATION_IN_LAYER_PRED_OF_0 = CROSSING_MINIMIZATION_IN_LAYER_PRED_OF; + CROSSING_MINIMIZATION_IN_LAYER_SUCC_OF_0 = CROSSING_MINIMIZATION_IN_LAYER_SUCC_OF; + LAYERING_LAYER_CHOICE_CONSTRAINT_0 = LAYERING_LAYER_CHOICE_CONSTRAINT; + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0 = CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT; + INTERACTIVE_LAYOUT = INTERACTIVE_LAYOUT_2; + LAYERING_LAYER_ID_0 = LAYERING_LAYER_ID; + CROSSING_MINIMIZATION_POSITION_ID_0 = CROSSING_MINIMIZATION_POSITION_ID; + CONSIDER_MODEL_ORDER_STRATEGY_0 = CONSIDER_MODEL_ORDER_STRATEGY; + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0 = CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY; + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE; + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE; + CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0 = CONSIDER_MODEL_ORDER_NO_MODEL_ORDER; + CONSIDER_MODEL_ORDER_COMPONENTS_0 = CONSIDER_MODEL_ORDER_COMPONENTS; + CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER_0 = CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER; + GENERATE_POSITION_AND_LAYER_IDS_0 = GENERATE_POSITION_AND_LAYER_IDS; +} + +function $apply_15(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.layered'), 'ELK Layered'), 'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'), new LayeredOptions$LayeredFactory), 'org.eclipse.elk.layered'), of_2(($clinit_GraphFeature() , SELF_LOOPS_0), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_37, 245, 0, [INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentComment', $getDefault(SPACING_COMMENT_COMMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentNode', $getDefault(SPACING_COMMENT_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeEdge', $getDefault(SPACING_EDGE_EDGE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeLabel', $getDefault(SPACING_EDGE_LABEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeNode', $getDefault(SPACING_EDGE_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelLabel', $getDefault(SPACING_LABEL_LABEL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortHorizontal', $getDefault(SPACING_LABEL_PORT_HORIZONTAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortVertical', $getDefault(SPACING_LABEL_PORT_VERTICAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelNode', $getDefault(SPACING_LABEL_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeSelfLoop', $getDefault(SPACING_NODE_SELF_LOOP)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portPort', $getDefault(SPACING_PORT_PORT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.individual', $getDefault(SPACING_INDIVIDUAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.baseValue', $getDefault(SPACING_BASE_VALUE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', $getDefault(SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', $getDefault(SPACING_EDGE_NODE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', $getDefault(SPACING_NODE_NODE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.priority', valueOf_3(0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.direction', $getDefault(PRIORITY_DIRECTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.shortness', $getDefault(PRIORITY_SHORTNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.straightness', $getDefault(PRIORITY_STRAIGHTNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.strategy', $getDefault(WRAPPING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', $getDefault(WRAPPING_ADDITIONAL_EDGE_SPACING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.correctionFactor', $getDefault(WRAPPING_CORRECTION_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.strategy', $getDefault(WRAPPING_CUTTING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.cuts', $getDefault(WRAPPING_CUTTING_CUTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', $getDefault(WRAPPING_CUTTING_MSD_FREEDOM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.strategy', $getDefault(WRAPPING_VALIDIFY_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', $getDefault(WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', $getDefault(WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.mode', $getDefault(EDGE_ROUTING_SPLINES_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', $getDefault(EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.topdownLayout', $getDefault(TOPDOWN_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.topdown.scaleFactor', $getDefault(TOPDOWN_SCALE_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.topdown.hierarchicalNodeWidth', $getDefault(TOPDOWN_HIERARCHICAL_NODE_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.topdown.hierarchicalNodeAspectRatio', $getDefault(TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.topdown.nodeType', TOPDOWN_NODE_TYPE_DEFAULT_0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.padding', PADDING_DEFAULT_0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.borderOffset', 0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.randomSeed', valueOf_3(1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.noLayout', $getDefault(NO_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.side', $getDefault(PORT_SIDE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.alignment', $getDefault(ALIGNMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hierarchyHandling', $getDefault(HIERARCHY_HANDLING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.activate', $getDefault(INSIDE_SELF_LOOPS_ACTIVATE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.yo', $getDefault(INSIDE_SELF_LOOPS_YO)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.direction', DIRECTION_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.padding', $getDefault(NODE_LABELS_PADDING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.nextToPortIfPossible', $getDefault(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.treatAsGroup', $getDefault(PORT_LABELS_TREAT_AS_GROUP)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.north', $getDefault(PORT_ALIGNMENT_NORTH)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.south', $getDefault(PORT_ALIGNMENT_SOUTH)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.west', $getDefault(PORT_ALIGNMENT_WEST)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.east', $getDefault(PORT_ALIGNMENT_EAST)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.unnecessaryBendpoints', $getDefault(UNNECESSARY_BENDPOINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.strategy', $getDefault(LAYERING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', $getDefault(LAYERING_NODE_PROMOTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.thoroughness', $getDefault(THOROUGHNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerConstraint', $getDefault(LAYERING_LAYER_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.cycleBreaking.strategy', $getDefault(CYCLE_BREAKING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.strategy', $getDefault(CROSSING_MINIMIZATION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', $getDefault(CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', $getDefault(CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeEdges', $getDefault(MERGE_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeHierarchyEdges', $getDefault(MERGE_HIERARCHY_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.interactiveReferencePoint', $getDefault(INTERACTIVE_REFERENCE_POINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.strategy', $getDefault(NODE_PLACEMENT_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', $getDefault(NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.feedbackEdges', $getDefault(FEEDBACK_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', $getDefault(NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', $getDefault(EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', $getDefault(EDGE_ROUTING_SELF_LOOP_ORDERING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', $getDefault(NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.strategy', $getDefault(COMPACTION_POST_COMPACTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.constraints', $getDefault(COMPACTION_POST_COMPACTION_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.connectedComponents', $getDefault(COMPACTION_CONNECTED_COMPONENTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treatment', $getDefault(HIGH_DEGREE_NODES_TREATMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.threshold', $getDefault(HIGH_DEGREE_NODES_THRESHOLD_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', $getDefault(HIGH_DEGREE_NODES_TREE_HEIGHT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.junctionPoints', $getDefault(JUNCTION_POINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.placement', $getDefault(EDGE_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.inline', $getDefault(EDGE_LABELS_INLINE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', $getDefault(CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.index', $getDefault(PORT_INDEX)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.commentBox', $getDefault(COMMENT_BOX)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hypernode', $getDefault(HYPERNODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.anchor', $getDefault(PORT_ANCHOR)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.activate', $getDefault(PARTITIONING_ACTIVATE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.partition', $getDefault(PARTITIONING_PARTITION)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', $getDefault(LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', $getDefault(LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.position', $getDefault(POSITION)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', $getDefault(ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', $getDefault(LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.sideSelection', $getDefault(EDGE_LABELS_SIDE_SELECTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', $getDefault(EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.margins', $getDefault(MARGINS)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', $getDefault(LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', $getDefault(NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portsSurrounding', $getDefault(SPACING_PORTS_SURROUNDING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.directionCongruency', $getDefault(DIRECTION_CONGRUENCY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.portSortingStrategy', $getDefault(PORT_SORTING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', $getDefault(EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.inLayerPredOf', $getDefault(CROSSING_MINIMIZATION_IN_LAYER_PRED_OF_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf', $getDefault(CROSSING_MINIMIZATION_IN_LAYER_SUCC_OF_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerChoiceConstraint', $getDefault(LAYERING_LAYER_CHOICE_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', $getDefault(CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerId', $getDefault(LAYERING_LAYER_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionId', $getDefault(CROSSING_MINIMIZATION_POSITION_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.strategy', $getDefault(CONSIDER_MODEL_ORDER_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', $getDefault(CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.noModelOrder', $getDefault(CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.components', $getDefault(CONSIDER_MODEL_ORDER_COMPONENTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.portModelOrder', $getDefault(CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.generatePositionAndLayerIds', $getDefault(GENERATE_POSITION_AND_LAYER_IDS_0)); +} + +function LayeredOptions(){ + $clinit_LayeredOptions(); +} + +defineClass(998, 1, $intern_90, LayeredOptions); +_.apply_4 = function apply_132(registry){ + $apply_15(registry); +} +; +var ALIGNMENT, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0, ASPECT_RATIO_1, COMMENT_BOX, COMPACTION_CONNECTED_COMPONENTS_0, COMPACTION_POST_COMPACTION_CONSTRAINTS_0, COMPACTION_POST_COMPACTION_STRATEGY_0, CONSIDER_MODEL_ORDER_COMPONENTS_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0, CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER_0, CONSIDER_MODEL_ORDER_STRATEGY_0, CONTENT_ALIGNMENT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0, CROSSING_MINIMIZATION_IN_LAYER_PRED_OF_0, CROSSING_MINIMIZATION_IN_LAYER_SUCC_OF_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0, CROSSING_MINIMIZATION_POSITION_ID_0, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0, CROSSING_MINIMIZATION_STRATEGY_0, CYCLE_BREAKING_STRATEGY_0, DEBUG_MODE, DIRECTION, DIRECTION_CONGRUENCY_0, DIRECTION_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0, EDGE_LABELS_INLINE_0, EDGE_LABELS_PLACEMENT, EDGE_LABELS_SIDE_SELECTION_0, EDGE_ROUTING, EDGE_ROUTING_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0, EDGE_ROUTING_SELF_LOOP_ORDERING_0, EDGE_ROUTING_SPLINES_MODE_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0, EDGE_THICKNESS_0, FEEDBACK_EDGES_0, GENERATE_POSITION_AND_LAYER_IDS_0, HIERARCHY_HANDLING, HIGH_DEGREE_NODES_THRESHOLD_0, HIGH_DEGREE_NODES_TREATMENT_0, HIGH_DEGREE_NODES_TREE_HEIGHT_0, HYPERNODE, INSIDE_SELF_LOOPS_ACTIVATE, INSIDE_SELF_LOOPS_YO, INTERACTIVE_LAYOUT, INTERACTIVE_REFERENCE_POINT_0, JUNCTION_POINTS, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0, LAYERING_LAYER_CHOICE_CONSTRAINT_0, LAYERING_LAYER_CONSTRAINT_0, LAYERING_LAYER_ID_0, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0, LAYERING_NODE_PROMOTION_STRATEGY_0, LAYERING_STRATEGY_0, MARGINS, MERGE_EDGES_0, MERGE_HIERARCHY_EDGES_0, NODE_LABELS_PADDING, NODE_LABELS_PLACEMENT_1, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0, NODE_PLACEMENT_STRATEGY_0, NODE_SIZE_CONSTRAINTS_1, NODE_SIZE_FIXED_GRAPH_SIZE_0, NODE_SIZE_MINIMUM_0, NODE_SIZE_OPTIONS_1, NO_LAYOUT, PADDING_1, PADDING_DEFAULT_0, PARTITIONING_ACTIVATE, PARTITIONING_PARTITION, PORT_ALIGNMENT_DEFAULT_DEFAULT, PORT_ALIGNMENT_EAST, PORT_ALIGNMENT_NORTH, PORT_ALIGNMENT_SOUTH, PORT_ALIGNMENT_WEST, PORT_ANCHOR, PORT_BORDER_OFFSET, PORT_CONSTRAINTS_0, PORT_INDEX, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE, PORT_LABELS_PLACEMENT_1, PORT_LABELS_TREAT_AS_GROUP, PORT_SIDE, PORT_SORTING_STRATEGY_0, POSITION, PRIORITY_0, PRIORITY_DIRECTION_0, PRIORITY_SHORTNESS_0, PRIORITY_STRAIGHTNESS_0, RANDOM_SEED_0, SEPARATE_CONNECTED_COMPONENTS_0, SPACING_BASE_VALUE_0, SPACING_COMMENT_COMMENT, SPACING_COMMENT_NODE, SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_INDIVIDUAL, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_SELF_LOOP, SPACING_PORTS_SURROUNDING, SPACING_PORT_PORT, THOROUGHNESS_0, TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_0, TOPDOWN_HIERARCHICAL_NODE_WIDTH_0, TOPDOWN_LAYOUT_0, TOPDOWN_NODE_TYPE_DEFAULT_0, TOPDOWN_SCALE_FACTOR_0, UNNECESSARY_BENDPOINTS_0, WRAPPING_ADDITIONAL_EDGE_SPACING_0, WRAPPING_CORRECTION_FACTOR_0, WRAPPING_CUTTING_CUTS_0, WRAPPING_CUTTING_MSD_FREEDOM_0, WRAPPING_CUTTING_STRATEGY_0, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0, WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0, WRAPPING_VALIDIFY_STRATEGY_0; +var Lorg_eclipse_elk_alg_layered_options_LayeredOptions_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions', 998); +function LayeredOptions$LayeredFactory(){ +} + +defineClass(999, 1, {}, LayeredOptions$LayeredFactory); +_.create_0 = function create_10(){ + var provider; + return provider = new LayeredLayoutProvider , provider; +} +; +_.destroy = function destroy_2(obj){ +} +; +var Lorg_eclipse_elk_alg_layered_options_LayeredOptions$LayeredFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions/LayeredFactory', 999); +function $clinit_ElkSpacings$AbstractSpacingsBuilder(){ + $clinit_ElkSpacings$AbstractSpacingsBuilder = emptyMethod; + ELK_OPTION_TARGET_FILTER = new ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type; +} + +function $apply_16(this$static, holder){ + $build(this$static).accept(holder); +} + +function $build(this$static){ + $add_3(this$static.filters, ($clinit_LayoutConfigurator() , NO_OVERWRITE_HOLDER)); + if (fuzzyEquals(this$static.baseSpacing, $doubleValue(castToDouble($getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)))))) { + return new ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type; + } + return new ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type(this$static); +} + +function $lambda$1_2(this$static, option_0){ + var factor; + factor = $getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)) != null && option_0.getDefault() != null?$doubleValue(castToDouble(option_0.getDefault())) / $doubleValue(castToDouble($getDefault(BASE_SPACING_OPTION))):1; + $put_6(this$static.factorMap, option_0, factor); +} + +function $lambda$3_0(this$static, element_0){ + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.factorMap), 1)), new ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type(this$static, element_0)), new ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type(this$static, element_0)); +} + +function $lambda$4_1(this$static, element_1, p_1){ + return !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.filters, 16)), new Predicate$lambda$2$Type(new ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_1, p_1)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); +} + +function $lambda$6(this$static, element_1, p_1){ + element_1.setProperty(p_1, $doubleValue(castToDouble($get_10(this$static.factorMap, p_1))) * this$static.baseSpacing); +} + +function lambda$5_3(element_0, p_1, filter_2){ + $clinit_ElkSpacings$AbstractSpacingsBuilder(); + return filter_2.accept_4(element_0, p_1); +} + +defineClass(1391, 1, {}); +_.baseSpacing = 0; +var ELK_OPTION_TARGET_FILTER; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder', 1391); +function $clinit_LayeredSpacings$LayeredSpacingsBuilder(){ + $clinit_LayeredSpacings$LayeredSpacingsBuilder = emptyMethod; + $clinit_ElkSpacings$AbstractSpacingsBuilder(); + BASE_SPACING_OPTION = ($clinit_LayeredOptions() , SPACING_NODE_NODE_0); + DEPENDENT_SPACING_OPTIONS = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 1), $intern_112, 149, 0, [SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_SELF_LOOP, SPACING_PORT_PORT, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0])); +} + +function LayeredSpacings$LayeredSpacingsBuilder(d){ + $clinit_LayeredSpacings$LayeredSpacingsBuilder(); + this.filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit, 1), $intern_2, 845, 0, [ELK_OPTION_TARGET_FILTER])); + this.factorMap = new HashMap; + this.baseSpacing = d; + $put_6(this.factorMap, BASE_SPACING_OPTION, 1); + $forEach_1(DEPENDENT_SPACING_OPTIONS, new ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type(this)); +} + +defineClass(792, 1391, {}, LayeredSpacings$LayeredSpacingsBuilder); +var BASE_SPACING_OPTION, DEPENDENT_SPACING_OPTIONS; +var Lorg_eclipse_elk_alg_layered_options_LayeredSpacings$LayeredSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredSpacings/LayeredSpacingsBuilder', 792); +function $clinit_LayeringStrategy(){ + $clinit_LayeringStrategy = emptyMethod; + NETWORK_SIMPLEX = new LayeringStrategy('NETWORK_SIMPLEX', 0); + LONGEST_PATH = new LayeringStrategy('LONGEST_PATH', 1); + LONGEST_PATH_SOURCE = new LayeringStrategy('LONGEST_PATH_SOURCE', 2); + COFFMAN_GRAHAM = new LayeringStrategy('COFFMAN_GRAHAM', 3); + INTERACTIVE_3 = new LayeringStrategy('INTERACTIVE', 4); + STRETCH_WIDTH = new LayeringStrategy('STRETCH_WIDTH', 5); + MIN_WIDTH = new LayeringStrategy('MIN_WIDTH', 6); + BF_MODEL_ORDER = new LayeringStrategy('BF_MODEL_ORDER', 7); + DF_MODEL_ORDER = new LayeringStrategy('DF_MODEL_ORDER', 8); +} + +function $create_5(this$static){ + switch (this$static.ordinal) { + case 0: + return new NetworkSimplexLayerer; + case 1: + return new LongestPathLayerer; + case 3: + return new CoffmanGrahamLayerer; + case 4: + return new InteractiveLayerer; + case 5: + return new StretchWidthLayerer; + case 6: + return new MinWidthLayerer; + case 2: + return new LongestPathSourceLayerer; + case 7: + return new BreadthFirstModelOrderLayerer; + case 8: + return new DepthFirstModelOrderLayerer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layerer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function LayeringStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_52(name_0){ + $clinit_LayeringStrategy(); + return valueOf(($clinit_LayeringStrategy$Map() , $MAP_42), name_0); +} + +function values_60(){ + $clinit_LayeringStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_37, 265, 0, [NETWORK_SIMPLEX, LONGEST_PATH, LONGEST_PATH_SOURCE, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH, BF_MODEL_ORDER, DF_MODEL_ORDER]); +} + +defineClass(265, 22, {3:1, 34:1, 22:1, 265:1, 188:1, 196:1}, LayeringStrategy); +_.create_1 = function create_12(){ + return $create_5(this); +} +; +_.create_2 = function create_11(){ + return $create_5(this); +} +; +var BF_MODEL_ORDER, COFFMAN_GRAHAM, DF_MODEL_ORDER, INTERACTIVE_3, LONGEST_PATH, LONGEST_PATH_SOURCE, MIN_WIDTH, NETWORK_SIMPLEX, STRETCH_WIDTH; +var Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayeringStrategy', 265, Ljava_lang_Enum_2_classLit, values_60, valueOf_52); +function $clinit_LayeringStrategy$Map(){ + $clinit_LayeringStrategy$Map = emptyMethod; + $MAP_42 = createValueOfMap(($clinit_LayeringStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_37, 265, 0, [NETWORK_SIMPLEX, LONGEST_PATH, LONGEST_PATH_SOURCE, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH, BF_MODEL_ORDER, DF_MODEL_ORDER]))); +} + +var $MAP_42; +function $clinit_LongEdgeOrderingStrategy(){ + $clinit_LongEdgeOrderingStrategy = emptyMethod; + DUMMY_NODE_OVER = new LongEdgeOrderingStrategy('DUMMY_NODE_OVER', 0); + DUMMY_NODE_UNDER = new LongEdgeOrderingStrategy('DUMMY_NODE_UNDER', 1); + EQUAL = new LongEdgeOrderingStrategy('EQUAL', 2); +} + +function $returnValue(this$static){ + switch (this$static.ordinal) { + case 0: + return $intern_0; + case 1: + return -1; + default:return 0; + } +} + +function LongEdgeOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_53(name_0){ + $clinit_LongEdgeOrderingStrategy(); + return valueOf(($clinit_LongEdgeOrderingStrategy$Map() , $MAP_43), name_0); +} + +function values_61(){ + $clinit_LongEdgeOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_37, 390, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]); +} + +defineClass(390, 22, {3:1, 34:1, 22:1, 390:1}, LongEdgeOrderingStrategy); +var DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL; +var Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LongEdgeOrderingStrategy', 390, Ljava_lang_Enum_2_classLit, values_61, valueOf_53); +function $clinit_LongEdgeOrderingStrategy$Map(){ + $clinit_LongEdgeOrderingStrategy$Map = emptyMethod; + $MAP_43 = createValueOfMap(($clinit_LongEdgeOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_37, 390, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]))); +} + +var $MAP_43; +function $clinit_NodeFlexibility(){ + $clinit_NodeFlexibility = emptyMethod; + NONE_8 = new NodeFlexibility('NONE', 0); + PORT_POSITION = new NodeFlexibility('PORT_POSITION', 1); + NODE_SIZE_WHERE_SPACE_PERMITS = new NodeFlexibility('NODE_SIZE_WHERE_SPACE_PERMITS', 2); + NODE_SIZE = new NodeFlexibility('NODE_SIZE', 3); +} + +function $isFlexibleSizeWhereSpacePermits(this$static){ + return this$static == NODE_SIZE_WHERE_SPACE_PERMITS || this$static == NODE_SIZE; +} + +function NodeFlexibility(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function getNodeFlexibility(lNode){ + $clinit_NodeFlexibility(); + var nf; + (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 203)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 203)); + return nf; +} + +function valueOf_54(name_0){ + $clinit_NodeFlexibility(); + return valueOf(($clinit_NodeFlexibility$Map() , $MAP_44), name_0); +} + +function values_62(){ + $clinit_NodeFlexibility(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_37, 203, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]); +} + +defineClass(203, 22, {3:1, 34:1, 22:1, 203:1}, NodeFlexibility); +var NODE_SIZE, NODE_SIZE_WHERE_SPACE_PERMITS, NONE_8, PORT_POSITION; +var Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodeFlexibility', 203, Ljava_lang_Enum_2_classLit, values_62, valueOf_54); +function $clinit_NodeFlexibility$Map(){ + $clinit_NodeFlexibility$Map = emptyMethod; + $MAP_44 = createValueOfMap(($clinit_NodeFlexibility() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_37, 203, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]))); +} + +var $MAP_44; +function $clinit_NodePlacementStrategy(){ + $clinit_NodePlacementStrategy = emptyMethod; + SIMPLE = new NodePlacementStrategy('SIMPLE', 0); + INTERACTIVE_4 = new NodePlacementStrategy('INTERACTIVE', 1); + LINEAR_SEGMENTS = new NodePlacementStrategy('LINEAR_SEGMENTS', 2); + BRANDES_KOEPF = new NodePlacementStrategy('BRANDES_KOEPF', 3); + NETWORK_SIMPLEX_0 = new NodePlacementStrategy('NETWORK_SIMPLEX', 4); +} + +function $create_6(this$static){ + switch (this$static.ordinal) { + case 0: + return new SimpleNodePlacer; + case 1: + return new InteractiveNodePlacer; + case 2: + return new LinearSegmentsNodePlacer; + case 3: + return new BKNodePlacer; + case 4: + return new NetworkSimplexPlacer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the node placer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function NodePlacementStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_55(name_0){ + $clinit_NodePlacementStrategy(); + return valueOf(($clinit_NodePlacementStrategy$Map() , $MAP_45), name_0); +} + +function values_63(){ + $clinit_NodePlacementStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_37, 323, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]); +} + +defineClass(323, 22, {3:1, 34:1, 22:1, 323:1, 188:1, 196:1}, NodePlacementStrategy); +_.create_1 = function create_14(){ + return $create_6(this); +} +; +_.create_2 = function create_13(){ + return $create_6(this); +} +; +var BRANDES_KOEPF, INTERACTIVE_4, LINEAR_SEGMENTS, NETWORK_SIMPLEX_0, SIMPLE; +var Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePlacementStrategy', 323, Ljava_lang_Enum_2_classLit, values_63, valueOf_55); +function $clinit_NodePlacementStrategy$Map(){ + $clinit_NodePlacementStrategy$Map = emptyMethod; + $MAP_45 = createValueOfMap(($clinit_NodePlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_37, 323, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]))); +} + +var $MAP_45; +function $clinit_NodePromotionStrategy(){ + $clinit_NodePromotionStrategy = emptyMethod; + NONE_9 = new NodePromotionStrategy('NONE', 0); + NIKOLOV = new NodePromotionStrategy('NIKOLOV', 1); + NIKOLOV_PIXEL = new NodePromotionStrategy('NIKOLOV_PIXEL', 2); + NIKOLOV_IMPROVED = new NodePromotionStrategy('NIKOLOV_IMPROVED', 3); + NIKOLOV_IMPROVED_PIXEL = new NodePromotionStrategy('NIKOLOV_IMPROVED_PIXEL', 4); + DUMMYNODE_PERCENTAGE = new NodePromotionStrategy('DUMMYNODE_PERCENTAGE', 5); + NODECOUNT_PERCENTAGE = new NodePromotionStrategy('NODECOUNT_PERCENTAGE', 6); + NO_BOUNDARY = new NodePromotionStrategy('NO_BOUNDARY', 7); + MODEL_ORDER_LEFT_TO_RIGHT = new NodePromotionStrategy('MODEL_ORDER_LEFT_TO_RIGHT', 8); + MODEL_ORDER_RIGHT_TO_LEFT = new NodePromotionStrategy('MODEL_ORDER_RIGHT_TO_LEFT', 9); +} + +function NodePromotionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_56(name_0){ + $clinit_NodePromotionStrategy(); + return valueOf(($clinit_NodePromotionStrategy$Map() , $MAP_46), name_0); +} + +function values_64(){ + $clinit_NodePromotionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_37, 243, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY, MODEL_ORDER_LEFT_TO_RIGHT, MODEL_ORDER_RIGHT_TO_LEFT]); +} + +defineClass(243, 22, {3:1, 34:1, 22:1, 243:1}, NodePromotionStrategy); +var DUMMYNODE_PERCENTAGE, MODEL_ORDER_LEFT_TO_RIGHT, MODEL_ORDER_RIGHT_TO_LEFT, NIKOLOV, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, NIKOLOV_PIXEL, NODECOUNT_PERCENTAGE, NONE_9, NO_BOUNDARY; +var Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePromotionStrategy', 243, Ljava_lang_Enum_2_classLit, values_64, valueOf_56); +function $clinit_NodePromotionStrategy$Map(){ + $clinit_NodePromotionStrategy$Map = emptyMethod; + $MAP_46 = createValueOfMap(($clinit_NodePromotionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_37, 243, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY, MODEL_ORDER_LEFT_TO_RIGHT, MODEL_ORDER_RIGHT_TO_LEFT]))); +} + +var $MAP_46; +function $clinit_OrderingStrategy(){ + $clinit_OrderingStrategy = emptyMethod; + NONE_10 = new OrderingStrategy('NONE', 0); + NODES_AND_EDGES = new OrderingStrategy('NODES_AND_EDGES', 1); + PREFER_EDGES = new OrderingStrategy('PREFER_EDGES', 2); + PREFER_NODES = new OrderingStrategy('PREFER_NODES', 3); +} + +function OrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_57(name_0){ + $clinit_OrderingStrategy(); + return valueOf(($clinit_OrderingStrategy$Map() , $MAP_47), name_0); +} + +function values_65(){ + $clinit_OrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_37, 284, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES, PREFER_NODES]); +} + +defineClass(284, 22, {3:1, 34:1, 22:1, 284:1}, OrderingStrategy); +var NODES_AND_EDGES, NONE_10, PREFER_EDGES, PREFER_NODES; +var Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'OrderingStrategy', 284, Ljava_lang_Enum_2_classLit, values_65, valueOf_57); +function $clinit_OrderingStrategy$Map(){ + $clinit_OrderingStrategy$Map = emptyMethod; + $MAP_47 = createValueOfMap(($clinit_OrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_37, 284, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES, PREFER_NODES]))); +} + +var $MAP_47; +function $clinit_PortSortingStrategy(){ + $clinit_PortSortingStrategy = emptyMethod; + INPUT_ORDER = new PortSortingStrategy('INPUT_ORDER', 0); + PORT_DEGREE = new PortSortingStrategy('PORT_DEGREE', 1); +} + +function PortSortingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_58(name_0){ + $clinit_PortSortingStrategy(); + return valueOf(($clinit_PortSortingStrategy$Map() , $MAP_48), name_0); +} + +function values_66(){ + $clinit_PortSortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_37, 430, 0, [INPUT_ORDER, PORT_DEGREE]); +} + +defineClass(430, 22, {3:1, 34:1, 22:1, 430:1}, PortSortingStrategy); +var INPUT_ORDER, PORT_DEGREE; +var Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortSortingStrategy', 430, Ljava_lang_Enum_2_classLit, values_66, valueOf_58); +function $clinit_PortSortingStrategy$Map(){ + $clinit_PortSortingStrategy$Map = emptyMethod; + $MAP_48 = createValueOfMap(($clinit_PortSortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_37, 430, 0, [INPUT_ORDER, PORT_DEGREE]))); +} + +var $MAP_48; +function $clinit_PortType(){ + $clinit_PortType = emptyMethod; + UNDEFINED_0 = new PortType('UNDEFINED', 0); + INPUT = new PortType('INPUT', 1); + OUTPUT = new PortType('OUTPUT', 2); +} + +function PortType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_59(name_0){ + $clinit_PortType(); + return valueOf(($clinit_PortType$Map() , $MAP_49), name_0); +} + +function values_67(){ + $clinit_PortType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_37, 463, 0, [UNDEFINED_0, INPUT, OUTPUT]); +} + +defineClass(463, 22, {3:1, 34:1, 22:1, 463:1}, PortType); +var INPUT, OUTPUT, UNDEFINED_0; +var Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortType', 463, Ljava_lang_Enum_2_classLit, values_67, valueOf_59); +function $clinit_PortType$Map(){ + $clinit_PortType$Map = emptyMethod; + $MAP_49 = createValueOfMap(($clinit_PortType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_37, 463, 0, [UNDEFINED_0, INPUT, OUTPUT]))); +} + +var $MAP_49; +function $clinit_SelfLoopDistributionStrategy(){ + $clinit_SelfLoopDistributionStrategy = emptyMethod; + EQUALLY = new SelfLoopDistributionStrategy('EQUALLY', 0); + NORTH_2 = new SelfLoopDistributionStrategy('NORTH', 1); + NORTH_SOUTH = new SelfLoopDistributionStrategy('NORTH_SOUTH', 2); +} + +function SelfLoopDistributionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_60(name_0){ + $clinit_SelfLoopDistributionStrategy(); + return valueOf(($clinit_SelfLoopDistributionStrategy$Map() , $MAP_50), name_0); +} + +function values_68(){ + $clinit_SelfLoopDistributionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_37, 387, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]); +} + +defineClass(387, 22, {3:1, 34:1, 22:1, 387:1}, SelfLoopDistributionStrategy); +var EQUALLY, NORTH_2, NORTH_SOUTH; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopDistributionStrategy', 387, Ljava_lang_Enum_2_classLit, values_68, valueOf_60); +function $clinit_SelfLoopDistributionStrategy$Map(){ + $clinit_SelfLoopDistributionStrategy$Map = emptyMethod; + $MAP_50 = createValueOfMap(($clinit_SelfLoopDistributionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_37, 387, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]))); +} + +var $MAP_50; +function $clinit_SelfLoopOrderingStrategy(){ + $clinit_SelfLoopOrderingStrategy = emptyMethod; + STACKED = new SelfLoopOrderingStrategy('STACKED', 0); + REVERSE_STACKED = new SelfLoopOrderingStrategy('REVERSE_STACKED', 1); + SEQUENCED = new SelfLoopOrderingStrategy('SEQUENCED', 2); +} + +function SelfLoopOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_61(name_0){ + $clinit_SelfLoopOrderingStrategy(); + return valueOf(($clinit_SelfLoopOrderingStrategy$Map() , $MAP_51), name_0); +} + +function values_69(){ + $clinit_SelfLoopOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_37, 349, 0, [STACKED, REVERSE_STACKED, SEQUENCED]); +} + +defineClass(349, 22, {3:1, 34:1, 22:1, 349:1}, SelfLoopOrderingStrategy); +var REVERSE_STACKED, SEQUENCED, STACKED; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopOrderingStrategy', 349, Ljava_lang_Enum_2_classLit, values_69, valueOf_61); +function $clinit_SelfLoopOrderingStrategy$Map(){ + $clinit_SelfLoopOrderingStrategy$Map = emptyMethod; + $MAP_51 = createValueOfMap(($clinit_SelfLoopOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_37, 349, 0, [STACKED, REVERSE_STACKED, SEQUENCED]))); +} + +var $MAP_51; +function $getHorizontalSpacing(this$static, nt1, nt2){ + return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsHorizontal); +} + +function $getLocalSpacing(this$static, nt1, nt2, nodeTypeSpacingMapping){ + var layoutOption; + layoutOption = nodeTypeSpacingMapping[nt1.ordinal][nt2.ordinal]; + return $doubleValue(castToDouble($getProperty(this$static.graph_0, layoutOption))); +} + +function $getLocalSpacing_0(n1, n2, nodeTypeSpacingMapping){ + var layoutOption, s1, s2, t1, t2; + t1 = n1.type_0; + t2 = n2.type_0; + layoutOption = nodeTypeSpacingMapping[t1.ordinal][t2.ordinal]; + s1 = castToDouble(getIndividualOrDefault(n1, layoutOption)); + s2 = castToDouble(getIndividualOrDefault(n2, layoutOption)); + return $wnd.Math.max((checkCriticalNotNull(s1) , s1), (checkCriticalNotNull(s2) , s2)); +} + +function $getVerticalSpacing(this$static, nt1, nt2){ + return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsVertical); +} + +function $getVerticalSpacing_0(this$static, n1, n2){ + return $getLocalSpacing_0(n1, n2, this$static.nodeTypeSpacingOptionsVertical); +} + +function $nodeTypeSpacing(this$static, n1, n2, spacing){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacing); + setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacing); +} + +function $nodeTypeSpacing_0(this$static, n1, n2, spacingVert, spacingHorz){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n1.ordinal], n2.ordinal, spacingHorz); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n2.ordinal], n1.ordinal, spacingHorz); +} + +function $nodeTypeSpacing_1(this$static, nt, spacing){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacing); +} + +function $nodeTypeSpacing_2(this$static, nt, spacingVert, spacingHorz){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[nt.ordinal], nt.ordinal, spacingHorz); +} + +function Spacings(graph){ + var n; + this.graph_0 = graph; + n = ($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_37, 273, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT])).length; + this.nodeTypeSpacingOptionsHorizontal = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [601, 149], 0, [n, n], 2); + this.nodeTypeSpacingOptionsVertical = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [601, 149], 0, [n, n], 2); + $nodeTypeSpacing_2(this, NORMAL, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0), SPACING_NODE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, NORMAL, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing(this, NORMAL, NORTH_SOUTH_PORT, SPACING_EDGE_NODE); + $nodeTypeSpacing(this, NORMAL, EXTERNAL_PORT, SPACING_EDGE_NODE); + $nodeTypeSpacing_0(this, NORMAL, LABEL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_2(this, LONG_EDGE, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); + $nodeTypeSpacing(this, LONG_EDGE, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, LONG_EDGE, EXTERNAL_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing_0(this, LONG_EDGE, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_1(this, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, NORTH_SOUTH_PORT, EXTERNAL_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, NORTH_SOUTH_PORT, LABEL, SPACING_LABEL_NODE); + $nodeTypeSpacing_1(this, EXTERNAL_PORT, SPACING_PORT_PORT); + $nodeTypeSpacing_0(this, EXTERNAL_PORT, LABEL, SPACING_LABEL_PORT_VERTICAL, SPACING_LABEL_PORT_HORIZONTAL); + $nodeTypeSpacing_2(this, LABEL, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE); + $nodeTypeSpacing_2(this, BREAKING_POINT, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, NORMAL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); +} + +function getIndividualOrDefault(node, property){ + var individualSpacings, result; + result = null; + if ($hasProperty(node, ($clinit_LayeredOptions() , SPACING_INDIVIDUAL))) { + individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL), 96); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && (result = $getProperty($getGraph(node), property)); + return result; +} + +defineClass(312, 1, {312:1}, Spacings); +var Lorg_eclipse_elk_alg_layered_options_Spacings_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'Spacings', 312); +function $clinit_SplineRoutingMode(){ + $clinit_SplineRoutingMode = emptyMethod; + CONSERVATIVE = new SplineRoutingMode('CONSERVATIVE', 0); + CONSERVATIVE_SOFT = new SplineRoutingMode('CONSERVATIVE_SOFT', 1); + SLOPPY = new SplineRoutingMode('SLOPPY', 2); +} + +function SplineRoutingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_62(name_0){ + $clinit_SplineRoutingMode(); + return valueOf(($clinit_SplineRoutingMode$Map() , $MAP_52), name_0); +} + +function values_70(){ + $clinit_SplineRoutingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_37, 350, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]); +} + +defineClass(350, 22, {3:1, 34:1, 22:1, 350:1}, SplineRoutingMode); +var CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY; +var Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SplineRoutingMode', 350, Ljava_lang_Enum_2_classLit, values_70, valueOf_62); +function $clinit_SplineRoutingMode$Map(){ + $clinit_SplineRoutingMode$Map = emptyMethod; + $MAP_52 = createValueOfMap(($clinit_SplineRoutingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_37, 350, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]))); +} + +var $MAP_52; +function $clinit_ValidifyStrategy(){ + $clinit_ValidifyStrategy = emptyMethod; + NO = new ValidifyStrategy('NO', 0); + GREEDY_0 = new ValidifyStrategy('GREEDY', 1); + LOOK_BACK = new ValidifyStrategy('LOOK_BACK', 2); +} + +function ValidifyStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_63(name_0){ + $clinit_ValidifyStrategy(); + return valueOf(($clinit_ValidifyStrategy$Map() , $MAP_53), name_0); +} + +function values_71(){ + $clinit_ValidifyStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_37, 352, 0, [NO, GREEDY_0, LOOK_BACK]); +} + +defineClass(352, 22, {3:1, 34:1, 22:1, 352:1}, ValidifyStrategy); +var GREEDY_0, LOOK_BACK, NO; +var Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ValidifyStrategy', 352, Ljava_lang_Enum_2_classLit, values_71, valueOf_63); +function $clinit_ValidifyStrategy$Map(){ + $clinit_ValidifyStrategy$Map = emptyMethod; + $MAP_53 = createValueOfMap(($clinit_ValidifyStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_37, 352, 0, [NO, GREEDY_0, LOOK_BACK]))); +} + +var $MAP_53; +function $clinit_WrappingStrategy(){ + $clinit_WrappingStrategy = emptyMethod; + OFF_0 = new WrappingStrategy('OFF', 0); + SINGLE_EDGE = new WrappingStrategy('SINGLE_EDGE', 1); + MULTI_EDGE = new WrappingStrategy('MULTI_EDGE', 2); +} + +function WrappingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_64(name_0){ + $clinit_WrappingStrategy(); + return valueOf(($clinit_WrappingStrategy$Map() , $MAP_54), name_0); +} + +function values_72(){ + $clinit_WrappingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_37, 388, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]); +} + +defineClass(388, 22, {3:1, 34:1, 22:1, 388:1}, WrappingStrategy); +var MULTI_EDGE, OFF_0, SINGLE_EDGE; +var Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'WrappingStrategy', 388, Ljava_lang_Enum_2_classLit, values_72, valueOf_64); +function $clinit_WrappingStrategy$Map(){ + $clinit_WrappingStrategy$Map = emptyMethod; + $MAP_54 = createValueOfMap(($clinit_WrappingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_37, 388, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]))); +} + +var $MAP_54; +function $clinit_DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $dfs_3(this$static, n){ + var out, out$iterator, target; + if (this$static.visited[n.id_0]) { + return; + } + this$static.visited[n.id_0] = true; + this$static.active[n.id_0] = true; + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 18); + if ($isSelfLoop(out)) { + continue; + } + target = out.target.owner; + this$static.active[target.id_0]?$add_3(this$static.edgesToBeReversed, out):$dfs_3(this$static, target); + } + this$static.active[n.id_0] = false; +} + +function $process_57(this$static, graph, monitor){ + var edge, edge$iterator, i, index_0, n, node, node$iterator, nodeCount, nodes, source, source$iterator; + monitor.begin('Depth-first cycle removal', 1); + nodes = graph.layerlessNodes; + nodeCount = nodes.array.length; + this$static.sources = new ArrayList; + this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 28, nodeCount, 16, 1); + this$static.active = initUnidimensionalArray(Z_classLit, $intern_91, 28, nodeCount, 16, 1); + this$static.edgesToBeReversed = new ArrayList; + index_0 = 0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = index_0; + isEmpty_13($getIncomingEdges(node)) && $add_3(this$static.sources, node); + ++index_0; + } + for (source$iterator = new ArrayList$1(this$static.sources); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 10); + $dfs_3(this$static, source); + } + for (i = 0; i < nodeCount; i++) { + if (!this$static.visited[i]) { + n = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 10)); + $dfs_3(this$static, n); + } + } + for (edge$iterator = new ArrayList$1(this$static.edgesToBeReversed); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $reverse_0(edge, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + this$static.sources = null; + this$static.visited = null; + this$static.active = null; + this$static.edgesToBeReversed = null; + monitor.done_1(); +} + +function DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker(); +} + +defineClass(1398, 1, $intern_113, DepthFirstCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration(graph){ + return castTo(graph, 36) , INTERMEDIATE_PROCESSING_CONFIGURATION; +} +; +_.process = function process_54(graph, monitor){ + $process_57(this, castTo(graph, 36), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION; +var Lorg_eclipse_elk_alg_layered_p1cycles_DepthFirstCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'DepthFirstCycleBreaker', 1398); +function $clinit_GreedyCycleBreaker(){ + $clinit_GreedyCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_0 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $process_58(this$static, layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$iterator, edge$iterator0, edge$max, index_0, maxNode, maxNodes, maxOutflow, nextLeft, nextRight, node, node$iterator, node$iterator0, node$iterator1, nodes, outflow, outgoingEdges, port, port$array, port$index, port$iterator, port$max, ports, priority, shiftBase, sink, source, targetIx, unprocessedNodeCount; + monitor.begin('Greedy cycle removal', 1); + nodes = layeredGraph.layerlessNodes; + unprocessedNodeCount = nodes.array.length; + this$static.indeg = initUnidimensionalArray(I_classLit, $intern_49, 28, unprocessedNodeCount, 15, 1); + this$static.outdeg = initUnidimensionalArray(I_classLit, $intern_49, 28, unprocessedNodeCount, 15, 1); + this$static.mark = initUnidimensionalArray(I_classLit, $intern_49, 28, unprocessedNodeCount, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.id_0 = index_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 18); + if (edge.source.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 17).value_0; + this$static.indeg[index_0] += priority > 0?priority + 1:1; + } + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (edge.target.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 17).value_0; + this$static.outdeg[index_0] += priority > 0?priority + 1:1; + } + } + this$static.outdeg[index_0] == 0?$add_7(this$static.sinks, node):this$static.indeg[index_0] == 0 && $add_7(this$static.sources, node); + ++index_0; + } + nextRight = -1; + nextLeft = 1; + maxNodes = new ArrayList; + this$static.random_0 = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 234); + while (unprocessedNodeCount > 0) { + while (this$static.sinks.size_0 != 0) { + sink = castTo($removeFirst_0(this$static.sinks), 10); + this$static.mark[sink.id_0] = nextRight--; + $updateNeighbors(this$static, sink); + --unprocessedNodeCount; + } + while (this$static.sources.size_0 != 0) { + source = castTo($removeFirst_0(this$static.sources), 10); + this$static.mark[source.id_0] = nextLeft++; + $updateNeighbors(this$static, source); + --unprocessedNodeCount; + } + if (unprocessedNodeCount > 0) { + maxOutflow = $intern_43; + for (node$iterator1 = new ArrayList$1(nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_6(node$iterator1), 10); + if (this$static.mark[node.id_0] == 0) { + outflow = this$static.outdeg[node.id_0] - this$static.indeg[node.id_0]; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxNodes.array.length = 0; + maxOutflow = outflow; + } + push_1(maxNodes.array, node); + } + } + } + maxNode = this$static.chooseNodeWithMaxOutflow(maxNodes); + this$static.mark[maxNode.id_0] = nextLeft++; + $updateNeighbors(this$static, maxNode); + --unprocessedNodeCount; + } + } + shiftBase = nodes.array.length + 1; + for (index_0 = 0; index_0 < nodes.array.length; index_0++) { + this$static.mark[index_0] < 0 && (this$static.mark[index_0] += shiftBase); + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + ports = toPortArray(node.ports); + for (port$array = ports , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + outgoingEdges = toEdgeArray(port.outgoingEdges); + for (edge$array = outgoingEdges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + targetIx = edge.target.owner.id_0; + if (this$static.mark[node.id_0] > this$static.mark[targetIx]) { + $reverse_0(edge, true); + $setProperty_0(layeredGraph, CYCLIC, ($clinit_Boolean() , true)); + } + } + } + } + this$static.indeg = null; + this$static.outdeg = null; + this$static.mark = null; + $reset_0(this$static.sources); + $reset_0(this$static.sinks); + monitor.done_1(); +} + +function $updateNeighbors(this$static, node){ + var connectedPort, edge, edge$iterator, endpoint, index_0, port, port$iterator, priority; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + connectedPort = edge.source == port?edge.target:edge.source; + endpoint = connectedPort.owner; + if (node == endpoint) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 17).value_0; + priority < 0 && (priority = 0); + index_0 = endpoint.id_0; + if (this$static.mark[index_0] == 0) { + if (edge.target == connectedPort) { + this$static.indeg[index_0] -= priority + 1; + this$static.indeg[index_0] <= 0 && this$static.outdeg[index_0] > 0 && $add_7(this$static.sources, endpoint); + } + else { + this$static.outdeg[index_0] -= priority + 1; + this$static.outdeg[index_0] <= 0 && this$static.indeg[index_0] > 0 && $add_7(this$static.sinks, endpoint); + } + } + } + } +} + +function GreedyCycleBreaker(){ + $clinit_GreedyCycleBreaker(); + this.sources = new LinkedList; + this.sinks = new LinkedList; +} + +defineClass(793, 1, $intern_113, GreedyCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_0(graph){ + return castTo(graph, 36) , INTERMEDIATE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_55(layeredGraph, monitor){ + $process_58(this, castTo(layeredGraph, 36), monitor); +} +; +_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow(nodes){ + return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyCycleBreaker', 793); +function GreedyModelOrderCycleBreaker(){ + $clinit_GreedyCycleBreaker(); + GreedyCycleBreaker.call(this); +} + +defineClass(1401, 793, $intern_113, GreedyModelOrderCycleBreaker); +_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow_0(nodes){ + var minimumModelOrder, node, node$iterator, returnNode; + returnNode = null; + minimumModelOrder = $intern_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if ($hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && castTo($getProperty(node, MODEL_ORDER_1), 17).value_0 < minimumModelOrder) { + minimumModelOrder = castTo($getProperty(node, MODEL_ORDER_1), 17).value_0; + returnNode = node; + } + } + if (!returnNode) { + return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); + } + return returnNode; +} +; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyModelOrderCycleBreaker', 1401); +function $clinit_InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_1 = $addAfter($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P5_EDGE_ROUTING, REVERSED_EDGE_RESTORER); +} + +function $findCycles(this$static, node1, revEdges){ + var edge, edge$iterator, node2, port, port$iterator; + node1.id_0 = -1; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + node2 = edge.target.owner; + node1 != node2 && (node2.id_0 < 0?revEdges.add_2(edge):node2.id_0 > 0 && $findCycles(this$static, node2, revEdges)); + } + } + node1.id_0 = 0; +} + +function $process_59(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edge$iterator0, edge$iterator1, node, node$iterator, port, port$iterator, revEdges, source, source$iterator, sourcex, target, targetx; + monitor.begin('Interactive cycle breaking', 1); + revEdges = new ArrayList; + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 10); + source.id_0 = 1; + sourcex = $getInteractiveReferencePoint(source).x_0; + for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 18); + target = edge.target.owner; + if (target != source) { + targetx = $getInteractiveReferencePoint(target).x_0; + targetx < sourcex && (push_1(revEdges.array, edge) , true); + } + } + } + } + for (edge$iterator1 = new ArrayList$1(revEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_6(edge$iterator1), 18); + $reverse_0(edge, true); + } + revEdges.array.length = 0; + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 > 0 && $findCycles(this$static, node, revEdges); + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $reverse_0(edge, true); + } + revEdges.array.length = 0; + monitor.done_1(); +} + +function InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker(); +} + +defineClass(1399, 1, $intern_113, InteractiveCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_1(graph){ + return castTo(graph, 36) , INTERMEDIATE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_56(layeredGraph, monitor){ + $process_59(this, castTo(layeredGraph, 36), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p1cycles_InteractiveCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'InteractiveCycleBreaker', 1399); +function $clinit_ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_2 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $computeConstraintModelOrder(this$static, node, offset){ + var modelOrder; + modelOrder = 0; + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 171).ordinal) { + case 2: + modelOrder = 2 * -offset + this$static.firstSeparateModelOrder; + ++this$static.firstSeparateModelOrder; + break; + case 1: + modelOrder = -offset; + break; + case 3: + modelOrder = offset; + break; + case 4: + modelOrder = 2 * offset + this$static.lastSeparateModelOrder; + ++this$static.lastSeparateModelOrder; + } + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && (modelOrder += castTo($getProperty(node, MODEL_ORDER_1), 17).value_0); + return modelOrder; +} + +function $process_60(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edge$iterator0, modelOrderSource, modelOrderTarget, node, node$iterator, offset, port, port$iterator, revEdges, source, source$iterator, target; + monitor.begin('Model order cycle breaking', 1); + this$static.firstSeparateModelOrder = 0; + this$static.lastSeparateModelOrder = 0; + revEdges = new ArrayList; + offset = layeredGraph.layerlessNodes.array.length; + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && (offset = $wnd.Math.max(offset, castTo($getProperty(node, MODEL_ORDER_1), 17).value_0 + 1)); + } + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 10); + modelOrderSource = $computeConstraintModelOrder(this$static, source, offset); + for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 18); + target = edge.target.owner; + modelOrderTarget = $computeConstraintModelOrder(this$static, target, offset); + modelOrderTarget < modelOrderSource && (push_1(revEdges.array, edge) , true); + } + } + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $reverse_0(edge, true); + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + revEdges.array.length = 0; + monitor.done_1(); +} + +function ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker(); +} + +defineClass(1400, 1, $intern_113, ModelOrderCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_2(graph){ + return castTo(graph, 36) , INTERMEDIATE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_57(layeredGraph, monitor){ + $process_60(this, castTo(layeredGraph, 36), monitor); +} +; +_.firstSeparateModelOrder = 0; +_.lastSeparateModelOrder = 0; +var INTERMEDIATE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p1cycles_ModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'ModelOrderCycleBreaker', 1400); +function $clinit_BreadthFirstModelOrderLayerer(){ + $clinit_BreadthFirstModelOrderLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_0 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $process_61(this$static, thelayeredGraph, monitor){ + var currentDummyLayer, currentLayer, edge, edge$iterator, edge$iterator0, firstNode, layer, layer$iterator, layer$iterator0, layerId, node, node$iterator, node$iterator0, realNodes, toDelete; + monitor.begin('Breadth first model order layering', 1); + this$static.layeredGraph = thelayeredGraph; + realNodes = new ArrayList; + for (node$iterator0 = new ArrayList$1(this$static.layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && (push_1(realNodes.array, node) , true); + } + $clinit_Collections(); + $sort(realNodes, new BreadthFirstModelOrderLayerer$lambda$0$Type); + firstNode = true; + currentLayer = new Layer(this$static.layeredGraph); + currentDummyLayer = null; + $add_3(this$static.layeredGraph.layers, currentLayer); + for (node$iterator = new ArrayList$1(realNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (firstNode) { + $setLayer_0(node, currentLayer); + firstNode = false; + } + else { + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 18); + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , NORMAL) && edge.source.owner.layer == currentLayer || edge.source.owner.type_0 == LABEL && castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(edge.source.owner).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner.layer == currentLayer) { + currentDummyLayer = new Layer(this$static.layeredGraph); + $add_3(this$static.layeredGraph.layers, currentDummyLayer); + currentLayer = new Layer(this$static.layeredGraph); + $add_3(this$static.layeredGraph.layers, currentLayer); + } + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + edge.source.owner.type_0 == ($clinit_LNode$NodeType() , LABEL) && !edge.source.owner.layer && $setLayer_0(edge.source.owner, currentDummyLayer); + } + $setLayer_0(node, currentLayer); + } + } + this$static.layeredGraph.layerlessNodes.array.length = 0; + toDelete = new ArrayList; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + layer.nodes.array.length == 0 && (push_1(toDelete.array, layer) , true); + } + $removeAll_0(this$static.layeredGraph.layers, toDelete); + layerId = 0; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layer.id_0 = layerId; + ++layerId; + } + monitor.done_1(); +} + +function BreadthFirstModelOrderLayerer(){ + $clinit_BreadthFirstModelOrderLayerer(); +} + +function lambda$0_30(n1_0, n2_1){ + $clinit_BreadthFirstModelOrderLayerer(); + if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(n2_1, MODEL_ORDER_1)) { + return compare_5(castTo($getProperty(n1_0, MODEL_ORDER_1), 17).value_0, castTo($getProperty(n2_1, MODEL_ORDER_1), 17).value_0); + } + throw toJs(new UnsupportedGraphException('The BF model order layer assigner requires all real nodes to have a model order.')); +} + +defineClass(1413, 1, $intern_113, BreadthFirstModelOrderLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_3(graph){ + return castTo(graph, 36) , BASELINE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_58(thelayeredGraph, monitor){ + $process_61(this, castTo(thelayeredGraph, 36), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p2layers_BreadthFirstModelOrderLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'BreadthFirstModelOrderLayerer', 1413); +function BreadthFirstModelOrderLayerer$lambda$0$Type(){ +} + +defineClass(1414, 1, $intern_88, BreadthFirstModelOrderLayerer$lambda$0$Type); +_.compare_1 = function compare_63(arg0, arg1){ + return lambda$0_30(castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_144(other){ + return this === other; +} +; +_.reversed = function reversed_55(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_BreadthFirstModelOrderLayerer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'BreadthFirstModelOrderLayerer/lambda$0$Type', 1414); +function $clinit_CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_1 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $canAdd_0(n, l){ + var e, e$iterator, v; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + v = e.target.owner; + if (v.layer == l) { + return false; + } + } + return true; +} + +function $compareNodesInTopo(this$static, u, v){ + var inListU, inLsitV, itU, itV, iu, iv; + inListU = castTo($get(this$static.inTopo, u), 15); + inLsitV = castTo($get(this$static.inTopo, v), 15); + itU = inListU.listIterator_1(inListU.size_1()); + itV = inLsitV.listIterator_1(inLsitV.size_1()); + while (itU.hasPrevious() && itV.hasPrevious()) { + iu = castTo(itU.previous_0(), 17); + iv = castTo(itV.previous_0(), 17); + if (iu != iv) { + return compare_5(iu.value_0, iv.value_0); + } + } + return !itU.hasNext_0() && !itV.hasNext_0()?0:itU.hasNext_0()?1:-1; +} + +function $createLayer(graph, layers){ + var aLayer; + aLayer = new Layer(graph); + push_1(layers.array, aLayer); + return aLayer; +} + +function $dfs_4(this$static, start_0, v){ + var out, out$iterator, transitive, transitive$iterator, w; + if (this$static.nodeMark[v.id_0]) { + return; + } + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 18); + w = out.target.owner; + for (transitive$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(w).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(transitive$iterator);) { + transitive = castTo($next_0(transitive$iterator), 18); + transitive.source.owner == start_0 && (this$static.edgeMark[transitive.id_0] = true); + } + $dfs_4(this$static, start_0, w); + } + this$static.nodeMark[v.id_0] = true; +} + +function $lambda$1_3(this$static, n1_0, n2_1){ + return -compare_5(this$static.topoOrd[n1_0.id_0], this$static.topoOrd[n2_1.id_0]); +} + +function $process_62(this$static, layeredGraph, progressMonitor){ + var currentLayer, e, e$iterator, edgeIndex, i, index_0, j, layers, n, n$iterator, sinks, sources, src_0, tgt, u, v, v$iterator, v$iterator0, w; + progressMonitor.begin('Coffman-Graham Layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + progressMonitor.done_1(); + return; + } + w = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)), 17).value_0; + index_0 = 0; + edgeIndex = 0; + for (n$iterator = new ArrayList$1(layeredGraph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + n.id_0 = index_0++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + e.id_0 = edgeIndex++; + } + } + this$static.nodeMark = initUnidimensionalArray(Z_classLit, $intern_91, 28, index_0, 16, 1); + this$static.edgeMark = initUnidimensionalArray(Z_classLit, $intern_91, 28, edgeIndex, 16, 1); + this$static.inDeg = initUnidimensionalArray(I_classLit, $intern_49, 28, index_0, 15, 1); + this$static.outDeg = initUnidimensionalArray(I_classLit, $intern_49, 28, index_0, 15, 1); + this$static.topoOrd = initUnidimensionalArray(I_classLit, $intern_49, 28, index_0, 15, 1); + $clear(this$static.inTopo); + $transitiveReduction(this$static, layeredGraph); + sources = new PriorityQueue(new CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type(this$static)); + for (v$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator0.i < v$iterator0.this$01.array.length;) { + v = castTo($next_6(v$iterator0), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + this$static.edgeMark[e.id_0] || ++this$static.inDeg[v.id_0]; + } + this$static.inDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sources, v), 'Unable to add element to queue') , true); + } + i = 0; + while (sources.heap.array.length != 0) { + v = castTo($poll_0(sources), 10); + this$static.topoOrd[v.id_0] = i++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + if (this$static.edgeMark[e.id_0]) { + continue; + } + tgt = e.target.owner; + --this$static.inDeg[tgt.id_0]; + $put(this$static.inTopo, tgt, valueOf_3(this$static.topoOrd[v.id_0])); + this$static.inDeg[tgt.id_0] == 0 && (checkCriticalState_0($offer(sources, tgt), 'Unable to add element to queue') , true); + } + } + sinks = new PriorityQueue(new CoffmanGrahamLayerer$lambda$1$Type(this$static)); + for (v$iterator = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_6(v$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + this$static.edgeMark[e.id_0] || ++this$static.outDeg[v.id_0]; + } + this$static.outDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sinks, v), 'Unable to add element to queue') , true); + } + layers = new ArrayList; + currentLayer = $createLayer(layeredGraph, layers); + while (sinks.heap.array.length != 0) { + u = castTo($poll_0(sinks), 10); + (currentLayer.nodes.array.length >= w || !$canAdd_0(u, currentLayer)) && (currentLayer = $createLayer(layeredGraph, layers)); + $setLayer_0(u, currentLayer); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(u).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + if (this$static.edgeMark[e.id_0]) { + continue; + } + src_0 = e.source.owner; + --this$static.outDeg[src_0.id_0]; + this$static.outDeg[src_0.id_0] == 0 && (checkCriticalState_0($offer(sinks, src_0), 'Unable to add element to queue') , true); + } + } + for (j = layers.array.length - 1; j >= 0; --j) { + $add_3(layeredGraph.layers, (checkCriticalElementIndex(j, layers.array.length) , castTo(layers.array[j], 30))); + } + layeredGraph.layerlessNodes.array.length = 0; + progressMonitor.done_1(); +} + +function $transitiveReduction(this$static, graph){ + var out, out$iterator, start_0, start$iterator; + for (start$iterator = new ArrayList$1(graph.layerlessNodes); start$iterator.i < start$iterator.this$01.array.length;) { + start_0 = castTo($next_6(start$iterator), 10); + fill_3(this$static.nodeMark); + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(start_0).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 18); + $dfs_4(this$static, start_0, out.target.owner); + } + } +} + +function CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer(); + this.inTopo = new ArrayListMultimap; +} + +defineClass(1404, 1, $intern_113, CoffmanGrahamLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_4(graph){ + return castTo(graph, 36) , BASELINE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_59(layeredGraph, progressMonitor){ + $process_62(this, castTo(layeredGraph, 36), progressMonitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer', 1404); +function CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1405, 1, $intern_88, CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type); +_.compare_1 = function compare_64(arg0, arg1){ + return $compareNodesInTopo(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_145(other){ + return this === other; +} +; +_.reversed = function reversed_56(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type', 1405); +function CoffmanGrahamLayerer$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1406, 1, $intern_88, CoffmanGrahamLayerer$lambda$1$Type); +_.compare_1 = function compare_65(arg0, arg1){ + return $lambda$1_3(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_146(other){ + return this === other; +} +; +_.reversed = function reversed_57(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/lambda$1$Type', 1406); +function $clinit_DepthFirstModelOrderLayerer(){ + $clinit_DepthFirstModelOrderLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_2 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $addNodeToLayer(this$static, layerId, node){ + var edge, edge$iterator; + if (layerId < this$static.layeredGraph.layers.array.length) { + this$static.currentLayer = castTo($get_11(this$static.layeredGraph.layers, layerId), 30); + this$static.currentDummyLayer = castTo($get_11(this$static.layeredGraph.layers, layerId - 1), 30); + this$static.currentLayerId = layerId; + } + else { + this$static.currentDummyLayer = new Layer(this$static.layeredGraph); + this$static.currentDummyLayer.id_0 = layerId - 1; + $add_3(this$static.layeredGraph.layers, this$static.currentDummyLayer); + this$static.currentLayer = new Layer(this$static.layeredGraph); + this$static.currentLayer.id_0 = layerId; + $add_3(this$static.layeredGraph.layers, this$static.currentLayer); + this$static.currentLayerId = layerId; + } + $setLayer_0(node, this$static.currentLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + !edge.source.owner.layer && edge.source.owner.type_0 == ($clinit_LNode$NodeType() , LABEL) && $setLayer_0(edge.source.owner, this$static.currentDummyLayer); + } +} + +function $getMaxConnectedLayer(layerId, node){ + var edge, edge$iterator, maxLayer; + maxLayer = layerId; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + !!edge.source.owner.layer && (maxLayer = $wnd.Math.max(maxLayer, edge.source.owner.layer.id_0)); + } + return maxLayer; +} + +function $isConnectedToCurrentLayer(this$static, node){ + var connectedLayerViaDummy, connectedViaLabelDummy, directlyConnected, edge, edge$iterator; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (this$static.nodesToPlace.size_0 == 0) { + directlyConnected = edge.source.owner.type_0 == ($clinit_LNode$NodeType() , NORMAL) && !!edge.source.owner.layer && edge.source.owner.layer.id_0 == this$static.currentLayerId; + if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(edge.source.owner).val$inputs1.iterator_0(), new Iterables$10)))) { + connectedLayerViaDummy = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(edge.source.owner).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner.layer; + connectedViaLabelDummy = edge.source.owner.type_0 == LABEL && !!connectedLayerViaDummy && connectedLayerViaDummy.id_0 == this$static.currentLayerId; + } + else { + connectedViaLabelDummy = false; + } + } + else { + directlyConnected = edge.source.owner.type_0 == ($clinit_LNode$NodeType() , NORMAL) && edge.source.owner.id_0 == this$static.currentLayerId; + connectedViaLabelDummy = edge.source.owner.type_0 == LABEL && castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(edge.source.owner).val$inputs1.iterator_0(), new Iterables$10))), 18).source.owner.id_0 == this$static.currentLayerId; + } + if (directlyConnected || connectedViaLabelDummy) { + return true; + } + } + return false; +} + +function $placeNodesToPlace(this$static){ + var dummyLayer, newLayer, nodeToPlace, nodeToPlace$iterator; + this$static.maxToPlace = 0; + for (nodeToPlace$iterator = $listIterator_2(this$static.nodesToPlace, 0); nodeToPlace$iterator.currentNode != nodeToPlace$iterator.this$01.tail;) { + nodeToPlace = castTo($next_9(nodeToPlace$iterator), 10); + if (nodeToPlace.id_0 >= this$static.layeredGraph.layers.array.length) { + dummyLayer = new Layer(this$static.layeredGraph); + dummyLayer.id_0 = nodeToPlace.id_0 - 1; + $add_3(this$static.layeredGraph.layers, dummyLayer); + newLayer = new Layer(this$static.layeredGraph); + newLayer.id_0 = nodeToPlace.id_0; + $add_3(this$static.layeredGraph.layers, newLayer); + } + $setLayer_0(nodeToPlace, castTo($get_11(this$static.layeredGraph.layers, nodeToPlace.id_0), 30)); + } +} + +function $process_63(this$static, thelayeredGraph, monitor){ + var desiredLayer, edge, edge$iterator, firstNode, layer, layer$iterator, layer$iterator0, layerDiff, layerId, maxLayer, node, node$iterator, node$iterator0, realNodes, toDelete, toPlace, toPlace$iterator; + monitor.begin('Depth first model order layering', 1); + this$static.layeredGraph = thelayeredGraph; + realNodes = new ArrayList; + for (node$iterator0 = new ArrayList$1(this$static.layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && (push_1(realNodes.array, node) , true); + } + $clinit_Collections(); + $sort(realNodes, new DepthFirstModelOrderLayerer$lambda$0$Type); + firstNode = true; + this$static.currentLayer = new Layer(this$static.layeredGraph); + this$static.currentDummyLayer = null; + $add_3(this$static.layeredGraph.layers, this$static.currentLayer); + this$static.currentLayer.id_0 = 0; + this$static.currentLayerId = 0; + this$static.nodesToPlace = new LinkedList; + for (node$iterator = new ArrayList$1(realNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (firstNode) { + $setLayer_0(node, this$static.currentLayer); + firstNode = false; + } + else { + if ($isConnectedToCurrentLayer(this$static, node)) { + maxLayer = this$static.currentLayerId; + maxLayer = $getMaxConnectedLayer(maxLayer, node); + desiredLayer = maxLayer + 2; + layerDiff = maxLayer - this$static.currentLayerId; + if (this$static.nodesToPlace.size_0 == 0) { + $addNodeToLayer(this$static, desiredLayer, node); + } + else { + if (layerDiff > 0) { + for (toPlace$iterator = $listIterator_2(this$static.nodesToPlace, 0); toPlace$iterator.currentNode != toPlace$iterator.this$01.tail;) { + toPlace = castTo($next_9(toPlace$iterator), 10); + toPlace.id_0 += maxLayer - this$static.maxToPlace; + } + $placeNodesToPlace(this$static); + $reset_0(this$static.nodesToPlace); + $addNodeToLayer(this$static, desiredLayer, node); + } + else { + $add_7(this$static.nodesToPlace, node); + node.id_0 = desiredLayer; + this$static.maxToPlace = $wnd.Math.max(this$static.maxToPlace, desiredLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (!edge.source.owner.layer && edge.source.owner.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $add_7(this$static.nodesToPlace, edge.source.owner); + edge.source.owner.id_0 = desiredLayer - 1; + } + } + this$static.currentLayerId = desiredLayer; + } + } + } + else { + $placeNodesToPlace(this$static); + $reset_0(this$static.nodesToPlace); + desiredLayer = 0; + if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))) { + maxLayer = 0; + maxLayer = $getMaxConnectedLayer(maxLayer, node); + desiredLayer = maxLayer + 2; + $addNodeToLayer(this$static, desiredLayer, node); + } + else { + $add_7(this$static.nodesToPlace, node); + node.id_0 = 0; + this$static.maxToPlace = $wnd.Math.max(this$static.maxToPlace, 0); + this$static.currentLayer = castTo($get_11(this$static.layeredGraph.layers, 0), 30); + this$static.currentLayerId = 0; + } + } + } + } + this$static.nodesToPlace.size_0 == 0 || $placeNodesToPlace(this$static); + this$static.layeredGraph.layerlessNodes.array.length = 0; + toDelete = new ArrayList; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + layer.nodes.array.length == 0 && (push_1(toDelete.array, layer) , true); + } + $removeAll_0(this$static.layeredGraph.layers, toDelete); + layerId = 0; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layer.id_0 = layerId; + ++layerId; + } + monitor.done_1(); +} + +function DepthFirstModelOrderLayerer(){ + $clinit_DepthFirstModelOrderLayerer(); +} + +function lambda$0_31(n1_0, n2_1){ + $clinit_DepthFirstModelOrderLayerer(); + if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(n2_1, MODEL_ORDER_1)) { + return compare_5(castTo($getProperty(n1_0, MODEL_ORDER_1), 17).value_0, castTo($getProperty(n2_1, MODEL_ORDER_1), 17).value_0); + } + throw toJs(new UnsupportedGraphException('The DF model order layer assigner requires all real nodes to have a model order.')); +} + +defineClass(1415, 1, $intern_113, DepthFirstModelOrderLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_5(graph){ + return castTo(graph, 36) , BASELINE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_60(thelayeredGraph, monitor){ + $process_63(this, castTo(thelayeredGraph, 36), monitor); +} +; +_.currentLayerId = 0; +_.maxToPlace = 0; +var BASELINE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p2layers_DepthFirstModelOrderLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'DepthFirstModelOrderLayerer', 1415); +function DepthFirstModelOrderLayerer$lambda$0$Type(){ +} + +defineClass(1416, 1, $intern_88, DepthFirstModelOrderLayerer$lambda$0$Type); +_.compare_1 = function compare_66(arg0, arg1){ + return lambda$0_31(castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_147(other){ + return this === other; +} +; +_.reversed = function reversed_58(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_DepthFirstModelOrderLayerer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'DepthFirstModelOrderLayerer/lambda$0$Type', 1416); +function $checkNode(node1, graph){ + var edge, edge$iterator, layer1, layer2, newIndex, newLayer, node2, port, port$iterator, shiftNodes; + node1.id_0 = 1; + layer1 = node1.layer; + shiftNodes = new LinkedHashSet; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + node2 = edge.target.owner; + if (node1 != node2) { + layer2 = node2.layer; + if (layer2.id_0 <= layer1.id_0) { + newIndex = layer1.id_0 + 1; + if (newIndex == graph.layers.array.length) { + newLayer = new Layer(graph); + newLayer.id_0 = newIndex; + $add_3(graph.layers, newLayer); + $setLayer_0(node2, newLayer); + } + else { + newLayer = castTo($get_11(graph.layers, newIndex), 30); + $setLayer_0(node2, newLayer); + } + shiftNodes.map_0.put(node2, shiftNodes); + } + } + } + } + return shiftNodes; +} + +function $process_64(layeredGraph, monitor){ + var currentSpans, foundSpan, layer, layerIterator, layers, maxx, minx, nextIndex, node, node$iterator, node$iterator0, node$iterator1, nodeToCheck, shiftedNodes, span_0, span$iterator, spanIter; + monitor.begin('Interactive node layering', 1); + currentSpans = new ArrayList; + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + minx = node.pos.x_0; + maxx = minx + node.size_0.x_0; + maxx = $wnd.Math.max(minx + 1, maxx); + spanIter = new AbstractList$ListIteratorImpl(currentSpans, 0); + foundSpan = null; + while (spanIter.i < spanIter.this$01_0.size_1()) { + span_0 = (checkCriticalElement(spanIter.i < spanIter.this$01_0.size_1()) , castTo(spanIter.this$01_0.get_0(spanIter.last = spanIter.i++), 578)); + if (span_0.start_0 >= maxx) { + checkCriticalElement(spanIter.i > 0); + spanIter.this$01.get_0(spanIter.last = --spanIter.i); + break; + } + else if (span_0.end > minx) { + if (!foundSpan) { + $add_3(span_0.nodes, node); + span_0.start_0 = $wnd.Math.min(span_0.start_0, minx); + span_0.end = $wnd.Math.max(span_0.end, maxx); + foundSpan = span_0; + } + else { + $addAll_2(foundSpan.nodes, span_0.nodes); + foundSpan.end = $wnd.Math.max(foundSpan.end, span_0.end); + $remove_8(spanIter); + } + } + } + if (!foundSpan) { + foundSpan = new InteractiveLayerer$LayerSpan; + foundSpan.start_0 = minx; + foundSpan.end = maxx; + $add_1(spanIter, foundSpan); + $add_3(foundSpan.nodes, node); + } + } + layers = layeredGraph.layers; + nextIndex = 0; + for (span$iterator = new ArrayList$1(currentSpans); span$iterator.i < span$iterator.this$01.array.length;) { + span_0 = castTo($next_6(span$iterator), 578); + layer = new Layer(layeredGraph); + layer.id_0 = nextIndex++; + push_1(layers.array, layer); + for (node$iterator1 = new ArrayList$1(span_0.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_6(node$iterator1), 10); + $setLayer_0(node, layer); + node.id_0 = 0; + } + } + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.id_0 == 0) { + shiftedNodes = $checkNode(node, layeredGraph); + while (shiftedNodes.map_0.size_1() != 0) { + nodeToCheck = castTo(shiftedNodes.map_0.keySet_0().iterator_0().next_1(), 10); + shiftedNodes.map_0.remove_0(nodeToCheck) != null; + $addAll(shiftedNodes, $checkNode(nodeToCheck, layeredGraph)); + } + } + } + layerIterator = new AbstractList$ListIteratorImpl(layers, 0); + while (layerIterator.i < layerIterator.this$01_0.size_1()) { + (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 30)).nodes.array.length == 0 && $remove_8(layerIterator); + } + layeredGraph.layerlessNodes.array.length = 0; + monitor.done_1(); +} + +function InteractiveLayerer(){ +} + +defineClass(1407, 1, $intern_113, InteractiveLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_6(graph){ + return castTo(graph, 36) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_61(layeredGraph, monitor){ + $process_64(castTo(layeredGraph, 36), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer', 1407); +function InteractiveLayerer$LayerSpan(){ + this.nodes = new ArrayList; +} + +defineClass(578, 1, {578:1}, InteractiveLayerer$LayerSpan); +_.end = 0; +_.start_0 = 0; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer$LayerSpan_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer/LayerSpan', 578); +function $clinit_LongestPathLayerer(){ + $clinit_LongestPathLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_3 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $process_65(this$static, thelayeredGraph, monitor){ + var index_0, node, node$iterator, node$iterator0, nodes; + monitor.begin('Longest path layering', 1); + this$static.layeredGraph = thelayeredGraph; + nodes = this$static.layeredGraph.layerlessNodes; + this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_49, 28, nodes.array.length, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.id_0 = index_0; + this$static.nodeHeights[index_0] = -1; + ++index_0; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $visit(this$static, node); + } + nodes.array.length = 0; + this$static.layeredGraph = null; + this$static.nodeHeights = null; + monitor.done_1(); +} + +function $putNode(this$static, node, height){ + var i, layers; + layers = this$static.layeredGraph.layers; + for (i = layers.array.length; i < height; i++) { + $add_2(layers, 0, new Layer(this$static.layeredGraph)); + } + $setLayer_0(node, castTo($get_11(layers, layers.array.length - height), 30)); + this$static.nodeHeights[node.id_0] = height; +} + +function $visit(this$static, node){ + var edge, edge$iterator, height, maxHeight, port, port$iterator, targetHeight, targetNode; + height = this$static.nodeHeights[node.id_0]; + if (height >= 0) { + return height; + } + else { + maxHeight = 1; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + targetNode = edge.target.owner; + if (node != targetNode) { + targetHeight = $visit(this$static, targetNode); + maxHeight = $wnd.Math.max(maxHeight, targetHeight + 1); + } + } + } + $putNode(this$static, node, maxHeight); + return maxHeight; + } +} + +function LongestPathLayerer(){ + $clinit_LongestPathLayerer(); +} + +defineClass(1403, 1, $intern_113, LongestPathLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_7(graph){ + return castTo(graph, 36) , BASELINE_PROCESSING_CONFIGURATION_3; +} +; +_.process = function process_62(thelayeredGraph, monitor){ + $process_65(this, castTo(thelayeredGraph, 36), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_3; +var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathLayerer', 1403); +function $clinit_LongestPathSourceLayerer(){ + $clinit_LongestPathSourceLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_4 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $process_66(this$static, thelayeredGraph, monitor){ + var index_0, node, node$iterator, node$iterator0, nodes; + monitor.begin('Longest path to source layering', 1); + this$static.layeredGraph = thelayeredGraph; + nodes = this$static.layeredGraph.layerlessNodes; + this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_49, 28, nodes.array.length, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.id_0 = index_0; + this$static.nodeHeights[index_0] = -1; + ++index_0; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $visit_0(this$static, node); + } + nodes.array.length = 0; + this$static.layeredGraph = null; + this$static.nodeHeights = null; + monitor.done_1(); +} + +function $putNode_0(this$static, node, height){ + var i, layers; + layers = this$static.layeredGraph.layers; + for (i = layers.array.length; i < height; i++) { + $add_2(layers, layers.array.length, new Layer(this$static.layeredGraph)); + } + $setLayer_0(node, (checkCriticalElementIndex(height - 1, layers.array.length) , castTo(layers.array[height - 1], 30))); + this$static.nodeHeights[node.id_0] = height; +} + +function $visit_0(this$static, node){ + var edge, edge$iterator, height, maxHeight, port, port$iterator, sourceHeight, sourceNode; + height = this$static.nodeHeights[node.id_0]; + if (height >= 0) { + return height; + } + else { + maxHeight = 1; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + sourceNode = edge.source.owner; + if (node != sourceNode) { + sourceHeight = $visit_0(this$static, sourceNode); + maxHeight = $wnd.Math.max(maxHeight, sourceHeight + 1); + } + } + } + $putNode_0(this$static, node, maxHeight); + return maxHeight; + } +} + +function LongestPathSourceLayerer(){ + $clinit_LongestPathSourceLayerer(); +} + +defineClass(1412, 1, $intern_113, LongestPathSourceLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_8(graph){ + return castTo(graph, 36) , BASELINE_PROCESSING_CONFIGURATION_4; +} +; +_.process = function process_63(thelayeredGraph, monitor){ + $process_66(this, castTo(thelayeredGraph, 36), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_4; +var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathSourceLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathSourceLayerer', 1412); +function $clinit_MinWidthLayerer(){ + $clinit_MinWidthLayerer = emptyMethod; + UPPERBOUND_ON_WIDTH_RANGE = closed_0(valueOf_3(1), valueOf_3(4)); + COMPENSATOR_RANGE = closed_0(valueOf_3(1), valueOf_3(2)); +} + +function $computeMinWidthLayering(this$static, upperBoundOnWidth, compensator, nodes, nodeSuccessors){ + var alreadyPlacedInCurrentLayer, alreadyPlacedInOtherLayers, currentLayer, currentNode, currentSpanningEdges, goingOutFromThisLayer, inDeg, layers, maxWidth, outDeg, realWidth, ubwConsiderSize, unplacedNodes, widthCurrent, widthUp; + layers = new ArrayList; + unplacedNodes = newLinkedHashSet(nodes); + ubwConsiderSize = upperBoundOnWidth * this$static.avgSize; + inDeg = 0; + outDeg = 0; + alreadyPlacedInCurrentLayer = new HashSet; + alreadyPlacedInOtherLayers = new HashSet; + currentLayer = new ArrayList; + widthCurrent = 0; + widthUp = 0; + maxWidth = 0; + realWidth = 0; + currentSpanningEdges = 0; + goingOutFromThisLayer = 0; + while (unplacedNodes.map_0.size_1() != 0) { + currentNode = $selectNode(unplacedNodes, nodeSuccessors, alreadyPlacedInOtherLayers); + if (currentNode) { + unplacedNodes.map_0.remove_0(currentNode) != null; + push_1(currentLayer.array, currentNode); + alreadyPlacedInCurrentLayer.map_0.put(currentNode, alreadyPlacedInCurrentLayer); + outDeg = this$static.outDegree[currentNode.id_0]; + widthCurrent += this$static.normSize[currentNode.id_0] - outDeg * this$static.dummySize; + inDeg = this$static.inDegree[currentNode.id_0]; + widthUp += inDeg * this$static.dummySize; + goingOutFromThisLayer += outDeg * this$static.dummySize; + realWidth += this$static.normSize[currentNode.id_0]; + } + if (!currentNode || unplacedNodes.map_0.size_1() == 0 || widthCurrent >= ubwConsiderSize && this$static.normSize[currentNode.id_0] > outDeg * this$static.dummySize || widthUp >= compensator * ubwConsiderSize) { + push_1(layers.array, currentLayer); + currentLayer = new ArrayList; + $addAll(alreadyPlacedInOtherLayers, alreadyPlacedInCurrentLayer); + alreadyPlacedInCurrentLayer.map_0.clear_0(); + currentSpanningEdges -= goingOutFromThisLayer; + maxWidth = $wnd.Math.max(maxWidth, currentSpanningEdges * this$static.dummySize + realWidth); + currentSpanningEdges += widthUp; + widthCurrent = widthUp; + widthUp = 0; + goingOutFromThisLayer = 0; + realWidth = 0; + } + } + return new Pair(maxWidth, layers); +} + +function $countEdgesExceptSelfLoops(edges){ + var edge, edge$iterator, i; + i = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + edge.source.owner == edge.target.owner || ++i; + } + return i; +} + +function $precalcSuccessors(nodes){ + var edge, edge$iterator, node, node$iterator, outEdges, outNodes, successors; + successors = newArrayListWithCapacity(nodes.array.length); + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + outNodes = new HashSet; + outEdges = $getOutgoingEdges(node); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(outEdges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + edge.source.owner == edge.target.owner || $add_6(outNodes, edge.target.owner); + } + push_1(successors.array, outNodes); + } + return successors; +} + +function $process_67(this$static, layeredGraph, progressMonitor){ + var c, cEnd, cStart, candidateLayering, compensator, currentLayer, i, layerList, layerList$iterator, layering, layers, minNumOfLayers, minWidth, newNumOfLayers, newWidth, node, node$iterator, node$iterator0, node$iterator1, nodeSuccessors, notInserted, numOfNodes, result, size_0, ubw, ubwEnd, ubwStart, upperBoundOnWidth; + progressMonitor.begin('MinWidth layering', 1); + layers = layeredGraph.layers; + notInserted = layeredGraph.layerlessNodes; + upperBoundOnWidth = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)), 17).value_0; + compensator = castTo($getProperty(layeredGraph, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0), 17).value_0; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + this$static.minimumNodeSize = $intern_60; + for (node$iterator0 = new ArrayList$1(notInserted); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + size_0 = node.size_0.y_0; + this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); + } + this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); + numOfNodes = notInserted.array.length; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_49, 28, numOfNodes, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_49, 28, numOfNodes, 15, 1); + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_66, 28, numOfNodes, 15, 1); + i = 0; + this$static.avgSize = 0; + for (node$iterator1 = new ArrayList$1(notInserted); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_6(node$iterator1), 10); + node.id_0 = i++; + this$static.inDegree[node.id_0] = $countEdgesExceptSelfLoops($getIncomingEdges(node)); + this$static.outDegree[node.id_0] = $countEdgesExceptSelfLoops($getOutgoingEdges(node)); + this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; + this$static.avgSize += this$static.normSize[node.id_0]; + } + this$static.dummySize /= this$static.minimumNodeSize; + this$static.avgSize /= numOfNodes; + nodeSuccessors = $precalcSuccessors(notInserted); + $sort(notInserted, reverseOrder(new MinWidthLayerer$MinOutgoingEdgesComparator(this$static))); + minWidth = $intern_60; + minNumOfLayers = $intern_0; + candidateLayering = null; + ubwStart = upperBoundOnWidth; + ubwEnd = upperBoundOnWidth; + cStart = compensator; + cEnd = compensator; + if (upperBoundOnWidth < 0) { + ubwStart = castTo(UPPERBOUND_ON_WIDTH_RANGE.lowerBound.endpoint_0(), 17).value_0; + ubwEnd = castTo(UPPERBOUND_ON_WIDTH_RANGE.upperBound.endpoint_0(), 17).value_0; + } + if (compensator < 0) { + cStart = castTo(COMPENSATOR_RANGE.lowerBound.endpoint_0(), 17).value_0; + cEnd = castTo(COMPENSATOR_RANGE.upperBound.endpoint_0(), 17).value_0; + } + for (ubw = ubwStart; ubw <= ubwEnd; ubw++) { + for (c = cStart; c <= cEnd; c++) { + result = $computeMinWidthLayering(this$static, ubw, c, notInserted, nodeSuccessors); + newWidth = $doubleValue(castToDouble(result.first)); + layering = castTo(result.second, 15); + newNumOfLayers = layering.size_1(); + if (newWidth < minWidth || newWidth == minWidth && newNumOfLayers < minNumOfLayers) { + minWidth = newWidth; + minNumOfLayers = newNumOfLayers; + candidateLayering = layering; + } + } + } + for (layerList$iterator = candidateLayering.iterator_0(); layerList$iterator.hasNext_0();) { + layerList = castTo(layerList$iterator.next_1(), 15); + currentLayer = new Layer(layeredGraph); + for (node$iterator = layerList.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + $setLayer_0(node, currentLayer); + } + push_1(layers.array, currentLayer); + } + reverse_2(layers); + notInserted.array.length = 0; + progressMonitor.done_1(); +} + +function $selectNode(nodes, successors, targets){ + var node, node$iterator; + for (node$iterator = nodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + if ($containsAll(targets, castTo($get_11(successors, node.id_0), 16))) { + return node; + } + } + return null; +} + +function MinWidthLayerer(){ + $clinit_MinWidthLayerer(); +} + +defineClass(1410, 1, $intern_113, MinWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_9(graph){ + return castTo(graph, 36) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_64(layeredGraph, progressMonitor){ + $process_67(this, castTo(layeredGraph, 36), progressMonitor); +} +; +_.avgSize = 0; +_.dummySize = 0; +_.minimumNodeSize = 0; +var COMPENSATOR_RANGE, UPPERBOUND_ON_WIDTH_RANGE; +var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer', 1410); +function $compare_21(this$static, o1, o2){ + var outs1, outs2; + outs1 = this$static.this$01.outDegree[o1.id_0]; + outs2 = this$static.this$01.outDegree[o2.id_0]; + if (outs1 < outs2) { + return -1; + } + if (outs1 == outs2) { + return 0; + } + return 1; +} + +function MinWidthLayerer$MinOutgoingEdgesComparator(this$0){ + this.this$01 = this$0; +} + +defineClass(1411, 1, $intern_88, MinWidthLayerer$MinOutgoingEdgesComparator); +_.compare_1 = function compare_67(o1, o2){ + return $compare_21(this, castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_148(other){ + return this === other; +} +; +_.reversed = function reversed_59(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer$MinOutgoingEdgesComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer/MinOutgoingEdgesComparator', 1411); +function $clinit_NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_5 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $connectedComponents(this$static, theNodes){ + var components, counter, node, node$iterator, node$iterator0; + this$static.nodeVisited == null || this$static.nodeVisited.length < theNodes.array.length?(this$static.nodeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 28, theNodes.array.length, 16, 1)):fill_3(this$static.nodeVisited); + this$static.componentNodes = new ArrayList; + counter = 0; + for (node$iterator0 = new ArrayList$1(theNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + node.id_0 = counter++; + } + components = new LinkedList; + for (node$iterator = new ArrayList$1(theNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (!this$static.nodeVisited[node.id_0]) { + $connectedComponentsDFS(this$static, node); + components.size_0 == 0 || (checkCriticalElement(components.size_0 != 0) , castTo(components.header.next_0.value_0, 15)).size_1() < this$static.componentNodes.array.length?$addFirst_0(components, this$static.componentNodes):$addLast_0(components, this$static.componentNodes); + this$static.componentNodes = new ArrayList; + } + } + return components; +} + +function $connectedComponentsDFS(this$static, node){ + var edge, edge$iterator, opposite, port, port$iterator; + this$static.nodeVisited[node.id_0] = true; + $add_3(this$static.componentNodes, node); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + opposite = $getOpposite(port, edge).owner; + this$static.nodeVisited[opposite.id_0] || $connectedComponentsDFS(this$static, opposite); + } + } +} + +function $getOpposite(port, edge){ + if (edge.source == port) { + return edge.target; + } + else if (edge.target == port) { + return edge.source; + } + throw toJs(new IllegalArgumentException_0('Input edge is not connected to the input port.')); +} + +function $initialize_4(theNodes){ + var graph, lEdge, lEdge$iterator, lNode, lNode$iterator, lNode$iterator0, nNode, nodeMap; + nodeMap = new HashMap; + graph = new NGraph; + for (lNode$iterator0 = theNodes.iterator_0(); lNode$iterator0.hasNext_0();) { + lNode = castTo(lNode$iterator0.next_1(), 10); + nNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), graph); + $put_9(nodeMap.hashCodeMap, lNode, nNode); + } + for (lNode$iterator = theNodes.iterator_0(); lNode$iterator.hasNext_0();) { + lNode = castTo(lNode$iterator.next_1(), 10); + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 18); + if ($isSelfLoop(lEdge)) { + continue; + } + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_SHORTNESS_0)), 17).value_0)), 1), castTo($get_10(nodeMap, lEdge.source.owner), 125)), castTo($get_10(nodeMap, lEdge.target.owner), 125))); + } + } + return graph; +} + +function $process_68(this$static, theLayeredGraph, monitor){ + var connComp, connComp$iterator, connectedComponents, graph, iterLimit, l, l$iterator, lNode, layerIdx, layers, nNode, nNode$iterator, previousLayeringNodeCounts, theNodes, thoroughness; + monitor.begin('Network simplex layering', 1); + this$static.layeredGraph = theLayeredGraph; + thoroughness = castTo($getProperty(theLayeredGraph, ($clinit_LayeredOptions() , THOROUGHNESS_0)), 17).value_0 * 4; + theNodes = this$static.layeredGraph.layerlessNodes; + if (theNodes.array.length < 1) { + monitor.done_1(); + return; + } + connectedComponents = $connectedComponents(this$static, theNodes); + previousLayeringNodeCounts = null; + for (connComp$iterator = $listIterator_2(connectedComponents, 0); connComp$iterator.currentNode != connComp$iterator.this$01.tail;) { + connComp = castTo($next_9(connComp$iterator), 15); + iterLimit = thoroughness * round_int($wnd.Math.sqrt(connComp.size_1())); + graph = $initialize_4(connComp); + $execute_0($withBalancing($withPreviousLayering($withIterationLimit(forGraph(graph), iterLimit), previousLayeringNodeCounts), true), monitor.subTask(1)); + layers = this$static.layeredGraph.layers; + for (nNode$iterator = new ArrayList$1(graph.nodes); nNode$iterator.i < nNode$iterator.this$01.array.length;) { + nNode = castTo($next_6(nNode$iterator), 125); + while (layers.array.length <= nNode.layer) { + $add_2(layers, layers.array.length, new Layer(this$static.layeredGraph)); + } + lNode = castTo(nNode.origin_0, 10); + $setLayer_0(lNode, castTo($get_11(layers, nNode.layer), 30)); + } + if (connectedComponents.size_0 > 1) { + previousLayeringNodeCounts = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.layeredGraph.layers.array.length, 15, 1); + layerIdx = 0; + for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + previousLayeringNodeCounts[layerIdx++] = l.nodes.array.length; + } + } + } + theNodes.array.length = 0; + this$static.componentNodes = null; + this$static.layeredGraph = null; + this$static.nodeVisited = null; + monitor.done_1(); +} + +function NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer(); +} + +defineClass(1402, 1, $intern_113, NetworkSimplexLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_10(graph){ + return castTo(graph, 36) , BASELINE_PROCESSING_CONFIGURATION_5; +} +; +_.process = function process_65(theLayeredGraph, monitor){ + $process_68(this, castTo(theLayeredGraph, 36), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_5; +var Lorg_eclipse_elk_alg_layered_p2layers_NetworkSimplexLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'NetworkSimplexLayerer', 1402); +function $computeDegrees(this$static){ + var node, node$iterator; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.sortedLayerlessNodes.array.length, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.sortedLayerlessNodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + this$static.inDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + this$static.outDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + } +} + +function $computeNormalizedSize(this$static){ + var node, node$iterator; + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_66, 28, this$static.sortedLayerlessNodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; + } +} + +function $computeSortedNodes(this$static){ + var node, node$iterator, unsortedNodes; + unsortedNodes = this$static.currentGraph.layerlessNodes; + this$static.sortedLayerlessNodes = (checkNotNull(unsortedNodes) , new ArrayList_1(unsortedNodes)); + for (node$iterator = new ArrayList$1(unsortedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = $getRank(node).value_0; + } + $clinit_Collections(); + $sort(this$static.sortedLayerlessNodes, new StretchWidthLayerer$1); +} + +function $computeSuccessors(this$static){ + var currSucc, edge, edge$iterator, i, node, node$iterator; + i = 0; + this$static.successors = new ArrayList; + currSucc = new HashSet; + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = i; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + $add_6(currSucc, edge.target.owner); + } + currSucc.map_0.remove_0(node) != null; + $add_3(this$static.successors, new HashSet_1(currSucc)); + currSucc.map_0.clear_0(); + ++i; + } +} + +function $conditionGoUp(this$static){ + var a, b; + a = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0] > this$static.maxWidth; + b = this$static.widthUp + this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize > this$static.maxWidth * this$static.upperLayerInfluence * this$static.dummySize; + return a || b; +} + +function $getAverageOutDegree(this$static){ + var allOut, node, node$iterator; + allOut = 0; + for (node$iterator = new ArrayList$1(this$static.currentGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + allOut += size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + } + return allOut / this$static.currentGraph.layerlessNodes.array.length; +} + +function $getRank(node){ + var max_0, pre, preEdge, preEdge$iterator, temp; + max_0 = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + for (preEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(preEdge$iterator);) { + preEdge = castTo($next_0(preEdge$iterator), 18); + pre = preEdge.source.owner; + temp = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(pre).val$inputs1.iterator_0(), new Iterables$10))); + max_0 = $wnd.Math.max(max_0, temp); + } + return valueOf_3(max_0); +} + +function $minMaxNodeSize(this$static){ + var node, node$iterator, size_0; + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + size_0 = node.size_0.y_0; + this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); + this$static.maximumNodeSize = $wnd.Math.max(this$static.maximumNodeSize, size_0); + } +} + +function $process_69(this$static, layeredGraph, progressMonitor){ + var currentLayer; + progressMonitor.begin('StretchWidth layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + progressMonitor.done_1(); + return; + } + this$static.currentGraph = layeredGraph; + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.minimumNodeSize = $intern_60; + this$static.maximumNodeSize = $intern_61; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + $computeSortedNodes(this$static); + $computeSuccessors(this$static); + $computeDegrees(this$static); + $minMaxNodeSize(this$static); + $computeNormalizedSize(this$static); + this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); + this$static.maximumNodeSize = $wnd.Math.max(1, this$static.maximumNodeSize); + this$static.dummySize = this$static.dummySize / this$static.minimumNodeSize; + this$static.maxWidth = this$static.maximumNodeSize / this$static.minimumNodeSize; + this$static.upperLayerInfluence = $getAverageOutDegree(this$static); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); + this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); + while (this$static.tempLayerlessNodes.array.length != 0) { + this$static.selectedNode = $selectNode_0(this$static); + if (!this$static.selectedNode || $conditionGoUp(this$static) && this$static.alreadyPlacedNodes.map_0.size_1() != 0) { + $updateOutGoing(this$static, currentLayer); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + $addAll(this$static.alreadyPlacedInOtherLayers, this$static.alreadyPlacedNodes); + this$static.alreadyPlacedNodes.map_0.clear_0(); + this$static.widthCurrent = this$static.widthUp; + this$static.widthUp = 0; + } + else { + if ($conditionGoUp(this$static)) { + this$static.currentGraph.layers.array.length = 0; + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.alreadyPlacedNodes.map_0.clear_0(); + this$static.alreadyPlacedInOtherLayers.map_0.clear_0(); + ++this$static.maxWidth; + this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); + this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); + } + else { + $setLayer_0(this$static.selectedNode, currentLayer); + $remove_12(this$static.tempLayerlessNodes, this$static.selectedNode); + $add_6(this$static.alreadyPlacedNodes, this$static.selectedNode); + this$static.widthCurrent = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0]; + this$static.widthUp += this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize; + } + } + } + layeredGraph.layerlessNodes.array.length = 0; + reverse_2(layeredGraph.layers); + progressMonitor.done_1(); +} + +function $selectNode_0(this$static){ + var node, node$iterator; + for (node$iterator = new ArrayList$1(this$static.tempLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (this$static.remainingOutGoing[node.id_0] <= 0) { + return node; + } + } + return null; +} + +function $updateOutGoing(this$static, currentLayer){ + var edge, edge$iterator, node, node$iterator, pos; + for (node$iterator = new ArrayList$1(currentLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + pos = edge.source.owner.id_0; + this$static.remainingOutGoing[pos] = this$static.remainingOutGoing[pos] - 1; + } + } +} + +function StretchWidthLayerer(){ + this.alreadyPlacedNodes = new HashSet; + this.alreadyPlacedInOtherLayers = new HashSet; +} + +defineClass(1408, 1, $intern_113, StretchWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_11(graph){ + return castTo(graph, 36) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_66(layeredGraph, progressMonitor){ + $process_69(this, castTo(layeredGraph, 36), progressMonitor); +} +; +_.dummySize = 0; +_.maxWidth = 0; +_.maximumNodeSize = 0; +_.minimumNodeSize = 0; +_.upperLayerInfluence = 0; +_.widthCurrent = 0; +_.widthUp = 0; +var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer', 1408); +function $compare_22(o1, o2){ + if (o1.id_0 < o2.id_0) { + return 1; + } + else if (o1.id_0 > o2.id_0) { + return -1; + } + return 0; +} + +function StretchWidthLayerer$1(){ +} + +defineClass(1409, 1, $intern_88, StretchWidthLayerer$1); +_.compare_1 = function compare_68(o1, o2){ + return $compare_22(castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_149(other){ + return this === other; +} +; +_.reversed = function reversed_60(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer/1', 1409); +function create_15(cmt, r, currentOrder){ + return cmt == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)?new GreedyPortDistributor:$nextInternal(r, 1) != 0?new NodeRelativePortDistributor(currentOrder.length):new LayerTotalPortDistributor(currentOrder.length); +} + +function $calculateInLayerPortsBarycenterValues(this$static, node){ + var barycenter, connectedPort, connectedPort$iterator, inLayerConnections, inLayerPort, inLayerPort$iterator, layerSize, nodeIndexInLayer, portSide, sum; + nodeIndexInLayer = this$static.nodePositions[node.layer.id_0][node.id_0] + 1; + layerSize = node.layer.nodes.array.length + 1; + for (inLayerPort$iterator = new ArrayList$1(this$static.inLayerPorts); inLayerPort$iterator.i < inLayerPort$iterator.this$01.array.length;) { + inLayerPort = castTo($next_6(inLayerPort$iterator), 12); + sum = 0; + inLayerConnections = 0; + for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(inLayerPort), new LPort$2(inLayerPort)]))); $hasNext_1(connectedPort$iterator);) { + connectedPort = castTo($next_0(connectedPort$iterator), 12); + if (connectedPort.owner.layer == node.layer) { + sum += $positionOf(this$static, connectedPort.owner) + 1; + ++inLayerConnections; + } + } + barycenter = sum / inLayerConnections; + portSide = inLayerPort.side; + portSide == ($clinit_PortSide() , EAST_2)?barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + (layerSize - barycenter)):portSide == WEST_2 && (barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - (layerSize - barycenter))); + } +} + +function $calculatePortRanks(this$static, layer, portType){ + var consumedRank, nodeIx; + consumedRank = 0; + for (nodeIx = 0; nodeIx < layer.length; nodeIx++) { + consumedRank += this$static.calculatePortRanks(layer[nodeIx], consumedRank, portType); + } +} + +function $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy){ + var input_0, output, portDummyPort, portDummyPort$iterator, sum; + input_0 = false; + output = false; + for (portDummyPort$iterator = new ArrayList$1(portDummy.ports); portDummyPort$iterator.i < portDummyPort$iterator.this$01.array.length;) { + portDummyPort = castTo($next_6(portDummyPort$iterator), 12); + maskUndefined($getProperty(portDummyPort, ($clinit_InternalProperties_1() , ORIGIN_0))) === maskUndefined(port) && (portDummyPort.outgoingEdges.array.length == 0?portDummyPort.incomingEdges.array.length == 0 || (input_0 = true):(output = true)); + } + sum = 0; + input_0 && input_0 ^ output?(sum = port.side == ($clinit_PortSide() , NORTH_3)?-this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]:absurdlyLargeFloat - this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]):output && input_0 ^ output?(sum = this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0] + 1):input_0 && output && (sum = port.side == ($clinit_PortSide() , NORTH_3)?0:absurdlyLargeFloat / 2); + return sum; +} + +function $distributePorts(this$static, node, ports){ + this$static.inLayerPorts.array.length = 0; + $iteratePortsAndCollectInLayerPorts(this$static, node, ports); + this$static.inLayerPorts.array.length == 0 || $calculateInLayerPortsBarycenterValues(this$static, node); +} + +function $distributePorts_0(this$static, node, side){ + if (!$isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))) { + $distributePorts(this$static, node, $getPorts_1(node, side)); + $distributePorts(this$static, node, $getPorts_1(node, ($clinit_PortSide() , SOUTH_2))); + $distributePorts(this$static, node, $getPorts_1(node, NORTH_3)); + $clinit_Collections(); + $sort(node.ports, new AbstractBarycenterPortDistributor$lambda$0$Type(this$static)); + } +} + +function $distributePortsWhileSweeping(this$static, nodeOrder, currentIndex, isForwardSweep){ + var fixedLayer, freeLayer, node, node$array, node$array0, node$index, node$index0, node$max, node$max0, side; + $updateNodePositions(this$static, nodeOrder, currentIndex); + freeLayer = nodeOrder[currentIndex]; + side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); + if ($isNotFirstLayer(nodeOrder.length, currentIndex, isForwardSweep)) { + fixedLayer = nodeOrder[isForwardSweep?currentIndex - 1:currentIndex + 1]; + $calculatePortRanks(this$static, fixedLayer, isForwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); + for (node$array0 = freeLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { + node = node$array0[node$index0]; + $distributePorts_0(this$static, node, side); + } + $calculatePortRanks(this$static, freeLayer, isForwardSweep?($clinit_PortType() , INPUT):($clinit_PortType() , OUTPUT)); + for (node$array = fixedLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + !!node.nestedGraph || $distributePorts_0(this$static, node, $opposed(side)); + } + } + else { + for (node$array = freeLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $distributePorts_0(this$static, node, side); + } + } + return false; +} + +function $isNotFirstLayer(length_0, currentIndex, isForwardSweep){ + return isForwardSweep?currentIndex != 0:currentIndex != length_0 - 1; +} + +function $iteratePortsAndCollectInLayerPorts(this$static, node, ports){ + var absurdlyLargeFloat, connectedPort, incomingEdge, incomingEdge$iterator, northSouthPort, outgoingEdge, outgoingEdge$iterator, port, port$iterator, portDummy, sum; + this$static.minBarycenter = 0; + this$static.maxBarycenter = 0; + absurdlyLargeFloat = 2 * node.layer.nodes.array.length + 1; + PortIteration: for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + northSouthPort = port.side == ($clinit_PortSide() , NORTH_3) || port.side == SOUTH_2; + sum = 0; + if (northSouthPort) { + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (!portDummy) { + continue; + } + sum += $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy); + } + else { + for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { + outgoingEdge = castTo($next_6(outgoingEdge$iterator), 18); + connectedPort = outgoingEdge.target; + if (connectedPort.owner.layer == node.layer) { + $add_3(this$static.inLayerPorts, port); + continue PortIteration; + } + else { + sum += this$static.portRanks[connectedPort.id_0]; + } + } + for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { + incomingEdge = castTo($next_6(incomingEdge$iterator), 18); + connectedPort = incomingEdge.source; + if (connectedPort.owner.layer == node.layer) { + $add_3(this$static.inLayerPorts, port); + continue PortIteration; + } + else { + sum -= this$static.portRanks[connectedPort.id_0]; + } + } + } + if (port.incomingEdges.array.length + port.outgoingEdges.array.length > 0) { + this$static.portBarycenter[port.id_0] = sum / (port.incomingEdges.array.length + port.outgoingEdges.array.length); + this$static.minBarycenter = $wnd.Math.min(this$static.minBarycenter, this$static.portBarycenter[port.id_0]); + this$static.maxBarycenter = $wnd.Math.max(this$static.maxBarycenter, this$static.portBarycenter[port.id_0]); + } + else + northSouthPort && (this$static.portBarycenter[port.id_0] = sum); + } +} + +function $lambda$0_6(this$static, port1_0, port2_1){ + var port1Bary, port2Bary, side1, side2; + side1 = port1_0.side; + side2 = port2_1.side; + if (side1 != side2) { + return side1.ordinal - side2.ordinal; + } + else { + port1Bary = this$static.portBarycenter[port1_0.id_0]; + port2Bary = this$static.portBarycenter[port2_1.id_0]; + return port1Bary == 0 && port2Bary == 0?0:port1Bary == 0?-1:port2Bary == 0?1:compare_4(port1Bary, port2Bary); + } +} + +function $positionOf(this$static, node){ + return this$static.nodePositions[node.layer.id_0][node.id_0]; +} + +function $updateNodePositions(this$static, nodeOrder, currentIndex){ + var i, layer, node; + layer = nodeOrder[currentIndex]; + for (i = 0; i < layer.length; i++) { + node = layer[i]; + this$static.nodePositions[node.layer.id_0][node.id_0] = i; + } +} + +function AbstractBarycenterPortDistributor(numLayers){ + this.inLayerPorts = new ArrayList; + this.nodePositions = initUnidimensionalArray(I_classLit, $intern_16, 53, numLayers, 0, 2); +} + +defineClass(413, 1, $intern_114); +_.initAtEdgeLevel = function initAtEdgeLevel_0(l, n, p, e, edge, nodeOrder){ +} +; +_.distributePortsWhileSweeping = function distributePortsWhileSweeping(nodeOrder, currentIndex, isForwardSweep){ + return $distributePortsWhileSweeping(this, nodeOrder, currentIndex, isForwardSweep); +} +; +_.initAfterTraversal = function initAfterTraversal_0(){ + this.portRanks = initUnidimensionalArray(F_classLit, $intern_115, 28, this.nPorts, 15, 1); + this.portBarycenter = initUnidimensionalArray(F_classLit, $intern_115, 28, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel_0(l, nodeOrder){ + this.nodePositions[l] = initUnidimensionalArray(I_classLit, $intern_49, 28, nodeOrder[l].length, 15, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_0(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + node.id_0 = n; + this.nodePositions[l][n] = n; +} +; +_.initAtPortLevel = function initAtPortLevel_0(l, n, p, nodeOrder){ + castTo($get_11(nodeOrder[l][n].ports, p), 12).id_0 = this.nPorts++; +} +; +_.maxBarycenter = 0; +_.minBarycenter = 0; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor', 413); +function AbstractBarycenterPortDistributor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1698, 1, $intern_88, AbstractBarycenterPortDistributor$lambda$0$Type); +_.compare_1 = function compare_69(arg0, arg1){ + return $lambda$0_6(this.$$outer_0, castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_150(other){ + return this === other; +} +; +_.reversed = function reversed_61(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor/lambda$0$Type', 1698); +function $calculateBarycenter(this$static, node, forward_0){ + var associate, associate$iterator, barycenterAssociates, fixedNode, fixedPort, fixedPort$iterator, freePort, freePort$iterator, portIterable; + if (this$static.barycenterState[node.layer.id_0][node.id_0].visited) { + return; + } + else { + this$static.barycenterState[node.layer.id_0][node.id_0].visited = true; + } + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = 0; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = null; + for (freePort$iterator = new ArrayList$1(node.ports); freePort$iterator.i < freePort$iterator.this$01.array.length;) { + freePort = castTo($next_6(freePort$iterator), 12); + portIterable = forward_0?new LPort$1(freePort):new LPort$2(freePort); + for (fixedPort$iterator = portIterable.iterator_0(); fixedPort$iterator.hasNext_0();) { + fixedPort = castTo(fixedPort$iterator.next_1(), 12); + fixedNode = fixedPort.owner; + if (fixedNode.layer == node.layer) { + if (fixedNode != node) { + $calculateBarycenter(this$static, fixedNode, forward_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].degree; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].summedWeight; + } + } + else { + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.portRanks[fixedPort.id_0]; + ++this$static.barycenterState[node.layer.id_0][node.id_0].degree; + } + } + } + barycenterAssociates = castTo($getProperty(node, ($clinit_InternalProperties_1() , BARYCENTER_ASSOCIATES)), 15); + if (barycenterAssociates) { + for (associate$iterator = barycenterAssociates.iterator_0(); associate$iterator.hasNext_0();) { + associate = castTo(associate$iterator.next_1(), 10); + if (node.layer == associate.layer) { + $calculateBarycenter(this$static, associate, forward_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[associate.layer.id_0][associate.id_0].degree; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[associate.layer.id_0][associate.id_0].summedWeight; + } + } + } + if (this$static.barycenterState[node.layer.id_0][node.id_0].degree > 0) { + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += $nextInternal(this$static.random_0, 24) * $intern_81 * 0.07000000029802322 - 0.03500000014901161; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight / this$static.barycenterState[node.layer.id_0][node.id_0].degree; + } +} + +function $calculateBarycenters(this$static, nodes, forward_0){ + var node, node$iterator, node$iterator0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].visited = false; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $calculateBarycenter(this$static, node, forward_0); + } +} + +function $fillInUnknownBarycenters(this$static, nodes, preOrdered){ + var lastValue, maxBary, nextNodeIterator, nextValue, node, node$iterator, node$iterator0, nodesIterator, value_0, x_0; + if (preOrdered) { + lastValue = -1; + nodesIterator = new AbstractList$ListIteratorImpl(nodes, 0); + while (nodesIterator.i < nodesIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodesIterator.i < nodesIterator.this$01_0.size_1()) , castTo(nodesIterator.this$01_0.get_0(nodesIterator.last = nodesIterator.i++), 10)); + value_0 = this$static.barycenterState[node.layer.id_0][node.id_0].barycenter; + if (value_0 == null) { + nextValue = lastValue + 1; + nextNodeIterator = new AbstractList$ListIteratorImpl(nodes, nodesIterator.i); + while (nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) { + x_0 = $stateOf(this$static, (checkCriticalElement(nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) , castTo(nextNodeIterator.this$01_0.get_0(nextNodeIterator.last = nextNodeIterator.i++), 10))).barycenter; + if (x_0 != null) { + nextValue = (checkCriticalNotNull(x_0) , x_0); + break; + } + } + value_0 = (lastValue + nextValue) / 2; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = (checkCriticalNotNull(value_0) , value_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } + lastValue = (checkCriticalNotNull(value_0) , value_0); + } + } + else { + maxBary = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter != null && (maxBary = $wnd.Math.max(maxBary, $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter))); + } + maxBary += 2; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (this$static.barycenterState[node.layer.id_0][node.id_0].barycenter == null) { + value_0 = $nextInternal(this$static.random_0, 24) * $intern_81 * maxBary - 1; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } + } + } +} + +function $lambda$0_7(this$static, n1_0, n2_1){ + var s1, s2; + s1 = this$static.barycenterState[n1_0.layer.id_0][n1_0.id_0]; + s2 = this$static.barycenterState[n2_1.layer.id_0][n2_1.id_0]; + if (s1.barycenter != null && s2.barycenter != null) { + return $compareTo_4(s1.barycenter, s2.barycenter); + } + else if (s1.barycenter != null) { + return -1; + } + else if (s2.barycenter != null) { + return 1; + } + return 0; +} + +function $randomizeBarycenters(this$static, nodes){ + var node, node$iterator; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = $nextDouble(this$static.random_0); + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter); + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } +} + +function $startIndex_0(dir_0, length_0){ + return dir_0?0:$wnd.Math.max(0, length_0 - 1); +} + +function $stateOf(this$static, node){ + return this$static.barycenterState[node.layer.id_0][node.id_0]; +} + +function BarycenterHeuristic(constraintResolver, random, portDistributor){ + this.barycenterStateComparator = new BarycenterHeuristic$lambda$0$Type(this); + this.constraintResolver = constraintResolver; + this.random_0 = random; + this.portDistributor = portDistributor; +} + +defineClass(832, 1, $intern_111, BarycenterHeuristic); +_.initAtEdgeLevel = function initAtEdgeLevel_1(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtNodeLevel = function initAtNodeLevel_1(l, n, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_1(l, n, p, nodeOrder){ +} +; +_.alwaysImproves = function alwaysImproves_0(){ + return false; +} +; +_.initAfterTraversal = function initAfterTraversal_1(){ + this.barycenterState = this.constraintResolver.barycenterStates; + this.portRanks = this.portDistributor.portRanks; +} +; +_.initAtLayerLevel = function initAtLayerLevel_1(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; +} +; +_.isDeterministic = function isDeterministic_0(){ + return false; +} +; +_.minimizeCrossings_0 = function minimizeCrossings_0(layer, preOrdered, randomize, forward_0){ + if (randomize) { + $randomizeBarycenters(this, layer); + } + else { + $calculateBarycenters(this, layer, forward_0); + $fillInUnknownBarycenters(this, layer, preOrdered); + } + if (layer.array.length > 1) { + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, castTo(this, 669)):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); + $processConstraints(this.constraintResolver, layer); + } +} +; +_.minimizeCrossings = function minimizeCrossings_1(order, freeLayerIndex, forwardSweep, isFirstSweep){ + var firstNodeInLayer, fixedLayer, index_0, nodeGroup, nodeGroup$iterator, nodes, preOrdered; + if (freeLayerIndex != $startIndex_0(forwardSweep, order.length)) { + fixedLayer = order[freeLayerIndex - (forwardSweep?1:-1)]; + $calculatePortRanks(this.portDistributor, fixedLayer, forwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); + } + firstNodeInLayer = order[freeLayerIndex][0]; + preOrdered = !isFirstSweep || firstNodeInLayer.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); + nodes = newArrayList_1(order[freeLayerIndex]); + this.minimizeCrossings_0(nodes, preOrdered, false, forwardSweep); + index_0 = 0; + for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { + nodeGroup = castTo($next_6(nodeGroup$iterator), 10); + order[freeLayerIndex][index_0++] = nodeGroup; + } + return false; +} +; +_.setFirstLayerOrder = function setFirstLayerOrder_0(order, isForwardSweep){ + var index_0, nodeGroup, nodeGroup$iterator, nodes, startIndex; + startIndex = $startIndex_0(isForwardSweep, order.length); + nodes = newArrayList_1(order[startIndex]); + this.minimizeCrossings_0(nodes, false, true, isForwardSweep); + index_0 = 0; + for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { + nodeGroup = castTo($next_6(nodeGroup$iterator), 10); + order[startIndex][index_0++] = nodeGroup; + } + return false; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic', 832); +function BarycenterHeuristic$BarycenterState(node){ + this.node = node; +} + +defineClass(667, 1, {667:1}, BarycenterHeuristic$BarycenterState); +_.toString_0 = function toString_98(){ + return 'BarycenterState [node=' + this.node + ', summedWeight=' + this.summedWeight + ', degree=' + this.degree + ', barycenter=' + this.barycenter + ', visited=' + this.visited + ']'; +} +; +_.degree = 0; +_.summedWeight = 0; +_.visited = false; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/BarycenterState', 667); +function BarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1865, 1, $intern_88, BarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_70(arg0, arg1){ + return $lambda$0_7(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_151(other){ + return this === other; +} +; +_.reversed = function reversed_62(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/lambda$0$Type', 1865); +function $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes){ + var currentUnitNode, currentUnitNode$iterator, group, group$iterator, group$iterator0, lastNonDummyNode, lastUnitNode, lastUnitNode$iterator, node, successor, successor$iterator; + for (group$iterator0 = new ArrayList$1(groups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_6(group$iterator0), 239); + group.outgoingConstraints = null; + group.incomingConstraintsCount = 0; + } + lastNonDummyNode = null; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 239); + node = group.nodes[0]; + if (onlyBetweenNormalNodes && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + for (successor$iterator = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).iterator_0(); successor$iterator.hasNext_0();) { + successor = castTo(successor$iterator.next_1(), 10); + if (!onlyBetweenNormalNodes || successor.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).add_2(this$static.constraintGroups[successor.layer.id_0][successor.id_0]); + ++this$static.constraintGroups[successor.layer.id_0][successor.id_0].incomingConstraintsCount; + } + } + if (!onlyBetweenNormalNodes && node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + if (lastNonDummyNode) { + for (lastUnitNode$iterator = castTo($get(this$static.layoutUnits, lastNonDummyNode), 21).iterator_0(); lastUnitNode$iterator.hasNext_0();) { + lastUnitNode = castTo(lastUnitNode$iterator.next_1(), 10); + for (currentUnitNode$iterator = castTo($get(this$static.layoutUnits, node), 21).iterator_0(); currentUnitNode$iterator.hasNext_0();) { + currentUnitNode = castTo(currentUnitNode$iterator.next_1(), 10); + $getOutgoingConstraints(this$static.constraintGroups[lastUnitNode.layer.id_0][lastUnitNode.id_0]).add_2(this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0]); + ++this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0].incomingConstraintsCount; + } + } + } + lastNonDummyNode = node; + } + } +} + +function $findViolatedConstraint(groups){ + var activeGroups, group, group$iterator, predecessor, predecessor$iterator, successor, successor$iterator, successorIncomingList; + activeGroups = null; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 239); + $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter); + group.incomingConstraints = null; + if (!!group.outgoingConstraints && group.outgoingConstraints.size_1() > 0 && group.incomingConstraintsCount == 0) { + !activeGroups && (activeGroups = new ArrayList); + push_1(activeGroups.array, group); + } + } + if (activeGroups) { + while (activeGroups.array.length != 0) { + group = castTo($remove_11(activeGroups, 0), 239); + if (!!group.incomingConstraints && group.incomingConstraints.array.length > 0) { + for (predecessor$iterator = (!group.incomingConstraints && (group.incomingConstraints = new ArrayList) , new ArrayList$1(group.incomingConstraints)); predecessor$iterator.i < predecessor$iterator.this$01.array.length;) { + predecessor = castTo($next_6(predecessor$iterator), 239); + if ($floatValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) == $floatValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { + if ($indexOf_3(groups, predecessor, 0) > $indexOf_3(groups, group, 0)) { + return new Pair(predecessor, group); + } + } + else if ($doubleValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) > $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { + return new Pair(predecessor, group); + } + } + } + for (successor$iterator = (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).iterator_0(); successor$iterator.hasNext_0();) { + successor = castTo(successor$iterator.next_1(), 239); + successorIncomingList = (!successor.incomingConstraints && (successor.incomingConstraints = new ArrayList) , successor.incomingConstraints); + checkCriticalPositionIndex(0, successorIncomingList.array.length); + insertTo(successorIncomingList.array, 0, group); + successor.incomingConstraintsCount == successorIncomingList.array.length && (push_1(activeGroups.array, successor) , true); + } + } + } + return null; +} + +function $handleViolatedConstraint(this$static, firstNodeGroup, secondNodeGroup, nodeGroups){ + var alreadyInserted, firstNodeGroupConstraint, newNodeGroup, nodeGroup, nodeGroupIterator, secondNodeGroupConstraint; + newNodeGroup = new ForsterConstraintResolver$ConstraintGroup_0(this$static, firstNodeGroup, secondNodeGroup); + nodeGroupIterator = new AbstractList$ListIteratorImpl(nodeGroups, 0); + alreadyInserted = false; + while (nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) { + nodeGroup = (checkCriticalElement(nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) , castTo(nodeGroupIterator.this$01_0.get_0(nodeGroupIterator.last = nodeGroupIterator.i++), 239)); + if (nodeGroup == firstNodeGroup || nodeGroup == secondNodeGroup) { + $remove_8(nodeGroupIterator); + } + else if (!alreadyInserted && $doubleValue($stateOf_0(nodeGroup.this$01, nodeGroup.nodes[0]).barycenter) > $doubleValue($stateOf_0(newNodeGroup.this$01, newNodeGroup.nodes[0]).barycenter)) { + checkCriticalElement(nodeGroupIterator.i > 0); + nodeGroupIterator.this$01.get_0(nodeGroupIterator.last = --nodeGroupIterator.i); + $add_1(nodeGroupIterator, newNodeGroup); + alreadyInserted = true; + } + else if (!!nodeGroup.outgoingConstraints && nodeGroup.outgoingConstraints.size_1() > 0) { + firstNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(firstNodeGroup); + secondNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(secondNodeGroup); + if (firstNodeGroupConstraint || secondNodeGroupConstraint) { + (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).add_2(newNodeGroup); + ++newNodeGroup.incomingConstraintsCount; + } + } + } + alreadyInserted || (push_1(nodeGroups.array, newNodeGroup) , true); +} + +function $initAtNodeLevel(this$static, node, fullInit){ + var layerIndex, layoutUnit, nodeIndex; + layerIndex = node.layer.id_0; + nodeIndex = node.id_0; + this$static.constraintGroups[layerIndex][nodeIndex] = new ForsterConstraintResolver$ConstraintGroup(this$static, node); + if (fullInit) { + this$static.barycenterStates[layerIndex][nodeIndex] = new BarycenterHeuristic$BarycenterState(node); + layoutUnit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + !!layoutUnit && $put(this$static.layoutUnits, layoutUnit, node); + } +} + +function $processConstraints(this$static, nodes){ + if (this$static.constraintsBetweenNonDummies) { + $processConstraints_0(this$static, nodes, true); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nodes, 16)), new ForsterConstraintResolver$lambda$0$Type(this$static)); + } + $processConstraints_0(this$static, nodes, false); +} + +function $processConstraints_0(this$static, nodes, onlyBetweenNormalNodes){ + var group, group$iterator, groups, node, node$array, node$index, node$iterator, node$max, violatedConstraint; + groups = new ArrayList_0(nodes.array.length); + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + $add_3(groups, this$static.constraintGroups[node.layer.id_0][node.id_0]); + } + $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes); + violatedConstraint = null; + while (violatedConstraint = $findViolatedConstraint(groups)) { + $handleViolatedConstraint(this$static, castTo(violatedConstraint.first, 239), castTo(violatedConstraint.second, 239), groups); + } + nodes.array.length = 0; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_6(group$iterator), 239); + for (node$array = group.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + push_1(nodes.array, node); + this$static.barycenterStates[node.layer.id_0][node.id_0].barycenter = $stateOf_0(group.this$01, group.nodes[0]).barycenter; + } + } +} + +function $stateOf_0(this$static, node){ + return this$static.barycenterStates[node.layer.id_0][node.id_0]; +} + +function ForsterConstraintResolver(currentNodeOrder){ + currentNodeOrder.length > 0 && currentNodeOrder[0].length > 0 && (this.constraintsBetweenNonDummies = $booleanValue(castToBoolean($getProperty($getGraph(currentNodeOrder[0][0]), ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES))))); + this.barycenterStates = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, $intern_16, 2117, currentNodeOrder.length, 0, 2); + this.constraintGroups = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, $intern_16, 2118, currentNodeOrder.length, 0, 2); + this.layoutUnits = new LinkedHashMultimap; +} + +defineClass(831, 1, $intern_111, ForsterConstraintResolver); +_.initAfterTraversal = function initAfterTraversal_2(){ +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_2(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_2(l, n, p, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_2(l, nodeOrder){ + this.barycenterStates[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, {3:1, 4:1, 5:1, 2117:1}, 667, nodeOrder[l].length, 0, 1); + this.constraintGroups[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, {3:1, 4:1, 5:1, 2118:1}, 239, nodeOrder[l].length, 0, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_2(l, n, nodeOrder){ + $initAtNodeLevel(this, nodeOrder[l][n], true); +} +; +_.constraintsBetweenNonDummies = false; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver', 831); +function $getOutgoingConstraints(this$static){ + !this$static.outgoingConstraints && (this$static.outgoingConstraints = new ArrayList); + return this$static.outgoingConstraints; +} + +function $setBarycenter(this$static, barycenter){ + var node, node$array, node$index, node$max; + for (node$array = this$static.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $stateOf_0(this$static.this$01, node).barycenter = barycenter; + } +} + +function ForsterConstraintResolver$ConstraintGroup(this$0, node){ + this.this$01 = this$0; + this.nodes = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [node]); +} + +function ForsterConstraintResolver$ConstraintGroup_0(this$0, nodeGroup1, nodeGroup2){ + var candidate, candidate$iterator, i, i0, length1, length2; + this.this$01 = this$0; + length1 = nodeGroup1.nodes.length; + length2 = nodeGroup2.nodes.length; + this.nodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, length1 + length2, 0, 1); + for (i0 = 0; i0 < length1; i0++) { + this.nodes[i0] = nodeGroup1.nodes[i0]; + } + for (i = 0; i < length2; i++) { + this.nodes[length1 + i] = nodeGroup2.nodes[i]; + } + if (nodeGroup1.outgoingConstraints) { + this.outgoingConstraints = newLinkedList(nodeGroup1.outgoingConstraints); + this.outgoingConstraints.remove_1(nodeGroup2); + if (nodeGroup2.outgoingConstraints) { + for (candidate$iterator = nodeGroup2.outgoingConstraints.iterator_0(); candidate$iterator.hasNext_0();) { + candidate = castTo(candidate$iterator.next_1(), 239); + if (candidate == nodeGroup1) { + continue; + } + else + this.outgoingConstraints.contains(candidate)?--candidate.incomingConstraintsCount:this.outgoingConstraints.add_2(candidate); + } + } + } + else if (nodeGroup2.outgoingConstraints) { + this.outgoingConstraints = newLinkedList(nodeGroup2.outgoingConstraints); + this.outgoingConstraints.remove_1(nodeGroup1); + } + this.summedWeight = nodeGroup1.summedWeight + nodeGroup2.summedWeight; + this.degree = nodeGroup1.degree + nodeGroup2.degree; + this.degree > 0?$setBarycenter(this, this.summedWeight / this.degree):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null && $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null?$setBarycenter(this, ($doubleValue($stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter) + $doubleValue($stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter)) / 2):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null?$setBarycenter(this, $stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter):$stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null && $setBarycenter(this, $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter); +} + +defineClass(239, 1, {239:1}, ForsterConstraintResolver$ConstraintGroup, ForsterConstraintResolver$ConstraintGroup_0); +_.toString_0 = function toString_99(){ + var i, sb; + sb = new StringBuilder; + sb.string += '['; + for (i = 0; i < this.nodes.length; i++) { + $append_11(sb, $toString_13(this.nodes[i])); + $stateOf_0(this.this$01, this.nodes[0]).barycenter != null && $append_11($append_11((sb.string += '<' , sb), $toString_6($stateOf_0(this.this$01, this.nodes[0]).barycenter)), '>'); + i < this.nodes.length - 1 && (sb.string += ', ' , sb); + } + return (sb.string += ']' , sb).string; +} +; +_.degree = 0; +_.incomingConstraintsCount = 0; +_.summedWeight = 0; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/ConstraintGroup', 239); +function ForsterConstraintResolver$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1860, 1, $intern_19, ForsterConstraintResolver$lambda$0$Type); +_.accept = function accept_116(arg0){ + $initAtNodeLevel(this.$$outer_0, castTo(arg0, 10), false); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/lambda$0$Type', 1860); +function $setBestNodeNPortOrder(this$static, bestNodeNPortOrder){ + this$static.bestNodeAndPortOrder = bestNodeNPortOrder; +} + +function $setCurrentlyBestNodeAndPortOrder(this$static, currentlyBestNodeAndPortOrder){ + this$static.currentlyBestNodeAndPortOrder = currentlyBestNodeAndPortOrder; +} + +function GraphInfoHolder(graph, crossMinType, graphs){ + var constraintResolver, graphProperties, initializables, random; + this.lGraph = graph; + this.currentNodeOrder = $toNodeArray(graph); + this.parent_0 = this.lGraph.parentNode; + this.hasParent = !!this.parent_0; + this.parentGraphData = this.hasParent?castTo($get_11(graphs, $getGraph(this.parent_0).id_0), 219):null; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + this.hasExternalPorts = graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + this.childGraphs = new ArrayList; + this.crossingsCounter = new AllCrossingsCounter(this.currentNodeOrder); + random = castTo($getProperty(this.lGraph, RANDOM_0), 234); + this.portDistributor = create_15(crossMinType, random, this.currentNodeOrder); + this.layerSweepTypeDecider = new LayerSweepTypeDecider(this); + initializables = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 230, 0, [this, this.crossingsCounter, this.layerSweepTypeDecider, this.portDistributor])); + if (crossMinType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER) && !$booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + push_1(initializables.array, constraintResolver); + this.crossMinimizer = new BarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 413)); + } + else if (crossMinType == BARYCENTER && $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + push_1(initializables.array, constraintResolver); + this.crossMinimizer = new ModelOrderBarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 413)); + } + else { + this.crossMinimizer = new GreedySwitchHeuristic(crossMinType, this); + } + $add_3(initializables, this.crossMinimizer); + init_0(initializables, this.currentNodeOrder); + this.useBottomUp = $useBottomUp(this.layerSweepTypeDecider); +} + +defineClass(219, 1, {219:1, 230:1}, GraphInfoHolder); +_.initAtEdgeLevel = function initAtEdgeLevel_3(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_3(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_3(){ + this.portPositions = initUnidimensionalArray(I_classLit, $intern_49, 28, this.nPorts, 15, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_3(l, n, nodeOrder){ + var nestedGraph, node; + node = nodeOrder[l][n]; + nestedGraph = node.nestedGraph; + !!nestedGraph && $add_3(this.childGraphs, nestedGraph); +} +; +_.initAtPortLevel = function initAtPortLevel_3(l, n, p, nodeOrder){ + ++this.nPorts; +} +; +_.toString_0 = function toString_100(){ + return deepToString(this.currentNodeOrder, new HashSet); +} +; +_.hasExternalPorts = false; +_.hasParent = false; +_.nPorts = 0; +_.useBottomUp = false; +var Lorg_eclipse_elk_alg_layered_p3order_GraphInfoHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GraphInfoHolder', 219); +function $distributePortsInLayer(this$static, nodeOrder, currentIndex, isForwardSweep){ + var improved, innerGraph, nestedGraph, node, node$array, node$index, node$max, side, useHierarchicalCrossCounter; + side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); + improved = false; + for (node$array = nodeOrder[currentIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if ($isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101))) { + continue; + } + nestedGraph = node.nestedGraph; + useHierarchicalCrossCounter = !$getPortSideView(node, side).isEmpty() && !!nestedGraph; + if (useHierarchicalCrossCounter) { + innerGraph = $toNodeArray(nestedGraph); + this$static.hierarchicalCrossingsCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(innerGraph, isForwardSweep?0:innerGraph.length - 1); + } + improved = improved | $distributePortsOnNode(this$static, node, side, useHierarchicalCrossCounter); + } + return improved; +} + +function $distributePortsOnNode(this$static, node, side, useHierarchicalCrosscounter){ + var continueSwitching, i, improved, lowerPort, ports, upperPort, lower; + ports = $getPortSideView(node, side); + (side == ($clinit_PortSide() , SOUTH_2) || side == WEST_2) && (ports = reverse_0(ports)); + improved = false; + do { + continueSwitching = false; + for (i = 0; i < ports.size_1() - 1; i++) { + upperPort = castTo(ports.get_0(i), 12); + lowerPort = castTo(ports.get_0(i + 1), 12); + if ($switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter)) { + improved = true; + $switchPorts(this$static.crossingsCounter, castTo(ports.get_0(i), 12), castTo(ports.get_0(i + 1), 12)); + lower = castTo(ports.get_0(i + 1), 12); + ports.set_2(i + 1, castTo(ports.get_0(i), 12)); + ports.set_2(i, lower); + continueSwitching = true; + } + } + } + while (continueSwitching); + return improved; +} + +function $switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter){ + var lowerNode, lowerUpperCrossings, originalNSwitchedCrossings, upperLowerCrossings, upperNode; + originalNSwitchedCrossings = $countCrossingsBetweenPortsInBothOrders(this$static.crossingsCounter, upperPort, lowerPort); + upperLowerCrossings = castTo(originalNSwitchedCrossings.first, 17).value_0; + lowerUpperCrossings = castTo(originalNSwitchedCrossings.second, 17).value_0; + if (useHierarchicalCrosscounter) { + upperNode = castTo($getProperty(upperPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + lowerNode = castTo($getProperty(lowerPort, PORT_DUMMY), 10); + if (!!upperNode && !!lowerNode) { + $countBothSideCrossings(this$static.hierarchicalCrossingsCounter, upperNode, lowerNode); + upperLowerCrossings += this$static.hierarchicalCrossingsCounter.upperLowerCrossings; + lowerUpperCrossings += this$static.hierarchicalCrossingsCounter.lowerUpperCrossings; + } + } + return upperLowerCrossings > lowerUpperCrossings; +} + +function GreedyPortDistributor(){ +} + +defineClass(1905, 1, $intern_111, GreedyPortDistributor); +_.initAtEdgeLevel = function initAtEdgeLevel_4(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_4(l, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_4(l, n, p, nodeOrder){ +} +; +_.distributePortsWhileSweeping = function distributePortsWhileSweeping_0(nodeOrder, currentIndex, isForwardSweep){ + isForwardSweep && currentIndex > 0?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex - 1], nodeOrder[currentIndex]) , undefined):!isForwardSweep && currentIndex < nodeOrder.length - 1?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex], nodeOrder[currentIndex + 1]) , undefined):$initPortPositionsForInLayerCrossings(this.crossingsCounter, nodeOrder[currentIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2)); + return $distributePortsInLayer(this, nodeOrder, currentIndex, isForwardSweep); +} +; +_.initAfterTraversal = function initAfterTraversal_4(){ + this.portPos = initUnidimensionalArray(I_classLit, $intern_49, 28, this.nPorts, 15, 1); + this.crossingsCounter = new CrossingsCounter(this.portPos); +} +; +_.initAtNodeLevel = function initAtNodeLevel_4(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + this.nPorts += node.ports.array.length; +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_GreedyPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GreedyPortDistributor', 1905); +function $clinit_InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_3 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING, LONG_EDGE_JOINER); +} + +function $getLayoutProcessorConfiguration(graph){ + var configuration; + configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_3); + castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , NON_FREE_PORTS)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)); + return configuration; +} + +function $getPos(node, horizPos){ + var bendpoints, edge, originNode, originPort, point1, point2, pointIter, source, sourcePoint, target, targetPoint; + switch (node.type_0.ordinal) { + case 1: + edge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 18); + bendpoints = castTo($getProperty(edge, ORIGINAL_BENDPOINTS), 75); + !bendpoints?(bendpoints = new KVectorChain):$booleanValue(castToBoolean($getProperty(edge, REVERSED))) && (bendpoints = reverse_3(bendpoints)); + source = castTo($getProperty(node, LONG_EDGE_SOURCE), 12); + if (source) { + sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [source.owner.pos, source.pos, source.anchor])); + if (horizPos <= sourcePoint.x_0) { + return sourcePoint.y_0; + } + $addNode_0(bendpoints, sourcePoint, bendpoints.header, bendpoints.header.next_0); + } + + target = castTo($getProperty(node, LONG_EDGE_TARGET), 12); + if (target) { + targetPoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])); + if (targetPoint.x_0 <= horizPos) { + return targetPoint.y_0; + } + $addNode_0(bendpoints, targetPoint, bendpoints.tail.prev, bendpoints.tail); + } + + if (bendpoints.size_0 >= 2) { + pointIter = $listIterator_2(bendpoints, 0); + point1 = castTo($next_9(pointIter), 8); + point2 = castTo($next_9(pointIter), 8); + while (point2.x_0 < horizPos && pointIter.currentNode != pointIter.this$01.tail) { + point1 = point2; + point2 = castTo($next_9(pointIter), 8); + } + return point1.y_0 + (horizPos - point1.x_0) / (point2.x_0 - point1.x_0) * (point2.y_0 - point1.y_0); + } + + break; + case 3: + originPort = castTo($getProperty(castTo($get_11(node.ports, 0), 12), ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + originNode = originPort.owner; + switch (originPort.side.ordinal) { + case 1: + return originNode.pos.y_0; + case 3: + return originNode.pos.y_0 + originNode.size_0.y_0; + } + + } + return $getInteractiveReferencePoint(node).y_0; +} + +function $process_70(layeredGraph, monitor){ + var horizPos, layer, layer$iterator, layer$iterator0, layerIndex, nextIndex, node, node$iterator, node$iterator0, nodeCount, nodeOrder, port, port$iterator, portCount, portDistributor, pos; + monitor.begin('Interactive crossing minimization', 1); + layerIndex = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + layer.id_0 = layerIndex++; + } + nodeOrder = $toNodeArray(layeredGraph); + portDistributor = new NodeRelativePortDistributor(nodeOrder.length); + init_0(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 230, 0, [portDistributor])), nodeOrder); + portCount = 0; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + horizPos = 0; + nodeCount = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + if (node.pos.x_0 > 0) { + horizPos += node.pos.x_0 + node.size_0.x_0 / 2; + ++nodeCount; + } + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + port.id_0 = portCount++; + } + } + nodeCount > 0 && (horizPos /= nodeCount); + pos = initUnidimensionalArray(D_classLit, $intern_66, 28, layer.nodes.array.length, 15, 1); + nextIndex = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = nextIndex++; + pos[node.id_0] = $getPos(node, horizPos); + node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION), pos[node.id_0]); + } + $clinit_Collections(); + $sort(layer.nodes, new InteractiveCrossingMinimizer$1(pos)); + $distributePortsWhileSweeping(portDistributor, nodeOrder, layerIndex, true); + ++layerIndex; + } + monitor.done_1(); +} + +function InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer(); +} + +defineClass(1421, 1, $intern_113, InteractiveCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_12(graph){ + return $getLayoutProcessorConfiguration(castTo(graph, 36)); +} +; +_.process = function process_67(layeredGraph, monitor){ + $process_70(castTo(layeredGraph, 36), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_3; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer', 1421); +function $compare_23(this$static, node1, node2){ + var compare, node1Successors, node2Successors; + compare = compare_4(this$static.val$pos2[node1.id_0], this$static.val$pos2[node2.id_0]); + if (compare == 0) { + node1Successors = castTo($getProperty(node1, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15); + node2Successors = castTo($getProperty(node2, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15); + if (node1Successors.contains(node2)) { + return -1; + } + else if (node2Successors.contains(node1)) { + return 1; + } + } + return compare; +} + +function InteractiveCrossingMinimizer$1(val$pos){ + this.val$pos2 = val$pos; +} + +defineClass(1422, 1, $intern_88, InteractiveCrossingMinimizer$1); +_.compare_1 = function compare_71(node1, node2){ + return $compare_23(this, castTo(node1, 10), castTo(node2, 10)); +} +; +_.equals_0 = function equals_152(other){ + return this === other; +} +; +_.reversed = function reversed_63(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer/1', 1422); +function $clinit_LayerSweepCrossingMinimizer(){ + $clinit_LayerSweepCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_4 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); +} + +function $compareDifferentRandomizedLayouts(this$static, gData){ + var bestCrossings, crossings, i, thouroughness; + $setSeed_0(this$static.random_0, this$static.randomSeed); + this$static.graphsWhoseNodeOrderChanged.map_0.clear_0(); + if ($doubleValue(castToDouble($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)))) != 0 || $doubleValue(castToDouble($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))) != 0) { + bestCrossings = $intern_98; + maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); + thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 17).value_0; + for (i = 0; i < thouroughness; i++) { + crossings = $minimizeCrossingsNodePortOrderWithCounter(this$static, gData); + if (crossings < bestCrossings) { + bestCrossings = crossings; + $saveAllNodeOrdersOfChangedGraphs(this$static); + if (bestCrossings == 0) { + break; + } + } + } + } + else { + bestCrossings = $intern_0; + maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); + thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 17).value_0; + for (i = 0; i < thouroughness; i++) { + crossings = $minimizeCrossingsWithCounter(this$static, gData); + if (crossings < bestCrossings) { + bestCrossings = crossings; + $saveAllNodeOrdersOfChangedGraphs(this$static); + if (bestCrossings == 0) { + break; + } + } + } + } +} + +function $countCurrentNumberOfCrossings(this$static, currentGraph){ + var child, childLGraph, childLGraph$iterator, countCrossingsIn, gD, totalCrossings; + totalCrossings = 0; + countCrossingsIn = new ArrayDeque; + $addFirst(countCrossingsIn, currentGraph); + while (countCrossingsIn.head != countCrossingsIn.tail) { + gD = castTo($removeFirst(countCrossingsIn), 219); + totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder); + for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { + childLGraph = castTo($next_6(childLGraph$iterator), 36); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 219); + child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); + } + } + return totalCrossings; +} + +function $countCurrentNumberOfCrossingsNodePortOrder(this$static, currentGraph){ + var child, childLGraph, childLGraph$iterator, countCrossingsIn, crossingCounterNodeInfluence, crossingCounterPortInfluence, gD, modelOrderInfluence, modelOrderStrategy, totalCrossings; + totalCrossings = 0; + countCrossingsIn = new ArrayDeque; + $addFirst(countCrossingsIn, currentGraph); + while (countCrossingsIn.head != countCrossingsIn.tail) { + gD = castTo($removeFirst(countCrossingsIn), 219); + modelOrderInfluence = 0; + modelOrderStrategy = castTo($getProperty(currentGraph.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 284); + crossingCounterNodeInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))); + crossingCounterPortInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0))); + if (modelOrderStrategy != ($clinit_OrderingStrategy() , NONE_10)) { + modelOrderInfluence += crossingCounterNodeInfluence * $countModelOrderNodeChanges(gD.currentNodeOrder, modelOrderStrategy); + modelOrderInfluence += crossingCounterPortInfluence * $countModelOrderPortChanges(gD.currentNodeOrder); + } + totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder) + modelOrderInfluence; + for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { + childLGraph = castTo($next_6(childLGraph$iterator), 36); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 219); + child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); + } + } + return totalCrossings; +} + +function $countModelOrderNodeChanges(layers, strategy){ + var comp, i, j, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; + previousLayer = -1; + wrongModelOrder = 0; + for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + comp = new ModelOrderNodeComparator_1(previousLayer == -1?layers[0]:layers[previousLayer], strategy, ($clinit_LongEdgeOrderingStrategy() , EQUAL)); + for (i = 0; i < layer.length; i++) { + for (j = i + 1; j < layer.length; j++) { + $hasProperty(layer[i], ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(layer[j], MODEL_ORDER_1) && $compare_17(comp, layer[i], layer[j]) > 0 && ++wrongModelOrder; + } + } + ++previousLayer; + } + return wrongModelOrder; +} + +function $countModelOrderPortChanges(layers){ + var comp, i, j, lNode, lNode$array, lNode$index, lNode$max, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; + previousLayer = -1; + wrongModelOrder = 0; + for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + for (lNode$array = layer , lNode$index = 0 , lNode$max = lNode$array.length; lNode$index < lNode$max; ++lNode$index) { + lNode = lNode$array[lNode$index]; + comp = new ModelOrderPortComparator_0(previousLayer == -1?layers[0]:layers[previousLayer], castTo($getProperty($getGraph(lNode), ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 284), longEdgeTargetNodePreprocessing(lNode), $booleanValue(castToBoolean($getProperty($getGraph(lNode), CONSIDER_MODEL_ORDER_PORT_MODEL_ORDER_0)))); + for (i = 0; i < lNode.ports.array.length; i++) { + for (j = i + 1; j < lNode.ports.array.length; j++) { + $compare_18(comp, castTo($get_11(lNode.ports, i), 12), castTo($get_11(lNode.ports, j), 12)) > 0 && ++wrongModelOrder; + } + } + } + ++previousLayer; + } + return wrongModelOrder; +} + +function $endIndex(isForwardSweep, length_0){ + return isForwardSweep?length_0 - 1:0; +} + +function $firstIndex(isForwardSweep, length_0){ + return isForwardSweep?0:length_0 - 1; +} + +function $initialize_5(this$static, rootGraph){ + var gData, graph, graphs, graphsToSweepOn, i, iter; + this$static.graphInfoHolders = new ArrayList; + this$static.random_0 = castTo($getProperty(rootGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 234); + this$static.randomSeed = $nextLong(this$static.random_0); + graphsToSweepOn = new LinkedList; + graphs = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 36, 0, [rootGraph])); + i = 0; + while (i < graphs.array.length) { + graph = (checkCriticalElementIndex(i, graphs.array.length) , castTo(graphs.array[i], 36)); + graph.id_0 = i++; + gData = new GraphInfoHolder(graph, this$static.crossMinType, this$static.graphInfoHolders); + $addAll_2(graphs, gData.childGraphs); + $add_3(this$static.graphInfoHolders, gData); + gData.useBottomUp && (iter = $listIterator_2(graphsToSweepOn, 0) , $add_8(iter, gData)); + } + this$static.graphsWhoseNodeOrderChanged = new HashSet; + return graphsToSweepOn; +} + +function $minimizeCrossings(graphsToSweepOn, minimizingMethod){ + var gData, gData$iterator; + for (gData$iterator = $listIterator_2(graphsToSweepOn, 0); gData$iterator.currentNode != gData$iterator.this$01.tail;) { + gData = castTo($next_9(gData$iterator), 219); + if (gData.currentNodeOrder.length > 0) { + minimizingMethod.accept(gData); + gData.hasParent && $setPortOrderOnParentGraph(gData); + } + } +} + +function $minimizeCrossingsNoCounter(this$static, gData){ + var improved, isForwardSweep; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + improved = true; + while (improved) { + improved = false; + improved = gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep); + improved = improved | $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + isForwardSweep = !isForwardSweep; + } + $setCurrentlyBestNodeOrders(this$static); +} + +function $minimizeCrossingsNodePortOrderWithCounter(this$static, gData){ + var crossingsInGraph, initialCrossings, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + initialCrossings = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + if (initialCrossings == 0 && $booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER))))) { + return 0; + } + !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); + $sweepReducingCrossings(this$static, gData, isForwardSweep, true); + $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { + $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); + } + crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + do { + $setCurrentlyBestNodeOrders(this$static); + if (crossingsInGraph == 0) { + return 0; + } + isForwardSweep = !isForwardSweep; + oldNumberOfCrossings = crossingsInGraph; + $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + } + while (oldNumberOfCrossings > crossingsInGraph); + return oldNumberOfCrossings; +} + +function $minimizeCrossingsWithCounter(this$static, gData){ + var crossingsInGraph, initialCrossings, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + initialCrossings = $countCurrentNumberOfCrossings(this$static, gData); + if (initialCrossings == 0 && $booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER))))) { + return 0; + } + !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); + $sweepReducingCrossings(this$static, gData, isForwardSweep, true); + $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { + $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); + } + crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); + do { + $setCurrentlyBestNodeOrders(this$static); + if (crossingsInGraph == 0) { + return 0; + } + isForwardSweep = !isForwardSweep; + oldNumberOfCrossings = crossingsInGraph; + $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); + } + while (oldNumberOfCrossings > crossingsInGraph); + return oldNumberOfCrossings; +} + +function $process_71(this$static, layeredGraph, progressMonitor){ + var emptyGraph, graphsToSweepOn, hierarchicalLayout, minimizingMethod, parent_0, singleNode; + progressMonitor.begin('Minimize Crossings ' + this$static.crossMinType, 1); + emptyGraph = layeredGraph.layers.array.length == 0 || !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new Predicate$lambda$2$Type(new LayerSweepCrossingMinimizer$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + singleNode = layeredGraph.layers.array.length == 1 && castTo($get_11(layeredGraph.layers, 0), 30).nodes.array.length == 1; + hierarchicalLayout = maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (emptyGraph || singleNode && !hierarchicalLayout) { + progressMonitor.done_1(); + return; + } + graphsToSweepOn = $initialize_5(this$static, layeredGraph); + minimizingMethod = (parent_0 = castTo($get_7(graphsToSweepOn, 0), 219) , parent_0.crossMinimizer.isDeterministic()?parent_0.crossMinimizer.alwaysImproves()?new LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type(this$static):new LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type(this$static):new LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type(this$static)); + $minimizeCrossings(graphsToSweepOn, minimizingMethod); + $transferNodeAndPortOrdersToGraph(this$static); + progressMonitor.done_1(); +} + +function $saveAllNodeOrdersOfChangedGraphs(this$static){ + var graph, graph$iterator; + for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 219); + $setBestNodeNPortOrder(graph, new SweepCopy(graph.currentlyBestNodeAndPortOrder)); + } +} + +function $setCurrentlyBestNodeOrders(this$static){ + var graph, graph$iterator; + for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 219); + $setCurrentlyBestNodeAndPortOrder(graph, new SweepCopy_0(graph.currentNodeOrder)); + } +} + +function $setPortOrderOnParentGraph(gData){ + var bestSweep; + if (gData.hasExternalPorts) { + bestSweep = gData.crossMinimizer.isDeterministic()?gData.currentlyBestNodeAndPortOrder:gData.bestNodeAndPortOrder; + $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, true); + $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, false); + $setProperty_0(gData.parent_0, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_ORDER)); + } +} + +function $sortPortDummiesByPortPositions(parentNode, layerCloseToNodeEdge, side){ + var i, port, port$iterator, ports, sortedDummies; + ports = inNorthSouthEastWestOrder(parentNode, side); + sortedDummies = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layerCloseToNodeEdge.length, 0, 1); + i = 0; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))) && (sortedDummies[i++] = castTo($getProperty(port, PORT_DUMMY), 10)); + } + if (i < layerCloseToNodeEdge.length) { + throw toJs(new IllegalStateException_0('Expected ' + layerCloseToNodeEdge.length + ' hierarchical ports, but found only ' + i + '.')); + } + return sortedDummies; +} + +function $sortPortsByDummyPositionsInLastLayer(nodeOrder, parent_0, onRightMostLayer){ + var endIndex, i, j, lastLayer, port, ports; + endIndex = $endIndex(onRightMostLayer, nodeOrder.length); + lastLayer = nodeOrder[endIndex]; + j = $firstIndex(onRightMostLayer, lastLayer.length); + if (lastLayer[j].type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return; + } + ports = parent_0.ports; + for (i = 0; i < ports.array.length; i++) { + port = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 12)); + if ((onRightMostLayer?port.side == ($clinit_PortSide() , EAST_2):port.side == ($clinit_PortSide() , WEST_2)) && $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS))))) { + $set_1(ports, i, castTo($getProperty(lastLayer[j], ($clinit_InternalProperties_1() , ORIGIN_0)), 12)); + j += onRightMostLayer?1:-1; + } + } +} + +function $sweepInHierarchicalNodes(this$static, layer, isForwardSweep, isFirstSweep){ + var improved, node, node$array, node$index, node$max, nestedLGraph, nestedGraph, nestedGraphNodeOrder, startIndex, firstNode, improved_0; + improved = false; + for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $booleanValue(($clinit_Boolean() , node.nestedGraph?true:false)) && !castTo($get_11(this$static.graphInfoHolders, node.nestedGraph.id_0), 219).useBottomUp && (improved = improved | (nestedLGraph = node.nestedGraph , nestedGraph = castTo($get_11(this$static.graphInfoHolders, nestedLGraph.id_0), 219) , nestedGraphNodeOrder = nestedGraph.currentNodeOrder , startIndex = $firstIndex(isForwardSweep, nestedGraphNodeOrder.length) , firstNode = nestedGraphNodeOrder[startIndex][0] , firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)?(nestedGraphNodeOrder[startIndex] = $sortPortDummiesByPortPositions(node, nestedGraphNodeOrder[startIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2))):nestedGraph.crossMinimizer.setFirstLayerOrder(nestedGraphNodeOrder, isForwardSweep) , improved_0 = $sweepReducingCrossings(this$static, nestedGraph, isForwardSweep, isFirstSweep) , $sortPortsByDummyPositionsInLastLayer(nestedGraph.currentNodeOrder, nestedGraph.parent_0, isForwardSweep) , improved_0)); + } + return improved; +} + +function $sweepReducingCrossings(this$static, graph, forward_0, firstSweep){ + var firstLayer, i, improved, length_0, nodes; + nodes = graph.currentNodeOrder; + length_0 = nodes.length; + improved = graph.portDistributor.distributePortsWhileSweeping(nodes, forward_0?0:length_0 - 1, forward_0); + firstLayer = nodes[forward_0?0:length_0 - 1]; + improved = improved | $sweepInHierarchicalNodes(this$static, firstLayer, forward_0, firstSweep); + for (i = forward_0?1:length_0 - 2; forward_0?i < length_0:i >= 0; i += forward_0?1:-1) { + improved = improved | graph.crossMinimizer.minimizeCrossings(nodes, i, forward_0, firstSweep && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , SECOND_TRY_WITH_INITIAL_ORDER))))); + improved = improved | graph.portDistributor.distributePortsWhileSweeping(nodes, i, forward_0); + improved = improved | $sweepInHierarchicalNodes(this$static, nodes[i], forward_0, firstSweep); + } + $add_6(this$static.graphsWhoseNodeOrderChanged, graph); + return improved; +} + +function $transferNodeAndPortOrdersToGraph(this$static){ + var bestSweep, gD, gD$iterator; + for (gD$iterator = new ArrayList$1(this$static.graphInfoHolders); gD$iterator.i < gD$iterator.this$01.array.length;) { + gD = castTo($next_6(gD$iterator), 219); + bestSweep = gD.crossMinimizer.isDeterministic()?gD.currentlyBestNodeAndPortOrder:gD.bestNodeAndPortOrder; + !!bestSweep && $transferNodeAndPortOrdersToGraph_0(bestSweep, gD.lGraph); + } +} + +function LayerSweepCrossingMinimizer(cT){ + $clinit_LayerSweepCrossingMinimizer(); + this.crossMinType = cT; +} + +defineClass(514, 1, {514:1, 106:1, 47:1}, LayerSweepCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_13(graph){ + var configuration; + return castTo(graph, 36) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_4) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_68(layeredGraph, progressMonitor){ + $process_71(this, castTo(layeredGraph, 36), progressMonitor); +} +; +_.randomSeed = 0; +var INTERMEDIATE_PROCESSING_CONFIGURATION_4; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer', 514); +function LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1418, 1, $intern_19, LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type); +_.accept = function accept_117(arg0){ + $compareDifferentRandomizedLayouts(this.$$outer_0, castTo(arg0, 219)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type', 1418); +function LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1419, 1, $intern_19, LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type); +_.accept = function accept_118(arg0){ + $minimizeCrossingsNoCounter(this.$$outer_0, castTo(arg0, 219)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type', 1419); +function LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1420, 1, $intern_19, LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type); +_.accept = function accept_119(arg0){ + $minimizeCrossingsWithCounter(this.$$outer_0, castTo(arg0, 219)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type', 1420); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType = emptyMethod; + BARYCENTER = new LayerSweepCrossingMinimizer$CrossMinType('BARYCENTER', 0); + ONE_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('ONE_SIDED_GREEDY_SWITCH', 1); + TWO_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('TWO_SIDED_GREEDY_SWITCH', 2); +} + +function LayerSweepCrossingMinimizer$CrossMinType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_65(name_0){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType(); + return valueOf(($clinit_LayerSweepCrossingMinimizer$CrossMinType$Map() , $MAP_55), name_0); +} + +function values_73(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_37, 464, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]); +} + +defineClass(464, 22, {3:1, 34:1, 22:1, 464:1}, LayerSweepCrossingMinimizer$CrossMinType); +var BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/CrossMinType', 464, Ljava_lang_Enum_2_classLit, values_73, valueOf_65); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map = emptyMethod; + $MAP_55 = createValueOfMap(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_37, 464, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]))); +} + +var $MAP_55; +function LayerSweepCrossingMinimizer$lambda$0$Type(){ +} + +defineClass(1417, 1, $intern_40, LayerSweepCrossingMinimizer$lambda$0$Type); +_.test_0 = function test_83(arg0){ + return $clinit_LayerSweepCrossingMinimizer() , castTo(arg0, 30).nodes.array.length == 0; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/lambda$0$Type', 1417); +function $transferInfoTo(this$static, currentNode, target){ + var targetNodeInfo; + targetNodeInfo = this$static.nodeInfo[target.layer.id_0][target.id_0]; + targetNodeInfo.hierarchicalInfluence += currentNode.hierarchicalInfluence; + targetNodeInfo.randomInfluence += currentNode.randomInfluence; + targetNodeInfo.connectedEdges += currentNode.connectedEdges; + ++targetNodeInfo.connectedEdges; +} + +function $useBottomUp(this$static){ + var allPaths, boundary, currentNode, eastPorts, edge, edge$iterator, layer, layer$array, layer$index, layer$max, node, node$array, node$index, node$iterator, node$max, normalized, northSouthPorts, nsDummy, nsPortDummies, pathsToHierarchical, pathsToRandom, port, port$iterator, target, westPorts; + boundary = $doubleValue(castToDouble($getProperty(this$static.graphData.lGraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)))); + if (boundary < -1 || !this$static.graphData.hasParent || $isOrderFixed(castTo($getProperty(this$static.graphData.parent_0, PORT_CONSTRAINTS_0), 101)) || $getPortSideView(this$static.graphData.parent_0, ($clinit_PortSide() , EAST_2)).size_1() < 2 && $getPortSideView(this$static.graphData.parent_0, WEST_2).size_1() < 2) { + return true; + } + if (this$static.graphData.crossMinimizer.isDeterministic()) { + return false; + } + pathsToRandom = 0; + pathsToHierarchical = 0; + nsPortDummies = new ArrayList; + for (layer$array = this$static.graphData.currentNodeOrder , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + push_1(nsPortDummies.array, node); + continue; + } + currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; + if (node.type_0 == EXTERNAL_PORT) { + currentNode.hierarchicalInfluence = 1; + castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 12).side == ($clinit_PortSide() , EAST_2) && (pathsToHierarchical += currentNode.connectedEdges); + } + else { + westPorts = $getPortSideView(node, ($clinit_PortSide() , WEST_2)); + westPorts.isEmpty() || !any_0(westPorts, new LayerSweepTypeDecider$lambda$1$Type)?(currentNode.randomInfluence = 1):(eastPorts = $getPortSideView(node, EAST_2) , (eastPorts.isEmpty() || !any_0(eastPorts, new LayerSweepTypeDecider$lambda$0$Type)) && (pathsToRandom += currentNode.connectedEdges)); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + northSouthPorts = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [$getPortSideView(node, ($clinit_PortSide() , NORTH_3)), $getPortSideView(node, SOUTH_2)])); + for (port$iterator = new Iterators$ConcatenatedIterator(new FluentIterable$3$1(northSouthPorts.val$inputs1.length, northSouthPorts.val$inputs1)); $hasNext_1(port$iterator);) { + port = castTo($next_0(port$iterator), 12); + nsDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (nsDummy) { + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + $transferInfoTo(this$static, currentNode, nsDummy); + } + } + } + for (node$iterator = new ArrayList$1(nsPortDummies); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + } + nsPortDummies.array.length = 0; + } + allPaths = pathsToRandom + pathsToHierarchical; + normalized = allPaths == 0?$intern_60:(pathsToRandom - pathsToHierarchical) / allPaths; + return normalized >= boundary; +} + +function LayerSweepTypeDecider(graphData){ + this.graphData = graphData; + this.nodeInfo = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, $intern_16, 2043, graphData.currentNodeOrder.length, 0, 2); +} + +defineClass(1862, 1, $intern_111, LayerSweepTypeDecider); +_.initAfterTraversal = function initAfterTraversal_5(){ +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_5(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_5(l, n, p, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_5(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; + this.nodeInfo[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, {3:1, 4:1, 5:1, 2043:1}, 668, nodeOrder[l].length, 0, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_5(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + node.id_0 = n; + setCheck(this.nodeInfo[l], n, new LayerSweepTypeDecider$NodeInfo); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider', 1862); +function LayerSweepTypeDecider$NodeInfo(){ +} + +defineClass(668, 1, {668:1}, LayerSweepTypeDecider$NodeInfo); +_.toString_0 = function toString_101(){ + return 'NodeInfo [connectedEdges=' + this.connectedEdges + ', hierarchicalInfluence=' + this.hierarchicalInfluence + ', randomInfluence=' + this.randomInfluence + ']'; +} +; +_.connectedEdges = 0; +_.hierarchicalInfluence = 0; +_.randomInfluence = 0; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/NodeInfo', 668); +function LayerSweepTypeDecider$lambda$0$Type(){ +} + +defineClass(1863, 1, $intern_89, LayerSweepTypeDecider$lambda$0$Type); +_.apply_1 = function apply_133(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 12).connectedEdges)); +} +; +_.equals_0 = function equals_153(other){ + return this === other; +} +; +_.test_0 = function test_84(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 12).connectedEdges)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$0$Type', 1863); +function LayerSweepTypeDecider$lambda$1$Type(){ +} + +defineClass(1864, 1, $intern_89, LayerSweepTypeDecider$lambda$1$Type); +_.apply_1 = function apply_134(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 12).connectedEdges)); +} +; +_.equals_0 = function equals_154(other){ + return this === other; +} +; +_.test_0 = function test_85(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 12).connectedEdges)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$1$Type', 1864); +function LayerTotalPortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(1906, 413, $intern_114, LayerTotalPortDistributor); +_.calculatePortRanks = function calculatePortRanks(node, rankSum, type_0){ + var inputCount, northInputCount, northPos, port, port$iterator, port$iterator0, portRanks, pos, restPos; + portRanks = this.portRanks; + switch (type_0.ordinal) { + case 1: + { + inputCount = 0; + northInputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_6(port$iterator0), 12); + if (port.incomingEdges.array.length != 0) { + ++inputCount; + port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; + } + } + northPos = rankSum + northInputCount; + restPos = rankSum + inputCount; + for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + portRanks[port.id_0] = northPos; + --northPos; + } + else { + portRanks[port.id_0] = restPos; + --restPos; + } + } + return inputCount; + } + + case 2: + { + pos = 0; + for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + ++pos; + portRanks[port.id_0] = rankSum + pos; + } + return pos; + } + + default:throw toJs(new IllegalArgumentException); + } +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerTotalPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerTotalPortDistributor', 1906); +function $compareBasedOnBarycenter(this$static, n1, n2){ + var s1, s2, value_0; + s1 = this$static.barycenterState[n1.layer.id_0][n1.id_0]; + s2 = this$static.barycenterState[n2.layer.id_0][n2.id_0]; + if (s1.barycenter != null && s2.barycenter != null) { + value_0 = $compareTo_4(s1.barycenter, s2.barycenter); + value_0 < 0?$updateBiggerAndSmallerAssociations_1(this$static, n1, n2):value_0 > 0 && $updateBiggerAndSmallerAssociations_1(this$static, n2, n1); + return value_0; + } + else if (s1.barycenter != null) { + $updateBiggerAndSmallerAssociations_1(this$static, n1, n2); + return -1; + } + else if (s2.barycenter != null) { + $updateBiggerAndSmallerAssociations_1(this$static, n2, n1); + return 1; + } + return 0; +} + +function $compareBasedOnTansitiveDependencies(this$static, n1, n2){ + if ($containsKey_3(this$static.biggerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 49), n2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 49), n1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, n2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 49), n2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n2), 49), n1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, n2, new HashSet); + } + return 0; +} + +function $lambda$0_8(this$static, n1_0, n2_1){ + var transitiveComparison, value_0; + transitiveComparison = $compareBasedOnTansitiveDependencies(this$static, n1_0, n2_1); + if (transitiveComparison != 0) { + return transitiveComparison; + } + if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_1)) && $hasProperty(n2_1, MODEL_ORDER_1)) { + value_0 = compare_5(castTo($getProperty(n1_0, MODEL_ORDER_1), 17).value_0, castTo($getProperty(n2_1, MODEL_ORDER_1), 17).value_0); + value_0 < 0?$updateBiggerAndSmallerAssociations_1(this$static, n1_0, n2_1):value_0 > 0 && $updateBiggerAndSmallerAssociations_1(this$static, n2_1, n1_0); + return value_0; + } + return $compareBasedOnBarycenter(this$static, n1_0, n2_1); +} + +function $updateBiggerAndSmallerAssociations_1(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 49); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 49); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 49); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 49); + biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); + smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); + for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 10); + biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 49), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 49), biggerNodeSmallerThan); + } + for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 10); + smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 49), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 49), smallerNodeBiggerThan); + } +} + +function ModelOrderBarycenterHeuristic(constraintResolver, random, portDistributor){ + BarycenterHeuristic.call(this, constraintResolver, random, portDistributor); + this.biggerThan = new HashMap; + this.smallerThan = new HashMap; + this.barycenterStateComparator = new ModelOrderBarycenterHeuristic$lambda$0$Type(this); +} + +function insertionSort_0(layer, comparator, barycenterHeuristic){ + var i, j, temp; + for (i = 1; i < layer.array.length; i++) { + temp = (checkCriticalElementIndex(i, layer.array.length) , castTo(layer.array[i], 10)); + j = i; + while (j > 0 && comparator.compare_1((checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10)), temp) > 0) { + $set_1(layer, j, (checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10))); + --j; + } + checkCriticalElementIndex(j, layer.array.length); + layer.array[j] = temp; + } + barycenterHeuristic.biggerThan = new HashMap; + barycenterHeuristic.smallerThan = new HashMap; +} + +defineClass(669, 832, {669:1, 230:1}, ModelOrderBarycenterHeuristic); +_.minimizeCrossings_0 = function minimizeCrossings_2(layer, preOrdered, randomize, forward_0){ + if (randomize) { + $randomizeBarycenters(this, layer); + } + else { + $calculateBarycenters(this, layer, forward_0); + $fillInUnknownBarycenters(this, layer, preOrdered); + } + if (layer.array.length > 1) { + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, this):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || $processConstraints(this.constraintResolver, layer); + } +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic', 669); +function ModelOrderBarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1866, 1, $intern_88, ModelOrderBarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_72(arg0, arg1){ + return $lambda$0_8(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_155(other){ + return this === other; +} +; +_.reversed = function reversed_64(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic/lambda$0$Type', 1866); +function $clinit_NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_5 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); +} + +function $process_72(progressMonitor){ + progressMonitor.begin('No crossing minimization', 1); + progressMonitor.done_1(); +} + +function NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer(); +} + +defineClass(1423, 1, $intern_113, NoCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_14(graph){ + var configuration; + return castTo(graph, 36) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_5) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_69(graph, progressMonitor){ + $process_72((castTo(graph, 36) , progressMonitor)); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_5; +var Lorg_eclipse_elk_alg_layered_p3order_NoCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NoCrossingMinimizer', 1423); +function NodeRelativePortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(809, 413, $intern_114, NodeRelativePortDistributor); +_.calculatePortRanks = function calculatePortRanks_0(node, rankSum, type_0){ + var incr, inputCount, northInputCount, northPos, outputCount, port, port$iterator, port$iterator0, portRanks, pos, restPos; + portRanks = this.portRanks; + switch (type_0.ordinal) { + case 1: + { + inputCount = 0; + northInputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_6(port$iterator0), 12); + if (port.incomingEdges.array.length != 0) { + ++inputCount; + port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; + } + } + incr = 1 / (inputCount + 1); + northPos = rankSum + northInputCount * incr; + restPos = rankSum + 1 - incr; + for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + portRanks[port.id_0] = northPos; + northPos -= incr; + } + else { + portRanks[port.id_0] = restPos; + restPos -= incr; + } + } + break; + } + + case 2: + { + outputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_6(port$iterator0), 12); + port.outgoingEdges.array.length == 0 || ++outputCount; + } + incr = 1 / (outputCount + 1); + pos = rankSum + incr; + for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + portRanks[port.id_0] = pos; + pos += incr; + } + break; + } + + default:throw toJs(new IllegalArgumentException_0('Port type is undefined')); + } + return 1; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_NodeRelativePortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NodeRelativePortDistributor', 809); +function $assertCorrectPortSides(dummy){ + var anchorY, dummyPort, dummyPorts, origin_0, port, port$iterator, portHeight; + origin_0 = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + dummyPorts = dummy.ports; + dummyPort = (checkCriticalElementIndex(0, dummyPorts.array.length) , castTo(dummyPorts.array[0], 12)); + for (port$iterator = new ArrayList$1(origin_0.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if (maskUndefined(port) === maskUndefined($getProperty(dummyPort, ORIGIN_0))) { + if (port.side == ($clinit_PortSide() , NORTH_3) && dummy.id_0 > origin_0.id_0) { + $setSide(port, SOUTH_2); + if (port.explicitlySuppliedPortAnchor) { + portHeight = port.size_0.y_0; + anchorY = port.anchor.y_0; + port.anchor.y_0 = portHeight - anchorY; + } + } + else if (port.side == SOUTH_2 && origin_0.id_0 > dummy.id_0) { + $setSide(port, NORTH_3); + if (port.explicitlySuppliedPortAnchor) { + portHeight = port.size_0.y_0; + anchorY = port.anchor.y_0; + port.anchor.y_0 = -(portHeight - anchorY); + } + } + break; + } + } + return origin_0; +} + +function $deepCopy(currentlyBestNodeOrder){ + var i, result; + if (currentlyBestNodeOrder == null) { + return null; + } + result = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 199, currentlyBestNodeOrder.length, 0, 2); + for (i = 0; i < result.length; i++) { + result[i] = castTo(copyOf_0(currentlyBestNodeOrder[i], currentlyBestNodeOrder[i].length), 199); + } + return result; +} + +function $transferNodeAndPortOrdersToGraph_0(this$static, lGraph){ + var dummy, dummy$iterator, i, j, layers, node, node$iterator, nodes, northSouthPortDummies, origin_0, updatePortOrder; + northSouthPortDummies = new ArrayList; + updatePortOrder = new HashSet; + layers = lGraph.layers; + for (i = 0; i < layers.array.length; i++) { + nodes = (checkCriticalElementIndex(i, layers.array.length) , castTo(layers.array[i], 30)).nodes; + northSouthPortDummies.array.length = 0; + for (j = 0; j < nodes.array.length; j++) { + node = this$static.nodeOrder[i][j]; + node.id_0 = j; + node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && (push_1(northSouthPortDummies.array, node) , true); + $set_1(castTo($get_11(lGraph.layers, i), 30).nodes, j, node); + node.ports.array.length = 0; + $addAll_2(node.ports, castTo(castTo($get_11(this$static.portOrders, i), 15).get_0(j), 16)); + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101)) || $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_ORDER)); + } + for (dummy$iterator = new ArrayList$1(northSouthPortDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_6(dummy$iterator), 10); + origin_0 = $assertCorrectPortSides(dummy); + updatePortOrder.map_0.put(origin_0, updatePortOrder); + updatePortOrder.map_0.put(dummy, updatePortOrder); + } + } + for (node$iterator = updatePortOrder.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + $clinit_Collections(); + $sort(node.ports, ($clinit_PortListSorter() , CMP_COMBINED)); + node.portSidesCached = true; + $findPortIndices(node); + } +} + +function SweepCopy(sc){ + this.nodeOrder = $deepCopy(sc.nodeOrder); + this.portOrders = new ArrayList_1(sc.portOrders); +} + +function SweepCopy_0(nodeOrderIn){ + var lNodes, lNodes$array, lNodes$index, lNodes$max, layer, node, node$array, node$index, node$max; + this.nodeOrder = $deepCopy(nodeOrderIn); + this.portOrders = new ArrayList; + for (lNodes$array = nodeOrderIn , lNodes$index = 0 , lNodes$max = lNodes$array.length; lNodes$index < lNodes$max; ++lNodes$index) { + lNodes = lNodes$array[lNodes$index]; + layer = new ArrayList; + $add_3(this.portOrders, layer); + for (node$array = lNodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $add_3(layer, new ArrayList_1(node.ports)); + } + } +} + +defineClass(822, 1, {}, SweepCopy, SweepCopy_0); +var Lorg_eclipse_elk_alg_layered_p3order_SweepCopy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'SweepCopy', 822); +function $countAllCrossings(this$static, currentOrder){ + var crossings, layerIndex; + if (currentOrder.length == 0) { + return 0; + } + crossings = $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[0], ($clinit_PortSide() , WEST_2)); + crossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[currentOrder.length - 1], EAST_2); + for (layerIndex = 0; layerIndex < currentOrder.length; layerIndex++) { + crossings += $countCrossingsAt(this$static, layerIndex, currentOrder); + } + return crossings; +} + +function $countCrossingsAt(this$static, layerIndex, currentOrder){ + var leftLayer, rightLayer, totalCrossings; + totalCrossings = 0; + leftLayer = currentOrder[layerIndex]; + if (layerIndex < currentOrder.length - 1) { + rightLayer = currentOrder[layerIndex + 1]; + if (this$static.hasHyperEdgesEastOfIndex[layerIndex]) { + totalCrossings = $countCrossings_1(this$static.hyperedgeCrossingsCounter, leftLayer, rightLayer); + totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, leftLayer, ($clinit_PortSide() , EAST_2)); + totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, rightLayer, WEST_2); + } + else { + totalCrossings = $countCrossingsBetweenLayers(this$static.crossingCounter, leftLayer, rightLayer); + } + } + this$static.hasNorthSouthPorts[layerIndex] && (totalCrossings += $countNorthSouthPortCrossingsInLayer(this$static.crossingCounter, leftLayer)); + return totalCrossings; +} + +function AllCrossingsCounter(graph){ + this.inLayerEdgeCounts = initUnidimensionalArray(I_classLit, $intern_49, 28, graph.length, 15, 1); + this.hasNorthSouthPorts = initUnidimensionalArray(Z_classLit, $intern_91, 28, graph.length, 16, 1); + this.hasHyperEdgesEastOfIndex = initUnidimensionalArray(Z_classLit, $intern_91, 28, graph.length, 16, 1); + this.nPorts = 0; +} + +defineClass(1861, 1, $intern_111, AllCrossingsCounter); +_.initAtLayerLevel = function initAtLayerLevel_6(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_6(){ + var portPos; + portPos = initUnidimensionalArray(I_classLit, $intern_49, 28, this.nPorts, 15, 1); + this.hyperedgeCrossingsCounter = new HyperedgeCrossingsCounter(portPos); + this.crossingCounter = new CrossingsCounter(portPos); +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_6(l, n, p, e, edge, nodeOrder){ + var port; + port = castTo($get_11(nodeOrder[l][n].ports, p), 12); + edge.source == port && edge.source.owner.layer == edge.target.owner.layer && ++this.inLayerEdgeCounts[l]; +} +; +_.initAtNodeLevel = function initAtNodeLevel_6(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + this.hasNorthSouthPorts[l] = this.hasNorthSouthPorts[l] | node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT); +} +; +_.initAtPortLevel = function initAtPortLevel_6(l, n, p, nodeOrder){ + var port; + port = castTo($get_11(nodeOrder[l][n].ports, p), 12); + port.id_0 = this.nPorts++; + port.outgoingEdges.array.length + port.incomingEdges.array.length > 1 && (port.side == ($clinit_PortSide() , EAST_2)?(this.hasHyperEdgesEastOfIndex[l] = true):port.side == WEST_2 && l > 0 && (this.hasHyperEdgesEastOfIndex[l - 1] = true)); +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_AllCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'AllCrossingsCounter', 1861); +function $add_16(this$static, index_0){ + var i; + ++this$static.size_0; + ++this$static.numsPerIndex[index_0]; + i = index_0 + 1; + while (i < this$static.binarySums.length) { + ++this$static.binarySums[i]; + i += i & -i; + } +} + +function $clear_9(this$static){ + this$static.binarySums = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.maxNum + 1, 15, 1); + this$static.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.maxNum, 15, 1); + this$static.size_0 = 0; +} + +function $rank(this$static, index_0){ + var i, sum; + i = index_0; + sum = 0; + while (i > 0) { + sum += this$static.binarySums[i]; + i -= i & -i; + } + return sum; +} + +function $removeAll_3(this$static, index_0){ + var i, numEntries; + numEntries = this$static.numsPerIndex[index_0]; + if (numEntries == 0) { + return; + } + this$static.numsPerIndex[index_0] = 0; + this$static.size_0 -= numEntries; + i = index_0 + 1; + while (i < this$static.binarySums.length) { + this$static.binarySums[i] -= numEntries; + i += i & -i; + } +} + +function BinaryIndexedTree(maxNum){ + this.maxNum = maxNum; + this.binarySums = initUnidimensionalArray(I_classLit, $intern_49, 28, maxNum + 1, 15, 1); + this.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_49, 28, maxNum, 15, 1); + this.size_0 = 0; +} + +defineClass(595, 1, {}, BinaryIndexedTree); +_.maxNum = 0; +_.size_0 = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_BinaryIndexedTree_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'BinaryIndexedTree', 595); +function inNorthSouthEastWestOrder(node, side){ + switch (side.ordinal) { + case 2: + case 1: + return $getPortSideView(node, side); + case 3: + case 4: + return reverse_0($getPortSideView(node, side)); + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $clinit_CrossingsCounter(){ + $clinit_CrossingsCounter = emptyMethod; + INDEXING_SIDE = ($clinit_PortSide() , WEST_2); + STACK_SIDE = EAST_2; +} + +function $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side){ + var edge, edge$iterator, node, node$array, node$index, node$max, port, port$iterator, ports; + ports = new TreeSet_0(new CrossingsCounter$lambda$2$Type(this$static)); + for (node$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [upperNode, lowerNode]) , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + for (port$iterator = inNorthSouthEastWestOrder(node, side).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + if (!$isSelfLoop(edge)) { + ports.map_0.put(port, ($clinit_Boolean() , FALSE_0)) == null; + $isInLayer(edge) && $add_10(ports, port == edge.source?edge.target:edge.source); + } + } + } + } + return checkNotNull(ports) , new ArrayList_1(ports); +} + +function $connectedPortsSortedByPosition(this$static, upperPort, lowerPort){ + var edge, edge$iterator, port, port$array, port$index, port$max, ports; + ports = new TreeSet_0(new CrossingsCounter$lambda$3$Type(this$static)); + for (port$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, 1), $intern_108, 12, 0, [upperPort, lowerPort]) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + ports.map_0.put(port, ($clinit_Boolean() , FALSE_0)) == null; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + edge.source == edge.target || $add_10(ports, port == edge.source?edge.target:edge.source); + } + } + return checkNotNull(ports) , new ArrayList_1(ports); +} + +function $countCrossingsBetweenLayers(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return $countCrossingsOnPorts(this$static, ports); +} + +function $countCrossingsBetweenPortsInBothOrders(this$static, upperPort, lowerPort){ + var lowerUpperCrossings, ports, upperLowerCrossings; + ports = $connectedPortsSortedByPosition(this$static, upperPort, lowerPort); + upperLowerCrossings = $countCrossingsOnPorts(this$static, ports); + $clear_9(this$static.indexTree); + $switchPorts(this$static, upperPort, lowerPort); + $clinit_Collections(); + $sort(ports, new CrossingsCounter$lambda$0$Type(this$static)); + lowerUpperCrossings = $countCrossingsOnPorts(this$static, ports); + $clear_9(this$static.indexTree); + $switchPorts(this$static, lowerPort, upperPort); + return new Pair(valueOf_3(upperLowerCrossings), valueOf_3(lowerUpperCrossings)); +} + +function $countCrossingsOnPorts(this$static, ports){ + var crossings, edge, edge$iterator, endPosition, port, port$iterator; + crossings = 0; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition); + $addFirst(this$static.ends, valueOf_3(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 17).value_0); + } + } + return crossings; +} + +function $countInLayerCrossingsBetweenNodesInBothOrders(this$static, upperNode, lowerNode, side){ + var lowerUpperCrossings, ports, upperLowerCrossings; + ports = $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side); + upperLowerCrossings = $countInLayerCrossingsOnPorts(this$static, ports); + $switchNodes(this$static, upperNode, lowerNode, side); + $clear_9(this$static.indexTree); + $clinit_Collections(); + $sort(ports, new CrossingsCounter$lambda$1$Type(this$static)); + lowerUpperCrossings = $countInLayerCrossingsOnPorts(this$static, ports); + $switchNodes(this$static, lowerNode, upperNode, side); + $clear_9(this$static.indexTree); + return new Pair(valueOf_3(upperLowerCrossings), valueOf_3(lowerUpperCrossings)); +} + +function $countInLayerCrossingsOnPorts(this$static, ports){ + var crossings, edge, edge$iterator, endPosition, numBetweenLayerEdges, port, port$iterator; + crossings = 0; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + numBetweenLayerEdges = 0; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + if ($isInLayer(edge)) { + endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition); + $addFirst(this$static.ends, valueOf_3(endPosition)); + } + } + else { + ++numBetweenLayerEdges; + } + } + crossings += this$static.indexTree.size_0 * numBetweenLayerEdges; + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 17).value_0); + } + } + return crossings; +} + +function $countInLayerCrossingsOnSide(this$static, nodes, side){ + var ports; + ports = $initPortPositionsForInLayerCrossings(this$static, nodes, side); + return $countInLayerCrossingsOnPorts(this$static, ports); +} + +function $countNorthSouthCrossingsOnPorts(this$static, ports){ + var crossings, dummy, dummyPort, endPosition, port, port$iterator, targetAndDegree, targetAndDegree$iterator, targetsAndDegrees; + crossings = 0; + targetsAndDegrees = new ArrayList; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + targetsAndDegrees.array.length = 0; + switch (port.owner.type_0.ordinal) { + case 0: + dummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + $forEach_1(dummy.ports, new CrossingsCounter$lambda$4$Type(targetsAndDegrees)); + break; + case 1: + $ifPresent($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.owner.ports, 16)), new CrossingsCounter$lambda$5$Type(port))), new CrossingsCounter$lambda$6$Type(targetsAndDegrees)); + break; + case 3: + dummyPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + $add_3(targetsAndDegrees, new Pair(dummyPort, valueOf_3(port.incomingEdges.array.length + port.outgoingEdges.array.length))); + } + for (targetAndDegree$iterator = new ArrayList$1(targetsAndDegrees); targetAndDegree$iterator.i < targetAndDegree$iterator.this$01.array.length;) { + targetAndDegree = castTo($next_6(targetAndDegree$iterator), 42); + endPosition = $positionOf_0(this$static, castTo(targetAndDegree.first, 12)); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition) * castTo(targetAndDegree.second, 17).value_0; + $addFirst(this$static.ends, valueOf_3(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 17).value_0); + } + } + return crossings; +} + +function $countNorthSouthPortCrossingsInLayer(this$static, layer){ + var ports; + ports = $initPositionsForNorthSouthCounting(this$static, layer); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return $countNorthSouthCrossingsOnPorts(this$static, ports); +} + +function $emptyStack(this$static, stack_0, ports, side, startIndex){ + var dummy, index_0, p; + index_0 = startIndex; + while (stack_0.head != stack_0.tail) { + dummy = castTo($removeFirst(stack_0), 10); + p = castTo($getPortSideView(dummy, side).get_0(0), 12); + this$static.portPositions[p.id_0] = index_0++; + push_1(ports.array, p); + } + return index_0; +} + +function $initForCountingBetween(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); +} + +function $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = new ArrayList; + $initPositions(this$static, leftLayerNodes, ports, ($clinit_PortSide() , EAST_2), true, false); + $initPositions(this$static, rightLayerNodes, ports, WEST_2, false, false); + return ports; +} + +function $initPortPositionsForInLayerCrossings(this$static, nodes, side){ + var ports; + ports = new ArrayList; + $initPositions(this$static, nodes, ports, side, true, true); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return ports; +} + +function $initPositions(this$static, nodes, ports, side, topDown, getCardinalities){ + var i, node, nodePorts, numPorts, port, port$iterator; + numPorts = ports.array.length; + getCardinalities && (this$static.nodeCardinalities = initUnidimensionalArray(I_classLit, $intern_49, 28, nodes.length, 15, 1)); + for (i = topDown?0:nodes.length - 1; topDown?i < nodes.length:i >= 0; i += topDown?1:-1) { + node = nodes[i]; + nodePorts = side == ($clinit_PortSide() , EAST_2)?topDown?$getPortSideView(node, side):reverse_0($getPortSideView(node, side)):topDown?reverse_0($getPortSideView(node, side)):$getPortSideView(node, side); + getCardinalities && (this$static.nodeCardinalities[node.id_0] = nodePorts.size_1()); + for (port$iterator = nodePorts.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + this$static.portPositions[port.id_0] = numPorts++; + } + $addAll_2(ports, nodePorts); + } +} + +function $initPositionsForNorthSouthCounting(this$static, nodes){ + var current, i, index_0, lastLayoutUnit, p, p$iterator, p$iterator0, p$iterator1, ports, stack_0; + ports = new ArrayList; + stack_0 = new ArrayDeque; + lastLayoutUnit = null; + index_0 = 0; + for (i = 0; i < nodes.length; ++i) { + current = nodes[i]; + $isLayoutUnitChanged(lastLayoutUnit, current) && (index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0)); + $hasProperty(current, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)) && (lastLayoutUnit = castTo($getProperty(current, IN_LAYER_LAYOUT_UNIT), 10)); + switch (current.type_0.ordinal) { + case 0: + for (p$iterator0 = $iterator_0(filter_0($getPortSideView(current, ($clinit_PortSide() , NORTH_3)), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator0);) { + p = castTo($next(p$iterator0), 12); + this$static.portPositions[p.id_0] = index_0++; + push_1(ports.array, p); + } + + index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); + for (p$iterator1 = $iterator_0(filter_0($getPortSideView(current, SOUTH_2), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator1);) { + p = castTo($next(p$iterator1), 12); + this$static.portPositions[p.id_0] = index_0++; + push_1(ports.array, p); + } + + break; + case 3: + if (!$getPortSideView(current, INDEXING_SIDE).isEmpty()) { + p = castTo($getPortSideView(current, INDEXING_SIDE).get_0(0), 12); + this$static.portPositions[p.id_0] = index_0++; + push_1(ports.array, p); + } + + $getPortSideView(current, STACK_SIDE).isEmpty() || $addFirst(stack_0, current); + break; + case 1: + for (p$iterator = $getPortSideView(current, ($clinit_PortSide() , WEST_2)).iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 12); + this$static.portPositions[p.id_0] = index_0++; + push_1(ports.array, p); + } + + $getPortSideView(current, EAST_2).forEach_0(new CrossingsCounter$lambda$7$Type(stack_0, current)); + } + } + $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); + return ports; +} + +function $isInLayer(edge){ + var sourceLayer, targetLayer; + sourceLayer = edge.source.owner.layer; + targetLayer = edge.target.owner.layer; + return sourceLayer == targetLayer; +} + +function $isLayoutUnitChanged(lastUnit, node){ + var unit; + if (!lastUnit || lastUnit == node || !$hasProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT))) { + return false; + } + unit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + return unit != lastUnit; +} + +function $lambda$0_9(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$1_4(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$2_2(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$3_1(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $positionOf_0(this$static, port){ + return this$static.portPositions[port.id_0]; +} + +function $switchNodes(this$static, wasUpperNode, wasLowerNode, side){ + var port, port$iterator, port$iterator0, ports; + ports = inNorthSouthEastWestOrder(wasUpperNode, side); + for (port$iterator0 = ports.iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 12); + this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] + this$static.nodeCardinalities[wasLowerNode.id_0]; + } + ports = inNorthSouthEastWestOrder(wasLowerNode, side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] - this$static.nodeCardinalities[wasUpperNode.id_0]; + } +} + +function $switchPorts(this$static, topPort, bottomPort){ + var topPortPos; + topPortPos = this$static.portPositions[topPort.id_0]; + this$static.portPositions[topPort.id_0] = this$static.portPositions[bottomPort.id_0]; + this$static.portPositions[bottomPort.id_0] = topPortPos; +} + +function CrossingsCounter(portPositions){ + $clinit_CrossingsCounter(); + this.portPositions = portPositions; + this.ends = new ArrayDeque; +} + +function lambda$4_7(targetsAndDegrees_0, p_1){ + $clinit_CrossingsCounter(); + return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_3(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +function lambda$5_4(port_0, p_1){ + $clinit_CrossingsCounter(); + return p_1 != port_0; +} + +function lambda$6_1(targetsAndDegrees_0, p_1){ + $clinit_CrossingsCounter(); + return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_3(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +defineClass(532, 1, {}, CrossingsCounter); +var INDEXING_SIDE, STACK_SIDE; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter', 532); +function CrossingsCounter$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1950, 1, $intern_88, CrossingsCounter$lambda$0$Type); +_.compare_1 = function compare_73(arg0, arg1){ + return $lambda$0_9(this.$$outer_0, castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_156(other){ + return this === other; +} +; +_.reversed = function reversed_65(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$0$Type', 1950); +function CrossingsCounter$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1951, 1, $intern_88, CrossingsCounter$lambda$1$Type); +_.compare_1 = function compare_74(arg0, arg1){ + return $lambda$1_4(this.$$outer_0, castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_157(other){ + return this === other; +} +; +_.reversed = function reversed_66(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$1$Type', 1951); +function CrossingsCounter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1952, 1, $intern_88, CrossingsCounter$lambda$2$Type); +_.compare_1 = function compare_75(arg0, arg1){ + return $lambda$2_2(this.$$outer_0, castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_158(other){ + return this === other; +} +; +_.reversed = function reversed_67(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$2$Type', 1952); +function CrossingsCounter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1953, 1, $intern_88, CrossingsCounter$lambda$3$Type); +_.compare_1 = function compare_76(arg0, arg1){ + return $lambda$3_1(this.$$outer_0, castTo(arg0, 12), castTo(arg1, 12)); +} +; +_.equals_0 = function equals_159(other){ + return this === other; +} +; +_.reversed = function reversed_68(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$3$Type', 1953); +function CrossingsCounter$lambda$4$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1954, 1, $intern_19, CrossingsCounter$lambda$4$Type); +_.accept = function accept_120(arg0){ + lambda$4_7(this.targetsAndDegrees_0, castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$4$Type', 1954); +function CrossingsCounter$lambda$5$Type(port_0){ + this.port_0 = port_0; +} + +defineClass(1955, 1, $intern_40, CrossingsCounter$lambda$5$Type); +_.test_0 = function test_86(arg0){ + return lambda$5_4(this.port_0, castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$5$Type', 1955); +function $accept_4(this$static, arg0){ + lambda$6_1(this$static.targetsAndDegrees_0, castTo(arg0, 12)); +} + +function CrossingsCounter$lambda$6$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1956, 1, $intern_19, CrossingsCounter$lambda$6$Type); +_.accept = function accept_121(arg0){ + $accept_4(this, arg0); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$6$Type', 1956); +function CrossingsCounter$lambda$7$Type(stack_0, current_1){ + this.stack_0 = stack_0; + this.current_1 = current_1; +} + +defineClass(1957, 1, $intern_19, CrossingsCounter$lambda$7$Type); +_.accept = function accept_122(arg0){ + var lastArg; + $clinit_CrossingsCounter(); + $addFirst(this.stack_0, (lastArg = this.current_1 , castTo(arg0, 12) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$7$Type', 1957); +function CrossingsCounter$lambda$8$Type(){ +} + +defineClass(839, 1, $intern_89, CrossingsCounter$lambda$8$Type); +_.apply_1 = function apply_135(arg0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(arg0, 12), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +_.equals_0 = function equals_160(other){ + return this === other; +} +; +_.test_0 = function test_87(input_0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(input_0, 12), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$8$Type', 839); +function $countCrossings_1(this$static, leftLayer, rightLayer){ + var compressDeltas, crossings, delta, edge, edge$iterator, firstIndex, he, he$array, he$index, he$max, hyperedge, hyperedgeSet, hyperedges, i, i0, i1, i2, i3, i4, i5, index_0, k, leftCorners, leftLayerRef, node, node$array, node$array0, node$array1, node$index, node$index0, node$index1, node$max, node$max0, node$max1, northInputPorts, openHyperedges, otherInputPorts, p, p$iterator, port, port$iterator, port2HyperedgeMap, portEdges, portIter, pos, q, rightCorners, rightLayerRef, sourceCount, sourceHE, sourcePort, sourcePort$iterator, southSequence, targetCount, targetHE, targetPort, tree, treeSize; + sourceCount = 0; + for (node$array0 = leftLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { + node = node$array0[node$index0]; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + node.layer != edge.target.owner.layer && ++portEdges; + } + portEdges > 0 && (this$static.portPos[port.id_0] = sourceCount++); + } + } + targetCount = 0; + for (node$array1 = rightLayer , node$index1 = 0 , node$max1 = node$array1.length; node$index1 < node$max1; ++node$index1) { + node = node$array1[node$index1]; + northInputPorts = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (node.layer != edge.source.owner.layer) { + ++northInputPorts; + break; + } + } + } + else { + break; + } + } + otherInputPorts = 0; + portIter = new AbstractList$ListIteratorImpl(node.ports, node.ports.array.length); + while (portIter.i > 0) { + port = (checkCriticalElement(portIter.i > 0) , castTo(portIter.this$01.get_0(portIter.last = --portIter.i), 12)); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + node.layer != edge.source.owner.layer && ++portEdges; + } + if (portEdges > 0) { + if (port.side == ($clinit_PortSide() , NORTH_3)) { + this$static.portPos[port.id_0] = targetCount; + ++targetCount; + } + else { + this$static.portPos[port.id_0] = targetCount + northInputPorts + otherInputPorts; + ++otherInputPorts; + } + } + } + targetCount += otherInputPorts; + } + port2HyperedgeMap = new HashMap; + hyperedgeSet = new LinkedHashSet; + for (node$array = leftLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { + sourcePort = castTo($next_6(sourcePort$iterator), 12); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + targetPort = edge.target; + if (node.layer != targetPort.owner.layer) { + sourceHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, sourcePort)), 478); + targetHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, targetPort)), 478); + if (!sourceHE && !targetHE) { + hyperedge = new HyperedgeCrossingsCounter$Hyperedge; + hyperedgeSet.map_0.put(hyperedge, hyperedgeSet); + $add_3(hyperedge.edges, edge); + $add_3(hyperedge.ports, sourcePort); + $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, hyperedge); + $add_3(hyperedge.ports, targetPort); + $put_9(port2HyperedgeMap.hashCodeMap, targetPort, hyperedge); + } + else if (!sourceHE) { + $add_3(targetHE.edges, edge); + $add_3(targetHE.ports, sourcePort); + $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, targetHE); + } + else if (!targetHE) { + $add_3(sourceHE.edges, edge); + $add_3(sourceHE.ports, targetPort); + $put_9(port2HyperedgeMap.hashCodeMap, targetPort, sourceHE); + } + else if (sourceHE == targetHE) { + $add_3(sourceHE.edges, edge); + } + else { + $add_3(sourceHE.edges, edge); + for (p$iterator = new ArrayList$1(targetHE.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 12); + $put_9(port2HyperedgeMap.hashCodeMap, p, sourceHE); + } + $addAll_2(sourceHE.edges, targetHE.edges); + $addAll_2(sourceHE.ports, targetHE.ports); + hyperedgeSet.map_0.remove_0(targetHE) != null; + } + } + } + } + } + hyperedges = castTo($toArray_0(hyperedgeSet, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit, {3:1, 4:1, 5:1, 2045:1}, 478, hyperedgeSet.map_0.size_1(), 0, 1)), 2045); + leftLayerRef = leftLayer[0].layer; + rightLayerRef = rightLayer[0].layer; + for (he$array = hyperedges , he$index = 0 , he$max = he$array.length; he$index < he$max; ++he$index) { + he = he$array[he$index]; + he.upperLeft = sourceCount; + he.upperRight = targetCount; + for (port$iterator = new ArrayList$1(he.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + pos = this$static.portPos[port.id_0]; + if (port.owner.layer == leftLayerRef) { + pos < he.upperLeft && (he.upperLeft = pos); + pos > he.lowerLeft && (he.lowerLeft = pos); + } + else if (port.owner.layer == rightLayerRef) { + pos < he.upperRight && (he.upperRight = pos); + pos > he.lowerRight && (he.lowerRight = pos); + } + } + } + mergeSort(hyperedges, 0, hyperedges.length, null); + southSequence = initUnidimensionalArray(I_classLit, $intern_49, 28, hyperedges.length, 15, 1); + compressDeltas = initUnidimensionalArray(I_classLit, $intern_49, 28, targetCount + 1, 15, 1); + for (i0 = 0; i0 < hyperedges.length; i0++) { + southSequence[i0] = hyperedges[i0].upperRight; + compressDeltas[southSequence[i0]] = 1; + } + delta = 0; + for (i1 = 0; i1 < compressDeltas.length; i1++) { + compressDeltas[i1] == 1?(compressDeltas[i1] = delta):--delta; + } + q = 0; + for (i2 = 0; i2 < southSequence.length; i2++) { + southSequence[i2] += compressDeltas[southSequence[i2]]; + q = $wnd.Math.max(q, southSequence[i2] + 1); + } + firstIndex = 1; + while (firstIndex < q) { + firstIndex *= 2; + } + treeSize = 2 * firstIndex - 1; + firstIndex -= 1; + tree = initUnidimensionalArray(I_classLit, $intern_49, 28, treeSize, 15, 1); + crossings = 0; + for (k = 0; k < southSequence.length; k++) { + index_0 = southSequence[k] + firstIndex; + ++tree[index_0]; + while (index_0 > 0) { + index_0 % 2 > 0 && (crossings += tree[index_0 + 1]); + index_0 = (index_0 - 1) / 2 | 0; + ++tree[index_0]; + } + } + leftCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 374, hyperedges.length * 2, 0, 1); + for (i3 = 0; i3 < hyperedges.length; i3++) { + leftCorners[2 * i3] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].upperLeft, hyperedges[i3].lowerLeft, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); + leftCorners[2 * i3 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].lowerLeft, hyperedges[i3].upperLeft, LOWER); + } + mergeSort(leftCorners, 0, leftCorners.length, null); + openHyperedges = 0; + for (i4 = 0; i4 < leftCorners.length; i4++) { + switch (leftCorners[i4].type_0.ordinal) { + case 0: + ++openHyperedges; + break; + case 1: + --openHyperedges; + crossings += openHyperedges; + } + } + rightCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 374, hyperedges.length * 2, 0, 1); + for (i5 = 0; i5 < hyperedges.length; i5++) { + rightCorners[2 * i5] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].upperRight, hyperedges[i5].lowerRight, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); + rightCorners[2 * i5 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].lowerRight, hyperedges[i5].upperRight, LOWER); + } + mergeSort(rightCorners, 0, rightCorners.length, null); + openHyperedges = 0; + for (i = 0; i < rightCorners.length; i++) { + switch (rightCorners[i].type_0.ordinal) { + case 0: + ++openHyperedges; + break; + case 1: + --openHyperedges; + crossings += openHyperedges; + } + } + return crossings; +} + +function HyperedgeCrossingsCounter(portPos){ + this.portPos = portPos; +} + +defineClass(1949, 1, {}, HyperedgeCrossingsCounter); +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter', 1949); +function $compareTo_14(this$static, other){ + if (this$static.upperLeft < other.upperLeft) { + return -1; + } + else if (this$static.upperLeft > other.upperLeft) { + return 1; + } + else if (this$static.upperRight < other.upperRight) { + return -1; + } + else if (this$static.upperRight > other.upperRight) { + return 1; + } + return hashCode__I__devirtual$(this$static) - hashCode__I__devirtual$(other); +} + +function HyperedgeCrossingsCounter$Hyperedge(){ + this.edges = new ArrayList; + this.ports = new ArrayList; +} + +defineClass(478, 1, {34:1, 478:1}, HyperedgeCrossingsCounter$Hyperedge); +_.compareTo_0 = function compareTo_15(other){ + return $compareTo_14(this, castTo(other, 478)); +} +; +_.lowerLeft = 0; +_.lowerRight = 0; +_.upperLeft = 0; +_.upperRight = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/Hyperedge', 478); +function $compareTo_15(this$static, other){ + if (this$static.position < other.position) { + return -1; + } + else if (this$static.position > other.position) { + return 1; + } + else if (this$static.oppositePosition < other.oppositePosition) { + return -1; + } + else if (this$static.oppositePosition > other.oppositePosition) { + return 1; + } + else if (this$static.hyperedge != other.hyperedge) { + return hashCode__I__devirtual$(this$static.hyperedge) - hashCode__I__devirtual$(other.hyperedge); + } + else if (this$static.type_0 == ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER) && other.type_0 == LOWER) { + return -1; + } + else if (this$static.type_0 == LOWER && other.type_0 == UPPER) { + return 1; + } + return 0; +} + +function HyperedgeCrossingsCounter$HyperedgeCorner(hyperedge, position, oppositePosition, type_0){ + this.hyperedge = hyperedge; + this.position = position; + this.oppositePosition = oppositePosition; + this.type_0 = type_0; +} + +defineClass(374, 1, {34:1, 374:1}, HyperedgeCrossingsCounter$HyperedgeCorner); +_.compareTo_0 = function compareTo_16(other){ + return $compareTo_15(this, castTo(other, 374)); +} +; +_.oppositePosition = 0; +_.position = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner', 374); +function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type = emptyMethod; + UPPER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('UPPER', 0); + LOWER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('LOWER', 1); +} + +function HyperedgeCrossingsCounter$HyperedgeCorner$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_66(name_0){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); + return valueOf(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map() , $MAP_56), name_0); +} + +function values_74(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_37, 531, 0, [UPPER, LOWER]); +} + +defineClass(531, 22, {3:1, 34:1, 22:1, 531:1}, HyperedgeCrossingsCounter$HyperedgeCorner$Type); +var LOWER, UPPER; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner/Type', 531, Ljava_lang_Enum_2_classLit, values_74, valueOf_66); +function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map = emptyMethod; + $MAP_56 = createValueOfMap(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_37, 531, 0, [UPPER, LOWER]))); +} + +var $MAP_56; +function $clinit_InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $placeNodes(this$static, layer){ + var minValidY, node, node$iterator, nodeType, originalYCoordinate, prevNodeType, spacing; + minValidY = $intern_61; + prevNodeType = ($clinit_LNode$NodeType() , NORMAL); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + nodeType = node.type_0; + if (nodeType != NORMAL) { + originalYCoordinate = castToDouble($getProperty(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION))); + if (originalYCoordinate == null) { + minValidY = $wnd.Math.max(minValidY, 0); + node.pos.y_0 = minValidY + $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); + } + else { + node.pos.y_0 = (checkCriticalNotNull(originalYCoordinate) , originalYCoordinate); + } + } + spacing = $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); + node.pos.y_0 < minValidY + spacing + node.margin.top_0 && (node.pos.y_0 = minValidY + spacing + node.margin.top_0); + minValidY = node.pos.y_0 + node.size_0.y_0 + node.margin.bottom; + prevNodeType = nodeType; + } +} + +function $process_73(this$static, layeredGraph, monitor){ + var layer, layer$iterator; + monitor.begin('Interactive node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + $placeNodes(this$static, layer); + } + monitor.done_1(); +} + +function InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer(); +} + +defineClass(1425, 1, $intern_113, InteractiveNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_15(graph){ + return castTo($getProperty(castTo(graph, 36), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS:null; +} +; +_.process = function process_70(layeredGraph, monitor){ + $process_73(this, castTo(layeredGraph, 36), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p4nodes_InteractiveNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'InteractiveNodePlacer', 1425); +function $clinit_LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_0 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); + INPUT_PRIO = new Property_0('linearSegments.inputPrio', valueOf_3(0)); + OUTPUT_PRIO = new Property_0('linearSegments.outputPrio', valueOf_3(0)); +} + +function $balancePlacement(this$static, layeredGraph){ + var deflection, deflectionDampening, finalIters, incoming, lastTotalDeflection, merged, mode, node, node$iterator, outgoing, pendulumIters, ready, segment, segment$array, segment$array0, segment$index, segment$index0, segment$max, segment$max0, thoroughness, threshold, totalDeflection; + deflectionDampening = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)))); + thoroughness = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 17).value_0; + pendulumIters = 4; + finalIters = 3; + threshold = 20 / thoroughness; + ready = false; + mode = 0; + lastTotalDeflection = $intern_0; + do { + incoming = mode != 1; + outgoing = mode != 0; + totalDeflection = 0; + for (segment$array0 = this$static.linearSegments , segment$index0 = 0 , segment$max0 = segment$array0.length; segment$index0 < segment$max0; ++segment$index0) { + segment = segment$array0[segment$index0]; + segment.refSegment = null; + $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening); + totalDeflection += $wnd.Math.abs(segment.deflection); + } + do { + merged = $mergeRegions(this$static, layeredGraph); + } + while (merged); + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + deflection = $region(segment).deflection; + if (deflection != 0) { + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.pos.y_0 += deflection; + } + } + } + if (mode == 0 || mode == 1) { + --pendulumIters; + if (pendulumIters <= 0 && (totalDeflection < lastTotalDeflection || -pendulumIters > thoroughness)) { + mode = 2; + lastTotalDeflection = $intern_0; + } + else if (mode == 0) { + mode = 1; + lastTotalDeflection = totalDeflection; + } + else { + mode = 0; + lastTotalDeflection = totalDeflection; + } + } + else { + ready = totalDeflection >= lastTotalDeflection || lastTotalDeflection - totalDeflection < threshold; + lastTotalDeflection = totalDeflection; + ready && --finalIters; + } + } + while (!(ready && finalIters <= 0)); +} + +function $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening){ + var edge, edge$iterator, edgeWeightSum, inputPrio, minPrio, node, node$iterator, nodeDeflection, nodeWeightSum, otherNode, otherPort, otherPrio, outputPrio, port, port$iterator, portpos, prio, segmentDeflection; + segmentDeflection = 0; + nodeWeightSum = 0; + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + nodeDeflection = 0; + edgeWeightSum = 0; + inputPrio = incoming?castTo($getProperty(node, INPUT_PRIO), 17).value_0:$intern_43; + outputPrio = outgoing?castTo($getProperty(node, OUTPUT_PRIO), 17).value_0:$intern_43; + minPrio = $wnd.Math.max(inputPrio, outputPrio); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + portpos = node.pos.y_0 + port.pos.y_0 + port.anchor.y_0; + if (outgoing) { + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + otherPort = edge.target; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 17).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 17).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0; + if (prio >= minPrio && prio >= otherPrio) { + nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; + ++edgeWeightSum; + } + } + } + } + if (incoming) { + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + otherPort = edge.source; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 17).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 17).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0; + if (prio >= minPrio && prio >= otherPrio) { + nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; + ++edgeWeightSum; + } + } + } + } + } + if (edgeWeightSum > 0) { + segmentDeflection += nodeDeflection / edgeWeightSum; + ++nodeWeightSum; + } + } + if (nodeWeightSum > 0) { + segment.deflection = deflectionDampening * segmentDeflection / nodeWeightSum; + segment.weight = nodeWeightSum; + } + else { + segment.deflection = 0; + segment.weight = 0; + } +} + +function $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList){ + var currentNode, currentSegment, cycleNode, cycleNodesIter, cycleSegment, indexInLayer, layer, layer$iterator, layerIndex, nextLinearSegmentID, nextNode, nextSegment, nodeIter, nodes, previousNode; + nextLinearSegmentID = segmentList.array.length; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + nodeIter = new ArrayList$1(nodes); + indexInLayer = 0; + previousNode = null; + currentNode = castTo($next_6(nodeIter), 10); + currentSegment = null; + while (currentNode) { + currentSegment = castTo($get_11(segmentList, currentNode.id_0), 261); + if (currentSegment.indexInLastLayer >= 0) { + cycleSegment = null; + cycleNodesIter = new AbstractList$ListIteratorImpl(layer.nodes, indexInLayer + 1); + while (cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) { + cycleNode = (checkCriticalElement(cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) , castTo(cycleNodesIter.this$01_0.get_0(cycleNodesIter.last = cycleNodesIter.i++), 10)); + cycleSegment = castTo($get_11(segmentList, cycleNode.id_0), 261); + if (cycleSegment.lastLayer == currentSegment.lastLayer && cycleSegment.indexInLastLayer < currentSegment.indexInLastLayer) { + break; + } + else { + cycleSegment = null; + } + } + if (cycleSegment) { + if (previousNode) { + $set_1(incomingCountList, currentNode.id_0, valueOf_3(castTo($get_11(incomingCountList, currentNode.id_0), 17).value_0 - 1)); + castTo($get_11(outgoingList, previousNode.id_0), 15).remove_1(currentSegment); + } + currentSegment = $split_3(currentSegment, currentNode, nextLinearSegmentID++); + push_1(segmentList.array, currentSegment); + $add_3(outgoingList, new ArrayList); + if (previousNode) { + castTo($get_11(outgoingList, previousNode.id_0), 15).add_2(currentSegment); + $add_3(incomingCountList, valueOf_3(1)); + } + else { + $add_3(incomingCountList, valueOf_3(0)); + } + } + } + nextNode = null; + if (nodeIter.i < nodeIter.this$01.array.length) { + nextNode = castTo($next_6(nodeIter), 10); + nextSegment = castTo($get_11(segmentList, nextNode.id_0), 261); + castTo($get_11(outgoingList, currentNode.id_0), 15).add_2(nextSegment); + $set_1(incomingCountList, nextNode.id_0, valueOf_3(castTo($get_11(incomingCountList, nextNode.id_0), 17).value_0 + 1)); + } + currentSegment.lastLayer = layerIndex; + currentSegment.indexInLastLayer = indexInLayer++; + previousNode = currentNode; + currentNode = nextNode; + } + ++layerIndex; + } +} + +function $createUnbalancedPlacement(this$static, layeredGraph){ + var layer, layerIndex, node, node$iterator, node$iterator0, nodeCount, recentNode, recentNodeType, segment, segment$array, segment$index, segment$max, spacing, uppermostPlace; + nodeCount = initUnidimensionalArray(I_classLit, $intern_49, 28, layeredGraph.layers.array.length, 15, 1); + recentNodeType = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, $intern_37, 273, layeredGraph.layers.array.length, 0, 1); + recentNode = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layeredGraph.layers.array.length, 0, 1); + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + uppermostPlace = 0; + for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + layerIndex = $getIndex_0(node.layer); + ++nodeCount[layerIndex]; + spacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + nodeCount[layerIndex] > 0 && !!recentNode[layerIndex] && (spacing = $getVerticalSpacing_0(this$static.spacings, recentNode[layerIndex], node)); + uppermostPlace = $wnd.Math.max(uppermostPlace, node.layer.size_0.y_0 + spacing); + } + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.pos.y_0 = uppermostPlace + node.margin.top_0; + layer = node.layer; + layer.size_0.y_0 = uppermostPlace + node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; + recentNodeType[$indexOf_3(layer.owner.layers, layer, 0)] = node.type_0; + recentNode[$indexOf_3(layer.owner.layers, layer, 0)] = node; + } + } +} + +function $fillSegment(this$static, node, segment){ + var edgesIter, nodeType, sourcePort, sourcePort$iterator, targetNode, targetNodeType, targetPort, targetPort$iterator; + nodeType = node.type_0; + if (node.id_0 >= 0) { + return false; + } + else { + node.id_0 = segment.id_0; + $add_3(segment.nodes, node); + } + if (nodeType == ($clinit_LNode$NodeType() , LONG_EDGE) || nodeType == NORTH_SOUTH_PORT) { + for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { + sourcePort = castTo($next_6(sourcePort$iterator), 12); + for (targetPort$iterator = (edgesIter = new ArrayList$1((new LPort$2(sourcePort)).this$01.outgoingEdges) , new LPort$2$1(edgesIter)); $hasNext_3(targetPort$iterator.val$edgesIter2);) { + targetPort = castTo($next_6(targetPort$iterator.val$edgesIter2), 18).target; + targetNode = targetPort.owner; + targetNodeType = targetNode.type_0; + if (node.layer != targetNode.layer) { + if (targetNodeType == LONG_EDGE || targetNodeType == NORTH_SOUTH_PORT) { + if ($fillSegment(this$static, targetNode, segment)) { + return true; + } + } + } + } + } + } + return true; +} + +function $mergeRegions(this$static, layeredGraph){ + var changed, layer, layer$iterator, node1, node1Extent, node2, node2Extent, nodeIter, nodeSpacing, region1, region2, spacing, threshold, weightSum; + changed = false; + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + threshold = $intern_42 * nodeSpacing; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + nodeIter = new ArrayList$1(layer.nodes); + node1 = castTo($next_6(nodeIter), 10); + region1 = $region(this$static.linearSegments[node1.id_0]); + while (nodeIter.i < nodeIter.this$01.array.length) { + node2 = castTo($next_6(nodeIter), 10); + region2 = $region(this$static.linearSegments[node2.id_0]); + if (region1 != region2) { + spacing = $getVerticalSpacing_0(this$static.spacings, node1, node2); + node1Extent = node1.pos.y_0 + node1.size_0.y_0 + node1.margin.bottom + region1.deflection + spacing; + node2Extent = node2.pos.y_0 - node2.margin.top_0 + region2.deflection; + if (node1Extent > node2Extent + threshold) { + weightSum = region1.weight + region2.weight; + region2.deflection = (region2.weight * region2.deflection + region1.weight * region1.deflection) / weightSum; + region2.weight = weightSum; + region1.refSegment = region2; + changed = true; + } + } + node1 = node2; + region1 = region2; + } + } + return changed; +} + +function $postProcess(this$static){ + var d, edge, edge$iterator, firstNode, foundPlace, index_0, lastNode, minDisplacement, minRoomAbove, minRoomBelow, neighbor, node, node$iterator, node$iterator0, pos, roomAbove, roomBelow, segment, segment$array, segment$index, segment$max, source, source$iterator, spacing, target, target$iterator; + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + minRoomAbove = $intern_0; + minRoomBelow = $intern_0; + for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + index_0 = !node.layer?-1:$indexOf_3(node.layer.nodes, node, 0); + if (index_0 > 0) { + neighbor = castTo($get_11(node.layer.nodes, index_0 - 1), 10); + spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); + roomAbove = node.pos.y_0 - node.margin.top_0 - (neighbor.pos.y_0 + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing); + } + else { + roomAbove = node.pos.y_0 - node.margin.top_0; + } + minRoomAbove = $wnd.Math.min(roomAbove, minRoomAbove); + if (index_0 < node.layer.nodes.array.length - 1) { + neighbor = castTo($get_11(node.layer.nodes, index_0 + 1), 10); + spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); + roomBelow = neighbor.pos.y_0 - neighbor.margin.top_0 - (node.pos.y_0 + node.size_0.y_0 + node.margin.bottom + spacing); + } + else { + roomBelow = 2 * node.pos.y_0; + } + minRoomBelow = $wnd.Math.min(roomBelow, minRoomBelow); + } + minDisplacement = $intern_0; + foundPlace = false; + firstNode = castTo($get_11(segment.nodes, 0), 10); + for (target$iterator = new ArrayList$1(firstNode.ports); target$iterator.i < target$iterator.this$01.array.length;) { + target = castTo($next_6(target$iterator), 12); + pos = firstNode.pos.y_0 + target.pos.y_0 + target.anchor.y_0; + for (edge$iterator = new ArrayList$1(target.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + source = edge.source; + d = source.owner.pos.y_0 + source.pos.y_0 + source.anchor.y_0 - pos; + if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { + minDisplacement = d; + foundPlace = true; + } + } + } + lastNode = castTo($get_11(segment.nodes, segment.nodes.array.length - 1), 10); + for (source$iterator = new ArrayList$1(lastNode.ports); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 12); + pos = lastNode.pos.y_0 + source.pos.y_0 + source.anchor.y_0; + for (edge$iterator = new ArrayList$1(source.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + target = edge.target; + d = target.owner.pos.y_0 + target.pos.y_0 + target.anchor.y_0 - pos; + if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { + minDisplacement = d; + foundPlace = true; + } + } + } + if (foundPlace && minDisplacement != 0) { + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.pos.y_0 += minDisplacement; + } + } + } +} + +function $process_74(this$static, layeredGraph, monitor){ + monitor.begin('Linear segments node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + $sortLinearSegments(this$static, layeredGraph); + $createUnbalancedPlacement(this$static, layeredGraph); + $balancePlacement(this$static, layeredGraph); + $postProcess(this$static); + this$static.linearSegments = null; + this$static.spacings = null; + monitor.done_1(); +} + +function $sortLinearSegments(this$static, layeredGraph){ + var edge, edge$iterator, edge$iterator0, i, i0, i1, i2, incomingCount, incomingCountList, inprio, layer, layer$iterator, layer$iterator0, ls, newRanks, nextLinearSegmentID, nextRank, noIncoming, node, node$iterator, outgoing, outgoingList, outprio, port, port$iterator, prio, rank, segment, segmentList, segments, target; + segmentList = new ArrayList; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = -1; + inprio = $intern_43; + outprio = $intern_43; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 18); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0; + inprio = $wnd.Math.max(inprio, prio); + } + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0; + outprio = $wnd.Math.max(outprio, prio); + } + } + $setProperty_0(node, INPUT_PRIO, valueOf_3(inprio)); + $setProperty_0(node, OUTPUT_PRIO, valueOf_3(outprio)); + } + } + nextLinearSegmentID = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + if (node.id_0 < 0) { + segment = new LinearSegmentsNodePlacer$LinearSegment; + segment.id_0 = nextLinearSegmentID++; + $fillSegment(this$static, node, segment); + push_1(segmentList.array, segment); + } + } + } + outgoingList = newArrayListWithCapacity(segmentList.array.length); + incomingCountList = newArrayListWithCapacity(segmentList.array.length); + for (i0 = 0; i0 < segmentList.array.length; i0++) { + $add_3(outgoingList, new ArrayList); + $add_3(incomingCountList, valueOf_3(0)); + } + $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList); + segments = castTo($toArray_1(segmentList, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 261, segmentList.array.length, 0, 1)), 854); + outgoing = castTo($toArray_1(outgoingList, initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, outgoingList.array.length, 0, 1)), 198); + incomingCount = initUnidimensionalArray(I_classLit, $intern_49, 28, incomingCountList.array.length, 15, 1); + for (i1 = 0; i1 < incomingCount.length; i1++) { + incomingCount[i1] = (checkCriticalElementIndex(i1, incomingCountList.array.length) , castTo(incomingCountList.array[i1], 17)).value_0; + } + nextRank = 0; + noIncoming = new ArrayList; + for (i2 = 0; i2 < segments.length; i2++) { + incomingCount[i2] == 0 && (push_1(noIncoming.array, segments[i2]) , true); + } + newRanks = initUnidimensionalArray(I_classLit, $intern_49, 28, segments.length, 15, 1); + while (noIncoming.array.length != 0) { + segment = castTo($remove_11(noIncoming, 0), 261); + newRanks[segment.id_0] = nextRank++; + while (!outgoing[segment.id_0].isEmpty()) { + target = castTo(outgoing[segment.id_0].remove_2(0), 261); + --incomingCount[target.id_0]; + incomingCount[target.id_0] == 0 && (push_1(noIncoming.array, target) , true); + } + } + this$static.linearSegments = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 261, segments.length, 0, 1); + for (i = 0; i < segments.length; i++) { + ls = segments[i]; + rank = newRanks[i]; + this$static.linearSegments[rank] = ls; + ls.id_0 = rank; + for (node$iterator = new ArrayList$1(ls.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.id_0 = rank; + } + } + return this$static.linearSegments; +} + +function LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer(); +} + +defineClass(1426, 1, $intern_113, LinearSegmentsNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_16(graph){ + return castTo($getProperty(castTo(graph, 36), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_0:null; +} +; +_.process = function process_71(layeredGraph, monitor){ + $process_74(this, castTo(layeredGraph, 36), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_0, INPUT_PRIO, OUTPUT_PRIO; +var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer', 1426); +function $compareTo_16(this$static, other){ + return this$static.id_0 - other.id_0; +} + +function $region(this$static){ + var seg; + seg = this$static; + while (seg.refSegment) { + seg = seg.refSegment; + } + return seg; +} + +function $split_3(this$static, node, newId){ + var iterator, movedNode, newSegment, nodeIndex; + nodeIndex = $indexOf_3(this$static.nodes, node, 0); + newSegment = new LinearSegmentsNodePlacer$LinearSegment; + newSegment.id_0 = newId; + iterator = new AbstractList$ListIteratorImpl(this$static.nodes, nodeIndex); + while (iterator.i < iterator.this$01_0.size_1()) { + movedNode = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 10)); + movedNode.id_0 = newId; + $add_3(newSegment.nodes, movedNode); + $remove_8(iterator); + } + return newSegment; +} + +function LinearSegmentsNodePlacer$LinearSegment(){ + this.nodes = new ArrayList; +} + +defineClass(261, 1, {34:1, 261:1}, LinearSegmentsNodePlacer$LinearSegment); +_.compareTo_0 = function compareTo_17(other){ + return $compareTo_16(this, castTo(other, 261)); +} +; +_.equals_0 = function equals_161(object){ + var other; + if (instanceOf(object, 261)) { + other = castTo(object, 261); + return this.id_0 == other.id_0; + } + return false; +} +; +_.hashCode_1 = function hashCode_63(){ + return this.id_0; +} +; +_.toString_0 = function toString_102(){ + return 'ls' + $toString_2(this.nodes); +} +; +_.deflection = 0; +_.id_0 = 0; +_.indexInLastLayer = -1; +_.lastLayer = -1; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer/LinearSegment', 261); +function $clinit_NetworkSimplexPlacer(){ + $clinit_NetworkSimplexPlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_1 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $applyPositions(this$static){ + var flexibleNode, l, l$iterator, lNode, lNode$iterator, label_0, label$iterator, maxY, minY, nNode, nf, nf0, nodeRep, p, p$iterator, placement, sizeDelta; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_6(lNode$iterator), 10); + nodeRep = this$static.nodeReps[lNode.id_0]; + minY = nodeRep.head.layer; + maxY = nodeRep.tail.layer; + lNode.pos.y_0 = minY; + sizeDelta = maxY - minY - lNode.size_0.y_0; + flexibleNode = isFlexibleNode(lNode); + nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 203)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 203)) , nf); + flexibleNode && (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && (lNode.size_0.y_0 += sizeDelta); + if (flexibleNode && (nf0 == PORT_POSITION || nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { + for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 12); + if (($clinit_PortSide() , SIDES_EAST_WEST).contains(p.side)) { + nNode = castTo($get_10(this$static.portMap, p), 125); + p.pos.y_0 = nNode.layer - minY; + } + } + for (label$iterator = new ArrayList$1(lNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 72); + placement = castTo($getProperty(lNode, NODE_LABELS_PLACEMENT_1), 21); + placement.contains(($clinit_NodeLabelPlacement() , V_BOTTOM_0))?(label_0.pos.y_0 += sizeDelta):placement.contains(V_CENTER_0) && (label_0.pos.y_0 += sizeDelta / 2); + } + (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && $getPortSideView(lNode, ($clinit_PortSide() , SOUTH_2)).forEach_0(new NetworkSimplexPlacer$lambda$20$Type(sizeDelta)); + } + } + } +} + +function $buildInitialAuxiliaryGraph(this$static){ + var l, l$iterator; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + $transformLayer(this$static, l); + } + $forEach_3($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$2$Type), new NetworkSimplexPlacer$lambda$3$Type), new NetworkSimplexPlacer$lambda$4$Type), new NetworkSimplexPlacer$lambda$5$Type(this$static)); +} + +function $follow(this$static, edge, current, path){ + var incident, incident$iterator, other; + other = $getOther_1(edge, current); + push_1(path.array, edge); + if (this$static.nodeState[other.id_0] == -1 || this$static.nodeState[other.id_0] == 2 || this$static.crossing[edge.id_0]) { + return path; + } + this$static.nodeState[other.id_0] = -1; + for (incident$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(other).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incident$iterator);) { + incident = castTo($next_0(incident$iterator), 18); + if (!(!$isSelfLoop(incident) && !(!$isSelfLoop(incident) && incident.source.owner.layer == incident.target.owner.layer)) || incident == edge) { + continue; + } + return $follow(this$static, incident, other, path); + } + return path; +} + +function $getEdgeWeight(nodeType1, nodeType2){ + return nodeType1 == ($clinit_LNode$NodeType() , NORMAL) && nodeType2 == NORMAL?4:nodeType1 == NORMAL || nodeType2 == NORMAL?8:32; +} + +function $improveTwoPath(this$static, path, probe){ + var a, above, aboveDist, aboveRep, b, below, belowDist, belowRep, c, caseA, caseB, caseC, caseD, centerNode, centerOrigin, d, leftEdge, move, nNode, nodeIndex, rightEdge, spacing; + leftEdge = this$static.edgeReps[(checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 18)).id_0]; + rightEdge = this$static.edgeReps[(checkCriticalElementIndex(1, path.array.length) , castTo(path.array[1], 18)).id_0]; + if (leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) == 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) == 0) { + return false; + } + centerOrigin = leftEdge.right.target.origin_0; + if (!instanceOf(centerOrigin, 10)) { + return false; + } + centerNode = castTo(centerOrigin, 10); + nNode = this$static.nodeReps[centerNode.id_0]; + nodeIndex = !centerNode.layer?-1:$indexOf_3(centerNode.layer.nodes, centerNode, 0); + aboveDist = $intern_60; + if (nodeIndex > 0) { + above = castTo($get_11(centerNode.layer.nodes, nodeIndex - 1), 10); + aboveRep = this$static.nodeReps[above.id_0]; + spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, above, centerNode)); + aboveDist = nNode.head.layer - centerNode.margin.top_0 - (aboveRep.head.layer + above.size_0.y_0 + above.margin.bottom) - spacing; + } + belowDist = $intern_60; + if (nodeIndex < centerNode.layer.nodes.array.length - 1) { + below = castTo($get_11(centerNode.layer.nodes, nodeIndex + 1), 10); + belowRep = this$static.nodeReps[below.id_0]; + spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, below, centerNode)); + belowDist = belowRep.head.layer - below.margin.top_0 - (nNode.head.layer + centerNode.size_0.y_0 + centerNode.margin.bottom) - spacing; + } + if (probe && ($clinit_DoubleMath() , checkNonNegative($intern_117) , $wnd.Math.abs(aboveDist - belowDist) <= $intern_117 || aboveDist == belowDist || isNaN(aboveDist) && isNaN(belowDist))) { + return true; + } + a = length_1(leftEdge.left); + b = -length_1(leftEdge.right); + c = -length_1(rightEdge.left); + d = length_1(rightEdge.right); + caseD = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) > 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) < 0; + caseC = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) < 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) > 0; + caseB = leftEdge.left.target.layer + leftEdge.right.delta < rightEdge.right.target.layer + rightEdge.left.delta; + caseA = leftEdge.left.target.layer + leftEdge.right.delta > rightEdge.right.target.layer + rightEdge.left.delta; + move = 0; + !caseD && !caseC && (caseA?aboveDist + c > 0?(move = c):belowDist - a > 0 && (move = a):caseB && (aboveDist + b > 0?(move = b):belowDist - d > 0 && (move = d))); + nNode.head.layer += move; + nNode.isFlexible && (nNode.tail.layer += move); + return false; +} + +function $lambda$1_5(this$static, singleNode_1, p_1){ + return $put_6(this$static.portMap, p_1, singleNode_1); +} + +function $lambda$10(this$static, inLayerEdge_0){ + var dummyNode, dummyRep, portRep, src_0, srcIsDummy, tgt, thePort; + srcIsDummy = inLayerEdge_0.source.owner.type_0 != ($clinit_LNode$NodeType() , NORMAL); + thePort = srcIsDummy?inLayerEdge_0.target:inLayerEdge_0.source; + dummyNode = $getOther_2(inLayerEdge_0, thePort).owner; + portRep = castTo($get_10(this$static.portMap, thePort), 125); + dummyRep = this$static.nodeReps[dummyNode.id_0].head; + if ($getIndex(thePort.owner) < (!dummyNode.layer?-1:$indexOf_3(dummyNode.layer.nodes, dummyNode, 0))) { + src_0 = portRep; + tgt = dummyRep; + } + else { + src_0 = dummyRep; + tgt = portRep; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 4), src_0), tgt)); +} + +function $lambda$12(this$static, n_0){ + var other, sp, sp$iterator, sp$iterator0; + for (sp$iterator0 = $getPortSideView(n_0, ($clinit_PortSide() , SOUTH_2)).iterator_0(); sp$iterator0.hasNext_0();) { + sp = castTo(sp$iterator0.next_1(), 12); + other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[n_0.id_0].tail), this$static.nodeReps[other.id_0].head)); + } + for (sp$iterator = $getPortSideView(n_0, NORTH_3).iterator_0(); sp$iterator.hasNext_0();) { + sp = castTo(sp$iterator.next_1(), 12); + other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[other.id_0].tail), this$static.nodeReps[n_0.id_0].head)); + } +} + +function $lambda$22(this$static, n_0){ + return this$static.nodeState[n_0.id_0] = getNodeState(n_0); +} + +function $lambda$25(this$static, n_0){ + return this$static.nodeState[n_0.id_0] == 2; +} + +function $lambda$26(this$static, paths_1, junction_1){ + var e, e$iterator, path; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(junction_1).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + if (!(!$isSelfLoop(e) && !(!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer))) { + continue; + } + path = $follow(this$static, e, junction_1, new NetworkSimplexPlacer$Path); + path.array.length > 1 && (push_1(paths_1.array, path) , true); + } +} + +function $lambda$29(this$static, left_0, right_1){ + $markCrossingEdges(this$static, left_0, right_1); + return right_1; +} + +function $markCrossingEdges(this$static, left, right){ + var edge, edge$iterator, last, node, node$iterator, node$iterator0, openEdges, openEdgesIt, port, port$iterator; + openEdges = new ArrayList; + for (node$iterator0 = new ArrayList$1(left.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.target.owner.layer != right) { + continue; + } + push_1(openEdges.array, edge); + } + } + } + for (node$iterator = reverse_0(right.nodes).iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , WEST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.source.owner.layer != left) { + continue; + } + if (openEdges.array.length != 0) { + openEdgesIt = new AbstractList$ListIteratorImpl(openEdges, openEdges.array.length); + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 18)); + while (last != edge && openEdgesIt.i > 0) { + this$static.crossing[last.id_0] = true; + this$static.crossing[edge.id_0] = true; + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 18)); + } + openEdgesIt.i > 0 && $remove_8(openEdgesIt); + } + } + } + } +} + +function $postProcessTwoPaths(this$static){ + var path, q, s, tryAgain; + q = new LinkedList; + $addAll(q, this$static.twoPaths); + s = new Stack; + while (q.size_0 != 0) { + path = castTo(q.size_0 == 0?null:(checkCriticalElement(q.size_0 != 0) , $removeNode_0(q, q.header.next_0)), 515); + tryAgain = $improveTwoPath(this$static, path, true); + tryAgain && $add_3(s.arrayList, path); + } + while (s.arrayList.array.length != 0) { + path = castTo($pop(s), 515); + $improveTwoPath(this$static, path, false); + } +} + +function $preferStraightEdges(this$static){ + var cur, curRep, identifiedPaths, last, oldLeftWeight, oldRightWeight, path, path$iterator, pathIt, weight, paths; + this$static.nodeState = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.nodeCount, 15, 1); + this$static.twoPaths = new ArrayList; + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$21$Type), new NetworkSimplexPlacer$lambda$22$Type(this$static)); + this$static.crossing = initUnidimensionalArray(Z_classLit, $intern_91, 28, this$static.edgeCount, 16, 1); + $reduce_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$29$Type(this$static)); + identifiedPaths = (paths = new ArrayList , $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$24$Type), new NetworkSimplexPlacer$lambda$25$Type(this$static)), new NetworkSimplexPlacer$lambda$26$Type(this$static, paths)) , paths); + for (path$iterator = new ArrayList$1(identifiedPaths); path$iterator.i < path$iterator.this$01.array.length;) { + path = castTo($next_6(path$iterator), 515); + if (path.array.length <= 1) { + continue; + } + if (path.array.length == 2) { + $orderTwoPath(path); + isFlexibleNode((checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 18)).target.owner) || $add_3(this$static.twoPaths, path); + continue; + } + if ($containsLongEdgeDummy(path) || $containsFlexibleNode(path, new NetworkSimplexPlacer$lambda$23$Type)) { + continue; + } + pathIt = new ArrayList$1(path); + last = null; + while (pathIt.i < pathIt.this$01.array.length) { + cur = castTo($next_6(pathIt), 18); + curRep = this$static.edgeReps[cur.id_0]; + !last || pathIt.i >= pathIt.this$01.array.length?(weight = $getEdgeWeight(($clinit_LNode$NodeType() , NORMAL), LONG_EDGE)):(weight = $getEdgeWeight(($clinit_LNode$NodeType() , LONG_EDGE), LONG_EDGE)); + weight *= 2; + oldLeftWeight = curRep.left.weight; + curRep.left.weight = $wnd.Math.max(oldLeftWeight, oldLeftWeight + (weight - oldLeftWeight)); + oldRightWeight = curRep.right.weight; + curRep.right.weight = $wnd.Math.max(oldRightWeight, oldRightWeight + (weight - oldRightWeight)); + last = cur; + } + } +} + +function $prepare(this$static){ + var anchorMustBeInteger, e, e$iterator, edgeIdx, l, l$iterator, lNode, lNode$iterator, nodeIdx, offset, p, p$iterator, y_0, y0; + this$static.nGraph = new NGraph; + nodeIdx = 0; + edgeIdx = 0; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_6(lNode$iterator), 10); + lNode.id_0 = nodeIdx++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + e.id_0 = edgeIdx++; + } + anchorMustBeInteger = isFlexibleNode(lNode); + for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 12); + if (anchorMustBeInteger) { + y0 = p.anchor.y_0; + if (y0 != $wnd.Math.floor(y0)) { + offset = y0 - toDouble_0(fromDouble_0($wnd.Math.round(y0))); + p.anchor.y_0 -= offset; + } + } + y_0 = p.pos.y_0 + p.anchor.y_0; + if (y_0 != $wnd.Math.floor(y_0)) { + offset = y_0 - toDouble_0(fromDouble_0($wnd.Math.round(y_0))); + p.pos.y_0 -= offset; + } + } + } + } + this$static.nodeCount = nodeIdx; + this$static.edgeCount = edgeIdx; + this$static.nodeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit, $intern_2, 412, nodeIdx, 0, 1); + this$static.edgeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit, $intern_2, 655, edgeIdx, 0, 1); + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); +} + +function $process_75(this$static, layeredGraph, progressMonitor){ + var edge, edge$iterator, iterLimit, pm, minLayer, maxLayer, usedLayers, globalSource, globalSink; + progressMonitor.begin('Network simplex node placement', 1); + this$static.lGraph = layeredGraph; + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + $prepare(this$static); + $buildInitialAuxiliaryGraph(this$static); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$11$Type), new NetworkSimplexPlacer$lambda$12$Type(this$static)); + $forEach_3($filter($flatMap($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$6$Type), new NetworkSimplexPlacer$lambda$7$Type), new NetworkSimplexPlacer$lambda$8$Type), new NetworkSimplexPlacer$lambda$9$Type), new NetworkSimplexPlacer$lambda$10$Type(this$static)); + if ($booleanValue(castToBoolean($getProperty(this$static.lGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))))) { + pm = progressMonitor.subTask(1); + pm.begin('Straight Edges Pre-Processing', 1); + $preferStraightEdges(this$static); + pm.done_1(); + } + $makeConnected(this$static.nGraph); + iterLimit = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 17).value_0 * this$static.nGraph.nodes.array.length; + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), progressMonitor.subTask(1)); + if (this$static.flexibleWhereSpacePermitsEdges.map_0.size_1() != 0) { + pm = progressMonitor.subTask(1); + pm.begin('Flexible Where Space Processing', 1); + minLayer = castTo($get_17($min_0($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$13$Type), new NetworkSimplexPlacer$0methodref$compare$Type)), 17).value_0; + maxLayer = castTo($get_17($max_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$15$Type), new NetworkSimplexPlacer$1methodref$compare$Type)), 17).value_0; + usedLayers = maxLayer - minLayer; + globalSource = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + globalSink = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 20000), usedLayers), globalSource), globalSink)); + $forEach_3($filter($filter(stream_4(this$static.nodeReps), new NetworkSimplexPlacer$lambda$17$Type), new NetworkSimplexPlacer$lambda$18$Type), new NetworkSimplexPlacer$lambda$19$Type(minLayer, globalSource, usedLayers, globalSink)); + for (edge$iterator = this$static.flexibleWhereSpacePermitsEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 218); + edge.weight = 1; + } + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), pm.subTask(1)); + pm.done_1(); + } + if ($booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)))) { + pm = progressMonitor.subTask(1); + pm.begin('Straight Edges Post-Processing', 1); + $postProcessTwoPaths(this$static); + pm.done_1(); + } + $applyPositions(this$static); + this$static.lGraph = null; + this$static.nGraph = null; + this$static.nodeReps = null; + this$static.edgeReps = null; + $reset(this$static.portMap); + this$static.nodeState = null; + this$static.crossing = null; + this$static.twoPaths = null; + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); + progressMonitor.done_1(); +} + +function $transformEdge_0(this$static, lEdge){ + var dummy, edgeRep, left, right, srcDelta, srcOffset, srcPort, srcRep, tgtDelta, tgtOffset, tgtPort, tgtRep, weight, priority, edgeTypeWeight; + dummy = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + srcRep = this$static.nodeReps[lEdge.source.owner.id_0]; + tgtRep = this$static.nodeReps[lEdge.target.owner.id_0]; + srcPort = lEdge.source; + tgtPort = lEdge.target; + srcOffset = srcPort.anchor.y_0; + tgtOffset = tgtPort.anchor.y_0; + srcRep.isFlexible || (srcOffset += srcPort.pos.y_0); + tgtRep.isFlexible || (tgtOffset += tgtPort.pos.y_0); + tgtDelta = round_int($wnd.Math.max(0, srcOffset - tgtOffset)); + srcDelta = round_int($wnd.Math.max(0, tgtOffset - srcOffset)); + weight = (priority = $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0) , edgeTypeWeight = $getEdgeWeight(lEdge.source.owner.type_0, lEdge.target.owner.type_0) , priority * edgeTypeWeight); + left = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), srcDelta), dummy), castTo($get_10(this$static.portMap, lEdge.source), 125))); + right = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), tgtDelta), dummy), castTo($get_10(this$static.portMap, lEdge.target), 125))); + edgeRep = new NetworkSimplexPlacer$EdgeRep(left, right); + this$static.edgeReps[lEdge.id_0] = edgeRep; +} + +function $transformLayer(this$static, layer){ + var lNode, lNode$iterator, lastRep, nodeRep, spacing, topLeft, bottomLeft, corners, minHeight, nf0, nf, sizeWeight, nodeSizeEdge, singleNode; + lastRep = null; + for (lNode$iterator = new ArrayList$1(layer.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_6(lNode$iterator), 10); + isFlexibleNode(lNode)?(nodeRep = (topLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , bottomLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , corners = new NetworkSimplexPlacer$NodeRep(lNode, true, topLeft, bottomLeft) , minHeight = lNode.size_0.y_0 , nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 203)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 203)) , nf) , sizeWeight = 10000 , nf0 == NODE_SIZE && (sizeWeight = 1) , nodeSizeEdge = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, sizeWeight), round_int($wnd.Math.ceil(minHeight))), topLeft), bottomLeft)) , nf0 == NODE_SIZE_WHERE_SPACE_PERMITS && $add_6(this$static.flexibleWhereSpacePermitsEdges, nodeSizeEdge) , $transformPorts(this$static, reverse_0($getPortSideView(lNode, ($clinit_PortSide() , WEST_2))), corners) , $transformPorts(this$static, $getPortSideView(lNode, EAST_2), corners) , corners)):(nodeRep = (singleNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lNode.ports, 16)), new NetworkSimplexPlacer$lambda$0$Type), new NetworkSimplexPlacer$lambda$1$Type(this$static, singleNode)) , new NetworkSimplexPlacer$NodeRep(lNode, false, singleNode, singleNode))); + this$static.nodeReps[lNode.id_0] = nodeRep; + if (lastRep) { + spacing = lastRep.origin_0.margin.bottom + $getVerticalSpacing_0(this$static.spacings, lastRep.origin_0, lNode) + lNode.margin.top_0; + lastRep.isFlexible || (spacing += lastRep.origin_0.size_0.y_0); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int($wnd.Math.ceil(spacing))), 0), lastRep.tail), nodeRep.head)); + } + lastRep = nodeRep; + } +} + +function $transformPorts(this$static, ports, corners){ + var lastNNode, lastPort, nNode, port, port$iterator, portSpacing, portSurrounding, spacing; + if (isEmpty_13(ports)) { + return; + } + portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(corners.origin_0, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); + portSurrounding = castTo(getIndividualOrDefault(corners.origin_0, SPACING_PORTS_SURROUNDING), 140); + !portSurrounding && (portSurrounding = new ElkMargin); + lastNNode = corners.head; + lastPort = null; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + spacing = 0; + if (!lastPort) { + spacing = portSurrounding.top_0; + } + else { + spacing = portSpacing; + spacing += lastPort.size_0.y_0; + } + nNode = $create_2($origin_0(new NNode$NNodeBuilder, port), this$static.nGraph); + $put_6(this$static.portMap, port, nNode); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(spacing))), lastNNode), nNode)); + lastPort = port; + lastNNode = nNode; + } + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(portSurrounding.bottom + lastPort.size_0.y_0))), lastNNode), corners.tail)); +} + +function NetworkSimplexPlacer(){ + $clinit_NetworkSimplexPlacer(); + this.portMap = new HashMap; + this.flexibleWhereSpacePermitsEdges = new HashSet; +} + +function getNodeState(node){ + var inco, ouco, p, p$iterator; + inco = 0; + ouco = 0; + for (p$iterator = new ArrayList$1(node.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_6(p$iterator), 12); + inco = toInt_0(add_20(inco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.incomingEdges, 16)), new NetworkSimplexPlacer$lambda$27$Type)))); + ouco = toInt_0(add_20(ouco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.outgoingEdges, 16)), new NetworkSimplexPlacer$lambda$28$Type)))); + if (inco > 1 || ouco > 1) { + return 2; + } + } + if (inco + ouco == 1) { + return 2; + } + return 0; +} + +function isFlexibleNode(lNode){ + var additionalPortSpacing, eastPorts, nf, nf0, pc, portSpacing, requiredEastHeight, requiredWestHeight, westPorts; + if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + return false; + } + if (lNode.ports.array.length <= 1) { + return false; + } + pc = castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 101); + if (pc == ($clinit_PortConstraints() , FIXED_POS)) { + return false; + } + nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 203)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 203)) , nf); + if (nf0 == NONE_8) { + return false; + } + if (!(nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { + portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, SPACING_PORT_PORT))); + additionalPortSpacing = castTo($getProperty(lNode, SPACING_PORTS_SURROUNDING), 140); + !additionalPortSpacing && (additionalPortSpacing = new ElkMargin_1(portSpacing, portSpacing, portSpacing, portSpacing)); + westPorts = $getPortSideView(lNode, ($clinit_PortSide() , WEST_2)); + requiredWestHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (westPorts.size_1() - 1) * portSpacing; + if (requiredWestHeight > lNode.size_0.y_0) { + return false; + } + eastPorts = $getPortSideView(lNode, EAST_2); + requiredEastHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (eastPorts.size_1() - 1) * portSpacing; + if (requiredEastHeight > lNode.size_0.y_0) { + return false; + } + } + return true; +} + +function isHandledEdge(edge){ + $clinit_NetworkSimplexPlacer(); + return !$isSelfLoop(edge) && !(!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer); +} + +function lambda$0_32(p_0){ + $clinit_NetworkSimplexPlacer(); + return ($clinit_PortSide() , SIDES_EAST_WEST).contains(p_0.side); +} + +function lambda$19(minLayer_0, globalSource_1, usedLayers_2, globalSink_3, nr_4){ + $clinit_NetworkSimplexPlacer(); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), nr_4.tail.layer - minLayer_0), globalSource_1), nr_4.tail)); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), usedLayers_2 - nr_4.head.layer), nr_4.head), globalSink_3)); +} + +function lambda$20(sizeDelta_0, p_1){ + $clinit_NetworkSimplexPlacer(); + return p_1.pos.y_0 += sizeDelta_0; +} + +function length_1(edge){ + return $wnd.Math.abs(edge.source.layer - edge.target.layer) - edge.delta; +} + +defineClass(1428, 1, $intern_113, NetworkSimplexPlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_17(graph){ + return castTo($getProperty(castTo(graph, 36), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_1:null; +} +; +_.process = function process_72(layeredGraph, progressMonitor){ + $process_75(this, castTo(layeredGraph, 36), progressMonitor); +} +; +_.edgeCount = 0; +_.nodeCount = 0; +var HIERARCHY_PROCESSING_ADDITIONS_1; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer', 1428); +function NetworkSimplexPlacer$0methodref$compare$Type(){ +} + +defineClass(1447, 1, $intern_88, NetworkSimplexPlacer$0methodref$compare$Type); +_.compare_1 = function compare_77(arg0, arg1){ + return compare_5(castTo(arg0, 17).value_0, castTo(arg1, 17).value_0); +} +; +_.equals_0 = function equals_162(other){ + return this === other; +} +; +_.reversed = function reversed_69(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$0methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/0methodref$compare$Type', 1447); +function NetworkSimplexPlacer$1methodref$compare$Type(){ +} + +defineClass(1449, 1, $intern_88, NetworkSimplexPlacer$1methodref$compare$Type); +_.compare_1 = function compare_78(arg0, arg1){ + return compare_5(castTo(arg0, 17).value_0, castTo(arg1, 17).value_0); +} +; +_.equals_0 = function equals_163(other){ + return this === other; +} +; +_.reversed = function reversed_70(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$1methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/1methodref$compare$Type', 1449); +function NetworkSimplexPlacer$EdgeRep(left, right){ + this.left = left; + this.right = right; +} + +defineClass(655, 1, {655:1}, NetworkSimplexPlacer$EdgeRep); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/EdgeRep', 655); +function NetworkSimplexPlacer$NodeRep(origin_0, isFlexible, top_0, bottom){ + this.origin_0 = origin_0; + this.isFlexible = isFlexible; + this.head = top_0; + this.tail = bottom; +} + +defineClass(412, 1, {412:1}, NetworkSimplexPlacer$NodeRep); +_.isFlexible = false; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/NodeRep', 412); +function $containsFlexibleNode(this$static, p){ + var nf; + if (this$static.array.length == 0) { + return false; + } + nf = getNodeFlexibility((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 18)).source.owner); + $clinit_NetworkSimplexPlacer(); + if (nf == ($clinit_NodeFlexibility() , NODE_SIZE_WHERE_SPACE_PERMITS) || nf == NODE_SIZE) { + return true; + } + return $anyMatch($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$2$Type), new NetworkSimplexPlacer$Path$lambda$3$Type(p)); +} + +function $containsLongEdgeDummy(this$static){ + if (this$static.array.length == 0) { + return false; + } + if ((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 18)).source.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + return true; + } + return $anyMatch($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$0$Type), new NetworkSimplexPlacer$Path$lambda$1$Type); +} + +function $orderTwoPath(this$static){ + var first, second; + if (this$static.array.length != 2) { + throw toJs(new IllegalStateException_0('Order only allowed for two paths.')); + } + first = (checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 18)); + second = (checkCriticalElementIndex(1, this$static.array.length) , castTo(this$static.array[1], 18)); + if (first.target.owner != second.source.owner) { + this$static.array.length = 0; + push_1(this$static.array, second); + push_1(this$static.array, first); + } +} + +function NetworkSimplexPlacer$Path(){ + ArrayList.call(this); +} + +defineClass(515, 13, {3:1, 4:1, 20:1, 31:1, 56:1, 13:1, 16:1, 15:1, 59:1, 515:1}, NetworkSimplexPlacer$Path); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path', 515); +function NetworkSimplexPlacer$Path$lambda$0$Type(){ +} + +defineClass(1429, 1, {}, NetworkSimplexPlacer$Path$lambda$0$Type); +_.apply_0 = function apply_136(arg0){ + return castTo(arg0, 18).target.owner.type_0; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$0$Type', 1429); +function NetworkSimplexPlacer$Path$lambda$1$Type(){ +} + +defineClass(1430, 1, $intern_40, NetworkSimplexPlacer$Path$lambda$1$Type); +_.test_0 = function test_88(arg0){ + return castTo(arg0, 273) == ($clinit_LNode$NodeType() , LONG_EDGE); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$1$Type', 1430); +function NetworkSimplexPlacer$Path$lambda$2$Type(){ +} + +defineClass(1431, 1, {}, NetworkSimplexPlacer$Path$lambda$2$Type); +_.apply_0 = function apply_137(arg0){ + return castTo(arg0, 18).target.owner; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$2$Type', 1431); +function NetworkSimplexPlacer$Path$lambda$3$Type(p_0){ + this.p_0 = p_0; +} + +defineClass(1432, 1, $intern_40, NetworkSimplexPlacer$Path$lambda$3$Type); +_.test_0 = function test_89(arg0){ + return $test_0(getNodeFlexibility(castTo(arg0, 10))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$3$Type', 1432); +function NetworkSimplexPlacer$lambda$0$Type(){ +} + +defineClass(1433, 1, $intern_40, NetworkSimplexPlacer$lambda$0$Type); +_.test_0 = function test_90(arg0){ + return lambda$0_32(castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$0$Type', 1433); +function NetworkSimplexPlacer$lambda$1$Type($$outer_0, singleNode_1){ + this.$$outer_0 = $$outer_0; + this.singleNode_1 = singleNode_1; +} + +defineClass(1434, 1, $intern_19, NetworkSimplexPlacer$lambda$1$Type); +_.accept = function accept_123(arg0){ + $lambda$1_5(this.$$outer_0, this.singleNode_1, castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$1$Type', 1434); +function NetworkSimplexPlacer$lambda$10$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1443, 1, $intern_19, NetworkSimplexPlacer$lambda$10$Type); +_.accept = function accept_124(arg0){ + $lambda$10(this.$$outer_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$10$Type', 1443); +function NetworkSimplexPlacer$lambda$11$Type(){ +} + +defineClass(1444, 1, {}, NetworkSimplexPlacer$lambda$11$Type); +_.apply_0 = function apply_138(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$11$Type', 1444); +function NetworkSimplexPlacer$lambda$12$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1445, 1, $intern_19, NetworkSimplexPlacer$lambda$12$Type); +_.accept = function accept_125(arg0){ + $lambda$12(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$12$Type', 1445); +function NetworkSimplexPlacer$lambda$13$Type(){ +} + +defineClass(1446, 1, {}, NetworkSimplexPlacer$lambda$13$Type); +_.apply_0 = function apply_139(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_3(castTo(arg0, 125).layer); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$13$Type', 1446); +function NetworkSimplexPlacer$lambda$15$Type(){ +} + +defineClass(1448, 1, {}, NetworkSimplexPlacer$lambda$15$Type); +_.apply_0 = function apply_140(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_3(castTo(arg0, 125).layer); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$15$Type', 1448); +function NetworkSimplexPlacer$lambda$17$Type(){ +} + +defineClass(1450, 1, $intern_40, NetworkSimplexPlacer$lambda$17$Type); +_.test_0 = function test_91(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 412).origin_0.type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$17$Type', 1450); +function NetworkSimplexPlacer$lambda$18$Type(){ +} + +defineClass(1451, 1, $intern_40, NetworkSimplexPlacer$lambda$18$Type); +_.test_0 = function test_92(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 412).origin_0.ports.array.length > 1; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$18$Type', 1451); +function NetworkSimplexPlacer$lambda$19$Type(minLayer_0, globalSource_1, usedLayers_2, globalSink_3){ + this.minLayer_0 = minLayer_0; + this.globalSource_1 = globalSource_1; + this.usedLayers_2 = usedLayers_2; + this.globalSink_3 = globalSink_3; +} + +defineClass(1452, 1, $intern_19, NetworkSimplexPlacer$lambda$19$Type); +_.accept = function accept_126(arg0){ + lambda$19(this.minLayer_0, this.globalSource_1, this.usedLayers_2, this.globalSink_3, castTo(arg0, 412)); +} +; +_.minLayer_0 = 0; +_.usedLayers_2 = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$19$Type', 1452); +function NetworkSimplexPlacer$lambda$2$Type(){ +} + +defineClass(1435, 1, {}, NetworkSimplexPlacer$lambda$2$Type); +_.apply_0 = function apply_141(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$2$Type', 1435); +function NetworkSimplexPlacer$lambda$20$Type(sizeDelta_0){ + this.sizeDelta_0 = sizeDelta_0; +} + +defineClass(1453, 1, $intern_19, NetworkSimplexPlacer$lambda$20$Type); +_.accept = function accept_127(arg0){ + lambda$20(this.sizeDelta_0, castTo(arg0, 12)); +} +; +_.sizeDelta_0 = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$20$Type', 1453); +function NetworkSimplexPlacer$lambda$21$Type(){ +} + +defineClass(1454, 1, {}, NetworkSimplexPlacer$lambda$21$Type); +_.apply_0 = function apply_142(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$21$Type', 1454); +function NetworkSimplexPlacer$lambda$22$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1455, 1, $intern_19, NetworkSimplexPlacer$lambda$22$Type); +_.accept = function accept_128(arg0){ + $lambda$22(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$22$Type', 1455); +function $test_0(arg0){ + return $clinit_NetworkSimplexPlacer() , $isFlexibleSizeWhereSpacePermits(castTo(arg0, 203)); +} + +function NetworkSimplexPlacer$lambda$23$Type(){ +} + +defineClass(1456, 1, $intern_40, NetworkSimplexPlacer$lambda$23$Type); +_.test_0 = function test_93(arg0){ + return $test_0(arg0); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$23$Type', 1456); +function NetworkSimplexPlacer$lambda$24$Type(){ +} + +defineClass(1457, 1, {}, NetworkSimplexPlacer$lambda$24$Type); +_.apply_0 = function apply_143(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$24$Type', 1457); +function NetworkSimplexPlacer$lambda$25$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1458, 1, $intern_40, NetworkSimplexPlacer$lambda$25$Type); +_.test_0 = function test_94(arg0){ + return $lambda$25(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$25$Type', 1458); +function NetworkSimplexPlacer$lambda$26$Type($$outer_0, paths_1){ + this.$$outer_0 = $$outer_0; + this.paths_1 = paths_1; +} + +defineClass(1459, 1, $intern_19, NetworkSimplexPlacer$lambda$26$Type); +_.accept = function accept_129(arg0){ + $lambda$26(this.$$outer_0, this.paths_1, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$26$Type', 1459); +function NetworkSimplexPlacer$lambda$27$Type(){ +} + +defineClass(1460, 1, $intern_40, NetworkSimplexPlacer$lambda$27$Type); +_.test_0 = function test_95(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$27$Type', 1460); +function NetworkSimplexPlacer$lambda$28$Type(){ +} + +defineClass(1461, 1, $intern_40, NetworkSimplexPlacer$lambda$28$Type); +_.test_0 = function test_96(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$28$Type', 1461); +function NetworkSimplexPlacer$lambda$29$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1462, 1, {}, NetworkSimplexPlacer$lambda$29$Type); +_.apply_3 = function apply_144(arg0, arg1){ + return $lambda$29(this.$$outer_0, castTo(arg0, 30), castTo(arg1, 30)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$29$Type', 1462); +function NetworkSimplexPlacer$lambda$3$Type(){ +} + +defineClass(1436, 1, {}, NetworkSimplexPlacer$lambda$3$Type); +_.apply_0 = function apply_145(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$3$Type', 1436); +function NetworkSimplexPlacer$lambda$4$Type(){ +} + +defineClass(1437, 1, $intern_40, NetworkSimplexPlacer$lambda$4$Type); +_.test_0 = function test_97(arg0){ + return $clinit_NetworkSimplexPlacer() , isHandledEdge(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$4$Type', 1437); +function NetworkSimplexPlacer$lambda$5$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1438, 1, $intern_19, NetworkSimplexPlacer$lambda$5$Type); +_.accept = function accept_130(arg0){ + $transformEdge_0(this.$$outer_0, castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$5$Type', 1438); +function NetworkSimplexPlacer$lambda$6$Type(){ +} + +defineClass(1439, 1, {}, NetworkSimplexPlacer$lambda$6$Type); +_.apply_0 = function apply_146(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 30).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$6$Type', 1439); +function NetworkSimplexPlacer$lambda$7$Type(){ +} + +defineClass(1440, 1, $intern_40, NetworkSimplexPlacer$lambda$7$Type); +_.test_0 = function test_98(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$7$Type', 1440); +function NetworkSimplexPlacer$lambda$8$Type(){ +} + +defineClass(1441, 1, {}, NetworkSimplexPlacer$lambda$8$Type); +_.apply_0 = function apply_147(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$8$Type', 1441); +function NetworkSimplexPlacer$lambda$9$Type(){ +} + +defineClass(1442, 1, $intern_40, NetworkSimplexPlacer$lambda$9$Type); +_.test_0 = function test_99(arg0){ + return $clinit_NetworkSimplexPlacer() , $isInLayerEdge(castTo(arg0, 18)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$9$Type', 1442); +function $clinit_SimpleNodePlacer(){ + $clinit_SimpleNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_2 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $process_76(layeredGraph, monitor){ + var lastNode, layer, layer$iterator, layer$iterator0, layerSize, maxHeight, node, node$iterator, pos, spacings; + monitor.begin('Simple node placement', 1); + spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + maxHeight = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + layerSize = layer.size_0; + layerSize.y_0 = 0; + lastNode = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + !!lastNode && (layerSize.y_0 += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); + layerSize.y_0 += node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; + lastNode = node; + } + maxHeight = $wnd.Math.max(maxHeight, layerSize.y_0); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layerSize = layer.size_0; + pos = (maxHeight - layerSize.y_0) / 2; + lastNode = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + !!lastNode && (pos += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); + pos += node.margin.top_0; + node.pos.y_0 = pos; + pos += node.size_0.y_0 + node.margin.bottom; + lastNode = node; + } + } + monitor.done_1(); +} + +function SimpleNodePlacer(){ + $clinit_SimpleNodePlacer(); +} + +defineClass(1424, 1, $intern_113, SimpleNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_18(graph){ + return castTo($getProperty(castTo(graph, 36), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_2:null; +} +; +_.process = function process_73(layeredGraph, monitor){ + $process_76(castTo(layeredGraph, 36), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_2; +var Lorg_eclipse_elk_alg_layered_p4nodes_SimpleNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'SimpleNodePlacer', 1424); +function $calculateDelta(this$static, src_0, tgt){ + var srcPos, tgtPos; + srcPos = $doubleValue(this$static.y_0[src_0.owner.id_0]) + $doubleValue(this$static.innerShift[src_0.owner.id_0]) + src_0.pos.y_0 + src_0.anchor.y_0; + tgtPos = $doubleValue(this$static.y_0[tgt.owner.id_0]) + $doubleValue(this$static.innerShift[tgt.owner.id_0]) + tgt.pos.y_0 + tgt.anchor.y_0; + return tgtPos - srcPos; +} + +function $checkSpaceAbove(this$static, blockRoot, delta, ni){ + var availableSpace, current, maxYNeighbor, minYCurrent, neighbor, rootNode, rootNode0, rootNode1; + availableSpace = delta; + rootNode0 = blockRoot; + current = rootNode0; + do { + current = this$static.align_0[current.id_0]; + minYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) - current.margin.top_0); + neighbor = $getUpperNeighbor(current, ni); + if (neighbor) { + maxYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom); + availableSpace = $wnd.Math.min(availableSpace, minYCurrent - (maxYNeighbor + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); + } + } + while (rootNode0 != current); + return availableSpace; +} + +function $checkSpaceBelow(this$static, blockRoot, delta, ni){ + var availableSpace, current, maxYCurrent, minYNeighbor, neighbor, rootNode, rootNode0, rootNode1; + availableSpace = delta; + rootNode0 = blockRoot; + current = rootNode0; + do { + current = this$static.align_0[current.id_0]; + maxYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) + current.size_0.y_0 + current.margin.bottom); + neighbor = $getLowerNeighbor(current, ni); + if (neighbor) { + minYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) - neighbor.margin.top_0); + availableSpace = $wnd.Math.min(availableSpace, minYNeighbor - (maxYCurrent + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); + } + } + while (rootNode0 != current); + return availableSpace; +} + +function $getLowerNeighbor(n, ni){ + var l, layerIndex; + l = n.layer; + layerIndex = ni.nodeIndex[n.id_0]; + if (layerIndex < l.nodes.array.length - 1) { + return castTo($get_11(l.nodes, layerIndex + 1), 10); + } + return null; +} + +function $getUpperNeighbor(n, ni){ + var l, layerIndex; + l = n.layer; + layerIndex = ni.nodeIndex[n.id_0]; + if (layerIndex > 0) { + return castTo($get_11(l.nodes, layerIndex - 1), 10); + } + return null; +} + +function $layoutSize(this$static){ + var layer, layer$iterator, max_0, min_0, n, n$iterator, yMax, yMin; + min_0 = $intern_60; + max_0 = $intern_61; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + yMin = $doubleValue(this$static.y_0[n.id_0]); + yMax = yMin + $doubleValue(this$static.blockSize[this$static.root[n.id_0].id_0]); + min_0 = $wnd.Math.min(min_0, yMin); + max_0 = $wnd.Math.max(max_0, yMax); + } + } + return max_0 - min_0; +} + +function $shiftBlock(this$static, rootNode, delta){ + var current, newPos; + current = rootNode; + do { + newPos = $doubleValue(this$static.y_0[current.id_0]) + delta; + this$static.y_0[current.id_0] = newPos; + current = this$static.align_0[current.id_0]; + } + while (current != rootNode); +} + +function BKAlignedLayout(layeredGraph, nodeCount, vdir, hdir){ + this.layeredGraph = layeredGraph; + this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + this.root = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.blockSize = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, nodeCount, 7, 1); + this.align_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.innerShift = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, nodeCount, 7, 1); + this.sink = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.shift_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, nodeCount, 7, 1); + this.y_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, nodeCount, 7, 1); + this.su = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 485, nodeCount, 8, 1); + fill_2(this.su, ($clinit_Boolean() , false)); + this.od = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 485, nodeCount, 8, 1); + fill_2(this.od, true); + this.vdir = vdir; + this.hdir = hdir; +} + +defineClass(185, 1, {185:1}, BKAlignedLayout); +_.toString_0 = function toString_103(){ + var result; + result = ''; + this.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?(result += 'RIGHT'):this.hdir == LEFT_3 && (result += 'LEFT'); + this.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(result += 'DOWN'):this.vdir == UP_0?(result += 'UP'):(result += 'BALANCED'); + return result; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout', 185); +function $clinit_BKAlignedLayout$HDirection(){ + $clinit_BKAlignedLayout$HDirection = emptyMethod; + RIGHT_3 = new BKAlignedLayout$HDirection('RIGHT', 0); + LEFT_3 = new BKAlignedLayout$HDirection('LEFT', 1); +} + +function BKAlignedLayout$HDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_67(name_0){ + $clinit_BKAlignedLayout$HDirection(); + return valueOf(($clinit_BKAlignedLayout$HDirection$Map() , $MAP_57), name_0); +} + +function values_75(){ + $clinit_BKAlignedLayout$HDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_37, 523, 0, [RIGHT_3, LEFT_3]); +} + +defineClass(523, 22, {3:1, 34:1, 22:1, 523:1}, BKAlignedLayout$HDirection); +var LEFT_3, RIGHT_3; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/HDirection', 523, Ljava_lang_Enum_2_classLit, values_75, valueOf_67); +function $clinit_BKAlignedLayout$HDirection$Map(){ + $clinit_BKAlignedLayout$HDirection$Map = emptyMethod; + $MAP_57 = createValueOfMap(($clinit_BKAlignedLayout$HDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_37, 523, 0, [RIGHT_3, LEFT_3]))); +} + +var $MAP_57; +function $clinit_BKAlignedLayout$VDirection(){ + $clinit_BKAlignedLayout$VDirection = emptyMethod; + DOWN_0 = new BKAlignedLayout$VDirection('DOWN', 0); + UP_0 = new BKAlignedLayout$VDirection('UP', 1); +} + +function BKAlignedLayout$VDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_68(name_0){ + $clinit_BKAlignedLayout$VDirection(); + return valueOf(($clinit_BKAlignedLayout$VDirection$Map() , $MAP_58), name_0); +} + +function values_76(){ + $clinit_BKAlignedLayout$VDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_37, 522, 0, [DOWN_0, UP_0]); +} + +defineClass(522, 22, {3:1, 34:1, 22:1, 522:1}, BKAlignedLayout$VDirection); +var DOWN_0, UP_0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/VDirection', 522, Ljava_lang_Enum_2_classLit, values_76, valueOf_68); +function $clinit_BKAlignedLayout$VDirection$Map(){ + $clinit_BKAlignedLayout$VDirection$Map = emptyMethod; + $MAP_58 = createValueOfMap(($clinit_BKAlignedLayout$VDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_37, 522, 0, [DOWN_0, UP_0]))); +} + +var $MAP_58; +function $insideBlockShift(bal){ + var blocks, current, edge, entry, next, nextInnerShift, outerIter, portPosDiff, root, root$iterator, spaceAbove, spaceBelow; + blocks = getBlocks(bal); + for (root$iterator = (outerIter = (new AbstractMap$1(blocks)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); root$iterator.val$outerIter2.hasNext_0();) { + root = (entry = castTo(root$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getKey(), 10)); + spaceAbove = 0; + spaceBelow = 0; + spaceAbove = root.margin.top_0; + spaceBelow = root.size_0.y_0 + root.margin.bottom; + bal.innerShift[root.id_0] = 0; + current = root; + while ((next = bal.align_0[current.id_0]) != root) { + edge = getEdge(current, next); + portPosDiff = 0; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?(portPosDiff = edge.target.pos.y_0 + edge.target.anchor.y_0 - edge.source.pos.y_0 - edge.source.anchor.y_0):(portPosDiff = edge.source.pos.y_0 + edge.source.anchor.y_0 - edge.target.pos.y_0 - edge.target.anchor.y_0); + nextInnerShift = $doubleValue(bal.innerShift[current.id_0]) + portPosDiff; + bal.innerShift[next.id_0] = nextInnerShift; + spaceAbove = $wnd.Math.max(spaceAbove, next.margin.top_0 - nextInnerShift); + spaceBelow = $wnd.Math.max(spaceBelow, nextInnerShift + next.size_0.y_0 + next.margin.bottom); + current = next; + } + current = root; + do { + bal.innerShift[current.id_0] = $doubleValue(bal.innerShift[current.id_0]) + spaceAbove; + current = bal.align_0[current.id_0]; + } + while (current != root); + bal.blockSize[root.id_0] = spaceAbove + spaceBelow; + } +} + +function $verticalAlignment(this$static, bal, markedEdges){ + var d, high, layer, layer$iterator, layer$iterator0, layers, low, m, neighbors, nodes, r, u_m, u_m_pair, um, um_pair, v, v$iterator, v_i_k, v_i_k$iterator; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_6(v$iterator), 10); + bal.root[v.id_0] = v; + bal.align_0[v.id_0] = v; + bal.innerShift[v.id_0] = 0; + } + } + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = reverse_0(layers)); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 30); + r = -1; + nodes = layer.nodes; + if (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)) { + r = $intern_0; + nodes = reverse_0(nodes); + } + for (v_i_k$iterator = nodes.iterator_0(); v_i_k$iterator.hasNext_0();) { + v_i_k = castTo(v_i_k$iterator.next_1(), 10); + neighbors = null; + bal.hdir == LEFT_3?(neighbors = castTo($get_11(this$static.ni.rightNeighbors, v_i_k.id_0), 15)):(neighbors = castTo($get_11(this$static.ni.leftNeighbors, v_i_k.id_0), 15)); + if (neighbors.size_1() > 0) { + d = neighbors.size_1(); + low = round_int($wnd.Math.floor((d + 1) / 2)) - 1; + high = round_int($wnd.Math.ceil((d + 1) / 2)) - 1; + if (bal.vdir == UP_0) { + for (m = high; m >= low; m--) { + if (bal.align_0[v_i_k.id_0] == v_i_k) { + u_m_pair = castTo(neighbors.get_0(m), 42); + u_m = castTo(u_m_pair.first, 10); + if (!$contains_6(markedEdges, u_m_pair.second) && r > this$static.ni.nodeIndex[u_m.id_0]) { + bal.align_0[u_m.id_0] = v_i_k; + bal.root[v_i_k.id_0] = bal.root[u_m.id_0]; + bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; + bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); + r = this$static.ni.nodeIndex[u_m.id_0]; + } + } + } + } + else { + for (m = low; m <= high; m++) { + if (bal.align_0[v_i_k.id_0] == v_i_k) { + um_pair = castTo(neighbors.get_0(m), 42); + um = castTo(um_pair.first, 10); + if (!$contains_6(markedEdges, um_pair.second) && r < this$static.ni.nodeIndex[um.id_0]) { + bal.align_0[um.id_0] = v_i_k; + bal.root[v_i_k.id_0] = bal.root[um.id_0]; + bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; + bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); + r = this$static.ni.nodeIndex[um.id_0]; + } + } + } + } + } + } + } +} + +function BKAligner(layeredGraph, ni){ + this.layeredGraph = layeredGraph; + this.ni = ni; +} + +defineClass(1699, 1, {}, BKAligner); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAligner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAligner', 1699); +function $getOrCreateClassNode(this$static, sinkNode){ + var node; + node = castTo($get_10(this$static.sinkNodes, sinkNode), 467); + if (!node) { + node = new BKCompactor$ClassNode; + node.node = sinkNode; + $put_6(this$static.sinkNodes, node.node, node); + } + return node; +} + +function $horizontalCompaction(this$static, bal){ + var layer, layer$iterator, layer$iterator0, layer$iterator1, layers, node, node$iterator, nodes, sinkShift, v, v$iterator; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_6(layer$iterator0), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + bal.sink[node.id_0] = node; + bal.shift_0[node.id_0] = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_61:$intern_60; + } + } + $reset(this$static.sinkNodes); + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = reverse_0(layers)); + $init_0(this$static.threshStrategy, bal, this$static.ni); + fill_2(bal.y_0, null); + for (layer$iterator1 = layers.iterator_0(); layer$iterator1.hasNext_0();) { + layer = castTo(layer$iterator1.next_1(), 30); + nodes = layer.nodes; + bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && (nodes = reverse_0(nodes)); + for (v$iterator = nodes.iterator_0(); v$iterator.hasNext_0();) { + v = castTo(v$iterator.next_1(), 10); + bal.root[v.id_0] == v && $placeBlock(this$static, v, bal); + } + } + $placeClasses(this$static, bal); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 30); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_6(v$iterator), 10); + bal.y_0[v.id_0] = bal.y_0[bal.root[v.id_0].id_0]; + if (v == bal.root[v.id_0]) { + sinkShift = $doubleValue(bal.shift_0[bal.sink[v.id_0].id_0]); + (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && sinkShift > $intern_61 || bal.vdir == DOWN_0 && sinkShift < $intern_60) && (bal.y_0[v.id_0] = $doubleValue(bal.y_0[v.id_0]) + sinkShift); + } + } + } + this$static.threshStrategy.postProcess(); +} + +function $placeBlock(this$static, root, bal){ + var currentBlockPosition, currentIndexInLayer, currentLayerSize, currentNode, isInitialAssignment, neighbor, neighborRoot, neighborSink, newPosition, requiredSpace, sinkNode, spacing, thresh; + if (bal.y_0[root.id_0] != null) { + return; + } + isInitialAssignment = true; + bal.y_0[root.id_0] = 0; + currentNode = root; + thresh = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?$intern_61:$intern_60; + do { + currentIndexInLayer = this$static.ni.nodeIndex[currentNode.id_0]; + currentLayerSize = currentNode.layer.nodes.array.length; + if (bal.vdir == DOWN_0 && currentIndexInLayer > 0 || bal.vdir == UP_0 && currentIndexInLayer < currentLayerSize - 1) { + neighbor = null; + neighborRoot = null; + bal.vdir == UP_0?(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer + 1), 10)):(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer - 1), 10)); + neighborRoot = bal.root[neighbor.id_0]; + $placeBlock(this$static, neighborRoot, bal); + thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); + bal.sink[root.id_0] == root && (bal.sink[root.id_0] = bal.sink[neighborRoot.id_0]); + if (bal.sink[root.id_0] == bal.sink[neighborRoot.id_0]) { + spacing = $getVerticalSpacing_0(this$static.spacings, currentNode, neighbor); + if (bal.vdir == UP_0) { + currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); + newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0 - spacing - currentNode.margin.bottom - currentNode.size_0.y_0 - $doubleValue(bal.innerShift[currentNode.id_0]); + if (isInitialAssignment) { + isInitialAssignment = false; + bal.y_0[root.id_0] = $wnd.Math.min(newPosition, thresh); + } + else { + bal.y_0[root.id_0] = $wnd.Math.min(currentBlockPosition, $wnd.Math.min(newPosition, thresh)); + } + } + else { + currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); + newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing + currentNode.margin.top_0 - $doubleValue(bal.innerShift[currentNode.id_0]); + if (isInitialAssignment) { + isInitialAssignment = false; + bal.y_0[root.id_0] = $wnd.Math.max(newPosition, thresh); + } + else { + bal.y_0[root.id_0] = $wnd.Math.max(currentBlockPosition, $wnd.Math.max(newPosition, thresh)); + } + } + } + else { + spacing = $doubleValue(castToDouble($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + sinkNode = $getOrCreateClassNode(this$static, bal.sink[root.id_0]); + neighborSink = $getOrCreateClassNode(this$static, bal.sink[neighborRoot.id_0]); + if (bal.vdir == UP_0) { + requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) + currentNode.size_0.y_0 + currentNode.margin.bottom + spacing - ($doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0); + $addEdge(sinkNode, neighborSink, requiredSpace); + } + else { + requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) - currentNode.margin.top_0 - $doubleValue(bal.y_0[neighborRoot.id_0]) - $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.size_0.y_0 - neighbor.margin.bottom - spacing; + $addEdge(sinkNode, neighborSink, requiredSpace); + } + } + } + else { + thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); + } + currentNode = bal.align_0[currentNode.id_0]; + } + while (currentNode != root); + $finishBlock(this$static.threshStrategy, root); +} + +function $placeClasses(this$static, bal){ + var e, e$iterator, entry, n, n$iterator, n$iterator0, outerIter, outerIter0, sinks; + sinks = new LinkedList; + for (n$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); n$iterator0.val$outerIter2.hasNext_0();) { + n = (entry = castTo(n$iterator0.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 467)); + n.indegree == 0 && ($addNode_0(sinks, n, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + n = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 467); + n.classShift == null && (n.classShift = 0); + for (e$iterator = new ArrayList$1(n.outgoing); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_6(e$iterator), 663); + e.target.classShift == null?(e.target.classShift = $doubleValue(n.classShift) + e.separation):bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(e.target.classShift = $wnd.Math.min($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)):(e.target.classShift = $wnd.Math.max($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)); + --e.target.indegree; + e.target.indegree == 0 && $add_7(sinks, e.target); + } + } + for (n$iterator = (outerIter = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); n$iterator.val$outerIter2.hasNext_0();) { + n = (entry = castTo(n$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 467)); + bal.shift_0[n.node.id_0] = n.classShift; + } +} + +function BKCompactor(layeredGraph, ni){ + this.sinkNodes = new HashMap; + this.layeredGraph = layeredGraph; + this.ni = ni; + this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 312); + maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0))) === maskUndefined(($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS))?(this.threshStrategy = new ThresholdStrategy$SimpleThresholdStrategy):(this.threshStrategy = new ThresholdStrategy$NullThresholdStrategy); +} + +defineClass(1702, 1, {}, BKCompactor); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor', 1702); +function BKCompactor$ClassEdge(){ +} + +defineClass(663, 1, {663:1}, BKCompactor$ClassEdge); +_.separation = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassEdge', 663); +function $addEdge(this$static, target, separation){ + var se; + se = new BKCompactor$ClassEdge; + se.target = target; + se.separation = separation; + ++target.indegree; + $add_3(this$static.outgoing, se); +} + +function BKCompactor$ClassNode(){ + this.outgoing = new ArrayList; +} + +defineClass(467, 1, {467:1}, BKCompactor$ClassNode); +_.classShift = null; +_.indegree = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassNode', 467); +function $clinit_BKNodePlacer(){ + $clinit_BKNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_3 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $checkOrderConstraint(layeredGraph, bal, monitor){ + var bottom, feasible, layer, layer$iterator, node, node$iterator, pos, previous, top_0; + feasible = true; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + pos = $intern_61; + previous = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + top_0 = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) - node.margin.top_0; + bottom = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; + if (top_0 > pos && bottom > pos) { + previous = node; + pos = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; + } + else { + feasible = false; + monitor.isLoggingEnabled() && monitor.log_0('bk node placement breaks on ' + node + ' which should have been after ' + previous); + break; + } + } + if (!feasible) { + break; + } + } + monitor.isLoggingEnabled() && monitor.log_0(bal + ' is feasible: ' + feasible); + return feasible; +} + +function $createBalancedLayout(this$static, layouts, nodeCount){ + var bal, balanced, calculatedYs, i, i0, i1, i2, l, l$iterator, layer, layer$iterator, max_0, min_0, minWidthLayout, n, n$iterator, noOfLayouts, node, node$iterator, nodePosY, shift_0, width_0; + noOfLayouts = layouts.array.length; + balanced = new BKAlignedLayout(this$static.lGraph, nodeCount, null, null); + width_0 = initUnidimensionalArray(D_classLit, $intern_66, 28, noOfLayouts, 15, 1); + min_0 = initUnidimensionalArray(D_classLit, $intern_66, 28, noOfLayouts, 15, 1); + max_0 = initUnidimensionalArray(D_classLit, $intern_66, 28, noOfLayouts, 15, 1); + minWidthLayout = 0; + for (i0 = 0; i0 < noOfLayouts; i0++) { + min_0[i0] = $intern_0; + max_0[i0] = $intern_43; + } + for (i1 = 0; i1 < noOfLayouts; i1++) { + bal = (checkCriticalElementIndex(i1, layouts.array.length) , castTo(layouts.array[i1], 185)); + width_0[i1] = $layoutSize(bal); + width_0[minWidthLayout] > width_0[i1] && (minWidthLayout = i1); + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + nodePosY = $doubleValue(bal.y_0[n.id_0]) + $doubleValue(bal.innerShift[n.id_0]); + min_0[i1] = $wnd.Math.min(min_0[i1], nodePosY); + max_0[i1] = $wnd.Math.max(max_0[i1], nodePosY + n.size_0.y_0); + } + } + } + shift_0 = initUnidimensionalArray(D_classLit, $intern_66, 28, noOfLayouts, 15, 1); + for (i2 = 0; i2 < noOfLayouts; i2++) { + (checkCriticalElementIndex(i2, layouts.array.length) , castTo(layouts.array[i2], 185)).vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(shift_0[i2] = min_0[minWidthLayout] - min_0[i2]):(shift_0[i2] = max_0[minWidthLayout] - max_0[i2]); + } + calculatedYs = initUnidimensionalArray(D_classLit, $intern_66, 28, noOfLayouts, 15, 1); + for (layer$iterator = new ArrayList$1(this$static.lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (i = 0; i < noOfLayouts; i++) { + calculatedYs[i] = $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 185)).y_0[node.id_0]) + $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 185)).innerShift[node.id_0]) + shift_0[i]; + } + sort_9(calculatedYs, makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); + balanced.y_0[node.id_0] = (calculatedYs[1] + calculatedYs[2]) / 2; + balanced.innerShift[node.id_0] = 0; + } + } + return balanced; +} + +function $incidentToInnerSegment(this$static, node, layer1, layer2){ + var edge, edge$iterator, sourceNodeType; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + sourceNodeType = edge.source.owner.type_0; + if (sourceNodeType == LONG_EDGE && this$static.ni.layerIndex[edge.source.owner.layer.id_0] == layer2 && this$static.ni.layerIndex[node.layer.id_0] == layer1) { + return true; + } + } + } + return false; +} + +function $markConflicts(this$static, layeredGraph){ + var currentLayer, i, k, k_0, k_1, l, l_1, layer, layer$iterator, layerIndex, layerIterator, layerSize, nodeIterator, numberOfLayers, upperNeighbor, upperNeighbor$iterator, v_l, v_l_i; + numberOfLayers = layeredGraph.layers.array.length; + if (numberOfLayers < 3) { + return; + } + layerSize = initUnidimensionalArray(I_classLit, $intern_49, 28, numberOfLayers, 15, 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + layerSize[layerIndex++] = layer.nodes.array.length; + } + layerIterator = new AbstractList$ListIteratorImpl(layeredGraph.layers, 2); + for (i = 1; i < numberOfLayers - 1; i++) { + currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 30)); + nodeIterator = new ArrayList$1(currentLayer.nodes); + k_0 = 0; + l = 0; + for (l_1 = 0; l_1 < layerSize[i + 1]; l_1++) { + v_l_i = castTo($next_6(nodeIterator), 10); + if (l_1 == layerSize[i + 1] - 1 || $incidentToInnerSegment(this$static, v_l_i, i + 1, i)) { + k_1 = layerSize[i] - 1; + $incidentToInnerSegment(this$static, v_l_i, i + 1, i) && (k_1 = this$static.ni.nodeIndex[castTo(castTo(castTo($get_11(this$static.ni.leftNeighbors, v_l_i.id_0), 15).get_0(0), 42).first, 10).id_0]); + while (l <= l_1) { + v_l = castTo($get_11(currentLayer.nodes, l), 10); + if (!$incidentToInnerSegment(this$static, v_l, i + 1, i)) { + for (upperNeighbor$iterator = castTo($get_11(this$static.ni.leftNeighbors, v_l.id_0), 15).iterator_0(); upperNeighbor$iterator.hasNext_0();) { + upperNeighbor = castTo(upperNeighbor$iterator.next_1(), 42); + k = this$static.ni.nodeIndex[castTo(upperNeighbor.first, 10).id_0]; + (k < k_0 || k > k_1) && $add_6(this$static.markedEdges, castTo(upperNeighbor.second, 18)); + } + } + ++l; + } + k_0 = k_1; + } + } + } +} + +function $process_77(this$static, layeredGraph, monitor){ + var align_0, aligner, bal, bal$iterator, bal$iterator0, bal$iterator1, bal$iterator2, balanced, chosenLayout, compacter, favorStraightEdges, layer, layer$iterator, layouts, leftdown, leftup, node, node$iterator, rightdown, rightup; + monitor.begin('Brandes & Koepf node placement', 1); + this$static.lGraph = layeredGraph; + this$static.ni = buildFor(layeredGraph); + align_0 = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)), 281); + favorStraightEdges = $booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))); + this$static.produceBalancedLayout = align_0 == ($clinit_FixedAlignment() , NONE_4) && !favorStraightEdges || align_0 == BALANCED; + $markConflicts(this$static, layeredGraph); + rightdown = null; + rightup = null; + leftdown = null; + leftup = null; + layouts = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + switch (castTo($getProperty(layeredGraph, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0), 281).ordinal) { + case 3: + leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + push_1(layouts.array, leftdown); + break; + case 1: + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + push_1(layouts.array, leftup); + break; + case 4: + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + push_1(layouts.array, rightdown); + break; + case 2: + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + push_1(layouts.array, rightup); + break; + default:leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, LEFT_3); + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, DOWN_0, RIGHT_3); + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, RIGHT_3); + push_1(layouts.array, rightdown); + push_1(layouts.array, rightup); + push_1(layouts.array, leftdown); + push_1(layouts.array, leftup); + } + aligner = new BKAligner(layeredGraph, this$static.ni); + for (bal$iterator0 = new ArrayList$1(layouts); bal$iterator0.i < bal$iterator0.this$01.array.length;) { + bal = castTo($next_6(bal$iterator0), 185); + $verticalAlignment(aligner, bal, this$static.markedEdges); + $insideBlockShift(bal); + } + compacter = new BKCompactor(layeredGraph, this$static.ni); + for (bal$iterator1 = new ArrayList$1(layouts); bal$iterator1.i < bal$iterator1.this$01.array.length;) { + bal = castTo($next_6(bal$iterator1), 185); + $horizontalCompaction(compacter, bal); + } + if (monitor.isLoggingEnabled()) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_6(bal$iterator2), 185); + monitor.log_0(bal + ' size is ' + $layoutSize(bal)); + } + } + chosenLayout = null; + if (this$static.produceBalancedLayout) { + balanced = $createBalancedLayout(this$static, layouts, this$static.ni.nodeCount); + $checkOrderConstraint(layeredGraph, balanced, monitor) && (chosenLayout = balanced); + } + if (!chosenLayout) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_6(bal$iterator2), 185); + $checkOrderConstraint(layeredGraph, bal, monitor) && (!chosenLayout || $layoutSize(chosenLayout) > $layoutSize(bal)) && (chosenLayout = bal); + } + } + !chosenLayout && (chosenLayout = (checkCriticalElementIndex(0, layouts.array.length) , castTo(layouts.array[0], 185))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + node.pos.y_0 = $doubleValue(chosenLayout.y_0[node.id_0]) + $doubleValue(chosenLayout.innerShift[node.id_0]); + } + } + if (monitor.isLoggingEnabled()) { + monitor.log_0('Chosen node placement: ' + chosenLayout); + monitor.log_0('Blocks: ' + getBlocks(chosenLayout)); + monitor.log_0('Classes: ' + getClasses(chosenLayout, monitor)); + monitor.log_0('Marked edges: ' + this$static.markedEdges); + } + for (bal$iterator = new ArrayList$1(layouts); bal$iterator.i < bal$iterator.this$01.array.length;) { + bal = castTo($next_6(bal$iterator), 185); + bal.root = null; + bal.blockSize = null; + bal.align_0 = null; + bal.innerShift = null; + bal.sink = null; + bal.shift_0 = null; + bal.y_0 = null; + } + $cleanup(this$static.ni); + this$static.markedEdges.map_0.clear_0(); + monitor.done_1(); +} + +function BKNodePlacer(){ + $clinit_BKNodePlacer(); + this.markedEdges = new HashSet; +} + +function getBlocks(bal){ + $clinit_BKNodePlacer(); + var blockContents, blocks, layer, layer$iterator, node, node$iterator, root; + blocks = new LinkedHashMap; + for (layer$iterator = new ArrayList$1(bal.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + root = bal.root[node.id_0]; + blockContents = castTo($get_16(blocks, root), 15); + if (!blockContents) { + blockContents = new ArrayList; + $put_11(blocks, root, blockContents); + } + blockContents.add_2(node); + } + } + return blocks; +} + +function getClasses(bal, monitor){ + var classContents, classes, root, root$iterator, roots, sink; + classes = new LinkedHashMap; + roots = newLinkedHashSet(new Arrays$ArrayList(bal.root)); + for (root$iterator = roots.map_0.keySet_0().iterator_0(); root$iterator.hasNext_0();) { + root = castTo(root$iterator.next_1(), 10); + if (!root) { + monitor.log_0('There are no classes in a balanced layout.'); + break; + } + sink = bal.sink[root.id_0]; + classContents = castTo($get_16(classes, sink), 15); + if (!classContents) { + classContents = new ArrayList; + $put_11(classes, sink, classContents); + } + classContents.add_2(root); + } + return classes; +} + +function getEdge(source, target){ + $clinit_BKNodePlacer(); + var edge, edge$iterator; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if (edge.target.owner == target || edge.source.owner == target) { + return edge; + } + } + return null; +} + +defineClass(1427, 1, $intern_113, BKNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_19(graph){ + return castTo($getProperty(castTo(graph, 36), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_3:null; +} +; +_.process = function process_74(layeredGraph, monitor){ + $process_77(this, castTo(layeredGraph, 36), monitor); +} +; +_.produceBalancedLayout = false; +var HIERARCHY_PROCESSING_ADDITIONS_3; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKNodePlacer', 1427); +function $cleanup(this$static){ + this$static.layerIndex = null; + this$static.nodeIndex = null; + setLength(this$static.leftNeighbors.array, 0); + setLength(this$static.rightNeighbors.array, 0); + this$static.neighborComparator = null; +} + +function NeighborhoodInformation(){ +} + +function buildFor(graph){ + var l, l$iterator, lId, lIndex, layer, layer$iterator, n, n$iterator, nId, nIndex, ni; + ni = new NeighborhoodInformation; + ni.nodeCount = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_6(layer$iterator), 30); + ni.nodeCount += layer.nodes.array.length; + } + lId = 0; + lIndex = 0; + ni.layerIndex = initUnidimensionalArray(I_classLit, $intern_49, 28, graph.layers.array.length, 15, 1); + nId = 0; + nIndex = 0; + ni.nodeIndex = initUnidimensionalArray(I_classLit, $intern_49, 28, ni.nodeCount, 15, 1); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + l.id_0 = lId++; + ni.layerIndex[l.id_0] = lIndex++; + nIndex = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + n.id_0 = nId++; + ni.nodeIndex[n.id_0] = nIndex++; + } + } + ni.neighborComparator = new NeighborhoodInformation$NeighborComparator(ni); + ni.leftNeighbors = newArrayListWithCapacity(ni.nodeCount); + determineAllLeftNeighbors(ni, graph); + ni.rightNeighbors = newArrayListWithCapacity(ni.nodeCount); + determineAllRightNeighbors(ni, graph); + return ni; +} + +function determineAllLeftNeighbors(ni, graph){ + var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + result = new ArrayList; + maxPriority = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array.length = 0; + } + edgePrio == maxPriority && $add_3(result, new Pair(edge.source.owner, edge)); + } + $clinit_Collections(); + $sort(result, ni.neighborComparator); + $add_2(ni.leftNeighbors, n.id_0, result); + } + } +} + +function determineAllRightNeighbors(ni, graph){ + var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_6(l$iterator), 30); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 10); + result = new ArrayList; + maxPriority = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 18); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 17).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array.length = 0; + } + edgePrio == maxPriority && $add_3(result, new Pair(edge.target.owner, edge)); + } + $clinit_Collections(); + $sort(result, ni.neighborComparator); + $add_2(ni.rightNeighbors, n.id_0, result); + } + } +} + +defineClass(1700, 1, {}, NeighborhoodInformation); +_.nodeCount = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation', 1700); +function $compare_24(this$static, o1, o2){ + var cmp; + cmp = this$static.this$01.nodeIndex[castTo(o1.first, 10).id_0] - this$static.this$01.nodeIndex[castTo(o2.first, 10).id_0]; + return round_int(signum(cmp)); +} + +function NeighborhoodInformation$NeighborComparator(this$0){ + this.this$01 = this$0; +} + +defineClass(1701, 1, $intern_88, NeighborhoodInformation$NeighborComparator); +_.compare_1 = function compare_79(o1, o2){ + return $compare_24(this, castTo(o1, 42), castTo(o2, 42)); +} +; +_.equals_0 = function equals_164(other){ + return this === other; +} +; +_.reversed = function reversed_71(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation$NeighborComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation/NeighborComparator', 1701); +function $finishBlock(this$static, n){ + $add_6(this$static.blockFinished, n); +} + +function $getOther_3(edge, n){ + if (edge.source.owner == n) { + return edge.target.owner; + } + else if (edge.target.owner == n) { + return edge.source.owner; + } + else { + throw toJs(new IllegalArgumentException_0('Node ' + n + ' is neither source nor target of edge ' + edge)); + } +} + +function $init_0(this$static, theBal, theNi){ + this$static.bal = theBal; + this$static.ni = theNi; + this$static.blockFinished.map_0.clear_0(); + $reset_0(this$static.postProcessablesQueue); + setLength(this$static.postProcessablesStack.arrayList.array, 0); +} + +function ThresholdStrategy(){ + this.blockFinished = new HashSet; + this.postProcessablesQueue = new LinkedList; + this.postProcessablesStack = new Stack; +} + +defineClass(823, 1, {}); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy', 823); +function ThresholdStrategy$NullThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1825, 823, {}, ThresholdStrategy$NullThresholdStrategy); +_.calculateThreshold = function calculateThreshold(oldThresh, blockRoot, currentNode){ + return this.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_61; +} +; +_.postProcess = function postProcess(){ +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$NullThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/NullThresholdStrategy', 1825); +function ThresholdStrategy$Postprocessable(free, isRoot){ + this.free = free; + this.isRoot = isRoot; +} + +defineClass(587, 1, {587:1}, ThresholdStrategy$Postprocessable); +_.hasEdges = false; +_.isRoot = false; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$Postprocessable_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/Postprocessable', 587); +function $getBound(this$static, blockNode, isRoot){ + var invalid, left, otherPort, otherRoot, pick, right, rootPort, threshold; + invalid = this$static.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_61; + pick = $pickEdge(this$static, new ThresholdStrategy$Postprocessable(blockNode, isRoot)); + if (!pick.edge && pick.hasEdges) { + $add_7(this$static.postProcessablesQueue, pick); + return invalid; + } + else if (pick.edge) { + left = pick.edge.source; + right = pick.edge.target; + if (isRoot) { + rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?right:left; + otherPort = this$static.bal.hdir == RIGHT_3?left:right; + otherRoot = this$static.bal.root[otherPort.owner.id_0]; + threshold = $doubleValue(this$static.bal.y_0[otherRoot.id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; + } + else { + rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?right:left; + otherPort = this$static.bal.hdir == LEFT_3?left:right; + threshold = $doubleValue(this$static.bal.y_0[this$static.bal.root[otherPort.owner.id_0].id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; + } + this$static.bal.su[this$static.bal.root[left.owner.id_0].id_0] = ($clinit_Boolean() , true); + this$static.bal.su[this$static.bal.root[right.owner.id_0].id_0] = true; + return threshold; + } + return invalid; +} + +function $pickEdge(this$static, pp){ + var e, e$iterator, edges, hasEdges, onlyDummies; + pp.isRoot?(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)):(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)); + hasEdges = false; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + onlyDummies = $booleanValue(this$static.bal.od[this$static.bal.root[pp.free.id_0].id_0]); + if (!onlyDummies && !$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + continue; + } + if ($booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0]) || $booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0])) { + continue; + } + hasEdges = true; + if ($contains_6(this$static.blockFinished, this$static.bal.root[$getOther_3(e, pp.free).id_0])) { + pp.hasEdges = true; + pp.edge = e; + return pp; + } + } + pp.hasEdges = hasEdges; + pp.edge = null; + return pp; +} + +function $process_78(this$static, pp){ + var availableSpace, block, delta, edge, fix; + edge = pp.edge; + edge.source.owner == pp.free?(fix = edge.target):(fix = edge.source); + edge.source.owner == pp.free?(block = edge.source):(block = edge.target); + delta = $calculateDelta(this$static.bal, fix, block); + if (delta > 0 && delta < $intern_98) { + availableSpace = $checkSpaceAbove(this$static.bal, block.owner, delta, this$static.ni); + $shiftBlock(this$static.bal, block.owner, -availableSpace); + return availableSpace > 0; + } + else if (delta < 0 && -delta < $intern_98) { + availableSpace = $checkSpaceBelow(this$static.bal, block.owner, -delta, this$static.ni); + $shiftBlock(this$static.bal, block.owner, availableSpace); + return availableSpace > 0; + } + return false; +} + +function ThresholdStrategy$SimpleThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1826, 823, {}, ThresholdStrategy$SimpleThresholdStrategy); +_.calculateThreshold = function calculateThreshold_0(oldThresh, blockRoot, currentNode){ + var isLast, isRoot, t; + isRoot = blockRoot == currentNode; + isLast = this.bal.align_0[currentNode.id_0] == blockRoot; + if (!(isRoot || isLast)) { + return oldThresh; + } + t = oldThresh; + if (this.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)) { + isRoot && (t = $getBound(this, blockRoot, true)); + !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); + } + else { + isRoot && (t = $getBound(this, blockRoot, true)); + !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); + } + return t; +} +; +_.postProcess = function postProcess_0(){ + var edge, moved, onlyDummies, pick, pp; + while (this.postProcessablesQueue.size_0 != 0) { + pp = castTo($poll(this.postProcessablesQueue), 587); + pick = $pickEdge(this, pp); + if (!pick.edge) { + continue; + } + edge = pick.edge; + onlyDummies = $booleanValue(this.bal.od[this.bal.root[pp.free.id_0].id_0]); + if (!onlyDummies && !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + moved = $process_78(this, pp); + moved || $push(this.postProcessablesStack, pp); + } + while (this.postProcessablesStack.arrayList.array.length != 0) { + $process_78(this, castTo($pop(this.postProcessablesStack), 587)); + } +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$SimpleThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/SimpleThresholdStrategy', 1826); +function $clinit_EdgeRouterFactory(){ + $clinit_EdgeRouterFactory = emptyMethod; + factoryCache = new EnumMap(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit); +} + +function $create_7(this$static){ + switch (this$static.edgeRoutingStrategy.ordinal) { + case 1: + return new PolylineEdgeRouter; + case 3: + return new SplineEdgeRouter; + default:return new OrthogonalEdgeRouter; + } +} + +function EdgeRouterFactory(){ +} + +function factoryFor(edgeRoutingStrategy){ + $clinit_EdgeRouterFactory(); + var factory; + if (!$containsKey_5(factoryCache, edgeRoutingStrategy)) { + factory = new EdgeRouterFactory; + factory.edgeRoutingStrategy = edgeRoutingStrategy; + $put_8(factoryCache, edgeRoutingStrategy, factory); + } + return castTo($get_14(factoryCache, edgeRoutingStrategy), 645); +} + +defineClass(645, 1, {645:1, 188:1, 196:1}, EdgeRouterFactory); +_.create_1 = function create_17(){ + return $create_7(this); +} +; +_.create_2 = function create_16(){ + return $create_7(this); +} +; +var factoryCache; +var Lorg_eclipse_elk_alg_layered_p5edges_EdgeRouterFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'EdgeRouterFactory', 645); +function $clinit_OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter = emptyMethod; + HYPEREDGE_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , HYPEREDGE_DUMMY_MERGER)); + INVERTED_PORT_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + HIERARCHICAL_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR), P4_NODE_PLACEMENT, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR), P5_EDGE_ROUTING, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER); + SELF_LOOP_PROCESSING_ADDITIONS = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + HYPERNODE_PROCESSING_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HYPERNODE_PROCESSOR); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + END_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $getLayoutProcessorConfiguration_0(graph){ + var configuration, graphProperties; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = new LayoutProcessorConfiguration; + if (graphProperties.contains(($clinit_GraphProperties() , HYPEREDGES))) { + $addAll_6(configuration, HYPEREDGE_PROCESSING_ADDITIONS); + $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); + } + if (graphProperties.contains(NON_FREE_PORTS) || $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , FEEDBACK_EDGES_0))))) { + $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); + graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS); + } + graphProperties.contains(EXTERNAL_PORTS) && $addAll_6(configuration, HIERARCHICAL_PORT_PROCESSING_ADDITIONS); + graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS); + graphProperties.contains(HYPERNODES) && $addAll_6(configuration, HYPERNODE_PROCESSING_ADDITIONS); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS); + return configuration; +} + +function $process_79(layeredGraph, monitor){ + var edgeEdgeSpacing, edgeNodeSpacing, isLeftLayerExternal, isRightLayerExternal, layerIter, leftLayer, leftLayerNodes, nodeNodeSpacing, rightLayer, rightLayerNodes, routingGenerator, routingWidth, slotsCount, startPos, xpos; + monitor.begin('Orthogonal edge routing', 1); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); + edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + routingGenerator = new OrthogonalRoutingGenerator(0, edgeEdgeSpacing); + xpos = 0; + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + leftLayer = null; + rightLayer = null; + leftLayerNodes = null; + rightLayerNodes = null; + do { + rightLayer = layerIter.i < layerIter.this$01_0.size_1()?(checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)):null; + rightLayerNodes = !rightLayer?null:rightLayer.nodes; + if (leftLayer) { + placeNodesHorizontally(leftLayer, xpos); + xpos += leftLayer.size_0.x_0; + } + startPos = !leftLayer?xpos:xpos + edgeNodeSpacing; + slotsCount = $routeEdges_0(routingGenerator, layeredGraph, leftLayerNodes, rightLayerNodes, startPos); + isLeftLayerExternal = !leftLayer || all_0(leftLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + isRightLayerExternal = !rightLayer || all_0(rightLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + if (slotsCount > 0) { + routingWidth = (slotsCount - 1) * edgeEdgeSpacing; + !!leftLayer && (routingWidth += edgeNodeSpacing); + !!rightLayer && (routingWidth += edgeNodeSpacing); + routingWidth < nodeNodeSpacing && !isLeftLayerExternal && !isRightLayerExternal && (routingWidth = nodeNodeSpacing); + xpos += routingWidth; + } + else + !isLeftLayerExternal && !isRightLayerExternal && (xpos += nodeNodeSpacing); + leftLayer = rightLayer; + leftLayerNodes = rightLayerNodes; + } + while (rightLayer); + layeredGraph.size_0.x_0 = xpos; + monitor.done_1(); +} + +function OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter(); +} + +defineClass(1485, 1, $intern_113, OrthogonalEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_20(graph){ + return $getLayoutProcessorConfiguration_0(castTo(graph, 36)); +} +; +_.process = function process_75(layeredGraph, monitor){ + $process_79(castTo(layeredGraph, 36), monitor); +} +; +var CENTER_EDGE_LABEL_PROCESSING_ADDITIONS, END_EDGE_LABEL_PROCESSING_ADDITIONS, HIERARCHICAL_PORT_PROCESSING_ADDITIONS, HYPEREDGE_PROCESSING_ADDITIONS, HYPERNODE_PROCESSING_ADDITIONS, INVERTED_PORT_PROCESSING_ADDITIONS, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS, SELF_LOOP_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p5edges_OrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'OrthogonalEdgeRouter', 1485); +function $clinit_PolylineEdgeRouter(){ + $clinit_PolylineEdgeRouter = emptyMethod; + PRED_EXTERNAL_WEST_OR_EAST_PORT = new PolylineEdgeRouter$1; + BASELINE_PROCESSOR_CONFIGURATION = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , INVERTED_PORT_PROCESSOR)); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0 = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + SELF_LOOP_PROCESSING_ADDITIONS_0 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + END_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $addBendPoint(this$static, edge, bendPoint, addJunctionPoint, currPort){ + var jpoint, junctionPoints; + if ((!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || !$equals_9(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [currPort.owner.pos, currPort.pos, currPort.anchor])), bendPoint)) && !$isSelfLoop(edge)) { + edge.source == currPort?$add_0(edge.bendPoints, 0, new KVector_2(bendPoint)):$add_7(edge.bendPoints, new KVector_2(bendPoint)); + if (addJunctionPoint && !$contains_6(this$static.createdJunctionPoints, bendPoint)) { + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); + } + jpoint = new KVector_2(bendPoint); + $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); + $add_6(this$static.createdJunctionPoints, jpoint); + } + } +} + +function $calculateWestInLayerEdgeYDiff(layer){ + var maxYDiff, node, node$iterator, outgoingEdge, outgoingEdge$iterator, sourcePos, targetPos; + maxYDiff = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 18); + if (layer == outgoingEdge.target.owner.layer && outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { + sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; + maxYDiff = $wnd.Math.max(maxYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + } + } + return maxYDiff; +} + +function $getLayoutProcessorConfiguration_1(graph){ + var configuration, graphProperties; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = createFrom_0(BASELINE_PROCESSOR_CONFIGURATION); + graphProperties.contains(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0); + graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_0); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_0); + return configuration; +} + +function $isInLayerDummy_0(node){ + var e, e$iterator; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 18); + if (!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + return true; + } + } + } + return false; +} + +function $process_80(this$static, layeredGraph, monitor){ + var edgeSpaceFac, edgeSpacing, externalLayer, layer, layerIter, layerSpacing, maxCurrOutputYDiff, maxVertDiff, node, node$iterator, nodeSpacing, outgoingEdge, outgoingEdge$iterator, slopedEdgeZoneWidth, sourcePos, targetPos, xpos, yDiff; + monitor.begin('Polyline edge routing', 1); + slopedEdgeZoneWidth = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)))); + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + edgeSpaceFac = $wnd.Math.min(1, edgeSpacing / nodeSpacing); + xpos = 0; + layerSpacing = 0; + if (layeredGraph.layers.array.length != 0) { + yDiff = $calculateWestInLayerEdgeYDiff(castTo($get_11(layeredGraph.layers, 0), 30)); + xpos = 0.4 * edgeSpaceFac * yDiff; + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30)); + externalLayer = all_0(layer, PRED_EXTERNAL_WEST_OR_EAST_PORT); + externalLayer && xpos > 0 && (xpos -= nodeSpacing); + placeNodesHorizontally(layer, xpos); + maxVertDiff = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + maxCurrOutputYDiff = 0; + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 18); + sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; + if (layer == outgoingEdge.target.owner.layer && !$isSelfLoop(outgoingEdge)) { + $processInLayerEdge(outgoingEdge, xpos, 0.4 * edgeSpaceFac * $wnd.Math.abs(sourcePos - targetPos)); + if (outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { + sourcePos = 0; + targetPos = 0; + } + } + maxCurrOutputYDiff = $wnd.Math.max(maxCurrOutputYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + switch (node.type_0.ordinal) { + case 0: + case 4: + case 1: + case 3: + case 5: + $processNode_6(this$static, node, xpos, slopedEdgeZoneWidth); + } + maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrOutputYDiff); + } + if (layerIter.i < layerIter.this$01_0.size_1()) { + yDiff = $calculateWestInLayerEdgeYDiff((checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 30))); + maxVertDiff = $wnd.Math.max(maxVertDiff, yDiff); + checkCriticalElement(layerIter.i > 0); + layerIter.this$01.get_0(layerIter.last = --layerIter.i); + } + layerSpacing = 0.4 * edgeSpaceFac * maxVertDiff; + !externalLayer && layerIter.i < layerIter.this$01_0.size_1() && (layerSpacing += nodeSpacing); + xpos += layer.size_0.x_0 + layerSpacing; + } + this$static.createdJunctionPoints.map_0.clear_0(); + layeredGraph.size_0.x_0 = xpos; + monitor.done_1(); +} + +function $processInLayerEdge(edge, layerXPos, edgeSpacing){ + var bendPoint, midY, sourceAnchorY, sourcePort, targetPort; + sourcePort = edge.source; + targetPort = edge.target; + sourceAnchorY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; + midY = (sourceAnchorY + sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0) / 2; + bendPoint = null; + sourcePort.side == ($clinit_PortSide() , EAST_2)?(bendPoint = new KVector_1(layerXPos + sourcePort.owner.layer.size_0.x_0 + edgeSpacing, midY)):(bendPoint = new KVector_1(layerXPos - edgeSpacing, midY)); + $add_0(edge.bendPoints, 0, bendPoint); +} + +function $processNode_6(this$static, node, layerLeftXPos, maxAcceptableXDiff){ + var absolutePortAnchor, addJunctionPoint, bendPoint, correspondingPort, e, e$iterator, layerRightXPos, otherPort, port, port$iterator, xDistance; + layerRightXPos = layerLeftXPos + node.layer.size_0.x_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + absolutePortAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])); + if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + correspondingPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 12); + absolutePortAnchor.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [correspondingPort.owner.pos, correspondingPort.pos, correspondingPort.anchor])).x_0; + node.pos.x_0 = absolutePortAnchor.x_0; + } + bendPoint = new KVector_1(0, absolutePortAnchor.y_0); + if (port.side == ($clinit_PortSide() , EAST_2)) { + bendPoint.x_0 = layerRightXPos; + } + else if (port.side == WEST_2) { + bendPoint.x_0 = layerLeftXPos; + } + else { + continue; + } + xDistance = $wnd.Math.abs(absolutePortAnchor.x_0 - bendPoint.x_0); + if (xDistance <= maxAcceptableXDiff && !$isInLayerDummy_0(node)) { + continue; + } + addJunctionPoint = port.outgoingEdges.array.length + port.incomingEdges.array.length > 1; + for (e$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(e$iterator.firstIterator) || $hasNext_3(e$iterator.secondIterator);) { + e = castTo($hasNext_3(e$iterator.firstIterator)?$next_6(e$iterator.firstIterator):$next_6(e$iterator.secondIterator), 18); + otherPort = e.source == port?e.target:e.source; + $wnd.Math.abs(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [otherPort.owner.pos, otherPort.pos, otherPort.anchor])).y_0 - bendPoint.y_0) > 1 && $addBendPoint(this$static, e, bendPoint, addJunctionPoint, port); + } + } +} + +function PolylineEdgeRouter(){ + $clinit_PolylineEdgeRouter(); + this.createdJunctionPoints = new HashSet; +} + +defineClass(1478, 1, $intern_113, PolylineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_21(graph){ + return $getLayoutProcessorConfiguration_1(castTo(graph, 36)); +} +; +_.process = function process_76(layeredGraph, monitor){ + $process_80(this, castTo(layeredGraph, 36), monitor); +} +; +var BASELINE_PROCESSOR_CONFIGURATION, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0, END_EDGE_LABEL_PROCESSING_ADDITIONS_0, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0, PRED_EXTERNAL_WEST_OR_EAST_PORT, SELF_LOOP_PROCESSING_ADDITIONS_0; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter', 1478); +function $apply_17(node){ + var extPortSide; + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 64); + return node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (extPortSide == ($clinit_PortSide() , WEST_2) || extPortSide == EAST_2); +} + +function PolylineEdgeRouter$1(){ +} + +defineClass(1479, 1, $intern_89, PolylineEdgeRouter$1); +_.apply_1 = function apply_148(node){ + return $apply_17(castTo(node, 10)); +} +; +_.equals_0 = function equals_165(other){ + return this === other; +} +; +_.test_0 = function test_100(input_0){ + return $apply_17(castTo(input_0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter/1', 1479); +function computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random){ + var markBase, maxNode, maxOutflow, maxSegments, nextSinkMark, nextSourceMark, node, node$iterator, outflow, segment, segment$iterator, shiftBase, sink, source, unprocessed; + unprocessed = newTreeSet(segments); + maxSegments = new ArrayList; + markBase = segments.array.length; + nextSinkMark = markBase - 1; + nextSourceMark = markBase + 1; + while (unprocessed.map_0.size_1() != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 118)); + unprocessed.map_0.remove_0(sink) != null; + sink.mark = nextSinkMark--; + updateNeighbors(sink, sources, sinks, criticalOnly); + } + while (sources.size_0 != 0) { + source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 118)); + unprocessed.map_0.remove_0(source) != null; + source.mark = nextSourceMark++; + updateNeighbors(source, sources, sinks, criticalOnly); + } + maxOutflow = $intern_43; + for (segment$iterator = unprocessed.map_0.keySet_0().iterator_0(); segment$iterator.hasNext_0();) { + segment = castTo(segment$iterator.next_1(), 118); + if (!criticalOnly && segment.criticalOutDepWeight > 0 && segment.criticalInDepWeight <= 0) { + maxSegments.array.length = 0; + push_1(maxSegments.array, segment); + break; + } + outflow = segment.outDepWeight - segment.inDepWeight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxSegments.array.length = 0; + maxOutflow = outflow; + } + push_1(maxSegments.array, segment); + } + } + if (maxSegments.array.length != 0) { + maxNode = castTo($get_11(maxSegments, $nextInt(random, maxSegments.array.length)), 118); + unprocessed.map_0.remove_0(maxNode) != null; + maxNode.mark = nextSourceMark++; + updateNeighbors(maxNode, sources, sinks, criticalOnly); + maxSegments.array.length = 0; + } + } + shiftBase = segments.array.length + 1; + for (node$iterator = new ArrayList$1(segments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 118); + node.mark < markBase && (node.mark = node.mark + shiftBase); + } +} + +function detectCycles(segments, criticalOnly, random){ + var outDependency, outDependency$iterator, result, sinks, source, source$iterator, sources; + result = new ArrayList; + sources = new LinkedList; + sinks = new LinkedList; + initialize_2(segments, sources, sinks, criticalOnly); + computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random); + for (source$iterator = new ArrayList$1(segments); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 118); + for (outDependency$iterator = new ArrayList$1(source.outgoingSegmentDependencies); outDependency$iterator.i < outDependency$iterator.this$01.array.length;) { + outDependency = castTo($next_6(outDependency$iterator), 132); + (!criticalOnly || outDependency.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) && source.mark > outDependency.target.mark && (push_1(result.array, outDependency) , true); + } + } + return result; +} + +function initialize_2(segments, sources, sinks, criticalOnly){ + var criticalInWeight, criticalOutWeight, inWeight, nextMark, outWeight, segment, segment$iterator; + nextMark = -1; + for (segment$iterator = new ArrayList$1(segments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_6(segment$iterator), 118); + segment.mark = nextMark--; + criticalInWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$0$Type), new HyperEdgeCycleDetector$lambda$1$Type)).sum); + criticalOutWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$2$Type), new HyperEdgeCycleDetector$lambda$3$Type)).sum); + inWeight = criticalInWeight; + outWeight = criticalOutWeight; + if (!criticalOnly) { + inWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$4$Type)).sum); + outWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$5$Type)).sum); + } + segment.inDepWeight = inWeight; + segment.criticalInDepWeight = criticalInWeight; + segment.outDepWeight = outWeight; + segment.criticalOutDepWeight = criticalOutWeight; + outWeight == 0?($addNode_0(sinks, segment, sinks.tail.prev, sinks.tail) , true):inWeight == 0 && ($addNode_0(sources, segment, sources.tail.prev, sources.tail) , true); + } +} + +function updateNeighbors(node, sources, sinks, criticalOnly){ + var dep, dep$iterator, dep$iterator0, source, target; + for (dep$iterator0 = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator0.i < dep$iterator0.this$01.array.length;) { + dep = castTo($next_6(dep$iterator0), 132); + if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { + target = dep.target; + if (target.mark < 0 && dep.weight > 0) { + $setInWeight(target, target.inDepWeight - dep.weight); + dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalInWeight(target, target.criticalInDepWeight - dep.weight); + target.inDepWeight <= 0 && target.outDepWeight > 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); + } + } + } + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_6(dep$iterator), 132); + if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { + source = dep.source; + if (source.mark < 0 && dep.weight > 0) { + $setOutWeight(source, source.outDepWeight - dep.weight); + dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalOutWeight(source, source.criticalOutDepWeight - dep.weight); + source.outDepWeight <= 0 && source.inDepWeight > 0 && ($addNode_0(sinks, source, sinks.tail.prev, sinks.tail) , true); + } + } + } +} + +function HyperEdgeCycleDetector$lambda$0$Type(){ +} + +defineClass(1872, 1, $intern_40, HyperEdgeCycleDetector$lambda$0$Type); +_.test_0 = function test_101(arg0){ + return castTo(arg0, 132).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$0$Type', 1872); +function HyperEdgeCycleDetector$lambda$1$Type(){ +} + +defineClass(1873, 1, {}, HyperEdgeCycleDetector$lambda$1$Type); +_.applyAsInt = function applyAsInt(arg0){ + return castTo(arg0, 132).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$1$Type', 1873); +function HyperEdgeCycleDetector$lambda$2$Type(){ +} + +defineClass(1874, 1, $intern_40, HyperEdgeCycleDetector$lambda$2$Type); +_.test_0 = function test_102(arg0){ + return castTo(arg0, 132).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$2$Type', 1874); +function HyperEdgeCycleDetector$lambda$3$Type(){ +} + +defineClass(1875, 1, {}, HyperEdgeCycleDetector$lambda$3$Type); +_.applyAsInt = function applyAsInt_0(arg0){ + return castTo(arg0, 132).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$3$Type', 1875); +function HyperEdgeCycleDetector$lambda$4$Type(){ +} + +defineClass(1876, 1, {}, HyperEdgeCycleDetector$lambda$4$Type); +_.applyAsInt = function applyAsInt_1(arg0){ + return castTo(arg0, 132).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$4$Type', 1876); +function HyperEdgeCycleDetector$lambda$5$Type(){ +} + +defineClass(1877, 1, {}, HyperEdgeCycleDetector$lambda$5$Type); +_.applyAsInt = function applyAsInt_2(arg0){ + return castTo(arg0, 132).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$5$Type', 1877); +function $addPortPositions(this$static, port, hyperEdgeSegmentMap){ + var otherPort, otherPort$iterator, portPos; + hyperEdgeSegmentMap.put(port, this$static); + $add_3(this$static.ports, port); + portPos = this$static.routingStrategy.getPortPositionOnHyperNode(port); + port.side == this$static.routingStrategy.getSourcePortSide()?insertSorted(this$static.incomingConnectionCoordinates, portPos):insertSorted(this$static.outgoingConnectionCoordinates, portPos); + $recomputeExtent(this$static); + for (otherPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port), new LPort$2(port)]))); $hasNext_1(otherPort$iterator);) { + otherPort = castTo($next_0(otherPort$iterator), 12); + hyperEdgeSegmentMap.containsKey(otherPort) || $addPortPositions(this$static, otherPort, hyperEdgeSegmentMap); + } +} + +function $compareTo_17(this$static, other){ + return this$static.mark - other.mark; +} + +function $recomputeExtent(this$static){ + this$static.startPosition = NaN; + this$static.endPosition = NaN; + $recomputeExtent_0(this$static, this$static.incomingConnectionCoordinates); + $recomputeExtent_0(this$static, this$static.outgoingConnectionCoordinates); +} + +function $recomputeExtent_0(this$static, positions){ + if (positions.size_0 != 0) { + isNaN(this$static.startPosition)?(this$static.startPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0)))):(this$static.startPosition = $wnd.Math.min(this$static.startPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0))))); + isNaN(this$static.endPosition)?(this$static.endPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0)))):(this$static.endPosition = $wnd.Math.max(this$static.endPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0))))); + } +} + +function $setCriticalInWeight(this$static, inWeight){ + this$static.criticalInDepWeight = inWeight; +} + +function $setCriticalOutWeight(this$static, outWeight){ + this$static.criticalOutDepWeight = outWeight; +} + +function $setInWeight(this$static, inWeight){ + this$static.inDepWeight = inWeight; +} + +function $setOutWeight(this$static, outWeight){ + this$static.outDepWeight = outWeight; +} + +function $setRoutingSlot_0(this$static, slot){ + this$static.routingSlot = slot; +} + +function $setSplitPartner(this$static, splitPartner){ + this$static.splitPartner = splitPartner; +} + +function $splitAt(this$static, splitPosition){ + this$static.splitPartner = new HyperEdgeSegment(this$static.routingStrategy); + $setSplitPartner(this$static.splitPartner, this$static); + $addAll(this$static.splitPartner.outgoingConnectionCoordinates, this$static.outgoingConnectionCoordinates); + $reset_0(this$static.outgoingConnectionCoordinates); + $add_7(this$static.outgoingConnectionCoordinates, splitPosition); + $add_7(this$static.splitPartner.incomingConnectionCoordinates, splitPosition); + $recomputeExtent(this$static); + $recomputeExtent(this$static.splitPartner); + while (this$static.incomingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.incomingSegmentDependencies, 0), 132)); + } + while (this$static.outgoingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.outgoingSegmentDependencies, 0), 132)); + } + return this$static.splitPartner; +} + +function HyperEdgeSegment(routingStrategy){ + this.ports = new ArrayList; + this.incomingConnectionCoordinates = new LinkedList; + this.outgoingConnectionCoordinates = new LinkedList; + this.outgoingSegmentDependencies = new ArrayList; + this.incomingSegmentDependencies = new ArrayList; + this.routingStrategy = routingStrategy; +} + +function insertSorted(list, value_0){ + var listIter, next; + listIter = $listIterator_2(list, 0); + while (listIter.currentNode != listIter.this$01.tail) { + next = $floatValue(castToDouble($next_9(listIter))); + if (next == value_0) { + return; + } + else if (next > value_0) { + $previous_0(listIter); + break; + } + } + $add_8(listIter, value_0); +} + +defineClass(118, 1, {34:1, 118:1}, HyperEdgeSegment); +_.compareTo_0 = function compareTo_18(other){ + return $compareTo_17(this, castTo(other, 118)); +} +; +_.equals_0 = function equals_166(object){ + var other; + if (instanceOf(object, 118)) { + other = castTo(object, 118); + return this.mark == other.mark; + } + return false; +} +; +_.hashCode_1 = function hashCode_64(){ + return this.mark; +} +; +_.toString_0 = function toString_104(){ + var builder, name_0, port, portIter; + builder = new StringBuilder_1('{'); + portIter = new ArrayList$1(this.ports); + while (portIter.i < portIter.this$01.array.length) { + port = castTo($next_6(portIter), 12); + name_0 = $getDesignation_2(port.owner); + name_0 == null && (name_0 = 'n' + $getIndex(port.owner)); + builder.string += '' + name_0; + portIter.i < portIter.this$01.array.length && (builder.string += ',' , builder); + } + builder.string += '}'; + return builder.string; +} +; +_.criticalInDepWeight = 0; +_.criticalOutDepWeight = 0; +_.endPosition = NaN; +_.inDepWeight = 0; +_.mark = 0; +_.outDepWeight = 0; +_.routingSlot = 0; +_.startPosition = NaN; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegment', 118); +function $remove_31(this$static){ + $setSource_1(this$static, null); + $setTarget_1(this$static, null); +} + +function $setSource_1(this$static, newSource){ + !!this$static.source && $remove_12(this$static.source.outgoingSegmentDependencies, this$static); + this$static.source = newSource; + !!this$static.source && $add_3(this$static.source.outgoingSegmentDependencies, this$static); +} + +function $setTarget_1(this$static, newTarget){ + !!this$static.target && $remove_12(this$static.target.incomingSegmentDependencies, this$static); + this$static.target = newTarget; + !!this$static.target && $add_3(this$static.target.incomingSegmentDependencies, this$static); +} + +function HyperEdgeSegmentDependency(type_0, source, target, weight){ + this.type_0 = type_0; + this.weight = weight; + $setSource_1(this, source); + $setTarget_1(this, target); +} + +defineClass(132, 1, {132:1}, HyperEdgeSegmentDependency); +_.toString_0 = function toString_105(){ + return this.source + '->' + this.target + ' (' + $name(this.type_0) + ')'; +} +; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency', 132); +function $clinit_HyperEdgeSegmentDependency$DependencyType(){ + $clinit_HyperEdgeSegmentDependency$DependencyType = emptyMethod; + REGULAR = new HyperEdgeSegmentDependency$DependencyType('REGULAR', 0); + CRITICAL = new HyperEdgeSegmentDependency$DependencyType('CRITICAL', 1); +} + +function HyperEdgeSegmentDependency$DependencyType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_69(name_0){ + $clinit_HyperEdgeSegmentDependency$DependencyType(); + return valueOf(($clinit_HyperEdgeSegmentDependency$DependencyType$Map() , $MAP_59), name_0); +} + +function values_77(){ + $clinit_HyperEdgeSegmentDependency$DependencyType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_37, 528, 0, [REGULAR, CRITICAL]); +} + +defineClass(528, 22, {3:1, 34:1, 22:1, 528:1}, HyperEdgeSegmentDependency$DependencyType); +var CRITICAL, REGULAR; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency/DependencyType', 528, Ljava_lang_Enum_2_classLit, values_77, valueOf_69); +function $clinit_HyperEdgeSegmentDependency$DependencyType$Map(){ + $clinit_HyperEdgeSegmentDependency$DependencyType$Map = emptyMethod; + $MAP_59 = createValueOfMap(($clinit_HyperEdgeSegmentDependency$DependencyType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_37, 528, 0, [REGULAR, CRITICAL]))); +} + +var $MAP_59; +function $chooseBestAreaIndex(segment, freeAreas, fromIndex, toIndex){ + var bestArea, bestAreaIndex, bestRating, currArea, currRating, i, splitPartner, splitSegment, splitSegments, newSplit, newSplitPartner; + bestAreaIndex = fromIndex; + if (fromIndex < toIndex) { + splitSegments = (newSplit = new HyperEdgeSegment(segment.routingStrategy) , newSplitPartner = new HyperEdgeSegment(segment.routingStrategy) , $addAll(newSplit.incomingConnectionCoordinates, segment.incomingConnectionCoordinates) , newSplit.splitBy = segment.splitBy , newSplit.splitPartner = newSplitPartner , $recomputeExtent(newSplit) , $addAll(newSplitPartner.outgoingConnectionCoordinates, segment.outgoingConnectionCoordinates) , newSplitPartner.splitPartner = newSplit , $recomputeExtent(newSplitPartner) , new Pair(newSplit, newSplitPartner)); + splitSegment = castTo(splitSegments.first, 118); + splitPartner = castTo(splitSegments.second, 118); + bestArea = (checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 339)); + bestRating = $rateArea(segment, splitSegment, splitPartner, bestArea); + for (i = fromIndex + 1; i <= toIndex; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 339)); + currRating = $rateArea(segment, splitSegment, splitPartner, currArea); + if ($isBetter(currArea, currRating, bestArea, bestRating)) { + bestArea = currArea; + bestRating = currRating; + bestAreaIndex = i; + } + } + } + return bestAreaIndex; +} + +function $computePositionToSplitAndUpdateFreeAreas(segment, freeAreas, criticalConflictThreshold){ + var bestAreaIndex, currArea, firstPossibleAreaIndex, i, lastPossibleAreaIndex, splitPosition; + firstPossibleAreaIndex = -1; + lastPossibleAreaIndex = -1; + for (i = 0; i < freeAreas.array.length; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 339)); + if (currArea.startPosition > segment.endPosition) { + break; + } + else if (currArea.endPosition >= segment.startPosition) { + firstPossibleAreaIndex < 0 && (firstPossibleAreaIndex = i); + lastPossibleAreaIndex = i; + } + } + splitPosition = (segment.startPosition + segment.endPosition) / 2; + if (firstPossibleAreaIndex >= 0) { + bestAreaIndex = $chooseBestAreaIndex(segment, freeAreas, firstPossibleAreaIndex, lastPossibleAreaIndex); + splitPosition = center_0((checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 339))); + $useArea(freeAreas, bestAreaIndex, criticalConflictThreshold); + } + return splitPosition; +} + +function $countCrossingsForSingleOrdering(left, right){ + return countCrossings(left.outgoingConnectionCoordinates, right.startPosition, right.endPosition) + countCrossings(right.incomingConnectionCoordinates, left.startPosition, left.endPosition); +} + +function $decideWhichSegmentsToSplit(dependencies){ + var dependency, dependency$iterator, segmentCausingSplit, segmentToSplit, segmentsToSplit, sourceSegment, targetSegment; + segmentsToSplit = new LinkedHashSet; + for (dependency$iterator = new ArrayList$1(dependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_6(dependency$iterator), 132); + sourceSegment = dependency.source; + targetSegment = dependency.target; + if (segmentsToSplit.map_0.containsKey(sourceSegment) || segmentsToSplit.map_0.containsKey(targetSegment)) { + continue; + } + segmentToSplit = sourceSegment; + segmentCausingSplit = targetSegment; + if (sourceSegment.incomingConnectionCoordinates.size_0 + sourceSegment.outgoingConnectionCoordinates.size_0 > 2 && targetSegment.incomingConnectionCoordinates.size_0 + targetSegment.outgoingConnectionCoordinates.size_0 <= 2) { + segmentToSplit = targetSegment; + segmentCausingSplit = sourceSegment; + } + segmentsToSplit.map_0.put(segmentToSplit, segmentsToSplit); + segmentToSplit.splitBy = segmentCausingSplit; + } + return segmentsToSplit; +} + +function $findFreeAreas(segments, criticalConflictThreshold){ + var freeAreas, i, inCoordinates, outCoordinates, sortedCoordinates; + freeAreas = new ArrayList; + inCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$2$Type); + outCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$3$Type); + sortedCoordinates = $toArray_5($sorted($mapToDouble(concat_1(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Stream_2_classLit, 1), $intern_2, 848, 0, [inCoordinates, outCoordinates])), new HyperEdgeSegmentSplitter$lambda$4$Type))); + for (i = 1; i < sortedCoordinates.length; i++) { + sortedCoordinates[i] - sortedCoordinates[i - 1] >= 2 * criticalConflictThreshold && $add_3(freeAreas, new HyperEdgeSegmentSplitter$FreeArea(sortedCoordinates[i - 1] + criticalConflictThreshold, sortedCoordinates[i] - criticalConflictThreshold)); + } + return freeAreas; +} + +function $isBetter(currArea, currRating, bestArea, bestRating){ + if (currRating.crossings < bestRating.crossings) { + return true; + } + else if (currRating.crossings == bestRating.crossings) { + if (currRating.dependencies < bestRating.dependencies) { + return true; + } + else if (currRating.dependencies == bestRating.dependencies) { + if (currArea.size_0 > bestArea.size_0) { + return true; + } + } + } + return false; +} + +function $lambda$1_6(this$static, segments_1, freeAreas_2, criticalConflictThreshold_3, segment_3){ + var splitPosition; + splitPosition = $computePositionToSplitAndUpdateFreeAreas(segment_3, freeAreas_2, criticalConflictThreshold_3); + $add_3(segments_1, $splitAt(segment_3, splitPosition)); + $updateDependencies(this$static, segment_3, segments_1); +} + +function $rateArea(segment, splitSegment, splitPartner, area){ + var areaCentre, dependency, dependency$iterator, dependency$iterator0, otherSegment, rating; + areaCentre = (area.startPosition + area.endPosition) / 2; + $reset_0(splitSegment.outgoingConnectionCoordinates); + $add_7(splitSegment.outgoingConnectionCoordinates, areaCentre); + $reset_0(splitPartner.incomingConnectionCoordinates); + $add_7(splitPartner.incomingConnectionCoordinates, areaCentre); + rating = new HyperEdgeSegmentSplitter$AreaRating; + for (dependency$iterator0 = new ArrayList$1(segment.incomingSegmentDependencies); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { + dependency = castTo($next_6(dependency$iterator0), 132); + otherSegment = dependency.source; + $updateConsideringBothOrderings(rating, splitSegment, otherSegment); + $updateConsideringBothOrderings(rating, splitPartner, otherSegment); + } + for (dependency$iterator = new ArrayList$1(segment.outgoingSegmentDependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_6(dependency$iterator), 132); + otherSegment = dependency.target; + $updateConsideringBothOrderings(rating, splitSegment, otherSegment); + $updateConsideringBothOrderings(rating, splitPartner, otherSegment); + } + rating.dependencies += 2; + rating.crossings += $countCrossingsForSingleOrdering(splitSegment, segment.splitBy); + rating.crossings += $countCrossingsForSingleOrdering(segment.splitBy, splitPartner); + return rating; +} + +function $splitSegments(this$static, dependenciesToResolve, segments, criticalConflictThreshold){ + var freeAreas, segmentsToSplit; + if (dependenciesToResolve.array.length == 0) { + return; + } + freeAreas = $findFreeAreas(segments, criticalConflictThreshold); + segmentsToSplit = $decideWhichSegmentsToSplit(dependenciesToResolve); + $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(segmentsToSplit, 1)), new HyperEdgeSegmentSplitter$lambda$0$Type), new HyperEdgeSegmentSplitter$lambda$1$Type(this$static, segments, freeAreas, criticalConflictThreshold)); +} + +function $updateConsideringBothOrderings(rating, s1, s2){ + var crossingsS1LeftOfS2, crossingsS2LeftOfS1; + crossingsS1LeftOfS2 = countCrossings(s1.outgoingConnectionCoordinates, s2.startPosition, s2.endPosition) + countCrossings(s2.incomingConnectionCoordinates, s1.startPosition, s1.endPosition); + crossingsS2LeftOfS1 = countCrossings(s2.outgoingConnectionCoordinates, s1.startPosition, s1.endPosition) + countCrossings(s1.incomingConnectionCoordinates, s2.startPosition, s2.endPosition); + if (crossingsS1LeftOfS2 == crossingsS2LeftOfS1) { + if (crossingsS1LeftOfS2 > 0) { + rating.dependencies += 2; + rating.crossings += crossingsS1LeftOfS2; + } + } + else { + rating.dependencies += 1; + rating.crossings += $wnd.Math.min(crossingsS1LeftOfS2, crossingsS2LeftOfS1); + } +} + +function $updateDependencies(this$static, segment, segments){ + var otherSegment, otherSegment$iterator, splitCausingSegment, splitPartner; + splitCausingSegment = segment.splitBy; + splitPartner = segment.splitPartner; + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), segment, splitCausingSegment, 1); + new HyperEdgeSegmentDependency(CRITICAL, splitCausingSegment, splitPartner, 1); + for (otherSegment$iterator = new ArrayList$1(segments); otherSegment$iterator.i < otherSegment$iterator.this$01.array.length;) { + otherSegment = castTo($next_6(otherSegment$iterator), 118); + if (otherSegment != splitCausingSegment && otherSegment != segment && otherSegment != splitPartner) { + $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, segment); + $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, splitPartner); + } + } +} + +function $useArea(freeAreas, usedAreaIndex, criticalConflictThreshold){ + var insertIndex, newArea1, newArea2, newEnd1, newStart2, oldArea, oldAreaCentre; + oldArea = (checkCriticalElementIndex(usedAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[usedAreaIndex], 339)); + $remove_11(freeAreas, usedAreaIndex); + if (oldArea.size_0 / 2 >= criticalConflictThreshold) { + insertIndex = usedAreaIndex; + oldAreaCentre = (oldArea.startPosition + oldArea.endPosition) / 2; + newEnd1 = oldAreaCentre - criticalConflictThreshold; + if (oldArea.startPosition <= oldAreaCentre - criticalConflictThreshold) { + newArea1 = new HyperEdgeSegmentSplitter$FreeArea(oldArea.startPosition, newEnd1); + $add_2(freeAreas, insertIndex++, newArea1); + } + newStart2 = oldAreaCentre + criticalConflictThreshold; + if (newStart2 <= oldArea.endPosition) { + newArea2 = new HyperEdgeSegmentSplitter$FreeArea(newStart2, oldArea.endPosition); + checkCriticalPositionIndex(insertIndex, freeAreas.array.length); + insertTo(freeAreas.array, insertIndex, newArea2); + } + } +} + +function HyperEdgeSegmentSplitter(routingGenerator){ + this.routingGenerator = routingGenerator; +} + +function center_0(a){ + return (a.startPosition + a.endPosition) / 2; +} + +function lambda$0_33(hes1_0, hes2_1){ + return compare_4(hes1_0.endPosition - hes1_0.startPosition, hes2_1.endPosition - hes2_1.startPosition); +} + +defineClass(1878, 1, {}, HyperEdgeSegmentSplitter); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter', 1878); +function HyperEdgeSegmentSplitter$AreaRating(){ + this.dependencies = 0; + this.crossings = 0; +} + +defineClass(1879, 1, {}, HyperEdgeSegmentSplitter$AreaRating); +_.crossings = 0; +_.dependencies = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$AreaRating_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/AreaRating', 1879); +function HyperEdgeSegmentSplitter$FreeArea(startPosition, endPosition){ + this.startPosition = startPosition; + this.endPosition = endPosition; + this.size_0 = endPosition - startPosition; +} + +defineClass(339, 1, {339:1}, HyperEdgeSegmentSplitter$FreeArea); +_.endPosition = 0; +_.size_0 = 0; +_.startPosition = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$FreeArea_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/FreeArea', 339); +function HyperEdgeSegmentSplitter$lambda$0$Type(){ +} + +defineClass(1880, 1, $intern_88, HyperEdgeSegmentSplitter$lambda$0$Type); +_.compare_1 = function compare_80(arg0, arg1){ + return lambda$0_33(castTo(arg0, 118), castTo(arg1, 118)); +} +; +_.equals_0 = function equals_167(other){ + return this === other; +} +; +_.reversed = function reversed_72(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$0$Type', 1880); +function HyperEdgeSegmentSplitter$lambda$1$Type($$outer_0, segments_1, freeAreas_2, criticalConflictThreshold_3){ + this.$$outer_0 = $$outer_0; + this.segments_1 = segments_1; + this.freeAreas_2 = freeAreas_2; + this.criticalConflictThreshold_3 = criticalConflictThreshold_3; +} + +defineClass(1881, 1, $intern_19, HyperEdgeSegmentSplitter$lambda$1$Type); +_.accept = function accept_131(arg0){ + $lambda$1_6(this.$$outer_0, this.segments_1, this.freeAreas_2, this.criticalConflictThreshold_3, castTo(arg0, 118)); +} +; +_.criticalConflictThreshold_3 = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$1$Type', 1881); +function HyperEdgeSegmentSplitter$lambda$2$Type(){ +} + +defineClass(1882, 1, {}, HyperEdgeSegmentSplitter$lambda$2$Type); +_.apply_0 = function apply_149(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 118).incomingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$2$Type', 1882); +function HyperEdgeSegmentSplitter$lambda$3$Type(){ +} + +defineClass(1883, 1, {}, HyperEdgeSegmentSplitter$lambda$3$Type); +_.apply_0 = function apply_150(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 118).outgoingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$3$Type', 1883); +function HyperEdgeSegmentSplitter$lambda$4$Type(){ +} + +defineClass(1884, 1, {}, HyperEdgeSegmentSplitter$lambda$4$Type); +_.applyAsDouble = function applyAsDouble_3(arg0){ + return $doubleValue(castToDouble(arg0)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$4$Type', 1884); +function $countConflicts(this$static, posis1, posis2){ + var conflicts, hasMore, iter1, iter2, pos1, pos2; + conflicts = 0; + if (posis1.size_0 != 0 && posis2.size_0 != 0) { + iter1 = $listIterator_2(posis1, 0); + iter2 = $listIterator_2(posis2, 0); + pos1 = $doubleValue(castToDouble($next_9(iter1))); + pos2 = $doubleValue(castToDouble($next_9(iter2))); + hasMore = true; + do { + if (pos1 > pos2 - this$static.criticalConflictThreshold && pos1 < pos2 + this$static.criticalConflictThreshold) { + return -1; + } + else + pos1 > pos2 - this$static.conflictThreshold && pos1 < pos2 + this$static.conflictThreshold && ++conflicts; + pos1 <= pos2 && iter1.currentNode != iter1.this$01.tail?(pos1 = $doubleValue(castToDouble($next_9(iter1)))):pos2 <= pos1 && iter2.currentNode != iter2.this$01.tail?(pos2 = $doubleValue(castToDouble($next_9(iter2)))):(hasMore = false); + } + while (hasMore); + } + return conflicts; +} + +function $createDependencyIfNecessary(this$static, he1, he2){ + var conflicts1, conflicts2, criticalConflictsDetected, criticalDependencyCount, crossings1, crossings2, depValue1, depValue2; + if ($wnd.Math.abs(he1.startPosition - he1.endPosition) < $intern_101 || $wnd.Math.abs(he2.startPosition - he2.endPosition) < $intern_101) { + return 0; + } + conflicts1 = $countConflicts(this$static, he1.outgoingConnectionCoordinates, he2.incomingConnectionCoordinates); + conflicts2 = $countConflicts(this$static, he2.outgoingConnectionCoordinates, he1.incomingConnectionCoordinates); + criticalConflictsDetected = conflicts1 == -1 || conflicts2 == -1; + criticalDependencyCount = 0; + if (criticalConflictsDetected) { + if (conflicts1 == -1) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he2, he1, 1); + ++criticalDependencyCount; + } + if (conflicts2 == -1) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he1, he2, 1); + ++criticalDependencyCount; + } + } + else { + crossings1 = countCrossings(he1.outgoingConnectionCoordinates, he2.startPosition, he2.endPosition); + crossings1 += countCrossings(he2.incomingConnectionCoordinates, he1.startPosition, he1.endPosition); + crossings2 = countCrossings(he2.outgoingConnectionCoordinates, he1.startPosition, he1.endPosition); + crossings2 += countCrossings(he1.incomingConnectionCoordinates, he2.startPosition, he2.endPosition); + depValue1 = conflicts1 + 16 * crossings1; + depValue2 = conflicts2 + 16 * crossings2; + if (depValue1 < depValue2) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, depValue2 - depValue1); + } + else if (depValue1 > depValue2) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he2, he1, depValue1 - depValue2); + } + else if (depValue1 > 0 && depValue2 > 0) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, 0); + new HyperEdgeSegmentDependency(REGULAR, he2, he1, 0); + } + } + return criticalDependencyCount; +} + +function $createHyperEdgeSegments(this$static, nodes, portSide, hyperEdges, portToHyperEdgeSegmentMap){ + var hyperEdge, node, node$iterator, port, port$iterator; + if (nodes) { + for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + for (port$iterator = $getPorts_0(node, ($clinit_PortType() , OUTPUT), portSide).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + hyperEdge = castTo(getEntryValueOrNull($getEntry_0(portToHyperEdgeSegmentMap.hashCodeMap, port)), 118); + if (!hyperEdge) { + hyperEdge = new HyperEdgeSegment(this$static.routingStrategy); + push_1(hyperEdges.array, hyperEdge); + $addPortPositions(hyperEdge, port, portToHyperEdgeSegmentMap); + } + } + } + } +} + +function $minimumDifference(numberStream){ + var currentNumber, iter, minDifference, numbers, previousNumber; + numbers = castTo($collect_1($distinct($sorted_0(numberStream)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minDifference = $intern_98; + if (numbers.size_1() >= 2) { + iter = numbers.iterator_0(); + currentNumber = castToDouble(iter.next_1()); + while (iter.hasNext_0()) { + previousNumber = currentNumber; + currentNumber = castToDouble(iter.next_1()); + minDifference = $wnd.Math.min(minDifference, (checkCriticalNotNull(currentNumber) , currentNumber) - (checkCriticalNotNull(previousNumber) , previousNumber)); + } + } + return minDifference; +} + +function $routeEdges_0(this$static, layeredGraph, sourceLayerNodes, targetLayerNodes, startPos){ + var criticalDependencyCount, edgeSegments, firstIdx, firstSegment, node, node$iterator, portToEdgeSegmentMap, random, rankCount, secondIdx, minIncomingDistance, minOutgoingDistance, cycleDependencies; + portToEdgeSegmentMap = new HashMap; + edgeSegments = new ArrayList; + $createHyperEdgeSegments(this$static, sourceLayerNodes, this$static.routingStrategy.getSourcePortSide(), edgeSegments, portToEdgeSegmentMap); + $createHyperEdgeSegments(this$static, targetLayerNodes, this$static.routingStrategy.getTargetPortSide(), edgeSegments, portToEdgeSegmentMap); + this$static.criticalConflictThreshold = 0.2 * (minIncomingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$0$Type)) , minOutgoingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$1$Type)) , $wnd.Math.min(minIncomingDistance, minOutgoingDistance)); + criticalDependencyCount = 0; + for (firstIdx = 0; firstIdx < edgeSegments.array.length - 1; firstIdx++) { + firstSegment = (checkCriticalElementIndex(firstIdx, edgeSegments.array.length) , castTo(edgeSegments.array[firstIdx], 118)); + for (secondIdx = firstIdx + 1; secondIdx < edgeSegments.array.length; secondIdx++) { + criticalDependencyCount += $createDependencyIfNecessary(this$static, firstSegment, (checkCriticalElementIndex(secondIdx, edgeSegments.array.length) , castTo(edgeSegments.array[secondIdx], 118))); + } + } + random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 234); + criticalDependencyCount >= 2 && (cycleDependencies = detectCycles(edgeSegments, true, random) , !this$static.segmentSplitter && (this$static.segmentSplitter = new HyperEdgeSegmentSplitter(this$static)) , $splitSegments(this$static.segmentSplitter, cycleDependencies, edgeSegments, this$static.criticalConflictThreshold) , undefined); + breakNonCriticalCycles(edgeSegments, random); + topologicalNumbering(edgeSegments); + rankCount = -1; + for (node$iterator = new ArrayList$1(edgeSegments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 118); + if ($wnd.Math.abs(node.startPosition - node.endPosition) < $intern_101) { + continue; + } + rankCount = $wnd.Math.max(rankCount, node.routingSlot); + this$static.routingStrategy.calculateBendPoints(node, startPos, this$static.edgeSpacing); + } + this$static.routingStrategy.createdJunctionPoints.map_0.clear_0(); + return rankCount + 1; +} + +function OrthogonalRoutingGenerator(direction, edgeSpacing){ + this.routingStrategy = forRoutingDirection(direction); + this.edgeSpacing = edgeSpacing; + this.conflictThreshold = 0.5 * edgeSpacing; +} + +function breakNonCriticalCycles(edgeSegments, random){ + var cycleDependencies, cycleDependency, cycleDependency$iterator, oldSource, oldTarget; + cycleDependencies = detectCycles(edgeSegments, false, random); + for (cycleDependency$iterator = new ArrayList$1(cycleDependencies); cycleDependency$iterator.i < cycleDependency$iterator.this$01.array.length;) { + cycleDependency = castTo($next_6(cycleDependency$iterator), 132); + cycleDependency.weight == 0?($setSource_1(cycleDependency, null) , $setTarget_1(cycleDependency, null)):(oldSource = cycleDependency.source , oldTarget = cycleDependency.target , $setSource_1(cycleDependency, oldTarget) , $setTarget_1(cycleDependency, oldSource) , undefined); + } +} + +function countCrossings(posis, start_0, end){ + var crossings, pos, pos$iterator; + crossings = 0; + for (pos$iterator = $listIterator_2(posis, 0); pos$iterator.currentNode != pos$iterator.this$01.tail;) { + pos = $doubleValue(castToDouble($next_9(pos$iterator))); + if (pos > end) { + break; + } + else + pos >= start_0 && ++crossings; + } + return crossings; +} + +function topologicalNumbering(segments){ + var dep, dep$iterator, maxRank, node, node$iterator, node$iterator0, rightwardTargets, source, sources, target; + sources = new ArrayList; + rightwardTargets = new ArrayList; + for (node$iterator0 = new ArrayList$1(segments); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 118); + $setInWeight(node, node.incomingSegmentDependencies.array.length); + $setOutWeight(node, node.outgoingSegmentDependencies.array.length); + node.inDepWeight == 0 && (push_1(sources.array, node) , true); + node.outDepWeight == 0 && node.incomingConnectionCoordinates.size_0 == 0 && (push_1(rightwardTargets.array, node) , true); + } + maxRank = -1; + while (sources.array.length != 0) { + node = castTo($remove_11(sources, 0), 118); + for (dep$iterator = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_6(dep$iterator), 132); + target = dep.target; + $setRoutingSlot_0(target, $wnd.Math.max(target.routingSlot, node.routingSlot + 1)); + maxRank = $wnd.Math.max(maxRank, target.routingSlot); + $setInWeight(target, target.inDepWeight - 1); + target.inDepWeight == 0 && (push_1(sources.array, target) , true); + } + } + if (maxRank > -1) { + for (node$iterator = new ArrayList$1(rightwardTargets); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 118); + node.routingSlot = maxRank; + } + while (rightwardTargets.array.length != 0) { + node = castTo($remove_11(rightwardTargets, 0), 118); + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_6(dep$iterator), 132); + source = dep.source; + if (source.incomingConnectionCoordinates.size_0 > 0) { + continue; + } + $setRoutingSlot_0(source, $wnd.Math.min(source.routingSlot, node.routingSlot - 1)); + $setOutWeight(source, source.outDepWeight - 1); + source.outDepWeight == 0 && (push_1(rightwardTargets.array, source) , true); + } + } + } +} + +defineClass(664, 1, {}, OrthogonalRoutingGenerator); +_.conflictThreshold = 0; +_.criticalConflictThreshold = 0; +_.edgeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator', 664); +function OrthogonalRoutingGenerator$lambda$0$Type(){ +} + +defineClass(1703, 1, {}, OrthogonalRoutingGenerator$lambda$0$Type); +_.apply_0 = function apply_151(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 118).incomingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$0$Type', 1703); +function OrthogonalRoutingGenerator$lambda$1$Type(){ +} + +defineClass(1704, 1, {}, OrthogonalRoutingGenerator$lambda$1$Type); +_.apply_0 = function apply_152(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 118).outgoingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$1$Type', 1704); +function $addJunctionPointIfNecessary(this$static, edge, segment, pos, vertical){ + var jpoint, junctionPoints, p, pointAtSegmentBoundary, pointInsideEdgeSegment; + p = vertical?pos.y_0:pos.x_0; + if ($contains_6(this$static.createdJunctionPoints, pos)) { + return; + } + pointInsideEdgeSegment = p > segment.startPosition && p < segment.endPosition; + pointAtSegmentBoundary = false; + if (segment.incomingConnectionCoordinates.size_0 != 0 && segment.outgoingConnectionCoordinates.size_0 != 0) { + pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.outgoingConnectionCoordinates)))) < $intern_101); + pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.outgoingConnectionCoordinates)))) < $intern_101); + } + if (pointInsideEdgeSegment || pointAtSegmentBoundary) { + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 75); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); + } + jpoint = new KVector_2(pos); + $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); + $add_6(this$static.createdJunctionPoints, jpoint); + } +} + +function BaseRoutingDirectionStrategy(){ + this.createdJunctionPoints = new HashSet; +} + +function forRoutingDirection(direction){ + switch (direction) { + case 0: + return new WestToEastRoutingStrategy; + case 1: + return new NorthToSouthRoutingStrategy; + case 2: + return new SouthToNorthRoutingStrategy; + default:throw toJs(new IllegalArgumentException); + } +} + +defineClass(670, 1, {}); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_BaseRoutingDirectionStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'BaseRoutingDirectionStrategy', 670); +function NorthToSouthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1870, 670, {}, NorthToSouthRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentY = startPos + segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; + if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { + currentY = segmentY; + currentSegment = segment; + bend = new KVector_1(sourceX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + currentY = startPos + splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + bend = new KVector_1(targetX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode(port){ + return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; +} +; +_.getSourcePortSide = function getSourcePortSide(){ + return $clinit_PortSide() , SOUTH_2; +} +; +_.getTargetPortSide = function getTargetPortSide(){ + return $clinit_PortSide() , NORTH_3; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_NorthToSouthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'NorthToSouthRoutingStrategy', 1870); +function SouthToNorthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1871, 670, {}, SouthToNorthRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints_0(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentY = startPos - segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; + if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { + currentY = segmentY; + currentSegment = segment; + bend = new KVector_1(sourceX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + currentY = startPos - splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + bend = new KVector_1(targetX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_0(port){ + return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; +} +; +_.getSourcePortSide = function getSourcePortSide_0(){ + return $clinit_PortSide() , NORTH_3; +} +; +_.getTargetPortSide = function getTargetPortSide_0(){ + return $clinit_PortSide() , SOUTH_2; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_SouthToNorthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'SouthToNorthRoutingStrategy', 1871); +function WestToEastRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1869, 670, {}, WestToEastRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints_1(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentX, edge, edge$iterator, port, port$iterator, segmentX, sourceY, splitPartner, splitY, target, targetY; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentX = startPos + segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + sourceY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).y_0; + if ($wnd.Math.abs(sourceY - targetY) > $intern_101) { + currentX = segmentX; + currentSegment = segment; + bend = new KVector_1(currentX, sourceY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitY = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(currentX, splitY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + currentX = startPos + splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(currentX, splitY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + } + bend = new KVector_1(currentX, targetY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_1(port){ + return port.owner.pos.y_0 + port.pos.y_0 + port.anchor.y_0; +} +; +_.getSourcePortSide = function getSourcePortSide_1(){ + return $clinit_PortSide() , EAST_2; +} +; +_.getTargetPortSide = function getTargetPortSide_1(){ + return $clinit_PortSide() , WEST_2; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_WestToEastRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'WestToEastRoutingStrategy', 1869); +function $createUniformKnotVector(this$static, size_0){ + var fraction, i, i0, i1, mySize; + if (size_0 < 2 * this$static.dimNUBS) { + throw toJs(new IllegalArgumentException_0('The knot vector must have at least two time the dimension elements.')); + } + this$static.maxKnot = 1; + for (i0 = 0; i0 < this$static.dimNUBS; i0++) { + $add_3(this$static.knotVector, 0); + } + mySize = size_0 + 1 - 2 * this$static.dimNUBS; + fraction = mySize; + for (i1 = 1; i1 < mySize; i1++) { + $add_3(this$static.knotVector, i1 / fraction); + } + if (this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS; i++) { + $add_3(this$static.knotVector, 1); + } + } +} + +function $getBezierCP(this$static){ + var iter, retVal; + this$static.isBezier || $toBezier(this$static); + retVal = new KVectorChain; + iter = new ArrayList$1(this$static.controlPoints); + $next_6(iter); + while (iter.i < iter.this$01.array.length) { + $add_7(retVal, castTo($next_6(iter), 418).cp); + } + checkCriticalElement(retVal.size_0 != 0); + $removeNode_0(retVal, retVal.tail.prev); + return retVal; +} + +function $getMultiplicity(this$static, knotToCheck){ + var count, currentKnot, diff, iter; + iter = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); + count = 0; + while (iter.i < iter.this$01_0.size_1()) { + currentKnot = $doubleValue((checkCriticalElement(iter.i < iter.this$01_0.size_1()) , castToDouble(iter.this$01_0.get_0(iter.last = iter.i++)))); + diff = currentKnot - knotToCheck; + if (diff > $intern_118) { + return count; + } + else + diff > -1.0E-6 && ++count; + } + return count; +} + +function $insertKnotAtCurrentPosition(this$static, insertions, knotToInsert, iterCP, iterKnot){ + var cp, cp$iterator, firstCP, i, j, j0, j1, multiplicity, newCPs, secondCP; + multiplicity = $getMultiplicity(this$static, knotToInsert); + for (i = 0; i < insertions; i++) { + $add_1(iterKnot, knotToInsert); + newCPs = new ArrayList; + secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 418)); + for (j0 = multiplicity + i; j0 < this$static.dimNUBS; j0++) { + firstCP = secondCP; + secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 418)); + $add_3(newCPs, new NubSpline$PolarCP(firstCP, secondCP, knotToInsert)); + } + for (j1 = multiplicity + i; j1 < this$static.dimNUBS; j1++) { + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + j1 > multiplicity + i && $remove_8(iterCP); + } + for (cp$iterator = new ArrayList$1(newCPs); cp$iterator.i < cp$iterator.this$01.array.length;) { + cp = castTo($next_6(cp$iterator), 418); + $add_1(iterCP, cp); + } + if (i < insertions - 1) { + for (j = multiplicity + i; j < this$static.dimNUBS; j++) { + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + } + } + } +} + +function $toBezier(this$static){ + var currentKnot, i, iterCP, iterKnot, knotToCount, occurrence; + iterKnot = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); + iterCP = new AbstractList$ListIteratorImpl(this$static.controlPoints, 0); + if (this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + } + } + else { + for (i = 0; i < this$static.dimNUBS - 1; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + $remove_8(iterKnot); + } + } + currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); + while (this$static.maxKnot - currentKnot > $intern_118) { + knotToCount = currentKnot; + occurrence = 0; + while ($wnd.Math.abs(currentKnot - knotToCount) < $intern_118) { + ++occurrence; + currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); + checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()); + iterCP.this$01_0.get_0(iterCP.last = iterCP.i++); + } + if (occurrence < this$static.dimNUBS) { + checkCriticalElement(iterKnot.i > 0); + iterKnot.this$01.get_0(iterKnot.last = --iterKnot.i); + $insertKnotAtCurrentPosition(this$static, this$static.dimNUBS - occurrence, knotToCount, iterCP, iterKnot); + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + } + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + } + if (!this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS - 1; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + $remove_8(iterKnot); + } + } + this$static.isClamped = true; + this$static.isBezier = true; +} + +function NubSpline(kVectors){ + var i, i0, kVector, kVector$iterator, knotIter, polarCoordinate; + this.knotVector = new ArrayList; + this.controlPoints = new ArrayList; + for (i0 = kVectors.size_0 - 1; i0 < 3; i0++) { + $add_0(kVectors, 0, castTo($get_7(kVectors, 0), 8)); + } + if (kVectors.size_0 < 4) { + throw toJs(new IllegalArgumentException_0('At (least dimension + 1) control points are necessary!')); + } + else { + this.dimNUBS = 3; + this.isClamped = true; + this.isBezier = false; + $createUniformKnotVector(this, kVectors.size_0 + this.dimNUBS - 1); + polarCoordinate = new ArrayList; + knotIter = new ArrayList$1(this.knotVector); + for (i = 0; i < this.dimNUBS - 1; i++) { + $add_3(polarCoordinate, castToDouble($next_6(knotIter))); + } + for (kVector$iterator = $listIterator_2(kVectors, 0); kVector$iterator.currentNode != kVector$iterator.this$01.tail;) { + kVector = castTo($next_9(kVector$iterator), 8); + $add_3(polarCoordinate, castToDouble($next_6(knotIter))); + $add_3(this.controlPoints, new NubSpline$PolarCP_0(kVector, polarCoordinate)); + checkCriticalElementIndex(0, polarCoordinate.array.length); + polarCoordinate.array.splice(0, 1); + } + } +} + +defineClass(828, 1, {}, NubSpline); +_.toString_0 = function toString_106(){ + return $toString_2(this.controlPoints); +} +; +_.dimNUBS = 0; +_.isBezier = false; +_.isClamped = false; +_.maxKnot = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline', 828); +function $setCp(this$static, cp){ + this$static.cp = cp; +} + +function $setPolarCoordinate(this$static, polarCoordinate){ + this$static.polarCoordinate = polarCoordinate; +} + +function NubSpline$PolarCP(firstCP, secondCP, newKnot){ + var aScaled, bScaled, firstFactor, iter, needsToBeAdded, nextKnot, secondFactor, total; + firstFactor = $doubleValue(castToDouble(firstCP.polarCoordinate.iterator_0().next_1())); + secondFactor = $doubleValue(castToDouble(getLast(secondCP.polarCoordinate))); + aScaled = $scale($clone_1(firstCP.cp), secondFactor - newKnot); + bScaled = $scale($clone_1(secondCP.cp), newKnot - firstFactor); + total = $add_19(aScaled, bScaled); + $scale(total, 1 / (secondFactor - firstFactor)); + this.cp = total; + this.polarCoordinate = new ArrayList; + needsToBeAdded = true; + iter = firstCP.polarCoordinate.iterator_0(); + iter.next_1(); + while (iter.hasNext_0()) { + nextKnot = $doubleValue(castToDouble(iter.next_1())); + if (needsToBeAdded && nextKnot - newKnot > $intern_118) { + this.polarCoordinate.add_2(newKnot); + needsToBeAdded = false; + } + this.polarCoordinate.add_2(nextKnot); + } + needsToBeAdded && this.polarCoordinate.add_2(newKnot); +} + +function NubSpline$PolarCP_0(controlPoint, polarCoordinate){ + $setCp(this, new KVector_1(controlPoint.x_0, controlPoint.y_0)); + $setPolarCoordinate(this, newLinkedList(polarCoordinate)); +} + +defineClass(418, 1, {418:1}, NubSpline$PolarCP, NubSpline$PolarCP_0); +var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline$PolarCP_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline/PolarCP', 418); +function $clinit_SplineEdgeRouter(){ + $clinit_SplineEdgeRouter = emptyMethod; + BASELINE_PROCESSING_ADDITIONS = $addBefore($addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , FINAL_SPLINE_BENDPOINTS_CALCULATOR)), P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); + SELF_LOOP_PROCESSING_ADDITIONS_1 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1 = $addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + END_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $clearThenFillMappings(this$static, leftLayer, rightLayer){ + var edge, edge$iterator, node, node$iterator, nt, port, port$iterator, sourcePort, sourcePort$iterator, targetLayer, targetPort; + this$static.leftPortsLayer.map_0.clear_0(); + this$static.rightPortsLayer.map_0.clear_0(); + this$static.edgesRemainingLayer.array.length = 0; + this$static.splineSegmentsLayer.array.length = 0; + this$static.selfLoopsLayer.map_0.clear_0(); + if (leftLayer) { + for (node$iterator = new ArrayList$1(leftLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { + sourcePort = castTo(sourcePort$iterator.next_1(), 12); + $add_6(this$static.leftPortsLayer, sourcePort); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if ($isSelfLoop(edge)) { + continue; + } + $add_3(this$static.edgesRemainingLayer, edge); + $findAndAddSuccessor(this$static, edge); + nt = edge.source.owner.type_0; + (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); + } + } + } + } + if (rightLayer) { + for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_6(port$iterator), 12); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + $isSelfLoop(edge) && $add_6(this$static.selfLoopsLayer, edge); + } + } + for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { + sourcePort = castTo(sourcePort$iterator.next_1(), 12); + $add_6(this$static.rightPortsLayer, sourcePort); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + if ($isSelfLoop(edge)) { + continue; + } + $add_3(this$static.edgesRemainingLayer, edge); + $findAndAddSuccessor(this$static, edge); + nt = edge.source.owner.type_0; + (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); + } + } + } + } +} + +function $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor){ + var incomingEdge, incomingEdge$iterator, layerSpacing, maxCurrInputYDiff, maxVertDiff, node, node$iterator, sourcePos, targetPos; + maxVertDiff = 0; + for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 10); + maxCurrInputYDiff = 0; + for (incomingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incomingEdge$iterator);) { + incomingEdge = castTo($next_0(incomingEdge$iterator), 18); + sourcePos = $getAbsoluteAnchor(incomingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(incomingEdge.target).y_0; + maxCurrInputYDiff = $wnd.Math.max(maxCurrInputYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrInputYDiff); + } + layerSpacing = sloppyLayerSpacingFactor * $wnd.Math.min(1, edgeEdgeSpacing / nodeNodeSpacing) * maxVertDiff; + return layerSpacing; +} + +function $createDependency(edge0, edge1){ + var edge0Counter, edge1Counter, port, port$iterator, port$iterator0, port$iterator1, port$iterator2; + if (edge0.hyperEdgeTopYPos > edge1.hyperEdgeBottomYPos || edge1.hyperEdgeTopYPos > edge0.hyperEdgeBottomYPos) { + return; + } + edge0Counter = 0; + edge1Counter = 0; + for (port$iterator0 = edge0.rightPorts.map_0.keySet_0().iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 12); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && ++edge0Counter; + } + for (port$iterator1 = edge0.leftPorts.map_0.keySet_0().iterator_0(); port$iterator1.hasNext_0();) { + port = castTo(port$iterator1.next_1(), 12); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && --edge0Counter; + } + for (port$iterator2 = edge1.rightPorts.map_0.keySet_0().iterator_0(); port$iterator2.hasNext_0();) { + port = castTo(port$iterator2.next_1(), 12); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && ++edge1Counter; + } + for (port$iterator = edge1.leftPorts.map_0.keySet_0().iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 12); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && --edge1Counter; + } + if (edge0Counter < edge1Counter) { + new SplineEdgeRouter$Dependency(edge0, edge1, edge1Counter - edge0Counter); + } + else if (edge1Counter < edge0Counter) { + new SplineEdgeRouter$Dependency(edge1, edge0, edge0Counter - edge1Counter); + } + else { + new SplineEdgeRouter$Dependency(edge1, edge0, 0); + new SplineEdgeRouter$Dependency(edge0, edge1, 0); + } +} + +function $createSegmentsAndComputeRanking(this$static){ + var hyperEdge1, hyperEdge2, sourceIter, targetIter; + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4), true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, LEFT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegments(this$static, this$static.edgesRemainingLayer, this$static.leftPortsLayer, this$static.rightPortsLayer, this$static.splineSegmentsLayer); + sourceIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, 0); + while (sourceIter.i < sourceIter.this$01_0.size_1()) { + hyperEdge1 = (checkCriticalElement(sourceIter.i < sourceIter.this$01_0.size_1()) , castTo(sourceIter.this$01_0.get_0(sourceIter.last = sourceIter.i++), 131)); + targetIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, sourceIter.i); + while (targetIter.i < targetIter.this$01_0.size_1()) { + hyperEdge2 = (checkCriticalElement(targetIter.i < targetIter.this$01_0.size_1()) , castTo(targetIter.this$01_0.get_0(targetIter.last = targetIter.i++), 131)); + $createDependency(hyperEdge1, hyperEdge2); + } + } + breakCycles(this$static.splineSegmentsLayer, castTo($getProperty(this$static.lGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 234)); + topologicalNumbering_0(this$static.splineSegmentsLayer); +} + +function $createSplineSegments(this$static, edges, leftPorts, rightPorts, hyperEdges){ + var edge, edge$iterator, seg, sourcePort, sourceSide, targetPort, targetSide; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + sourcePort = edge.source; + if (leftPorts.map_0.containsKey(sourcePort)) { + sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); + } + else if (rightPorts.map_0.containsKey(sourcePort)) { + sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); + } + else { + throw toJs(new IllegalArgumentException_0('Source port must be in one of the port sets.')); + } + targetPort = edge.target; + if (leftPorts.map_0.containsKey(targetPort)) { + targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); + } + else if (rightPorts.map_0.containsKey(targetPort)) { + targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); + } + else { + throw toJs(new IllegalArgumentException_0('Target port must be in one of the port sets.')); + } + seg = new SplineSegment(edge, sourceSide, targetSide); + $put_6(this$static.edgeToSegmentMap, edge, seg); + push_1(hyperEdges.array, seg); + } +} + +function $createSplineSegmentsForHyperEdges(this$static, leftPorts, rightPorts, sideToProcess, reversed, edgesRemaining, hyperEdges){ + var downEdges, edge, edge$iterator, pair, pair$iterator, portsToProcess, seg, singlePort, singlePort$iterator, singlePortPosition, targetPort, targetPortPosition, upEdges; + portsToProcess = null; + sideToProcess == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?(portsToProcess = leftPorts):sideToProcess == RIGHT_4 && (portsToProcess = rightPorts); + for (singlePort$iterator = portsToProcess.map_0.keySet_0().iterator_0(); singlePort$iterator.hasNext_0();) { + singlePort = castTo(singlePort$iterator.next_1(), 12); + singlePortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; + upEdges = new HashSet; + downEdges = new HashSet; + for (edge$iterator = new LPort$CombineIter$1(singlePort.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_6(edge$iterator.firstIterator):$next_6(edge$iterator.secondIterator), 18); + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) != reversed) { + continue; + } + if ($indexOf_3(edgesRemaining, edge, 0) != -1) { + edge.target == singlePort?(targetPort = edge.source):(targetPort = edge.target); + targetPortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; + if ($wnd.Math.abs(targetPortPosition - singlePortPosition) < 0.2) { + continue; + } + targetPortPosition < singlePortPosition?leftPorts.map_0.containsKey(targetPort)?$add_6(upEdges, new Pair(LEFT_4, edge)):$add_6(upEdges, new Pair(RIGHT_4, edge)):leftPorts.map_0.containsKey(targetPort)?$add_6(downEdges, new Pair(LEFT_4, edge)):$add_6(downEdges, new Pair(RIGHT_4, edge)); + } + } + if (upEdges.map_0.size_1() > 1) { + seg = new SplineSegment_0(singlePort, upEdges, sideToProcess); + $forEach_0(upEdges, new SplineEdgeRouter$lambda$2$Type(this$static, seg)); + push_1(hyperEdges.array, seg); + for (pair$iterator = upEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 42); + $remove_12(edgesRemaining, pair.second); + } + } + if (downEdges.map_0.size_1() > 1) { + seg = new SplineSegment_0(singlePort, downEdges, sideToProcess); + $forEach_0(downEdges, new SplineEdgeRouter$lambda$3$Type(this$static, seg)); + push_1(hyperEdges.array, seg); + for (pair$iterator = downEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 42); + $remove_12(edgesRemaining, pair.second); + } + } + } +} + +function $findAndAddSuccessor(this$static, edge){ + var iter, nt, targetNode; + targetNode = edge.target.owner; + nt = targetNode.type_0; + if (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == BREAKING_POINT) { + return; + } + iter = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(targetNode).val$inputs1.iterator_0(), new Iterables$10)); + $hasNext_1(iter) && $put_6(this$static.successingEdge, edge, castTo($next_0(iter), 18)); +} + +function $getEdgeChain(this$static, start_0){ + var current, edgeChain; + edgeChain = new ArrayList; + current = start_0; + do { + push_1(edgeChain.array, current); + current = castTo($get_10(this$static.successingEdge, current), 18); + } + while (current); + return edgeChain; +} + +function $getLayoutProcessorConfiguration_2(graph){ + var configuration, graphProperties; + configuration = new LayoutProcessorConfiguration; + $addAll_6(configuration, BASELINE_PROCESSING_ADDITIONS); + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + graphProperties.contains(($clinit_GraphProperties() , SELF_LOOPS)) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_1); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1); + graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_1); + return configuration; +} + +function $getSplinePath(this$static, start_0){ + var current, initialSegment, lastSegment, segment, segmentChain; + segmentChain = new ArrayList; + current = start_0; + do { + segment = castTo($get_10(this$static.edgeToSegmentMap, current), 131); + segment.sourcePort = current.source; + segment.targetPort = current.target; + push_1(segmentChain.array, segment); + current = castTo($get_10(this$static.successingEdge, current), 18); + } + while (current); + initialSegment = (checkCriticalElementIndex(0, segmentChain.array.length) , castTo(segmentChain.array[0], 131)); + initialSegment.initialSegment = true; + initialSegment.sourceNode = castTo(initialSegment.edges.map_0.keySet_0().iterator_0().next_1(), 18).source.owner; + lastSegment = castTo($get_11(segmentChain, segmentChain.array.length - 1), 131); + lastSegment.lastSegment = true; + lastSegment.targetNode = castTo(lastSegment.edges.map_0.keySet_0().iterator_0().next_1(), 18).target.owner; + return segmentChain; +} + +function $lambda$2_3(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 18), seg_1); +} + +function $lambda$3_2(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 18), seg_1); +} + +function $process_81(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edgeChain, edgeEdgeSpacing, edgeNodeSpacing, firstLayer, increment, isLeftLayerExternal, isRightLayerExternal, isSpecialLeftLayer, isSpecialRightLayer, lastLayer, layerIterator, leftLayer, mode, nodeNodeSpacing, rightLayer, rightLayerPosition, segment, segment$iterator, sloppyLayerSpacingFactor, sloppyRouting, slotCount, spline, xSegmentDelta, xpos; + monitor.begin('Spline edge routing', 1); + if (layeredGraph.layers.array.length == 0) { + layeredGraph.size_0.x_0 = 0; + monitor.done_1(); + return; + } + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + mode = castTo($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_MODE_0), 350); + sloppyRouting = mode == ($clinit_SplineRoutingMode() , SLOPPY); + sloppyLayerSpacingFactor = $doubleValue(castToDouble($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0))); + this$static.lGraph = layeredGraph; + this$static.startEdges.array.length = 0; + this$static.allSplineSegments.array.length = 0; + $reset(this$static.successingEdge); + firstLayer = castTo($get_11(layeredGraph.layers, 0), 30); + isLeftLayerExternal = all_0(firstLayer.nodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + lastLayer = castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 30); + isRightLayerExternal = all_0(lastLayer.nodes, PRED_EXTERNAL_WEST_OR_EAST_PORT); + layerIterator = new ArrayList$1(layeredGraph.layers); + leftLayer = null; + xpos = 0; + do { + rightLayer = layerIterator.i < layerIterator.this$01.array.length?castTo($next_6(layerIterator), 30):null; + $clearThenFillMappings(this$static, leftLayer, rightLayer); + $createSegmentsAndComputeRanking(this$static); + slotCount = $orElse_1($max_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.splineSegmentsLayer, 16)), new SplineEdgeRouter$lambda$0$Type), new SplineEdgeRouter$lambda$1$Type))); + xSegmentDelta = 0; + rightLayerPosition = xpos; + isSpecialLeftLayer = !leftLayer || isLeftLayerExternal && leftLayer == firstLayer; + isSpecialRightLayer = !rightLayer || isRightLayerExternal && rightLayer == lastLayer; + if (slotCount > 0) { + increment = 0; + !!leftLayer && (increment += edgeNodeSpacing); + increment += (slotCount - 1) * edgeEdgeSpacing; + !!rightLayer && (increment += edgeNodeSpacing); + sloppyRouting && !!rightLayer && (increment = $wnd.Math.max(increment, $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor))); + if (increment < nodeNodeSpacing && !isSpecialLeftLayer && !isSpecialRightLayer) { + xSegmentDelta = (nodeNodeSpacing - increment) / 2; + increment = nodeNodeSpacing; + } + rightLayerPosition += increment; + } + else + !isSpecialLeftLayer && !isSpecialRightLayer && (rightLayerPosition += nodeNodeSpacing); + !!rightLayer && placeNodesHorizontally(rightLayer, rightLayerPosition); + for (segment$iterator = new ArrayList$1(this$static.splineSegmentsLayer); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_6(segment$iterator), 131); + segment.boundingBox.x_0 = xpos; + segment.boundingBox.width_0 = rightLayerPosition - xpos; + segment.xDelta = xSegmentDelta; + segment.isWestOfInitialLayer = !leftLayer; + } + $addAll_2(this$static.allSplineSegments, this$static.splineSegmentsLayer); + xpos = rightLayerPosition; + !!rightLayer && (xpos += rightLayer.size_0.x_0); + leftLayer = rightLayer; + isSpecialLeftLayer = isSpecialRightLayer; + } + while (rightLayer); + for (edge$iterator = new ArrayList$1(this$static.startEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 18); + edgeChain = $getEdgeChain(this$static, edge); + $setProperty_0(edge, ($clinit_InternalProperties_1() , SPLINE_EDGE_CHAIN), edgeChain); + spline = $getSplinePath(this$static, edge); + $setProperty_0(edge, SPLINE_ROUTE_START, spline); + } + layeredGraph.size_0.x_0 = xpos; + this$static.lGraph = null; + monitor.done_1(); +} + +function SplineEdgeRouter(){ + $clinit_SplineEdgeRouter(); + this.edgesRemainingLayer = new ArrayList; + this.splineSegmentsLayer = new ArrayList; + this.leftPortsLayer = new LinkedHashSet; + this.rightPortsLayer = new LinkedHashSet; + this.selfLoopsLayer = new LinkedHashSet; + this.startEdges = new ArrayList; + this.allSplineSegments = new ArrayList; + this.edgeToSegmentMap = new HashMap; + this.successingEdge = new HashMap; +} + +function breakCycles(edges, random){ + var depIter, dependency, dependency$iterator, dependency$iterator0, edge, edge$iterator, edge$iterator0, edge$iterator1, inweight, markBase, maxEdge, maxEdges, maxOutflow, nextLeft, nextMark, nextRight, outflow, outweight, shiftBase, sink, sinks, source, source$iterator, sources, target, unprocessed; + sources = new LinkedList; + sinks = new LinkedList; + nextMark = -1; + for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 131); + edge.mark = nextMark--; + inweight = 0; + outweight = 0; + for (dependency$iterator0 = new ArrayList$1(edge.outgoing); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { + dependency = castTo($next_6(dependency$iterator0), 274); + outweight += dependency.weight; + } + for (dependency$iterator = new ArrayList$1(edge.incoming); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_6(dependency$iterator), 274); + inweight += dependency.weight; + } + edge.inweight = inweight; + edge.outweight = outweight; + outweight == 0?($addNode_0(sinks, edge, sinks.tail.prev, sinks.tail) , true):inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); + } + unprocessed = newLinkedHashSet(edges); + markBase = edges.array.length; + nextLeft = markBase + 1; + nextRight = markBase - 1; + maxEdges = new ArrayList; + while (unprocessed.map_0.size_1() != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 131)); + unprocessed.map_0.remove_0(sink) != null; + sink.mark = nextRight--; + updateNeighbors_0(sink, sources, sinks); + } + while (sources.size_0 != 0) { + source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 131)); + unprocessed.map_0.remove_0(source) != null; + source.mark = nextLeft++; + updateNeighbors_0(source, sources, sinks); + } + maxOutflow = $intern_43; + for (edge$iterator1 = unprocessed.map_0.keySet_0().iterator_0(); edge$iterator1.hasNext_0();) { + edge = castTo(edge$iterator1.next_1(), 131); + outflow = edge.outweight - edge.inweight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxEdges.array.length = 0; + maxOutflow = outflow; + } + push_1(maxEdges.array, edge); + } + } + if (maxEdges.array.length != 0) { + maxEdge = castTo($get_11(maxEdges, $nextInt(random, maxEdges.array.length)), 131); + unprocessed.map_0.remove_0(maxEdge) != null; + maxEdge.mark = nextLeft++; + updateNeighbors_0(maxEdge, sources, sinks); + maxEdges.array.length = 0; + } + } + shiftBase = edges.array.length + 1; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_6(edge$iterator), 131); + edge.mark < markBase && (edge.mark += shiftBase); + } + for (source$iterator = new ArrayList$1(edges); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_6(source$iterator), 131); + depIter = new AbstractList$ListIteratorImpl(source.outgoing, 0); + while (depIter.i < depIter.this$01_0.size_1()) { + dependency = (checkCriticalElement(depIter.i < depIter.this$01_0.size_1()) , castTo(depIter.this$01_0.get_0(depIter.last = depIter.i++), 274)); + target = dependency.target; + if (source.mark > target.mark) { + $remove_8(depIter); + $remove_12(target.incoming, dependency); + if (dependency.weight > 0) { + dependency.source = target; + $add_3(target.outgoing, dependency); + dependency.target = source; + $add_3(source.incoming, dependency); + } + } + } + } +} + +function topologicalNumbering_0(edges){ + var dep, dep$iterator, edge, edge$iterator, edge$iterator0, maxRank, rightwardTargets, source, sources, target; + sources = new LinkedList; + rightwardTargets = new LinkedList; + for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_6(edge$iterator0), 131); + edge.rank = 0; + edge.inweight = edge.incoming.array.length; + edge.outweight = edge.outgoing.array.length; + edge.inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); + edge.outweight == 0 && edge.leftPorts.map_0.size_1() == 0 && ($addNode_0(rightwardTargets, edge, rightwardTargets.tail.prev, rightwardTargets.tail) , true); + } + maxRank = -1; + while (sources.size_0 != 0) { + edge = castTo($remove_4(sources, 0), 131); + for (dep$iterator = new ArrayList$1(edge.outgoing); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_6(dep$iterator), 274); + target = dep.target; + target.rank = $wnd.Math.max(target.rank, edge.rank + 1); + maxRank = $wnd.Math.max(maxRank, target.rank); + --target.inweight; + target.inweight == 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); + } + } + if (maxRank > -1) { + for (edge$iterator = $listIterator_2(rightwardTargets, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_9(edge$iterator), 131); + edge.rank = maxRank; + } + while (rightwardTargets.size_0 != 0) { + edge = castTo($remove_4(rightwardTargets, 0), 131); + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_6(dep$iterator), 274); + source = dep.source; + if (source.leftPorts.map_0.size_1() != 0) { + continue; + } + source.rank = $wnd.Math.min(source.rank, edge.rank - 1); + --source.outweight; + source.outweight == 0 && ($addNode_0(rightwardTargets, source, rightwardTargets.tail.prev, rightwardTargets.tail) , true); + } + } + } +} + +function updateNeighbors_0(edge, sources, sinks){ + var dep, dep$iterator, dep$iterator0; + for (dep$iterator0 = new ArrayList$1(edge.outgoing); dep$iterator0.i < dep$iterator0.this$01.array.length;) { + dep = castTo($next_6(dep$iterator0), 274); + if (dep.target.mark < 0 && dep.weight > 0) { + dep.target.inweight -= dep.weight; + dep.target.inweight <= 0 && dep.target.outweight > 0 && $add_7(sources, dep.target); + } + } + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_6(dep$iterator), 274); + if (dep.source.mark < 0 && dep.weight > 0) { + dep.source.outweight -= dep.weight; + dep.source.outweight <= 0 && dep.source.inweight > 0 && $add_7(sinks, dep.source); + } + } +} + +defineClass(1480, 1, $intern_113, SplineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_22(graph){ + return $getLayoutProcessorConfiguration_2(castTo(graph, 36)); +} +; +_.process = function process_77(layeredGraph, monitor){ + $process_81(this, castTo(layeredGraph, 36), monitor); +} +; +var BASELINE_PROCESSING_ADDITIONS, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1, END_EDGE_LABEL_PROCESSING_ADDITIONS_1, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1, SELF_LOOP_PROCESSING_ADDITIONS_1; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter', 1480); +function SplineEdgeRouter$Dependency(source, target, weight){ + this.source = source; + this.target = target; + this.weight = weight; + $add_3(source.outgoing, this); + $add_3(target.incoming, this); +} + +defineClass(274, 1, {274:1}, SplineEdgeRouter$Dependency); +_.toString_0 = function toString_107(){ + return this.source + ' ->(' + this.weight + ') ' + this.target; +} +; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$Dependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/Dependency', 274); +function $clinit_SplineEdgeRouter$SideToProcess(){ + $clinit_SplineEdgeRouter$SideToProcess = emptyMethod; + LEFT_4 = new SplineEdgeRouter$SideToProcess('LEFT', 0); + RIGHT_4 = new SplineEdgeRouter$SideToProcess('RIGHT', 1); +} + +function SplineEdgeRouter$SideToProcess(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_70(name_0){ + $clinit_SplineEdgeRouter$SideToProcess(); + return valueOf(($clinit_SplineEdgeRouter$SideToProcess$Map() , $MAP_60), name_0); +} + +function values_78(){ + $clinit_SplineEdgeRouter$SideToProcess(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_37, 465, 0, [LEFT_4, RIGHT_4]); +} + +defineClass(465, 22, {3:1, 34:1, 22:1, 465:1}, SplineEdgeRouter$SideToProcess); +var LEFT_4, RIGHT_4; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/SideToProcess', 465, Ljava_lang_Enum_2_classLit, values_78, valueOf_70); +function $clinit_SplineEdgeRouter$SideToProcess$Map(){ + $clinit_SplineEdgeRouter$SideToProcess$Map = emptyMethod; + $MAP_60 = createValueOfMap(($clinit_SplineEdgeRouter$SideToProcess() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_37, 465, 0, [LEFT_4, RIGHT_4]))); +} + +var $MAP_60; +function SplineEdgeRouter$lambda$0$Type(){ +} + +defineClass(1481, 1, $intern_40, SplineEdgeRouter$lambda$0$Type); +_.test_0 = function test_103(arg0){ + return $clinit_SplineEdgeRouter() , !castTo(arg0, 131).isStraight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$0$Type', 1481); +function SplineEdgeRouter$lambda$1$Type(){ +} + +defineClass(1482, 1, {}, SplineEdgeRouter$lambda$1$Type); +_.applyAsInt = function applyAsInt_3(arg0){ + return $clinit_SplineEdgeRouter() , castTo(arg0, 131).rank + 1; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$1$Type', 1482); +function SplineEdgeRouter$lambda$2$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1483, 1, $intern_19, SplineEdgeRouter$lambda$2$Type); +_.accept = function accept_132(arg0){ + $lambda$2_3(this.$$outer_0, this.seg_1, castTo(arg0, 42)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$2$Type', 1483); +function SplineEdgeRouter$lambda$3$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1484, 1, $intern_19, SplineEdgeRouter$lambda$3$Type); +_.accept = function accept_133(arg0){ + $lambda$3_2(this.$$outer_0, this.seg_1, castTo(arg0, 42)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$3$Type', 1484); +function $$init_8(this$static){ + this$static.leftPorts = new HashSet; + this$static.rightPorts = new HashSet; + this$static.outgoing = new ArrayList; + this$static.incoming = new ArrayList; + this$static.edges = new HashSet; + this$static.boundingBox = new ElkRectangle; + this$static.edgeInformation = new HashMap; +} + +function $addEdge_0(this$static, edge){ + var ei, nt, nt0; + $add_6(this$static.edges, edge); + ei = new SplineSegment$EdgeInformation; + $put_6(this$static.edgeInformation, edge, ei); + ei.startY = $anchorY(edge.source); + ei.endY = $anchorY(edge.target); + ei.normalSourceNode = ($clinit_SplineEdgeRouter() , nt0 = edge.source.owner.type_0 , nt0 == ($clinit_LNode$NodeType() , NORMAL) || nt0 == BREAKING_POINT); + ei.normalTargetNode = (nt = edge.target.owner.type_0 , nt == NORMAL || nt == BREAKING_POINT); + ei.invertedLeft = edge.source.side == ($clinit_PortSide() , WEST_2); + ei.invertedRight = edge.target.side == EAST_2; +} + +function $anchorY(p){ + return ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(p.side)?$doubleValue(castToDouble($getProperty(p, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [p.owner.pos, p.pos, p.anchor])).y_0; +} + +function $compareTo_18(this$static, other){ + return this$static.mark - other.mark; +} + +function $setRelevantPositions(this$static, sourceY, targetYMin, targetYMax){ + this$static.boundingBox.y_0 = $wnd.Math.min(sourceY, targetYMin); + this$static.boundingBox.height = $wnd.Math.max(sourceY, targetYMax) - this$static.boundingBox.y_0; + if (sourceY < targetYMin) { + this$static.centerControlPointY = 0.5 * (sourceY + targetYMin); + this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; + this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMin; + } + else { + this$static.centerControlPointY = 0.5 * (sourceY + targetYMax); + this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMax; + this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; + } +} + +function SplineSegment(edge, sourceSide, targetSide){ + var sourceY, targetY; + $$init_8(this); + sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, edge.source):$add_6(this.rightPorts, edge.source); + targetSide == LEFT_4?$add_6(this.leftPorts, edge.target):$add_6(this.rightPorts, edge.target); + $addEdge_0(this, edge); + sourceY = $anchorY(edge.source); + targetY = $anchorY(edge.target); + $setRelevantPositions(this, sourceY, targetY, targetY); + this.isStraight = ($clinit_SplineEdgeRouter() , $wnd.Math.abs(sourceY - targetY) < 0.2); +} + +function SplineSegment_0(singlePort, edges, sourceSide){ + var edge, pair, pair$iterator, pair$iterator0, side, tgtPort, yMaxPosOfTarget, yMinPosOfTarget, yPosOfSingleSide, yPosOfTarget; + $$init_8(this); + sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, singlePort):$add_6(this.rightPorts, singlePort); + yMinPosOfTarget = $intern_60; + yMaxPosOfTarget = $intern_61; + for (pair$iterator0 = edges.map_0.keySet_0().iterator_0(); pair$iterator0.hasNext_0();) { + pair = castTo(pair$iterator0.next_1(), 42); + side = castTo(pair.first, 465); + edge = castTo(pair.second, 18); + tgtPort = edge.source; + tgtPort == singlePort && (tgtPort = edge.target); + side == LEFT_4?$add_6(this.leftPorts, tgtPort):$add_6(this.rightPorts, tgtPort); + yPosOfTarget = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(tgtPort.side)?$doubleValue(castToDouble($getProperty(tgtPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [tgtPort.owner.pos, tgtPort.pos, tgtPort.anchor])).y_0; + yMinPosOfTarget = $wnd.Math.min(yMinPosOfTarget, yPosOfTarget); + yMaxPosOfTarget = $wnd.Math.max(yMaxPosOfTarget, yPosOfTarget); + } + yPosOfSingleSide = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(singlePort.side)?$doubleValue(castToDouble($getProperty(singlePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; + $setRelevantPositions(this, yPosOfSingleSide, yMinPosOfTarget, yMaxPosOfTarget); + for (pair$iterator = edges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 42); + $addEdge_0(this, castTo(pair.second, 18)); + } + this.isStraight = false; +} + +defineClass(131, 1, {34:1, 131:1}, SplineSegment, SplineSegment_0); +_.compareTo_0 = function compareTo_19(other){ + return $compareTo_18(this, castTo(other, 131)); +} +; +_.centerControlPointY = 0; +_.handled = false; +_.hyperEdgeBottomYPos = 0; +_.hyperEdgeTopYPos = 0; +_.initialSegment = false; +_.inverseOrder = false; +_.inweight = 0; +_.isStraight = false; +_.isWestOfInitialLayer = false; +_.lastSegment = false; +_.mark = 0; +_.outweight = 0; +_.rank = 0; +_.xDelta = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment', 131); +function SplineSegment$EdgeInformation(){ +} + +defineClass(468, 1, {468:1}, SplineSegment$EdgeInformation); +_.endY = 0; +_.invertedLeft = false; +_.invertedRight = false; +_.normalSourceNode = false; +_.normalTargetNode = false; +_.startY = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment$EdgeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment/EdgeInformation', 468); +function isBetween(value_0, boundary0, boundary1){ + if ($wnd.Math.abs(boundary0 - value_0) < $intern_120 || $wnd.Math.abs(boundary1 - value_0) < $intern_120) { + return true; + } + return boundary0 - value_0 > $intern_120?value_0 - boundary1 > $intern_120:boundary1 - value_0 > $intern_120; +} + +function portSideToDirection(side){ + switch (side.ordinal) { + case 1: + return $intern_121; + default:case 2: + return 0; + case 3: + return $intern_97; + case 4: + return $intern_122; + } +} + +function $applyPaddingAndNormalizePositions(g){ + var padding; + padding = castTo($getProperty(castTo($get_7(g.nodes, 0), 40), ($clinit_MrTreeOptions() , PADDING_2)), 107); + $setProperty_0(g, ($clinit_InternalProperties_2() , BB_UPLEFT_0), new KVector_1(0, 0)); + $moveGraph_1(new TGraph, g, padding.left + padding.right - $doubleValue(castToDouble($getProperty(g, GRAPH_XMIN))), padding.top_0 + padding.bottom - $doubleValue(castToDouble($getProperty(g, GRAPH_YMIN)))); +} + +function $dfs_5(this$static, node, graph){ + var component, edge, edge$iterator; + if (!this$static.visited[node.id_0]) { + this$static.visited[node.id_0] = true; + component = graph; + !component && (component = new TGraph); + $add_7(component.nodes, node); + for (edge$iterator = this$static.incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 65); + edge.source != node && $dfs_5(this$static, edge.source, component); + edge.target != node && $dfs_5(this$static, edge.target, component); + $add_7(component.edges, edge); + } + return component; + } + return null; +} + +function $initialize_6(this$static, graph){ + var edge, edge$iterator, n, node, node$iterator; + n = graph.nodes.size_0; + this$static.incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); + this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 28, n, 16, 1); + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 40); + this$static.incidence[node.id_0] = new LinkedList; + } + for (edge$iterator = $listIterator_2(graph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_9(edge$iterator), 65); + this$static.incidence[edge.source.id_0].add_2(edge); + this$static.incidence[edge.target.id_0].add_2(edge); + } +} + +function $moveGraph_1(destGraph, sourceGraph, offsetx, offsety){ + var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, node, node$iterator; + graphOffset = new KVector_1(offsetx, offsety); + $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_2() , BB_UPLEFT_0)), 8)); + for (node$iterator = $listIterator_2(sourceGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 40); + $add_19(node.pos, graphOffset); + $add_7(destGraph.nodes, node); + } + for (edge$iterator = castTo($collect_1($distinct(new StreamImpl(null, new Spliterators$IteratorSpliterator(sourceGraph.edges, 16))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15).iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 65); + for (bendpoint$iterator = $listIterator_2(edge.bendPoints, 0); bendpoint$iterator.currentNode != bendpoint$iterator.this$01.tail;) { + bendpoint = castTo($next_9(bendpoint$iterator), 8); + bendpoint.x_0 += graphOffset.x_0; + bendpoint.y_0 += graphOffset.y_0; + } + $add_7(destGraph.edges, edge); + } +} + +function $pack(components){ + var broadestRow, debug, debugMode, entry, entry$iterator, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, propComp, propMerge, result, size_0, spacing, tGraph, tGraph$iterator, totalArea, xpos, ypos; + if (components.array.length == 1) { + $applyPaddingAndNormalizePositions((checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 121))); + return checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 121); + } + else if (components.array.length <= 0) { + return new TGraph; + } + for (graph$iterator0 = new ArrayList$1(components); graph$iterator0.i < graph$iterator0.this$01.array.length;) { + graph = castTo($next_6(graph$iterator0), 121); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_43; + maxy = $intern_43; + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 40); + priority += castTo($getProperty(node, ($clinit_MrTreeOptions() , PRIORITY_1)), 17).value_0; + minx = $wnd.Math.min(minx, node.pos.x_0); + miny = $wnd.Math.min(miny, node.pos.y_0); + maxx = $wnd.Math.max(maxx, node.pos.x_0 + node.size_0.x_0); + maxy = $wnd.Math.max(maxy, node.pos.y_0 + node.size_0.y_0); + } + $setProperty_0(graph, ($clinit_MrTreeOptions() , PRIORITY_1), valueOf_3(priority)); + $setProperty_0(graph, ($clinit_InternalProperties_2() , BB_UPLEFT_0), new KVector_1(minx, miny)); + $setProperty_0(graph, BB_LOWRIGHT_0, new KVector_1(maxx, maxy)); + } + $clinit_Collections(); + $sort(components, new ComponentsProcessor$1_0); + result = new TGraph; + $copyProperties(result, (checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 96))); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = new ArrayList$1(components); graph$iterator1.i < graph$iterator1.this$01.array.length;) { + graph = castTo($next_6(graph$iterator1), 121); + size_0 = $sub_0($clone_1(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_MrTreeOptions() , ASPECT_RATIO_2))))); + spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE_1))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = new ArrayList$1(components); graph$iterator.i < graph$iterator.this$01.array.length;) { + graph = castTo($next_6(graph$iterator), 121); + size_0 = $sub_0($clone_1(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $moveGraph_1(result, graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + propMerge = new HashMap; + debug = new HashMap; + for (tGraph$iterator = new ArrayList$1(components); tGraph$iterator.i < tGraph$iterator.this$01.array.length;) { + tGraph = castTo($next_6(tGraph$iterator), 121); + debugMode = $booleanValue(castToBoolean($getProperty(tGraph, ($clinit_CoreOptions() , DEBUG_MODE_3)))); + propComp = !tGraph.propertyMap?(null , EMPTY_MAP):tGraph.propertyMap; + for (entry$iterator = propComp.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + if ($containsKey_3(propMerge, entry.getKey())) { + if (maskUndefined(castTo(entry.getKey(), 149).getDefault()) !== maskUndefined(entry.getValue())) { + if (debugMode && $containsKey_3(debug, entry.getKey())) { + $clinit_System(); + 'Found different values for property ' + castTo(entry.getKey(), 149).getId() + ' in components.'; + String.fromCharCode(10); + } + else { + $put_6(propMerge, castTo(entry.getKey(), 149), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 149), entry.getValue()); + debugMode && $put_6(debug, castTo(entry.getKey(), 149), entry.getValue()); + } + } + } + else { + $put_6(propMerge, castTo(entry.getKey(), 149), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 149), entry.getValue()); + } + } + } + $applyPaddingAndNormalizePositions(result); + return result; +} + +function $split_4(this$static, graph){ + var comp, comp$iterator, components, id_0, node, node$iterator, node$iterator0, separate; + separate = castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , SEPARATE_CONNECTED_COMPONENTS_1))); + if (separate == null || (checkCriticalNotNull(separate) , separate)) { + $initialize_6(this$static, graph); + components = new ArrayList; + for (node$iterator0 = $listIterator_2(graph.nodes, 0); node$iterator0.currentNode != node$iterator0.this$01.tail;) { + node = castTo($next_9(node$iterator0), 40); + comp = $dfs_5(this$static, node, null); + if (comp) { + $copyProperties(comp, graph); + push_1(components.array, comp); + } + } + this$static.incidence = null; + this$static.visited = null; + if (components.array.length > 1) { + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_6(comp$iterator), 121); + id_0 = 0; + for (node$iterator = $listIterator_2(comp.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 40); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit, 1), $intern_100, 121, 0, [graph])); +} + +function ComponentsProcessor_1(){ +} + +defineClass(1198, 1, {}, ComponentsProcessor_1); +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor', 1198); +function $compare_25(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_MrTreeOptions() , PRIORITY_1)), 17).value_0 - castTo($getProperty(graph1, PRIORITY_1), 17).value_0; + if (prio == 0) { + size1 = $sub_0($clone_1(castTo($getProperty(graph1, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph1, BB_UPLEFT_0), 8)); + size2 = $sub_0($clone_1(castTo($getProperty(graph2, BB_LOWRIGHT_0), 8)), castTo($getProperty(graph2, BB_UPLEFT_0), 8)); + return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); + } + return prio; +} + +function ComponentsProcessor$1_0(){ +} + +defineClass(1199, 1, $intern_88, ComponentsProcessor$1_0); +_.compare_1 = function compare_81(graph1, graph2){ + return $compare_25(castTo(graph1, 121), castTo(graph2, 121)); +} +; +_.equals_0 = function equals_168(other){ + return this === other; +} +; +_.reversed = function reversed_73(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor/1', 1199); +function $applyLayout_4(tGraph){ + var bendPoints, edgeSection, elkedge, elkgraph, elknode, height, maxXPos, maxYPos, minXPos, minYPos, object, padding, pos, size_0, tEdge, tEdge$iterator, tNode, tNode$iterator, tNode$iterator0, width_0; + elkgraph = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , ORIGIN_1)), 27); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_43; + maxYPos = $intern_43; + for (tNode$iterator0 = $listIterator_2(tGraph.nodes, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator0), 40); + pos = tNode.pos; + size_0 = tNode.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + padding = castTo($getProperty_0(elkgraph, ($clinit_MrTreeOptions() , PADDING_2)), 107); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + object = $getProperty(tNode, ORIGIN_1); + if (instanceOf(object, 207)) { + elknode = castTo(object, 27); + $setLocation_1(elknode, tNode.pos.x_0, tNode.pos.y_0); + $copyProperties_0(elknode, tNode); + } + } + for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + elkedge = castTo($getProperty(tEdge, ORIGIN_1), 74); + if (elkedge) { + bendPoints = tEdge.bendPoints; + edgeSection = firstEdgeSection(elkedge, true, true); + applyVectorChain(bendPoints, edgeSection); + } + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_3)))) || resizeNode_1(elkgraph, width_0, height, false, false); + $setProperty_1(elkgraph, CHILD_AREA_WIDTH, width_0 - (padding.left + padding.right)); + $setProperty_1(elkgraph, CHILD_AREA_HEIGHT, height - (padding.top_0 + padding.bottom)); +} + +function $transformEdges_1(parentNode, tGraph, elemMap){ + var elkedge, elkedge$iterator, elknode, elknode$iterator, newEdge, source, target; + for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { + elknode = castTo($doNext(elknode$iterator), 27); + for (elkedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(elkedge$iterator);) { + elkedge = castTo($next_0(elkedge$iterator), 74); + if (!$isHierarchical(elkedge) && !$isHierarchical(elkedge) && !$isSelfloop(elkedge)) { + source = castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, elknode)), 40); + target = castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 84))), 40); + if (!!source && !!target) { + newEdge = new TEdge_0(source, target); + $setProperty_0(newEdge, ($clinit_InternalProperties_2() , ORIGIN_1), elkedge); + $copyProperties(newEdge, elkedge); + $add_7(source.outgoingEdges, newEdge); + $add_7(target.incomingEdges, newEdge); + $add_7(tGraph.edges, newEdge); + } + } + } + } +} + +function $transformNodes_1(parentNode, tGraph, elemMap){ + var elknode, elknode$iterator, index_0, label_0, newNode; + index_0 = 0; + for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { + elknode = castTo($doNext(elknode$iterator), 27); + label_0 = ''; + (!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels).size_0 == 0 || (label_0 = castTo($get_20((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels), 0), 135).text_0); + newNode = new TNode(index_0++, tGraph, label_0); + $copyProperties(newNode, elknode); + $setProperty_0(newNode, ($clinit_InternalProperties_2() , ORIGIN_1), elknode); + newNode.pos.y_0 = elknode.y_0 + elknode.height / 2; + newNode.size_0.x_0 = $wnd.Math.max(elknode.width_0, 1); + newNode.pos.x_0 = elknode.x_0 + elknode.width_0 / 2; + newNode.size_0.y_0 = $wnd.Math.max(elknode.height, 1); + $add_7(tGraph.nodes, newNode); + $put_9(elemMap.hashCodeMap, elknode, newNode); + } +} + +function $doLayout_0(this$static, tgraph, progressMonitor){ + progressMonitor.begin('Tree layout', 1); + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_TreeLayoutPhases() , P1_TREEIFICATION), P1_TREEIFICATION); + $setPhase(this$static.algorithmAssembler, P2_NODE_ORDERING, P2_NODE_ORDERING); + $setPhase(this$static.algorithmAssembler, P3_NODE_PLACEMENT, P3_NODE_PLACEMENT); + $setPhase(this$static.algorithmAssembler, P4_EDGE_ROUTING, P4_EDGE_ROUTING); + this$static.algorithm = $build_0(this$static.algorithmAssembler, tgraph); + $layout_2(this$static, tgraph, progressMonitor.subTask(1)); + progressMonitor.done_1(); + return tgraph; +} + +function $layout_2(this$static, graph, themonitor){ + var monitor, processor, processor$iterator; + monitor = themonitor; + !monitor && (monitor = new BasicProgressMonitor); + monitor.begin('Layout', this$static.algorithm.array.length); + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_6(processor$iterator), 47); + if (monitor.isCanceled()) { + return; + } + processor.process(graph, monitor.subTask(1)); + } + monitor.done_1(); +} + +function MrTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit); +} + +defineClass(1197, 1, {}, MrTree); +var Lorg_eclipse_elk_alg_mrtree_MrTree_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'MrTree', 1197); +function $clinit_TreeLayoutPhases(){ + $clinit_TreeLayoutPhases = emptyMethod; + P1_TREEIFICATION = new TreeLayoutPhases('P1_TREEIFICATION', 0); + P2_NODE_ORDERING = new TreeLayoutPhases('P2_NODE_ORDERING', 1); + P3_NODE_PLACEMENT = new TreeLayoutPhases('P3_NODE_PLACEMENT', 2); + P4_EDGE_ROUTING = new TreeLayoutPhases('P4_EDGE_ROUTING', 3); +} + +function $create_8(this$static){ + switch (this$static.ordinal) { + case 0: + return new DFSTreeifyer; + case 1: + return new NodeOrderer; + case 2: + return new NodePlacer; + case 3: + return new EdgeRouter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout phase ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function TreeLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_71(name_0){ + $clinit_TreeLayoutPhases(); + return valueOf(($clinit_TreeLayoutPhases$Map() , $MAP_61), name_0); +} + +function values_79(){ + $clinit_TreeLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_37, 405, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]); +} + +defineClass(405, 22, {3:1, 34:1, 22:1, 405:1, 188:1, 196:1}, TreeLayoutPhases); +_.create_1 = function create_19(){ + return $create_8(this); +} +; +_.create_2 = function create_18(){ + return $create_8(this); +} +; +var P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree', 'TreeLayoutPhases', 405, Ljava_lang_Enum_2_classLit, values_79, valueOf_71); +function $clinit_TreeLayoutPhases$Map(){ + $clinit_TreeLayoutPhases$Map = emptyMethod; + $MAP_61 = createValueOfMap(($clinit_TreeLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_37, 405, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]))); +} + +var $MAP_61; +function TreeLayoutProvider(){ + this.klayTree = new MrTree; + this.componentsProcessor = new ComponentsProcessor_1; +} + +defineClass(1112, 205, $intern_96, TreeLayoutProvider); +_.layout = function layout_3(layoutGraph, progressMonitor){ + var builder, comp, comp$iterator, components, pm, tGraph, tGraph_0, elemMap; + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_MrTreeOptions() , OMIT_NODE_MICRO_LAYOUT_1)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + pm = progressMonitor.subTask($intern_123); + pm.begin('build tGraph', 1); + tGraph = (tGraph_0 = new TGraph , $copyProperties(tGraph_0, layoutGraph) , $setProperty_0(tGraph_0, ($clinit_InternalProperties_2() , ORIGIN_1), layoutGraph) , elemMap = new HashMap , $transformNodes_1(layoutGraph, tGraph_0, elemMap) , $transformEdges_1(layoutGraph, tGraph_0, elemMap) , tGraph_0); + pm.done_1(); + pm = progressMonitor.subTask($intern_123); + pm.begin('Split graph', 1); + components = $split_4(this.componentsProcessor, tGraph); + pm.done_1(); + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_6(comp$iterator), 121); + $doLayout_0(this.klayTree, comp, progressMonitor.subTask(0.5999999940395355 / components.array.length)); + } + pm = progressMonitor.subTask($intern_123); + pm.begin('Pack components', 1); + tGraph = $pack(components); + pm.done_1(); + pm = progressMonitor.subTask($intern_123); + pm.begin('Apply layout results', 1); + $applyLayout_4(tGraph); + pm.done_1(); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeLayoutProvider', 1112); +function getAllIncomingEdges(n, graph){ + var e, e$iterator, re; + re = new ArrayList; + for (e$iterator = $listIterator_2(graph.edges, 0); e$iterator.currentNode != e$iterator.this$01.tail;) { + e = castTo($next_9(e$iterator), 65); + e.target.id_0 == n.id_0 && maskUndefined($getProperty(e.source, ($clinit_MrTreeOptions() , TREE_LEVEL_0))) !== maskUndefined($getProperty(e.target, TREE_LEVEL_0)) && !$anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(re, 16)), new TreeUtil$lambda$3$Type(e)) && (push_1(re.array, e) , true); + } + $sort(re, new TreeUtil$lambda$4$Type); + return re; +} + +function getAllOutgoingEdges(n, graph){ + var e, e$iterator, re; + re = new ArrayList; + for (e$iterator = $listIterator_2(graph.edges, 0); e$iterator.currentNode != e$iterator.this$01.tail;) { + e = castTo($next_9(e$iterator), 65); + e.source.id_0 == n.id_0 && !$equals_5(e.source.label_0, 'SUPER_ROOT') && maskUndefined($getProperty(e.source, ($clinit_MrTreeOptions() , TREE_LEVEL_0))) !== maskUndefined($getProperty(e.target, TREE_LEVEL_0)) && !$anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(re, 16)), new TreeUtil$lambda$7$Type(e)) && (push_1(re.array, e) , true); + } + $sort(re, new TreeUtil$lambda$8$Type); + return re; +} + +function getDirectionVector(d){ + switch (d.ordinal) { + case 4: + return new KVector_1(0, -1); + case 1: + return new KVector_1(1, 0); + case 2: + return new KVector_1(-1, 0); + default:return new KVector_1(0, 1); + } +} + +function getLeftMost(currentlevel, depth){ + var cN, cN$iterator, d, nextLevel; + if (0 < (instanceOf(currentlevel, 16)?castTo(currentlevel, 16).size_1():size_24(currentlevel.iterator_0()))) { + d = depth; + if (1 < d) { + --d; + nextLevel = new TreeUtil$1; + for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 40); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + return getLeftMost(nextLevel, d); + } + if (d < 0) { + nextLevel = new TreeUtil$2; + for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 40); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + if (0 < (instanceOf(nextLevel, 16)?castTo(nextLevel, 16).size_1():size_24(nextLevel.iterator_0()))) { + return getLeftMost(nextLevel, d); + } + } + } + return castTo(getNext(currentlevel.iterator_0()), 40); +} + +function getLowestParent(n, g){ + var dirVec, lowestParent, lowestParentPos, parents, sources; + dirVec = getDirectionVector(castTo($getProperty(g, ($clinit_MrTreeOptions() , DIRECTION_0)), 88)); + if (n.incomingEdges.size_0 == 0) { + return null; + } + sources = castTo($collect_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(n.incomingEdges, 16)), new TreeUtil$lambda$9$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + parents = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(g.nodes, 16)), new TreeUtil$lambda$10$Type(sources)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + lowestParentPos = castToDouble($get_17($max_1($map(parents.stream(), new TreeUtil$lambda$11$Type(dirVec)), ($clinit_Comparators() , $clinit_Comparators() , NATURAL_ORDER)))); + lowestParent = castTo($get_17($findFirst($filter(parents.stream(), new TreeUtil$lambda$12$Type(dirVec, lowestParentPos)))), 40); + return lowestParent; +} + +function isCycleInducing(e, g){ + return $dotProduct(getDirectionVector(castTo($getProperty(g, ($clinit_MrTreeOptions() , DIRECTION_0)), 88)), new KVector_1(e.target.pos.x_0 - e.source.pos.x_0, e.target.pos.y_0 - e.source.pos.y_0)) <= 0; +} + +function lambda$11_0(dirVec_0, x_1){ + return $dotProduct(new KVector_1(x_1.pos.x_0 + x_1.size_0.x_0 / 2, x_1.pos.y_0 + x_1.size_0.y_0 / 2), dirVec_0); +} + +function lambda$12_0(dirVec_0, lowestParentPos_1, x_2){ + return $dotProduct(new KVector_1(x_2.pos.x_0 + x_2.size_0.x_0 / 2, x_2.pos.y_0 + x_2.size_0.y_0 / 2), dirVec_0) == (checkCriticalNotNull(lowestParentPos_1) , lowestParentPos_1); +} + +function lambda$3_4(e_0, x_1){ + return $equals_5(!!x_1.source && !!x_1.target?$toString_15(x_1.source) + '->' + $toString_15(x_1.target):'e_' + hashCode__I__devirtual$(x_1), !!e_0.source && !!e_0.target?$toString_15(e_0.source) + '->' + $toString_15(e_0.target):'e_' + hashCode__I__devirtual$(e_0)); +} + +function lambda$4_8(x_0, y_1){ + return compare_4(x_0.source.pos.x_0, y_1.source.pos.x_0); +} + +function lambda$7_3(e_0, x_1){ + return $equals_5(!!x_1.source && !!x_1.target?$toString_15(x_1.source) + '->' + $toString_15(x_1.target):'e_' + hashCode__I__devirtual$(x_1), !!e_0.source && !!e_0.target?$toString_15(e_0.source) + '->' + $toString_15(e_0.target):'e_' + hashCode__I__devirtual$(e_0)); +} + +function lambda$8_1(x_0, y_1){ + return compare_4(x_0.target.pos.x_0, y_1.target.pos.x_0); +} + +function toNodeBorder(center, next, size_0){ + var absx, absy, hh, scale, wh, xscale, yscale; + wh = size_0.x_0 / 2; + hh = size_0.y_0 / 2; + absx = $wnd.Math.abs(next.x_0 - center.x_0); + absy = $wnd.Math.abs(next.y_0 - center.y_0); + xscale = 1; + yscale = 1; + absx > wh && (xscale = wh / absx); + absy > hh && (yscale = hh / absy); + scale = $wnd.Math.min(xscale, yscale); + center.x_0 += scale * (next.x_0 - center.x_0); + center.y_0 += scale * (next.y_0 - center.y_0); +} + +function TreeUtil$1(){ +} + +defineClass(1894, 1, $intern_23, TreeUtil$1); +_.forEach_0 = function forEach_31(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_73(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/1', 1894); +function TreeUtil$2(){ +} + +defineClass(1895, 1, $intern_23, TreeUtil$2); +_.forEach_0 = function forEach_32(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_74(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/2', 1895); +function TreeUtil$lambda$0$Type(){ +} + +defineClass(1885, 1, $intern_40, TreeUtil$lambda$0$Type); +_.test_0 = function test_104(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 40), ($clinit_InternalProperties_2() , ROOT_0)))); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$0$Type', 1885); +function TreeUtil$lambda$10$Type(sources_0){ + this.sources_0 = sources_0; +} + +defineClass(1891, 1, $intern_40, TreeUtil$lambda$10$Type); +_.test_0 = function test_105(arg0){ + return this.sources_0.contains(castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$10$Type', 1891); +function TreeUtil$lambda$11$Type(dirVec_0){ + this.dirVec_0 = dirVec_0; +} + +defineClass(1892, 1, {}, TreeUtil$lambda$11$Type); +_.apply_0 = function apply_153(arg0){ + return lambda$11_0(this.dirVec_0, castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$11$Type', 1892); +function TreeUtil$lambda$12$Type(dirVec_0, lowestParentPos_1){ + this.dirVec_0 = dirVec_0; + this.lowestParentPos_1 = lowestParentPos_1; +} + +defineClass(1893, 1, $intern_40, TreeUtil$lambda$12$Type); +_.test_0 = function test_106(arg0){ + return lambda$12_0(this.dirVec_0, this.lowestParentPos_1, castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$12$Type', 1893); +function TreeUtil$lambda$3$Type(e_0){ + this.e_0 = e_0; +} + +defineClass(1886, 1, $intern_40, TreeUtil$lambda$3$Type); +_.test_0 = function test_107(arg0){ + return lambda$3_4(this.e_0, castTo(arg0, 65)); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$3$Type', 1886); +function TreeUtil$lambda$4$Type(){ +} + +defineClass(1887, 1, $intern_88, TreeUtil$lambda$4$Type); +_.compare_1 = function compare_82(arg0, arg1){ + return lambda$4_8(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_169(other){ + return this === other; +} +; +_.reversed = function reversed_74(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$4$Type', 1887); +function TreeUtil$lambda$7$Type(e_0){ + this.e_0 = e_0; +} + +defineClass(1888, 1, $intern_40, TreeUtil$lambda$7$Type); +_.test_0 = function test_108(arg0){ + return lambda$7_3(this.e_0, castTo(arg0, 65)); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$7$Type', 1888); +function TreeUtil$lambda$8$Type(){ +} + +defineClass(1889, 1, $intern_88, TreeUtil$lambda$8$Type); +_.compare_1 = function compare_83(arg0, arg1){ + return lambda$8_1(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_170(other){ + return this === other; +} +; +_.reversed = function reversed_75(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$8$Type', 1889); +function TreeUtil$lambda$9$Type(){ +} + +defineClass(1890, 1, {}, TreeUtil$lambda$9$Type); +_.apply_0 = function apply_154(arg0){ + return castTo(arg0, 65).source; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/lambda$9$Type', 1890); +defineClass(508, 137, {3:1, 508:1, 96:1, 137:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraphElement', 508); +function TEdge_0(source, target){ + new LinkedList; + this.bendPoints = new KVectorChain; + this.source = source; + this.target = target; +} + +defineClass(65, 508, {3:1, 65:1, 508:1, 96:1, 137:1}, TEdge_0); +_.toString_0 = function toString_108(){ + return !!this.source && !!this.target?$toString_15(this.source) + '->' + $toString_15(this.target):'e_' + hashCode__I__devirtual$(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TEdge', 65); +function TGraph(){ + this.nodes = new LinkedList; + this.edges = new LinkedList; + this.nodes = new LinkedList; + this.edges = new LinkedList; +} + +defineClass(121, 137, {3:1, 121:1, 96:1, 137:1}, TGraph); +_.toString_0 = function toString_109(){ + var tEdge, tEdge$iterator, tNode, tNode$iterator, tmp; + tmp = null; + for (tNode$iterator = $listIterator_2(this.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + tmp += (tNode.label_0 == null || tNode.label_0.length == 0?'n_' + tNode.id_0:'n_' + tNode.label_0) + '\n'; + } + for (tEdge$iterator = $listIterator_2(this.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + tmp += (!!tEdge.source && !!tEdge.target?$toString_15(tEdge.source) + '->' + $toString_15(tEdge.target):'e_' + hashCode__I__devirtual$(tEdge)) + '\n'; + } + return tmp; +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraph', 121); +defineClass(643, 508, {3:1, 508:1, 643:1, 96:1, 137:1}); +var Lorg_eclipse_elk_alg_mrtree_graph_TShape_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TShape', 643); +function $getChildrenCopy(this$static){ + var children, iEdge, iEdge$iterator; + children = new LinkedList; + for (iEdge$iterator = $listIterator_2(this$static.outgoingEdges, 0); iEdge$iterator.currentNode != iEdge$iterator.this$01.tail;) { + iEdge = castTo($next_9(iEdge$iterator), 65); + $add_7(children, iEdge.target); + } + return children; +} + +function $getParent(this$static){ + var edges; + edges = this$static.incomingEdges; + if (edges.size_0 == 0) { + return null; + } + return castTo($get_7(edges, 0), 65).source; +} + +function $toString_15(this$static){ + return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; +} + +function TNode(id_0, graph, label_0){ + this.id_0 = id_0; + this.pos = new KVector; + this.size_0 = new KVector; + this.outgoingEdges = new LinkedList; + this.incomingEdges = new LinkedList; + this.graph_0 = graph; + this.label_0 = label_0; +} + +defineClass(40, 643, {3:1, 508:1, 40:1, 643:1, 96:1, 137:1}, TNode); +_.toString_0 = function toString_110(){ + return $toString_15(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode', 40); +function TNode$2(this$0){ + this.this$01 = this$0; +} + +defineClass(236, 1, $intern_23, TNode$2); +_.forEach_0 = function forEach_33(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_75(){ + var edgesIter; + return edgesIter = $listIterator_2(this.this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2', 236); +function TNode$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(329, 1, $intern_6, TNode$2$1); +_.forEachRemaining = function forEachRemaining_50(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_40(){ + return castTo($next_9(this.val$edgesIter2), 65).target; +} +; +_.hasNext_0 = function hasNext_39(){ + return $hasNext_5(this.val$edgesIter2); +} +; +_.remove = function remove_96(){ + $remove_24(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2/1', 329); +function $computeNodeConstraints(tGraph, nodeNodeSpacing){ + var actualNodes, cand, d, leftNode, p, p$iterator, points, r, right, rightNode, s; + d = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , DIRECTION_0)), 88); + right = d == ($clinit_Direction_0() , LEFT_6) || d == RIGHT_6?DOWN_1:RIGHT_6; + actualNodes = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new CompactionProcessor$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + points = castTo($collect_1($map(actualNodes.stream(), new CompactionProcessor$lambda$5$Type(nodeNodeSpacing)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + points.addAll(castTo($collect_1($map(actualNodes.stream(), new CompactionProcessor$lambda$6$Type(nodeNodeSpacing)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 16)); + points.sort_0(new CompactionProcessor$lambda$7$Type(right)); + s = new TreeSet_0(new CompactionProcessor$lambda$8$Type(d)); + cand = new HashMap; + for (p$iterator = points.iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 240); + r = castTo(p.first, 40); + if ($booleanValue(castToBoolean(p.third))) { + s.map_0.put(r, ($clinit_Boolean() , FALSE_0)) == null; + (new TreeSet_1(s.map_0.headMap(r, false))).map_0.size_1() > 0 && $put_6(cand, r, castTo((new TreeSet_1(s.map_0.headMap(r, false))).map_0.lastKey(), 40)); + (new TreeSet_1(s.map_0.tailMap(r, true))).map_0.size_1() > 1 && $put_6(cand, $getRightElement(s, r), r); + } + else { + if ((new TreeSet_1(s.map_0.headMap(r, false))).map_0.size_1() > 0) { + leftNode = castTo((new TreeSet_1(s.map_0.headMap(r, false))).map_0.lastKey(), 40); + maskUndefined(leftNode) === maskUndefined(getEntryValueOrNull($getEntry_0(cand.hashCodeMap, r))) && castTo($getProperty(r, ($clinit_InternalProperties_2() , COMPACT_CONSTRAINTS)), 15).add_2(leftNode); + } + if ((new TreeSet_1(s.map_0.tailMap(r, true))).map_0.size_1() > 1) { + rightNode = $getRightElement(s, r); + maskUndefined(getEntryValueOrNull($getEntry_0(cand.hashCodeMap, rightNode))) === maskUndefined(r) && castTo($getProperty(rightNode, ($clinit_InternalProperties_2() , COMPACT_CONSTRAINTS)), 15).add_2(r); + } + s.map_0.remove_0(r) != null; + } + } +} + +function $getLowestDependentNode(n, d){ + var cons, lowestCons; + cons = castTo($getProperty(n, ($clinit_InternalProperties_2() , COMPACT_CONSTRAINTS)), 15); + if (!cons || cons.size_1() < 1) { + return null; + } + else if (cons.size_1() == 1) { + return castTo(cons.get_0(0), 40); + } + lowestCons = null; + switch (d.ordinal) { + case 2: + lowestCons = castTo($get_17($min_0(cons.stream(), new CompactionProcessor$lambda$9$Type)), 40); + break; + case 1: + lowestCons = castTo($get_17($max_1(cons.stream(), new CompactionProcessor$lambda$10$Type)), 40); + break; + case 4: + lowestCons = castTo($get_17($min_0(cons.stream(), new CompactionProcessor$lambda$11$Type)), 40); + break; + case 3: + lowestCons = castTo($get_17($max_1(cons.stream(), new CompactionProcessor$lambda$12$Type)), 40); + } + return lowestCons; +} + +function $getRightElement(s, n){ + var i, tailSet; + tailSet = new TreeSet_1(s.map_0.tailMap(n, true)); + if (tailSet.map_0.size_1() <= 1) { + throw toJs(new NullPointerException); + } + i = tailSet.map_0.keySet_0().iterator_0(); + i.next_1(); + return castTo(i.next_1(), 40); +} + +function $process_82(this$static, tGraph, progressMonitor){ + var d, dir_0, finalNewPos, finalNewPosSize, level, n, n$iterator, newIndex, newPos, newPosSize, nodeNodeSpacing, nodes, p, pos; + progressMonitor.begin('Process compaction', 1); + if (!$booleanValue(castToBoolean($getProperty(tGraph, ($clinit_MrTreeOptions() , COMPACTION_0))))) { + return; + } + dir_0 = castTo($getProperty(tGraph, DIRECTION_0), 88); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(tGraph, SPACING_NODE_NODE_1))); + $setUpLevels(this$static, tGraph, dir_0); + $computeNodeConstraints(tGraph, nodeNodeSpacing / 2 / 2); + nodes = tGraph.nodes; + $sort_0(nodes, new CompactionProcessor$lambda$0$Type(dir_0)); + for (n$iterator = $listIterator_2(nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + if (!$booleanValue(castToBoolean($getProperty(n, ($clinit_InternalProperties_2() , ROOT_0))))) { + d = $getLowestDependentNode(n, dir_0); + p = getLowestParent(n, tGraph); + newPos = 0; + newPosSize = 0; + if (d) { + pos = d.pos; + switch (dir_0.ordinal) { + case 2: + newPos = pos.x_0 - nodeNodeSpacing - n.size_0.x_0; + p.pos.x_0 - nodeNodeSpacing - n.size_0.x_0 < newPos && (newPos = p.pos.x_0 - nodeNodeSpacing - n.size_0.x_0); + newPosSize = newPos + n.size_0.x_0; + break; + case 1: + newPos = pos.x_0 + d.size_0.x_0 + nodeNodeSpacing; + p.pos.x_0 + nodeNodeSpacing > newPos && (newPos = p.pos.x_0 + p.size_0.x_0 + nodeNodeSpacing); + newPosSize = newPos + n.size_0.x_0; + break; + case 4: + newPos = pos.y_0 - nodeNodeSpacing - n.size_0.y_0; + p.pos.y_0 - nodeNodeSpacing - n.size_0.y_0 < newPos && (newPos = p.pos.y_0 - nodeNodeSpacing - n.size_0.y_0); + newPosSize = newPos + n.size_0.y_0; + break; + case 3: + newPos = pos.y_0 + d.size_0.y_0 + nodeNodeSpacing; + p.pos.y_0 + nodeNodeSpacing > newPos && (newPos = p.pos.y_0 + p.size_0.y_0 + nodeNodeSpacing); + newPosSize = newPos + n.size_0.y_0; + } + } + else if (p) { + switch (dir_0.ordinal) { + case 2: + newPos = p.pos.x_0 - nodeNodeSpacing - n.size_0.x_0; + newPosSize = newPos + n.size_0.x_0; + break; + case 1: + newPos = p.pos.x_0 + p.size_0.x_0 + nodeNodeSpacing; + newPosSize = newPos + n.size_0.x_0; + break; + case 4: + newPos = p.pos.y_0 - nodeNodeSpacing - n.size_0.y_0; + newPosSize = newPos + n.size_0.y_0; + break; + case 3: + newPos = p.pos.y_0 + p.size_0.y_0 + nodeNodeSpacing; + newPosSize = newPos + n.size_0.y_0; + } + } + if (maskUndefined($getProperty(tGraph, EDGE_ROUTING_MODE_0)) === maskUndefined(($clinit_EdgeRoutingMode() , AVOID_OVERLAP))) { + finalNewPos = newPos; + finalNewPosSize = newPosSize; + level = $findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.levels, 16)), new CompactionProcessor$lambda$1$Type(finalNewPos, finalNewPosSize))); + if (level.ref != null) { + dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6?(n.pos.x_0 = newPos):(n.pos.y_0 = newPos); + } + else { + dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == UP_1?(level = $findFirst($filter($skip(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.levels, 16))), new CompactionProcessor$lambda$2$Type(finalNewPos)))):(level = $findFirst($filter($skip(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.levels, 16))), new CompactionProcessor$lambda$3$Type(finalNewPos)))); + level.ref != null && (dir_0 == LEFT_6 || dir_0 == RIGHT_6?(n.pos.x_0 = $doubleValue(castToDouble((checkCriticalElement(level.ref != null) , castTo(level.ref, 42)).first))):(n.pos.y_0 = $doubleValue(castToDouble((checkCriticalElement(level.ref != null) , castTo(level.ref, 42)).first)))); + } + if (level.ref != null) { + newIndex = $indexOf_3(this$static.levels, (checkCriticalElement(level.ref != null) , level.ref), 0); + if (newIndex > 0 && newIndex != castTo($getProperty(n, TREE_LEVEL_0), 17).value_0) { + $setProperty_0(n, COMPACT_LEVEL_ASCENSION, ($clinit_Boolean() , true)); + $setProperty_0(n, TREE_LEVEL_0, valueOf_3(newIndex)); + } + } + } + else { + dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6?(n.pos.x_0 = newPos):(n.pos.y_0 = newPos); + } + } + } + progressMonitor.done_1(); +} + +function $setUpLevels(this$static, tGraph, dir_0){ + var curLevel, n, n$iterator; + this$static.levels = new ArrayList; + for (n$iterator = $listIterator_2(tGraph.nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + while (castTo($getProperty(n, ($clinit_MrTreeOptions() , TREE_LEVEL_0)), 17).value_0 > this$static.levels.array.length - 1) { + $add_3(this$static.levels, new Pair($intern_98, $intern_124)); + } + curLevel = castTo($getProperty(n, TREE_LEVEL_0), 17).value_0; + if (dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6) { + n.pos.x_0 < $doubleValue(castToDouble(castTo($get_11(this$static.levels, curLevel), 42).first)) && $setFirst(castTo($get_11(this$static.levels, curLevel), 42), n.pos.x_0); + n.pos.x_0 + n.size_0.x_0 > $doubleValue(castToDouble(castTo($get_11(this$static.levels, curLevel), 42).second)) && $setSecond(castTo($get_11(this$static.levels, curLevel), 42), n.pos.x_0 + n.size_0.x_0); + } + else { + n.pos.y_0 < $doubleValue(castToDouble(castTo($get_11(this$static.levels, curLevel), 42).first)) && $setFirst(castTo($get_11(this$static.levels, curLevel), 42), n.pos.y_0); + n.pos.y_0 + n.size_0.y_0 > $doubleValue(castToDouble(castTo($get_11(this$static.levels, curLevel), 42).second)) && $setSecond(castTo($get_11(this$static.levels, curLevel), 42), n.pos.y_0 + n.size_0.y_0); + } + } +} + +function CompactionProcessor(){ +} + +function lambda$0_34(dir_0, x_1, y_2){ + return compare_4($dotProduct(getDirectionVector(dir_0), new KVector_1(x_1.pos.x_0, x_1.pos.y_0)), $dotProduct(getDirectionVector(dir_0), new KVector_1(y_2.pos.x_0, y_2.pos.y_0))); +} + +function lambda$1_17(finalNewPos_0, finalNewPosSize_2, x_2){ + return $doubleValue(castToDouble(x_2.first)) <= finalNewPos_0 && $doubleValue(castToDouble(x_2.second)) >= finalNewPosSize_2; +} + +function lambda$10(x_0, y_1){ + return compare_4(x_0.pos.x_0 + x_0.size_0.x_0, y_1.pos.x_0 + y_1.size_0.x_0); +} + +function lambda$11_1(x_0, y_1){ + return compare_4(x_0.pos.y_0, y_1.pos.y_0); +} + +function lambda$12_1(x_0, y_1){ + return compare_4(x_0.pos.y_0 + x_0.size_0.y_0, y_1.pos.y_0 + y_1.size_0.y_0); +} + +function lambda$2_8(finalNewPos_0, x_1){ + return $doubleValue(castToDouble(x_1.first)) <= finalNewPos_0; +} + +function lambda$3_5(finalNewPos_0, x_1){ + return $doubleValue(castToDouble(x_1.first)) >= finalNewPos_0; +} + +function lambda$5_5(nodeNodeSpacing_0, x_1){ + return new Triple(x_1, $sub($clone_1(x_1.pos), nodeNodeSpacing_0, nodeNodeSpacing_0), ($clinit_Boolean() , true)); +} + +function lambda$6_2(nodeNodeSpacing_0, x_1){ + return new Triple(x_1, $add_18($clone_1(x_1.pos), x_1.size_0.x_0 + nodeNodeSpacing_0, x_1.size_0.y_0 + nodeNodeSpacing_0), ($clinit_Boolean() , false)); +} + +function lambda$7_4(right_0, x_1, y_2){ + return compare_4($dotProduct(getDirectionVector(right_0), $clone_1(x_1.second)), $dotProduct(getDirectionVector(right_0), $clone_1(y_2.second))); +} + +function lambda$8_2(d_0, x_1, y_2){ + return compare_4($dotProduct(getDirectionVector(d_0), $clone_1(x_1.pos)), $dotProduct(getDirectionVector(d_0), $clone_1(y_2.pos))); +} + +function lambda$9_0(x_0, y_1){ + return compare_4(x_0.pos.x_0, y_1.pos.x_0); +} + +defineClass(1923, 1, $intern_105, CompactionProcessor); +_.process = function process_78(tGraph, progressMonitor){ + $process_82(this, castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor', 1923); +function CompactionProcessor$lambda$0$Type(dir_0){ + this.dir_0 = dir_0; +} + +defineClass(1924, 1, $intern_88, CompactionProcessor$lambda$0$Type); +_.compare_1 = function compare_84(arg0, arg1){ + return lambda$0_34(this.dir_0, castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_171(other){ + return this === other; +} +; +_.reversed = function reversed_76(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$0$Type', 1924); +function CompactionProcessor$lambda$1$Type(finalNewPos_0, finalNewPosSize_2){ + this.finalNewPos_0 = finalNewPos_0; + this.finalNewPosSize_2 = finalNewPosSize_2; +} + +defineClass(1925, 1, $intern_40, CompactionProcessor$lambda$1$Type); +_.test_0 = function test_109(arg0){ + return lambda$1_17(this.finalNewPos_0, this.finalNewPosSize_2, castTo(arg0, 42)); +} +; +_.finalNewPosSize_2 = 0; +_.finalNewPos_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$1$Type', 1925); +function CompactionProcessor$lambda$10$Type(){ +} + +defineClass(1934, 1, $intern_88, CompactionProcessor$lambda$10$Type); +_.compare_1 = function compare_85(arg0, arg1){ + return lambda$10(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_172(other){ + return this === other; +} +; +_.reversed = function reversed_77(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$10$Type', 1934); +function CompactionProcessor$lambda$11$Type(){ +} + +defineClass(1935, 1, $intern_88, CompactionProcessor$lambda$11$Type); +_.compare_1 = function compare_86(arg0, arg1){ + return lambda$11_1(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_173(other){ + return this === other; +} +; +_.reversed = function reversed_78(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$11$Type', 1935); +function CompactionProcessor$lambda$12$Type(){ +} + +defineClass(1936, 1, $intern_88, CompactionProcessor$lambda$12$Type); +_.compare_1 = function compare_87(arg0, arg1){ + return lambda$12_1(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_174(other){ + return this === other; +} +; +_.reversed = function reversed_79(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$12$Type', 1936); +function CompactionProcessor$lambda$2$Type(finalNewPos_0){ + this.finalNewPos_0 = finalNewPos_0; +} + +defineClass(1926, 1, $intern_40, CompactionProcessor$lambda$2$Type); +_.test_0 = function test_110(arg0){ + return lambda$2_8(this.finalNewPos_0, castTo(arg0, 42)); +} +; +_.finalNewPos_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$2$Type', 1926); +function CompactionProcessor$lambda$3$Type(finalNewPos_0){ + this.finalNewPos_0 = finalNewPos_0; +} + +defineClass(1927, 1, $intern_40, CompactionProcessor$lambda$3$Type); +_.test_0 = function test_111(arg0){ + return lambda$3_5(this.finalNewPos_0, castTo(arg0, 42)); +} +; +_.finalNewPos_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$3$Type', 1927); +function CompactionProcessor$lambda$4$Type(){ +} + +defineClass(1928, 1, $intern_40, CompactionProcessor$lambda$4$Type); +_.test_0 = function test_112(arg0){ + return castTo(arg0, 40).label_0.indexOf('SUPER_ROOT') == -1; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$4$Type', 1928); +function CompactionProcessor$lambda$5$Type(nodeNodeSpacing_0){ + this.nodeNodeSpacing_0 = nodeNodeSpacing_0; +} + +defineClass(1929, 1, {}, CompactionProcessor$lambda$5$Type); +_.apply_0 = function apply_155(arg0){ + return lambda$5_5(this.nodeNodeSpacing_0, castTo(arg0, 40)); +} +; +_.nodeNodeSpacing_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$5$Type', 1929); +function CompactionProcessor$lambda$6$Type(nodeNodeSpacing_0){ + this.nodeNodeSpacing_0 = nodeNodeSpacing_0; +} + +defineClass(1930, 1, {}, CompactionProcessor$lambda$6$Type); +_.apply_0 = function apply_156(arg0){ + return lambda$6_2(this.nodeNodeSpacing_0, castTo(arg0, 40)); +} +; +_.nodeNodeSpacing_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$6$Type', 1930); +function CompactionProcessor$lambda$7$Type(right_0){ + this.right_0 = right_0; +} + +defineClass(1931, 1, $intern_88, CompactionProcessor$lambda$7$Type); +_.compare_1 = function compare_88(arg0, arg1){ + return lambda$7_4(this.right_0, castTo(arg0, 240), castTo(arg1, 240)); +} +; +_.equals_0 = function equals_175(other){ + return this === other; +} +; +_.reversed = function reversed_80(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$7$Type', 1931); +function CompactionProcessor$lambda$8$Type(d_0){ + this.d_0 = d_0; +} + +defineClass(1932, 1, $intern_88, CompactionProcessor$lambda$8$Type); +_.compare_1 = function compare_89(arg0, arg1){ + return lambda$8_2(this.d_0, castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_176(other){ + return this === other; +} +; +_.reversed = function reversed_81(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$8$Type', 1932); +function CompactionProcessor$lambda$9$Type(){ +} + +defineClass(1933, 1, $intern_88, CompactionProcessor$lambda$9$Type); +_.compare_1 = function compare_90(arg0, arg1){ + return lambda$9_0(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_177(other){ + return this === other; +} +; +_.reversed = function reversed_82(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_CompactionProcessor$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'CompactionProcessor/lambda$9$Type', 1933); +function $process_83(tGraph, progressMonitor){ + var d, n, n$iterator, tmp, tmp2, x_0, y_0; + progressMonitor.begin('Process directions', 1); + d = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , DIRECTION_0)), 88); + if (d != ($clinit_Direction_0() , DOWN_1)) { + for (n$iterator = $listIterator_2(tGraph.nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + x_0 = castTo($getProperty(n, ($clinit_InternalProperties_2() , XCOOR)), 17).value_0; + y_0 = castTo($getProperty(n, YCOOR), 17).value_0; + switch (d.ordinal) { + case 4: + y_0 *= -1; + break; + case 1: + tmp = x_0; + x_0 = y_0; + y_0 = tmp; + break; + case 2: + tmp2 = x_0; + x_0 = -y_0; + y_0 = tmp2; + } + $setProperty_0(n, XCOOR, valueOf_3(x_0)); + $setProperty_0(n, YCOOR, valueOf_3(y_0)); + } + } + progressMonitor.done_1(); +} + +function DirectionProcessor(){ +} + +defineClass(1921, 1, $intern_105, DirectionProcessor); +_.process = function process_79(tGraph, progressMonitor){ + $process_83(castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_DirectionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'DirectionProcessor', 1921); +function $calculateFan(this$static, currentLevel){ + var blockSize, digits, edgesIter, gloValue, i, id_0, index_0, key, locEntry, locEntry$iterator, locFanMap, nextLevel, pId, tChild, tChild$iterator, tNode, tNode$iterator, tNode$iterator0; + if (currentLevel.size_0 != 0) { + nextLevel = new LinkedList; + id_0 = null; + pId = null; + digits = round_int($wnd.Math.floor($wnd.Math.log(currentLevel.size_0) * $wnd.Math.LOG10E) + 1); + index_0 = 0; + for (tNode$iterator0 = $listIterator_2(currentLevel, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator0), 40); + if (maskUndefined(pId) !== maskUndefined($getProperty(tNode, ($clinit_InternalProperties_2() , ID)))) { + pId = castToString($getProperty(tNode, ID)); + index_0 = 0; + } + pId != null?(id_0 = pId + formatRight(index_0++, digits)):(id_0 = formatRight(index_0++, digits)); + $setProperty_0(tNode, ID, id_0); + for (tChild$iterator = (edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter)); $hasNext_5(tChild$iterator.val$edgesIter2);) { + tChild = castTo($next_9(tChild$iterator.val$edgesIter2), 65).target; + $addNode_0(nextLevel, tChild, nextLevel.tail.prev, nextLevel.tail); + $setProperty_0(tChild, ID, id_0); + } + } + locFanMap = new HashMap; + for (i = 0; i < id_0.length - digits; i++) { + for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + key = $substring_1(castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))), 0, i + 1); + blockSize = (key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key)) != null?castTo(key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key), 17).value_0 + 1:1; + $putStringValue(locFanMap, key, valueOf_3(blockSize)); + } + } + for (locEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(locFanMap)).this$01); locEntry$iterator.hasNext;) { + locEntry = $next_3(locEntry$iterator); + gloValue = valueOf_3($get_10(this$static.gloDescMap, locEntry.getKey()) != null?castTo($get_10(this$static.gloDescMap, locEntry.getKey()), 17).value_0:0); + $putStringValue(this$static.gloDescMap, castToString(locEntry.getKey()), valueOf_3(castTo(locEntry.getValue(), 17).value_0 + gloValue.value_0)); + gloValue = castTo($get_10(this$static.gloFanMap, locEntry.getKey()), 17); + (!gloValue || gloValue.value_0 < castTo(locEntry.getValue(), 17).value_0) && $putStringValue(this$static.gloFanMap, castToString(locEntry.getKey()), castTo(locEntry.getValue(), 17)); + } + $calculateFan(this$static, nextLevel); + } +} + +function $process_84(this$static, tGraph, progressMonitor){ + var desc, fan, it, key, root, rootLevel, tNode, tNode$iterator; + progressMonitor.begin('Processor compute fanout', 1); + $reset(this$static.gloFanMap); + $reset(this$static.gloDescMap); + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_9(it), 40); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + rootLevel = new LinkedList; + $addNode_0(rootLevel, root, rootLevel.tail.prev, rootLevel.tail); + $calculateFan(this$static, rootLevel); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + key = castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))); + fan = $getStringValue(this$static.gloFanMap, key) != null?castTo($getStringValue(this$static.gloFanMap, key), 17).value_0:0; + $setProperty_0(tNode, FAN, valueOf_3(fan)); + desc = 1 + ($getStringValue(this$static.gloDescMap, key) != null?castTo($getStringValue(this$static.gloDescMap, key), 17).value_0:0); + $setProperty_0(tNode, DESCENDANTS, valueOf_3(desc)); + } + progressMonitor.done_1(); +} + +function FanProcessor(){ + this.gloFanMap = new HashMap; + this.gloDescMap = new HashMap; +} + +function formatRight(value_0, len){ + var s; + s = value_0 + ''; + while (s.length < len) { + s = '0' + s; + } + return s; +} + +defineClass(1913, 1, $intern_105, FanProcessor); +_.process = function process_80(tGraph, progressMonitor){ + $process_84(this, castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_FanProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'FanProcessor', 1913); +function $process_85(tGraph, progressMonitor){ + progressMonitor.begin('Process graph bounds', 1); + $setProperty_0(tGraph, ($clinit_InternalProperties_2() , GRAPH_XMIN), $getAsDouble($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new GraphBoundsProcessor$lambda$0$Type)))); + $setProperty_0(tGraph, GRAPH_YMIN, $getAsDouble($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new GraphBoundsProcessor$lambda$1$Type)))); + $setProperty_0(tGraph, GRAPH_XMAX, $getAsDouble($max($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new GraphBoundsProcessor$lambda$2$Type)))); + $setProperty_0(tGraph, GRAPH_YMAX, $getAsDouble($max($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new GraphBoundsProcessor$lambda$3$Type)))); + progressMonitor.done_1(); +} + +function GraphBoundsProcessor(){ +} + +function lambda$2_9(x_0){ + return x_0.pos.x_0 + x_0.size_0.x_0; +} + +function lambda$3_6(x_0){ + return x_0.pos.y_0 + x_0.size_0.y_0; +} + +defineClass(1937, 1, $intern_105, GraphBoundsProcessor); +_.process = function process_81(tGraph, progressMonitor){ + $process_85(castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_GraphBoundsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'GraphBoundsProcessor', 1937); +function GraphBoundsProcessor$lambda$0$Type(){ +} + +defineClass(1938, 1, {}, GraphBoundsProcessor$lambda$0$Type); +_.applyAsDouble = function applyAsDouble_4(arg0){ + return castTo(arg0, 40).pos.x_0; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_GraphBoundsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'GraphBoundsProcessor/lambda$0$Type', 1938); +function GraphBoundsProcessor$lambda$1$Type(){ +} + +defineClass(1939, 1, {}, GraphBoundsProcessor$lambda$1$Type); +_.applyAsDouble = function applyAsDouble_5(arg0){ + return castTo(arg0, 40).pos.y_0; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_GraphBoundsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'GraphBoundsProcessor/lambda$1$Type', 1939); +function GraphBoundsProcessor$lambda$2$Type(){ +} + +defineClass(1940, 1, {}, GraphBoundsProcessor$lambda$2$Type); +_.applyAsDouble = function applyAsDouble_6(arg0){ + return lambda$2_9(castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_GraphBoundsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'GraphBoundsProcessor/lambda$2$Type', 1940); +function GraphBoundsProcessor$lambda$3$Type(){ +} + +defineClass(1941, 1, {}, GraphBoundsProcessor$lambda$3$Type); +_.applyAsDouble = function applyAsDouble_7(arg0){ + return lambda$3_6(castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_GraphBoundsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'GraphBoundsProcessor/lambda$3$Type', 1941); +function $clinit_IntermediateProcessorStrategy_0(){ + $clinit_IntermediateProcessorStrategy_0 = emptyMethod; + ROOT_PROC = new IntermediateProcessorStrategy_0('ROOT_PROC', 0); + FAN_PROC = new IntermediateProcessorStrategy_0('FAN_PROC', 1); + LEVEL_PROC = new IntermediateProcessorStrategy_0('LEVEL_PROC', 2); + NEIGHBORS_PROC = new IntermediateProcessorStrategy_0('NEIGHBORS_PROC', 3); + LEVEL_HEIGHT = new IntermediateProcessorStrategy_0('LEVEL_HEIGHT', 4); + DIRECTION_PROC = new IntermediateProcessorStrategy_0('DIRECTION_PROC', 5); + NODE_POSITION_PROC = new IntermediateProcessorStrategy_0('NODE_POSITION_PROC', 6); + COMPACTION_PROC = new IntermediateProcessorStrategy_0('COMPACTION_PROC', 7); + LEVEL_COORDS = new IntermediateProcessorStrategy_0('LEVEL_COORDS', 8); + GRAPH_BOUNDS_PROC = new IntermediateProcessorStrategy_0('GRAPH_BOUNDS_PROC', 9); + DETREEIFYING_PROC = new IntermediateProcessorStrategy_0('DETREEIFYING_PROC', 10); +} + +function IntermediateProcessorStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_72(name_0){ + $clinit_IntermediateProcessorStrategy_0(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_0() , $MAP_62), name_0); +} + +function values_80(){ + $clinit_IntermediateProcessorStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_37, 262, 0, [ROOT_PROC, FAN_PROC, LEVEL_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, DIRECTION_PROC, NODE_POSITION_PROC, COMPACTION_PROC, LEVEL_COORDS, GRAPH_BOUNDS_PROC, DETREEIFYING_PROC]); +} + +defineClass(262, 22, {3:1, 34:1, 22:1, 262:1, 196:1}, IntermediateProcessorStrategy_0); +_.create_1 = function create_20(){ + switch (this.ordinal) { + case 0: + return new RootProcessor; + case 1: + return new FanProcessor; + case 2: + return new LevelProcessor; + case 3: + return new NeighborsProcessor; + case 4: + return new LevelHeightProcessor; + case 8: + return new LevelCoordinatesProcessor; + case 5: + return new DirectionProcessor; + case 6: + return new NodePositionProcessor; + case 7: + return new CompactionProcessor; + case 9: + return new GraphBoundsProcessor; + case 10: + return new Untreeifyer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var COMPACTION_PROC, DETREEIFYING_PROC, DIRECTION_PROC, FAN_PROC, GRAPH_BOUNDS_PROC, LEVEL_COORDS, LEVEL_HEIGHT, LEVEL_PROC, NEIGHBORS_PROC, NODE_POSITION_PROC, ROOT_PROC; +var Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.intermediate', 'IntermediateProcessorStrategy', 262, Ljava_lang_Enum_2_classLit, values_80, valueOf_72); +function $clinit_IntermediateProcessorStrategy$Map_0(){ + $clinit_IntermediateProcessorStrategy$Map_0 = emptyMethod; + $MAP_62 = createValueOfMap(values_80()); +} + +var $MAP_62; +function $process_86(tGraph, progressMonitor){ + var curLevel, levels, n, n$iterator, n$iterator0; + progressMonitor.begin('Processor determine the coords for each level', 1); + levels = new ArrayList; + for (n$iterator0 = $listIterator_2(tGraph.nodes, 0); n$iterator0.currentNode != n$iterator0.this$01.tail;) { + n = castTo($next_9(n$iterator0), 40); + while (castTo($getProperty(n, ($clinit_MrTreeOptions() , TREE_LEVEL_0)), 17).value_0 > levels.array.length - 1) { + $add_3(levels, new Pair($intern_98, $intern_124)); + } + curLevel = castTo($getProperty(n, TREE_LEVEL_0), 17).value_0; + if ($isHorizontal(castTo($getProperty(tGraph, DIRECTION_0), 88))) { + n.pos.x_0 < $doubleValue(castToDouble((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)).first)) && $setFirst((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)), n.pos.x_0); + n.pos.x_0 + n.size_0.x_0 > $doubleValue(castToDouble((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)).second)) && $setSecond((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)), n.pos.x_0 + n.size_0.x_0); + } + else { + n.pos.y_0 < $doubleValue(castToDouble((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)).first)) && $setFirst((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)), n.pos.y_0); + n.pos.y_0 + n.size_0.y_0 > $doubleValue(castToDouble((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)).second)) && $setSecond((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)), n.pos.y_0 + n.size_0.y_0); + } + } + for (n$iterator = $listIterator_2(tGraph.nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + curLevel = castTo($getProperty(n, ($clinit_MrTreeOptions() , TREE_LEVEL_0)), 17).value_0; + $setProperty_0(n, ($clinit_InternalProperties_2() , LEVELMIN), castToDouble((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)).first)); + $setProperty_0(n, LEVELMAX, castToDouble((checkCriticalElementIndex(curLevel, levels.array.length) , castTo(levels.array[curLevel], 42)).second)); + } + progressMonitor.done_1(); +} + +function LevelCoordinatesProcessor(){ +} + +defineClass(1920, 1, $intern_105, LevelCoordinatesProcessor); +_.process = function process_82(tGraph, progressMonitor){ + $process_86(castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelCoordinatesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelCoordinatesProcessor', 1920); +function $process_87(this$static, tGraph, progressMonitor){ + var it, root, tNode; + progressMonitor.begin('Processor determine the height for each level', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_9(it), 40); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors(this$static, newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_125, 40, 0, [root])), progressMonitor, castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , DIRECTION_0)), 88)); + progressMonitor.done_1(); +} + +function $setNeighbors(this$static, currentLevel, progressMonitor, layoutDirection){ + var cN, cN$iterator, cN$iterator0, height, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = progressMonitor.subTask((instanceOf(currentLevel, 16)?castTo(currentLevel, 16).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + sT.begin('Set neighbors in level', 1); + nextLevel = new LevelHeightProcessor$1; + height = 0; + if (layoutDirection == ($clinit_Direction_0() , LEFT_6) || layoutDirection == RIGHT_6) { + for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { + cN = castTo(cN$iterator0.next_1(), 40); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + height < cN.size_0.x_0 && (height = cN.size_0.x_0); + } + } + else { + for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { + cN = castTo(cN$iterator0.next_1(), 40); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + height < cN.size_0.y_0 && (height = cN.size_0.y_0); + } + } + for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 40); + $setProperty_0(cN, ($clinit_InternalProperties_2() , LEVELHEIGHT), height); + } + sT.done_1(); + $setNeighbors(this$static, nextLevel, progressMonitor, layoutDirection); + } +} + +function LevelHeightProcessor(){ +} + +defineClass(1918, 1, $intern_105, LevelHeightProcessor); +_.process = function process_83(tGraph, progressMonitor){ + $process_87(this, castTo(tGraph, 121), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor', 1918); +function LevelHeightProcessor$1(){ +} + +defineClass(1919, 1, $intern_23, LevelHeightProcessor$1); +_.forEach_0 = function forEach_34(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_76(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor/1', 1919); +function $process_88(this$static, tGraph, progressMonitor){ + var level, roots, tNode, tNode$iterator; + progressMonitor.begin('Processor compute fanout', 1); + roots = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new LevelProcessor$lambda$0$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + $setLevel_0(this$static, roots, 0); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + level = $get_10(this$static.gloLevelMap, valueOf_3(tNode.id_0)) != null?castTo($get_10(this$static.gloLevelMap, valueOf_3(tNode.id_0)), 17).value_0:0; + $setProperty_0(tNode, ($clinit_MrTreeOptions() , TREE_LEVEL_0), valueOf_3(level)); + } + progressMonitor.done_1(); +} + +function $setLevel_0(this$static, currentLevel, level){ + var edgesIter, nextLevel, tChild, tChild$iterator, tNode, tNode$iterator; + if (!currentLevel.isEmpty()) { + nextLevel = new LinkedList; + for (tNode$iterator = currentLevel.iterator_0(); tNode$iterator.hasNext_0();) { + tNode = castTo(tNode$iterator.next_1(), 40); + $put_6(this$static.gloLevelMap, valueOf_3(tNode.id_0), valueOf_3(level)); + for (tChild$iterator = (edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter)); $hasNext_5(tChild$iterator.val$edgesIter2);) { + tChild = castTo($next_9(tChild$iterator.val$edgesIter2), 65).target; + $addNode_0(nextLevel, tChild, nextLevel.tail.prev, nextLevel.tail); + } + } + $setLevel_0(this$static, nextLevel, level + 1); + } +} + +function LevelProcessor(){ + this.gloLevelMap = new HashMap; +} + +defineClass(1914, 1, $intern_105, LevelProcessor); +_.process = function process_84(tGraph, progressMonitor){ + $process_88(this, castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelProcessor', 1914); +function LevelProcessor$lambda$0$Type(){ +} + +defineClass(1915, 1, $intern_40, LevelProcessor$lambda$0$Type); +_.test_0 = function test_113(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 40), ($clinit_InternalProperties_2() , ROOT_0)))); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelProcessor/lambda$0$Type', 1915); +function $process_89(this$static, tGraph, progressMonitor){ + var it, root, tNode; + progressMonitor.begin('Processor set neighbors', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_9(it), 40); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors_0(this$static, new TNode$2(root), progressMonitor); + progressMonitor.done_1(); +} + +function $setNeighbors_0(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, lN, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = progressMonitor.subTask((instanceOf(currentLevel, 16)?castTo(currentLevel, 16).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + sT.begin('Set neighbors in level', 1); + nextLevel = new NeighborsProcessor$1; + lN = null; + for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 40); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + if (lN) { + $setProperty_0(lN, ($clinit_InternalProperties_2() , RIGHTNEIGHBOR), cN); + $setProperty_0(cN, LEFTNEIGHBOR, lN); + if ($getParent(cN) == $getParent(lN)) { + $setProperty_0(lN, RIGHTSIBLING, cN); + $setProperty_0(cN, LEFTSIBLING, lN); + } + } + lN = cN; + } + sT.done_1(); + $setNeighbors_0(this$static, nextLevel, progressMonitor); + } +} + +function NeighborsProcessor(){ +} + +defineClass(1916, 1, $intern_105, NeighborsProcessor); +_.process = function process_85(tGraph, progressMonitor){ + $process_89(this, castTo(tGraph, 121), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor', 1916); +function NeighborsProcessor$1(){ +} + +defineClass(1917, 1, $intern_23, NeighborsProcessor$1); +_.forEach_0 = function forEach_35(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_77(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor/1', 1917); +function $process_90(this$static, tGraph, progressMonitor){ + var it, lastArg, n, n$iterator, nextLevel, pos, root, subTasks, tNode; + progressMonitor.begin('Processor set coordinates', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_9(it), 40); + if ($booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0))))) { + root = tNode; + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, XCOOR), 17).value_0; + pos.y_0 = castTo($getProperty(tNode, YCOOR), 17).value_0; + } + } + nextLevel = $getChildrenCopy(root); + subTasks = 1; + do { + nextLevel = $setCoordinates((lastArg = nextLevel , progressMonitor.subTask(subTasks) , lastArg)); + subTasks = nextLevel.size_0 / this$static.numberOfNodes | 0; + } + while (nextLevel.size_0 != 0); + for (n$iterator = $listIterator_2(tGraph.nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + $sub_0(n.pos, new KVector_1(n.size_0.x_0 / 2, n.size_0.y_0 / 2)); + } + progressMonitor.done_1(); +} + +function $setCoordinates(currentLevel){ + var nextLevel, pos, tNode, tNode$iterator; + if (currentLevel.size_0 != 0) { + nextLevel = new LinkedList; + for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + $addAll(nextLevel, $getChildrenCopy(tNode)); + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, ($clinit_InternalProperties_2() , XCOOR)), 17).value_0; + pos.y_0 = castTo($getProperty(tNode, YCOOR), 17).value_0; + } + return nextLevel; + } + return new LinkedList; +} + +function NodePositionProcessor(){ +} + +defineClass(1922, 1, $intern_105, NodePositionProcessor); +_.process = function process_86(tGraph, progressMonitor){ + $process_90(this, castTo(tGraph, 121), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NodePositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NodePositionProcessor', 1922); +function $process_91(this$static, tGraph, progressMonitor){ + var node, node$iterator, root, superRoot, tRoot, tRoot$iterator, newEdge; + progressMonitor.begin('Find roots', 1); + this$static.roots.array.length = 0; + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 40); + if (node.incomingEdges.size_0 == 0) { + $setProperty_0(node, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $add_3(this$static.roots, node); + } + } + switch (this$static.roots.array.length) { + case 0: + root = new TNode(0, tGraph, 'DUMMY_ROOT'); + $setProperty_0(root, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $setProperty_0(root, DUMMY, true); + $add_7(tGraph.nodes, root); + break; + case 1: + break; + default:superRoot = new TNode(0, tGraph, 'SUPER_ROOT'); + for (tRoot$iterator = new ArrayList$1(this$static.roots); tRoot$iterator.i < tRoot$iterator.this$01.array.length;) { + tRoot = castTo($next_6(tRoot$iterator), 40); + newEdge = new TEdge_0(superRoot, tRoot); + $setProperty_0(newEdge, ($clinit_InternalProperties_2() , DUMMY), ($clinit_Boolean() , true)); + $add_7(superRoot.graph_0.edges, newEdge); + $add_7(superRoot.outgoingEdges, newEdge); + $add_7(tRoot.incomingEdges, newEdge); + $setProperty_0(tRoot, ROOT_0, false); + } + + $setProperty_0(superRoot, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $setProperty_0(superRoot, DUMMY, true); + $add_7(tGraph.nodes, superRoot); + } + progressMonitor.done_1(); +} + +function RootProcessor(){ + this.roots = new ArrayList; +} + +defineClass(1912, 1, $intern_105, RootProcessor); +_.process = function process_87(tGraph, progressMonitor){ + $process_91(this, castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_RootProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'RootProcessor', 1912); +function $process_92(tGraph, progressMonitor){ + var edges, tEdge, tEdge$iterator; + progressMonitor.begin('Untreeify', 1); + edges = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES)), 15); + for (tEdge$iterator = edges.iterator_0(); tEdge$iterator.hasNext_0();) { + tEdge = castTo(tEdge$iterator.next_1(), 65); + $add_7(tEdge.source.outgoingEdges, tEdge); + $add_7(tEdge.target.incomingEdges, tEdge); + } + progressMonitor.done_1(); +} + +function Untreeifyer(){ +} + +defineClass(1942, 1, $intern_105, Untreeifyer); +_.process = function process_88(tGraph, progressMonitor){ + $process_92(castTo(tGraph, 121), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_Untreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'Untreeifyer', 1942); +function $clinit_EdgeRoutingMode(){ + $clinit_EdgeRoutingMode = emptyMethod; + NONE_11 = new EdgeRoutingMode('NONE', 0); + MIDDLE_TO_MIDDLE = new EdgeRoutingMode('MIDDLE_TO_MIDDLE', 1); + AVOID_OVERLAP = new EdgeRoutingMode('AVOID_OVERLAP', 2); +} + +function EdgeRoutingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_73(name_0){ + $clinit_EdgeRoutingMode(); + return valueOf(($clinit_EdgeRoutingMode$Map() , $MAP_63), name_0); +} + +function values_81(){ + $clinit_EdgeRoutingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_EdgeRoutingMode_2_classLit, 1), $intern_37, 392, 0, [NONE_11, MIDDLE_TO_MIDDLE, AVOID_OVERLAP]); +} + +defineClass(392, 22, {3:1, 34:1, 22:1, 392:1}, EdgeRoutingMode); +var AVOID_OVERLAP, MIDDLE_TO_MIDDLE, NONE_11; +var Lorg_eclipse_elk_alg_mrtree_options_EdgeRoutingMode_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'EdgeRoutingMode', 392, Ljava_lang_Enum_2_classLit, values_81, valueOf_73); +function $clinit_EdgeRoutingMode$Map(){ + $clinit_EdgeRoutingMode$Map = emptyMethod; + $MAP_63 = createValueOfMap(($clinit_EdgeRoutingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_EdgeRoutingMode_2_classLit, 1), $intern_37, 392, 0, [NONE_11, MIDDLE_TO_MIDDLE, AVOID_OVERLAP]))); +} + +var $MAP_63; +function $clinit_InternalProperties_2(){ + $clinit_InternalProperties_2 = emptyMethod; + ORIGIN_1 = new Property('origin'); + new Property('random'); + new Property_0('DEPTH', valueOf_3(0)); + FAN = new Property_0('FAN', valueOf_3(0)); + DESCENDANTS = new Property_0('DESCENDANTS', valueOf_3(0)); + ROOT_0 = new Property_0('ROOT', ($clinit_Boolean() , false)); + LEFTNEIGHBOR = new Property_0('LEFTNEIGHBOR', null); + RIGHTNEIGHBOR = new Property_0('RIGHTNEIGHBOR', null); + LEFTSIBLING = new Property_0('LEFTSIBLING', null); + RIGHTSIBLING = new Property_0('RIGHTSIBLING', null); + DUMMY = new Property_0('DUMMY', false); + new Property_0('LEVEL', valueOf_3(0)); + REMOVABLE_EDGES = new Property_0('REMOVABLE_EDGES', new LinkedList); + XCOOR = new Property_0('XCOOR', valueOf_3(0)); + YCOOR = new Property_0('YCOOR', valueOf_3(0)); + LEVELHEIGHT = new Property_0('LEVELHEIGHT', 0); + LEVELMIN = new Property_0('LEVELMIN', 0); + LEVELMAX = new Property_0('LEVELMAX', 0); + GRAPH_XMIN = new Property_0('GRAPH_XMIN', 0); + GRAPH_YMIN = new Property_0('GRAPH_YMIN', 0); + GRAPH_XMAX = new Property_0('GRAPH_XMAX', 0); + GRAPH_YMAX = new Property_0('GRAPH_YMAX', 0); + COMPACT_LEVEL_ASCENSION = new Property_0('COMPACT_LEVEL_ASCENSION', false); + COMPACT_CONSTRAINTS = new Property_0('COMPACT_CONSTRAINTS', new ArrayList); + ID = new Property_0('ID', ''); + POSITION_0 = new Property_0('POSITION', valueOf_3(0)); + PRELIM = new Property_0('PRELIM', 0); + MODIFIER = new Property_0('MODIFIER', 0); + BB_UPLEFT_0 = new Property('boundingBox.upLeft'); + BB_LOWRIGHT_0 = new Property('boundingBox.lowRight'); +} + +var BB_LOWRIGHT_0, BB_UPLEFT_0, COMPACT_CONSTRAINTS, COMPACT_LEVEL_ASCENSION, DESCENDANTS, DUMMY, FAN, GRAPH_XMAX, GRAPH_XMIN, GRAPH_YMAX, GRAPH_YMIN, ID, LEFTNEIGHBOR, LEFTSIBLING, LEVELHEIGHT, LEVELMAX, LEVELMIN, MODIFIER, ORIGIN_1, POSITION_0, PRELIM, REMOVABLE_EDGES, RIGHTNEIGHBOR, RIGHTSIBLING, ROOT_0, XCOOR, YCOOR; +function $clinit_MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider = emptyMethod; + COMPACTION = new Property_1('org.eclipse.elk.mrtree.compaction', ($clinit_Boolean() , false)); + EDGE_END_TEXTURE_LENGTH = new Property_1('org.eclipse.elk.mrtree.edgeEndTextureLength', 7); + valueOf_3(0); + TREE_LEVEL = new Property_1('org.eclipse.elk.mrtree.treeLevel', valueOf_3(0)); + POSITION_CONSTRAINT = new Property_1('org.eclipse.elk.mrtree.positionConstraint', valueOf_3(-1)); + WEIGHTING_DEFAULT = ($clinit_OrderWeighting() , MODEL_ORDER_2); + WEIGHTING = new Property_1('org.eclipse.elk.mrtree.weighting', WEIGHTING_DEFAULT); + EDGE_ROUTING_MODE_DEFAULT = ($clinit_EdgeRoutingMode() , AVOID_OVERLAP); + EDGE_ROUTING_MODE = new Property_1('org.eclipse.elk.mrtree.edgeRoutingMode', EDGE_ROUTING_MODE_DEFAULT); + SEARCH_ORDER_DEFAULT = ($clinit_TreeifyingOrder() , DFS); + SEARCH_ORDER = new Property_1('org.eclipse.elk.mrtree.searchOrder', SEARCH_ORDER_DEFAULT); +} + +function MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider(); +} + +defineClass(862, 1, $intern_90, MrTreeMetaDataProvider); +_.apply_4 = function apply_157(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.compaction'), ''), 'Position Constraint'), 'Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.edgeEndTextureLength'), ''), 'Edge End Texture Length'), 'Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing.'), 7), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.treeLevel'), ''), 'Tree Level'), 'The index for the tree level the node is in'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.positionConstraint'), ''), 'Position Constraint'), 'When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint'), valueOf_3(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.weighting'), ''), 'Weighting of Nodes'), 'Which weighting to use when computing a node order.'), WEIGHTING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.edgeRoutingMode'), ''), 'Edge Routing Mode'), 'Chooses an Edge Routing algorithm.'), EDGE_ROUTING_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_EdgeRoutingMode_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.searchOrder'), ''), 'Search Order'), 'Which search order to use when computing a spanning tree.'), SEARCH_ORDER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit), of_1(PARENTS)))); + $apply_18((new MrTreeOptions , registry)); +} +; +var COMPACTION, EDGE_END_TEXTURE_LENGTH, EDGE_ROUTING_MODE, EDGE_ROUTING_MODE_DEFAULT, POSITION_CONSTRAINT, SEARCH_ORDER, SEARCH_ORDER_DEFAULT, TREE_LEVEL, WEIGHTING, WEIGHTING_DEFAULT; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeMetaDataProvider', 862); +function $clinit_MrTreeOptions(){ + $clinit_MrTreeOptions = emptyMethod; + PADDING_DEFAULT_1 = new ElkPadding_0(20); + PADDING_2 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_1); + SPACING_NODE_NODE_1 = new Property_2(SPACING_NODE_NODE_6, 20); + SPACING_EDGE_NODE_0 = new Property_2(SPACING_EDGE_NODE_1, 3); + ASPECT_RATIO_2 = new Property_2(ASPECT_RATIO_5, $intern_102); + PRIORITY_1 = new Property_2(PRIORITY_3, valueOf_3(1)); + SEPARATE_CONNECTED_COMPONENTS_1 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + DEBUG_MODE_0 = DEBUG_MODE_3; + DIRECTION_DEFAULT_0 = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION_0 = new Property_2(DIRECTION_1, DIRECTION_DEFAULT_0); + INTERACTIVE_5 = INTERACTIVE_8; + INTERACTIVE_LAYOUT_0 = INTERACTIVE_LAYOUT_2; + NODE_SIZE_CONSTRAINTS_2 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_FIXED_GRAPH_SIZE_1 = NODE_SIZE_FIXED_GRAPH_SIZE_3; + NODE_SIZE_MINIMUM_1 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_2 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_2 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_1 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_2 = PORT_LABELS_PLACEMENT_5; + WEIGHTING_0 = ($clinit_MrTreeMetaDataProvider() , WEIGHTING); + SEARCH_ORDER_0 = SEARCH_ORDER; + TOPDOWN_LAYOUT_1 = TOPDOWN_LAYOUT_2; + TOPDOWN_SCALE_FACTOR_1 = TOPDOWN_SCALE_FACTOR_2; + TOPDOWN_HIERARCHICAL_NODE_WIDTH_1 = TOPDOWN_HIERARCHICAL_NODE_WIDTH_2; + TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_1 = TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_2; + TOPDOWN_NODE_TYPE_DEFAULT_1 = ($clinit_TopdownNodeTypes() , HIERARCHICAL_NODE); + new Property_2(TOPDOWN_NODE_TYPE, TOPDOWN_NODE_TYPE_DEFAULT_1); + POSITION_CONSTRAINT_0 = POSITION_CONSTRAINT; + EDGE_ROUTING_MODE_0 = EDGE_ROUTING_MODE; + TREE_LEVEL_0 = TREE_LEVEL; + COMPACTION_0 = COMPACTION; + EDGE_END_TEXTURE_LENGTH_0 = EDGE_END_TEXTURE_LENGTH; +} + +function $apply_18(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.mrtree'), 'ELK Mr. Tree'), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new MrTreeOptions$MrtreeFactory), 'org.eclipse.elk.tree'), of_1(($clinit_GraphFeature() , DISCONNECTED))))); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.padding', PADDING_DEFAULT_1); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.spacing.nodeNode', 20); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.spacing.edgeNode', 3); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.priority', valueOf_3(1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.direction', DIRECTION_DEFAULT_0); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_5)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.weighting', $getDefault(WEIGHTING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.searchOrder', $getDefault(SEARCH_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.topdownLayout', $getDefault(TOPDOWN_LAYOUT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.topdown.scaleFactor', $getDefault(TOPDOWN_SCALE_FACTOR_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.topdown.hierarchicalNodeWidth', $getDefault(TOPDOWN_HIERARCHICAL_NODE_WIDTH_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.topdown.hierarchicalNodeAspectRatio', $getDefault(TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.topdown.nodeType', TOPDOWN_NODE_TYPE_DEFAULT_1); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.positionConstraint', $getDefault(POSITION_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.edgeRoutingMode', $getDefault(EDGE_ROUTING_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.treeLevel', $getDefault(TREE_LEVEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.compaction', $getDefault(COMPACTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.edgeEndTextureLength', $getDefault(EDGE_END_TEXTURE_LENGTH_0)); +} + +function MrTreeOptions(){ + $clinit_MrTreeOptions(); +} + +defineClass(1006, 1, $intern_90, MrTreeOptions); +_.apply_4 = function apply_158(registry){ + $apply_18(registry); +} +; +var ASPECT_RATIO_2, COMPACTION_0, DEBUG_MODE_0, DIRECTION_0, DIRECTION_DEFAULT_0, EDGE_END_TEXTURE_LENGTH_0, EDGE_ROUTING_MODE_0, INTERACTIVE_5, INTERACTIVE_LAYOUT_0, NODE_LABELS_PLACEMENT_2, NODE_SIZE_CONSTRAINTS_2, NODE_SIZE_FIXED_GRAPH_SIZE_1, NODE_SIZE_MINIMUM_1, NODE_SIZE_OPTIONS_2, OMIT_NODE_MICRO_LAYOUT_1, PADDING_2, PADDING_DEFAULT_1, PORT_LABELS_PLACEMENT_2, POSITION_CONSTRAINT_0, PRIORITY_1, SEARCH_ORDER_0, SEPARATE_CONNECTED_COMPONENTS_1, SPACING_EDGE_NODE_0, SPACING_NODE_NODE_1, TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_1, TOPDOWN_HIERARCHICAL_NODE_WIDTH_1, TOPDOWN_LAYOUT_1, TOPDOWN_NODE_TYPE_DEFAULT_1, TOPDOWN_SCALE_FACTOR_1, TREE_LEVEL_0, WEIGHTING_0; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions', 1006); +function MrTreeOptions$MrtreeFactory(){ +} + +defineClass(1007, 1, {}, MrTreeOptions$MrtreeFactory); +_.create_0 = function create_21(){ + var provider; + return provider = new TreeLayoutProvider , provider; +} +; +_.destroy = function destroy_3(obj){ +} +; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions$MrtreeFactory_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions/MrtreeFactory', 1007); +function $clinit_OrderWeighting(){ + $clinit_OrderWeighting = emptyMethod; + MODEL_ORDER_2 = new OrderWeighting('MODEL_ORDER', 0); + DESCENDANTS_0 = new OrderWeighting('DESCENDANTS', 1); + FAN_0 = new OrderWeighting('FAN', 2); + CONSTRAINT = new OrderWeighting('CONSTRAINT', 3); +} + +function OrderWeighting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_74(name_0){ + $clinit_OrderWeighting(); + return valueOf(($clinit_OrderWeighting$Map() , $MAP_64), name_0); +} + +function values_82(){ + $clinit_OrderWeighting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_37, 353, 0, [MODEL_ORDER_2, DESCENDANTS_0, FAN_0, CONSTRAINT]); +} + +defineClass(353, 22, {3:1, 34:1, 22:1, 353:1}, OrderWeighting); +var CONSTRAINT, DESCENDANTS_0, FAN_0, MODEL_ORDER_2; +var Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'OrderWeighting', 353, Ljava_lang_Enum_2_classLit, values_82, valueOf_74); +function $clinit_OrderWeighting$Map(){ + $clinit_OrderWeighting$Map = emptyMethod; + $MAP_64 = createValueOfMap(($clinit_OrderWeighting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_37, 353, 0, [MODEL_ORDER_2, DESCENDANTS_0, FAN_0, CONSTRAINT]))); +} + +var $MAP_64; +function $clinit_TreeifyingOrder(){ + $clinit_TreeifyingOrder = emptyMethod; + DFS = new TreeifyingOrder('DFS', 0); + BFS = new TreeifyingOrder('BFS', 1); +} + +function TreeifyingOrder(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_75(name_0){ + $clinit_TreeifyingOrder(); + return valueOf(($clinit_TreeifyingOrder$Map() , $MAP_65), name_0); +} + +function values_83(){ + $clinit_TreeifyingOrder(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_37, 433, 0, [DFS, BFS]); +} + +defineClass(433, 22, {3:1, 34:1, 22:1, 433:1}, TreeifyingOrder); +var BFS, DFS; +var Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'TreeifyingOrder', 433, Ljava_lang_Enum_2_classLit, values_83, valueOf_75); +function $clinit_TreeifyingOrder$Map(){ + $clinit_TreeifyingOrder$Map = emptyMethod; + $MAP_65 = createValueOfMap(($clinit_TreeifyingOrder() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_37, 433, 0, [DFS, BFS]))); +} + +var $MAP_65; +function $clinit_DFSTreeifyer(){ + $clinit_DFSTreeifyer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG = $addAfter(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P3_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy_0() , DETREEIFYING_PROC)); +} + +function $bfs(this$static, startNode){ + var node, nodeQueue, tEdge, tEdge$iterator, target; + nodeQueue = new LinkedList; + $addNode_0(nodeQueue, startNode, nodeQueue.tail.prev, nodeQueue.tail); + do { + node = (checkCriticalElement(nodeQueue.size_0 != 0) , castTo($removeNode_0(nodeQueue, nodeQueue.header.next_0), 40)); + this$static.visited[node.id_0] = 1; + for (tEdge$iterator = $listIterator_2(node.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + target = tEdge.target; + this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$addNode_0(nodeQueue, target, nodeQueue.tail.prev, nodeQueue.tail); + } + } + while (nodeQueue.size_0 != 0); +} + +function $collectEdges(this$static, tGraph){ + var tEdge, tEdge$iterator, tNode, tNode$iterator, treeifyingOrder; + treeifyingOrder = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , SEARCH_ORDER_0)), 433); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + if (this$static.visited[tNode.id_0] == 0) { + switch (treeifyingOrder.ordinal) { + case 0: + $dfs_6(this$static, tNode); + break; + case 1: + $bfs(this$static, tNode); + } + this$static.visited[tNode.id_0] = 2; + } + } + for (tEdge$iterator = $listIterator_2(this$static.eliminated, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + $advanceToFind(tEdge.source.outgoingEdges, tEdge, true); + $advanceToFind(tEdge.target.incomingEdges, tEdge, true); + } + $setProperty_0(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES), this$static.eliminated); +} + +function $dfs_6(this$static, tNode){ + var tEdge, tEdge$iterator, target; + this$static.visited[tNode.id_0] = 1; + for (tEdge$iterator = $listIterator_2(tNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + target = tEdge.target; + this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$dfs_6(this$static, target); + } +} + +function $init_1(this$static, tGraph){ + var id_0, node, node$iterator, size_0; + size_0 = tGraph.nodes.size_0; + this$static.eliminated = new LinkedList; + this$static.visited = initUnidimensionalArray(I_classLit, $intern_49, 28, size_0, 15, 1); + id_0 = 0; + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_9(node$iterator), 40); + node.id_0 = id_0++; + } +} + +function $process_93(this$static, tGraph, progressMonitor){ + progressMonitor.begin('DFS Treeifying phase', 1); + $init_1(this$static, tGraph); + $collectEdges(this$static, tGraph); + this$static.eliminated = null; + this$static.visited = null; + progressMonitor.done_1(); +} + +function DFSTreeifyer(){ + $clinit_DFSTreeifyer(); +} + +defineClass(1486, 1, $intern_113, DFSTreeifyer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_23(graph){ + return castTo(graph, 121) , INTERMEDIATE_PROCESSING_CONFIG; +} +; +_.process = function process_89(tGraph, progressMonitor){ + $process_93(this, castTo(tGraph, 121), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG; +var Lorg_eclipse_elk_alg_mrtree_p1treeify_DFSTreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p1treeify', 'DFSTreeifyer', 1486); +function $clinit_NodeOrderer(){ + $clinit_NodeOrderer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_0 = $add_17($add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING)), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), FAN_PROC), LEVEL_PROC); +} + +function $orderLevelConstraint(this$static, currentLevel, progressMonitor){ + var children, curNode, i, i0, i1, i2, i3, inBoundNodes, inners, j, newTargetPos, outOfBoundNodes, sortedNodes, sortedOutEdges, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$array, tPNode$index, tPNode$max, targetPos, undefinedNodes; + progressMonitor.begin('Processor arrange level', 1); + undefinedNodes = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(currentLevel, 16)), new NodeOrderer$lambda$1$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + inBoundNodes = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(currentLevel, 16)), new NodeOrderer$lambda$2$Type(currentLevel)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + outOfBoundNodes = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(currentLevel, 16)), new NodeOrderer$lambda$3$Type(currentLevel)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + sortedNodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, $intern_125, 40, currentLevel.size_1(), 0, 1); + for (i0 = 0; i0 < inBoundNodes.size_1(); i0++) { + curNode = castTo(inBoundNodes.get_0(i0), 40); + targetPos = castTo($getProperty(curNode, ($clinit_MrTreeOptions() , POSITION_CONSTRAINT_0)), 17).value_0; + if (targetPos >= 0 && targetPos < inBoundNodes.size_1() && !sortedNodes[targetPos]) { + sortedNodes[targetPos] = curNode; + inBoundNodes.remove_2(i0); + --i0; + } + } + for (i1 = 0; i1 < inBoundNodes.size_1(); i1++) { + curNode = castTo(inBoundNodes.get_0(i1), 40); + targetPos = castTo($getProperty(curNode, ($clinit_MrTreeOptions() , POSITION_CONSTRAINT_0)), 17).value_0; + for (j = 0;; j++) { + newTargetPos = targetPos + j; + if (newTargetPos < sortedNodes.length && newTargetPos >= 0 && !sortedNodes[newTargetPos]) { + sortedNodes[newTargetPos] = curNode; + inBoundNodes.remove_2(i1); + --i1; + break; + } + newTargetPos = targetPos - j; + if (newTargetPos < sortedNodes.length && newTargetPos >= 0 && !sortedNodes[newTargetPos]) { + sortedNodes[newTargetPos] = curNode; + inBoundNodes.remove_2(i1); + --i1; + break; + } + } + } + outOfBoundNodes.sort_0(new NodeOrderer$lambda$4$Type); + for (i2 = sortedNodes.length - 1; i2 >= 0; i2--) { + if (!sortedNodes[i2] && !outOfBoundNodes.isEmpty()) { + sortedNodes[i2] = castTo(outOfBoundNodes.get_0(0), 40); + outOfBoundNodes.remove_2(0); + } + } + for (i3 = 0; i3 < sortedNodes.length; i3++) { + if (!sortedNodes[i3] && !undefinedNodes.isEmpty()) { + sortedNodes[i3] = castTo(undefinedNodes.get_0(0), 40); + undefinedNodes.remove_2(0); + } + } + for (i = 0; i < sortedNodes.length; i++) { + $setProperty_0(sortedNodes[i], ($clinit_InternalProperties_2() , POSITION_0), valueOf_3(i)); + } + inners = castTo($toArray_6($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(currentLevel, 16)), new NodeOrderer$lambda$5$Type), new NodeOrderer$0methodref$lambda$6$Type), 534); + for (tPNode$array = inners , tPNode$index = 0 , tPNode$max = tPNode$array.length; tPNode$index < tPNode$max; ++tPNode$index) { + tPNode = tPNode$array[tPNode$index]; + children = $getChildrenCopy(tPNode); + $orderLevelConstraint(this$static, children, progressMonitor.subTask(1 / inners.length | 0)); + $clinit_Collections(); + $sort_0(children, new PropertyHolderComparator(($clinit_InternalProperties_2() , POSITION_0))); + sortedOutEdges = new LinkedList; + for (tNode$iterator = $listIterator_2(children, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + tEdge.target == tNode && ($addNode_0(sortedOutEdges, tEdge, sortedOutEdges.tail.prev, sortedOutEdges.tail) , true); + } + } + $reset_0(tPNode.outgoingEdges); + $addAll(tPNode.outgoingEdges, sortedOutEdges); + } + progressMonitor.done_1(); +} + +function $orderLevelFanDescendants(this$static, currentLevel, progressMonitor){ + var children, fillGap, firstOcc, inners, it, leaves, notNull, pos, size_0, sortProperty, sortedOutEdges, tENode, tENode$iterator, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$iterator, tmp; + progressMonitor.begin('Processor arrange level', 1); + sortProperty = ($clinit_InternalProperties_2() , FAN); + this$static.weighting == ($clinit_OrderWeighting() , DESCENDANTS_0) && (sortProperty = DESCENDANTS); + pos = 0; + $clinit_Collections(); + currentLevel.sort_0(new PropertyHolderComparator(sortProperty)); + firstOcc = currentLevel.size_1(); + it = currentLevel.listIterator_1(currentLevel.size_1()); + notNull = true; + while (notNull && it.hasPrevious()) { + tNode = castTo(it.previous_0(), 40); + castTo($getProperty(tNode, sortProperty), 17).value_0 == 0?--firstOcc:(notNull = false); + } + tmp = currentLevel.subList(0, firstOcc); + inners = new LinkedList_0(tmp); + tmp = currentLevel.subList(firstOcc, currentLevel.size_1()); + leaves = new LinkedList_0(tmp); + if (inners.size_0 == 0) { + for (tENode$iterator = $listIterator_2(leaves, 0); tENode$iterator.currentNode != tENode$iterator.this$01.tail;) { + tENode = castTo($next_9(tENode$iterator), 40); + $setProperty_0(tENode, POSITION_0, valueOf_3(pos++)); + } + } + else { + size_0 = inners.size_0; + for (tPNode$iterator = $listIterator_2(inners, 0); tPNode$iterator.currentNode != tPNode$iterator.this$01.tail;) { + tPNode = castTo($next_9(tPNode$iterator), 40); + $setProperty_0(tPNode, POSITION_0, valueOf_3(pos++)); + children = $getChildrenCopy(tPNode); + $orderLevelFanDescendants(this$static, children, progressMonitor.subTask(1 / size_0 | 0)); + $sort_0(children, reverseOrder(new PropertyHolderComparator(POSITION_0))); + sortedOutEdges = new LinkedList; + for (tNode$iterator = $listIterator_2(children, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + tEdge.target == tNode && ($addNode_0(sortedOutEdges, tEdge, sortedOutEdges.tail.prev, sortedOutEdges.tail) , true); + } + } + $reset_0(tPNode.outgoingEdges); + $addAll(tPNode.outgoingEdges, sortedOutEdges); + it = $listIterator_2(leaves, leaves.size_0); + fillGap = tPNode.outgoingEdges.size_0; + notNull = true; + while (0 < fillGap && notNull && it.hasPrevious()) { + tNode = castTo(it.previous_0(), 40); + if (castTo($getProperty(tNode, sortProperty), 17).value_0 == 0) { + $setProperty_0(tNode, POSITION_0, valueOf_3(pos++)); + --fillGap; + it.remove(); + } + else { + notNull = false; + } + } + } + } + progressMonitor.done_1(); +} + +function $process_94(this$static, tGraph, progressMonitor){ + var root; + progressMonitor.begin('Processor arrange node', 1); + $booleanValue(castToBoolean($getProperty(tGraph, ($clinit_MrTreeOptions() , DEBUG_MODE_0)))); + root = castTo($get_17($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new NodeOrderer$lambda$0$Type))), 40); + this$static.weighting = castTo($getProperty(tGraph, WEIGHTING_0), 353); + this$static.weighting == ($clinit_OrderWeighting() , FAN_0) || this$static.weighting == DESCENDANTS_0?$orderLevelFanDescendants(this$static, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_125, 40, 0, [root])), progressMonitor.subTask(1)):this$static.weighting == CONSTRAINT && $orderLevelConstraint(this$static, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_125, 40, 0, [root])), progressMonitor.subTask(1)); + progressMonitor.done_1(); +} + +function NodeOrderer(){ + $clinit_NodeOrderer(); +} + +function lambda$2_10(currentLevel_0, x_1){ + $clinit_NodeOrderer(); + return castTo($getProperty(x_1, ($clinit_MrTreeOptions() , POSITION_CONSTRAINT_0)), 17).value_0 < currentLevel_0.size_1() && castTo($getProperty(x_1, POSITION_CONSTRAINT_0), 17).value_0 >= 0; +} + +function lambda$3_7(currentLevel_0, x_1){ + $clinit_NodeOrderer(); + return castTo($getProperty(x_1, ($clinit_MrTreeOptions() , POSITION_CONSTRAINT_0)), 17).value_0 >= currentLevel_0.size_1(); +} + +function lambda$4_9(x_0, y_1){ + $clinit_NodeOrderer(); + return -compare_5(castTo($getProperty(x_0, ($clinit_MrTreeOptions() , POSITION_CONSTRAINT_0)), 17).value_0, castTo($getProperty(y_1, POSITION_CONSTRAINT_0), 17).value_0); +} + +defineClass(1487, 1, $intern_113, NodeOrderer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_24(graph){ + return castTo(graph, 121) , INTERMEDIATE_PROCESSING_CONFIG_0; +} +; +_.process = function process_90(tGraph, progressMonitor){ + $process_94(this, castTo(tGraph, 121), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_0; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer', 1487); +function $apply_19(arg0){ + return $clinit_NodeOrderer() , initUnidimensionalArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, $intern_125, 40, arg0, 0, 1); +} + +function NodeOrderer$0methodref$lambda$6$Type(){ +} + +defineClass(1494, 1, {}, NodeOrderer$0methodref$lambda$6$Type); +_.apply_2 = function apply_159(arg0){ + return $apply_19(arg0); +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$0methodref$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/0methodref$lambda$6$Type', 1494); +function NodeOrderer$lambda$0$Type(){ +} + +defineClass(1488, 1, $intern_40, NodeOrderer$lambda$0$Type); +_.test_0 = function test_114(arg0){ + return $clinit_NodeOrderer() , $booleanValue(castToBoolean($getProperty(castTo(arg0, 40), ($clinit_InternalProperties_2() , ROOT_0)))); +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/lambda$0$Type', 1488); +function NodeOrderer$lambda$1$Type(){ +} + +defineClass(1489, 1, $intern_40, NodeOrderer$lambda$1$Type); +_.test_0 = function test_115(arg0){ + return $clinit_NodeOrderer() , castTo($getProperty(castTo(arg0, 40), ($clinit_MrTreeOptions() , POSITION_CONSTRAINT_0)), 17).value_0 < 0; +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/lambda$1$Type', 1489); +function NodeOrderer$lambda$2$Type(currentLevel_0){ + this.currentLevel_0 = currentLevel_0; +} + +defineClass(1490, 1, $intern_40, NodeOrderer$lambda$2$Type); +_.test_0 = function test_116(arg0){ + return lambda$2_10(this.currentLevel_0, castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/lambda$2$Type', 1490); +function NodeOrderer$lambda$3$Type(currentLevel_0){ + this.currentLevel_0 = currentLevel_0; +} + +defineClass(1491, 1, $intern_40, NodeOrderer$lambda$3$Type); +_.test_0 = function test_117(arg0){ + return lambda$3_7(this.currentLevel_0, castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/lambda$3$Type', 1491); +function NodeOrderer$lambda$4$Type(){ +} + +defineClass(1492, 1, $intern_88, NodeOrderer$lambda$4$Type); +_.compare_1 = function compare_91(arg0, arg1){ + return lambda$4_9(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_178(other){ + return this === other; +} +; +_.reversed = function reversed_83(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/lambda$4$Type', 1492); +function NodeOrderer$lambda$5$Type(){ +} + +defineClass(1493, 1, $intern_40, NodeOrderer$lambda$5$Type); +_.test_0 = function test_118(arg0){ + return $clinit_NodeOrderer() , castTo($getProperty(castTo(arg0, 40), ($clinit_InternalProperties_2() , FAN)), 17).value_0 != 0; +} +; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer/lambda$5$Type', 1493); +function $clinit_NodePlacer(){ + $clinit_NodePlacer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_1 = $add_17($add_17($before($add_17($add_17($before($addBefore(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), P3_NODE_PLACEMENT), LEVEL_HEIGHT), NEIGHBORS_PROC), P4_EDGE_ROUTING), DIRECTION_PROC), NODE_POSITION_PROC); +} + +function $apportion(this$static, cN){ + var ancestorLeftmost, ancestorNeighbor, compareDepth, edgesIter, edgesIter0, i, leftModSum, leftSibling, leftSiblings, leftmost, mean, moveDistance, neighbor, newMod, newPr, portion, prL, prN, rightModSum; + leftmost = castTo(getNext((edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0))), 40); + neighbor = leftmost?castTo($getProperty(leftmost, ($clinit_InternalProperties_2() , LEFTNEIGHBOR)), 40):null; + compareDepth = 1; + while (!!leftmost && !!neighbor) { + leftModSum = 0; + rightModSum = 0; + ancestorLeftmost = leftmost; + ancestorNeighbor = neighbor; + for (i = 0; i < compareDepth; i++) { + ancestorLeftmost = $getParent(ancestorLeftmost); + ancestorNeighbor = $getParent(ancestorNeighbor); + rightModSum += $doubleValue(castToDouble($getProperty(ancestorLeftmost, ($clinit_InternalProperties_2() , MODIFIER)))); + leftModSum += $doubleValue(castToDouble($getProperty(ancestorNeighbor, MODIFIER))); + } + prN = $doubleValue(castToDouble($getProperty(neighbor, ($clinit_InternalProperties_2() , PRELIM)))); + prL = $doubleValue(castToDouble($getProperty(leftmost, PRELIM))); + mean = $meanNodeWidth(this$static, leftmost, neighbor); + moveDistance = prN + leftModSum + this$static.spacing + mean - prL - rightModSum; + if (0 < moveDistance) { + leftSibling = cN; + leftSiblings = 0; + while (!!leftSibling && leftSibling != ancestorNeighbor) { + ++leftSiblings; + leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 40); + } + if (leftSibling) { + portion = moveDistance / leftSiblings; + leftSibling = cN; + while (leftSibling != ancestorNeighbor) { + newPr = $doubleValue(castToDouble($getProperty(leftSibling, PRELIM))) + moveDistance; + $setProperty_0(leftSibling, PRELIM, newPr); + newMod = $doubleValue(castToDouble($getProperty(leftSibling, MODIFIER))) + moveDistance; + $setProperty_0(leftSibling, MODIFIER, newMod); + moveDistance -= portion; + leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 40); + } + } + else { + return; + } + } + ++compareDepth; + leftmost.outgoingEdges.size_0 == 0?(leftmost = getLeftMost(new TNode$2(cN), compareDepth)):(leftmost = castTo(getNext((edgesIter = $listIterator_2((new TNode$2(leftmost)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 40)); + neighbor = leftmost?castTo($getProperty(leftmost, LEFTNEIGHBOR), 40):null; + } +} + +function $firstWalk(this$static, cN){ + var child, child$iterator, edgesIter, edgesIter0, edgesIter1, lM, lS, midPoint, p, rM; + $setProperty_0(cN, ($clinit_InternalProperties_2() , MODIFIER), 0); + lS = castTo($getProperty(cN, LEFTSIBLING), 40); + if (cN.outgoingEdges.size_0 == 0) { + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(this$static, lS, cN); + $setProperty_0(cN, PRELIM, p); + } + else { + $setProperty_0(cN, PRELIM, 0); + } + } + else { + for (child$iterator = (edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0)); $hasNext_5(child$iterator.val$edgesIter2);) { + child = castTo($next_9(child$iterator.val$edgesIter2), 65).target; + $firstWalk(this$static, child); + } + lM = castTo(getNext((edgesIter1 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter1))), 40); + rM = castTo(getLast_1((edgesIter = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 40); + midPoint = ($doubleValue(castToDouble($getProperty(rM, PRELIM))) + $doubleValue(castToDouble($getProperty(lM, PRELIM)))) / 2; + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(this$static, lS, cN); + $setProperty_0(cN, PRELIM, p); + $setProperty_0(cN, MODIFIER, $doubleValue(castToDouble($getProperty(cN, PRELIM))) - midPoint); + $apportion(this$static, cN); + } + else { + $setProperty_0(cN, PRELIM, midPoint); + } + } +} + +function $meanNodeWidth(this$static, leftNode, rightNode){ + var nodeWidth; + nodeWidth = 0; + !!leftNode && ($isVertical(this$static.direction)?(nodeWidth += leftNode.size_0.x_0 / 2):(nodeWidth += leftNode.size_0.y_0 / 2)); + !!rightNode && ($isVertical(this$static.direction)?(nodeWidth += rightNode.size_0.x_0 / 2):(nodeWidth += rightNode.size_0.y_0 / 2)); + return nodeWidth; +} + +function $process_95(this$static, tGraph, progressMonitor){ + var root, roots, tNode, tNode$iterator; + progressMonitor.begin('Processor order nodes', 2); + this$static.spacing = $doubleValue(castToDouble($getProperty(tGraph, ($clinit_MrTreeOptions() , SPACING_NODE_NODE_1)))); + this$static.direction = castTo($getProperty(tGraph, DIRECTION_0), 88); + if (this$static.direction == ($clinit_Direction_0() , UNDEFINED_2)) { + this$static.direction = DOWN_1; + $setProperty_0(tGraph, DIRECTION_0, this$static.direction); + } + roots = new LinkedList; + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_9(tNode$iterator), 40); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && ($addNode_0(roots, tNode, roots.tail.prev, roots.tail) , true); + } + root = (checkCriticalElement(roots.size_0 != 0) , castTo(roots.header.next_0.value_0, 40)); + $firstWalk(this$static, root); + progressMonitor.worked(1); + $secondWalk(this$static, root, 0 - $doubleValue(castToDouble($getProperty(root, ($clinit_InternalProperties_2() , LEVELHEIGHT)))) / 2, 0); + progressMonitor.worked(1); + progressMonitor.done_1(); +} + +function $secondWalk(this$static, tNode, yCoor, modsum){ + var edgesIter, xTemp, yTemp; + if (tNode) { + xTemp = $doubleValue(castToDouble($getProperty(tNode, ($clinit_InternalProperties_2() , PRELIM)))) + modsum; + yTemp = yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) / 2; + $setProperty_0(tNode, XCOOR, valueOf_3(toInt_0(fromDouble_0($wnd.Math.round(xTemp))))); + $setProperty_0(tNode, YCOOR, valueOf_3(toInt_0(fromDouble_0($wnd.Math.round(yTemp))))); + tNode.outgoingEdges.size_0 == 0 || $secondWalk(this$static, castTo(getNext((edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 40), yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) + this$static.spacing, modsum + $doubleValue(castToDouble($getProperty(tNode, MODIFIER)))); + $getProperty(tNode, RIGHTSIBLING) != null && $secondWalk(this$static, castTo($getProperty(tNode, RIGHTSIBLING), 40), yCoor, modsum); + } +} + +function NodePlacer(){ + $clinit_NodePlacer(); +} + +defineClass(1495, 1, $intern_113, NodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_25(graph){ + return castTo(graph, 121) , INTERMEDIATE_PROCESSING_CONFIG_1; +} +; +_.process = function process_91(tGraph, progressMonitor){ + $process_95(this, castTo(tGraph, 121), progressMonitor); +} +; +_.spacing = 0; +var INTERMEDIATE_PROCESSING_CONFIG_1; +var Lorg_eclipse_elk_alg_mrtree_p3place_NodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p3place', 'NodePlacer', 1495); +function $clinit_EdgeRouter(){ + $clinit_EdgeRouter = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_2 = $add_17($add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P4_EDGE_ROUTING)), ($clinit_IntermediateProcessorStrategy_0() , LEVEL_COORDS)), COMPACTION_PROC), GRAPH_BOUNDS_PROC); +} + +function $avoidOverlapHandleCycleInducingEdges(e, d, tGraph, sideEdges, nodeBendpointPadding, edgeEndTexturePadding, inOuts){ + var bendTmp, finalSideOneEdges, finalSideTwoEdges, middleTree, s, sideOneEdges, sideTwoEdges, t; + sideOneEdges = castTo(sideEdges.first, 17).value_0; + sideTwoEdges = castTo(sideEdges.second, 17).value_0; + s = e.source; + t = e.target; + bendTmp = 0; + middleTree = 0; + if (d == ($clinit_Direction_0() , LEFT_6) || d == RIGHT_6) { + middleTree = $getAsDouble($average($mapToDouble($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$5$Type), new EdgeRouter$1methodref$doubleValue$Type))); + if (s.pos.y_0 + s.size_0.y_0 / 2 > middleTree) { + finalSideTwoEdges = ++sideTwoEdges; + bendTmp = $doubleValue(castToDouble($get_17($max_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$7$Type(nodeBendpointPadding, finalSideTwoEdges)), new EdgeRouter$2methodref$compare$Type)))); + } + else { + finalSideOneEdges = ++sideOneEdges; + bendTmp = $doubleValue(castToDouble($get_17($min_0($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$9$Type(nodeBendpointPadding, finalSideOneEdges)), new EdgeRouter$3methodref$compare$Type)))); + } + } + else { + middleTree = $getAsDouble($average($mapToDouble($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$11$Type), new EdgeRouter$4methodref$doubleValue$Type))); + if (s.pos.x_0 + s.size_0.x_0 / 2 > middleTree) { + finalSideTwoEdges = ++sideTwoEdges; + bendTmp = $doubleValue(castToDouble($get_17($max_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$13$Type(nodeBendpointPadding, finalSideTwoEdges)), new EdgeRouter$5methodref$compare$Type)))); + } + else { + finalSideOneEdges = ++sideOneEdges; + bendTmp = $doubleValue(castToDouble($get_17($min_0($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$15$Type(nodeBendpointPadding, finalSideOneEdges)), new EdgeRouter$6methodref$compare$Type)))); + } + } + if (d == LEFT_6) { + $addLast_0(e.bendPoints, new KVector_1($doubleValue(castToDouble($getProperty(s, ($clinit_InternalProperties_2() , LEVELMIN)))) - nodeBendpointPadding, bendTmp)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 + t.size_0.x_0 + nodeBendpointPadding + edgeEndTexturePadding, bendTmp)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 + t.size_0.x_0 + nodeBendpointPadding + edgeEndTexturePadding, t.pos.y_0 + t.size_0.y_0 / 2)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 + t.size_0.x_0, t.pos.y_0 + t.size_0.y_0 / 2)); + } + else if (d == RIGHT_6) { + $addLast_0(e.bendPoints, new KVector_1($doubleValue(castToDouble($getProperty(s, ($clinit_InternalProperties_2() , LEVELMAX)))) + nodeBendpointPadding, s.pos.y_0 + s.size_0.y_0 / 2)); + $addLast_0(e.bendPoints, new KVector_1(s.pos.x_0 + s.size_0.x_0 + nodeBendpointPadding, bendTmp)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 - nodeBendpointPadding - edgeEndTexturePadding, bendTmp)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 - nodeBendpointPadding - edgeEndTexturePadding, t.pos.y_0 + t.size_0.y_0 / 2)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0, t.pos.y_0 + t.size_0.y_0 / 2)); + } + else if (d == UP_1) { + $addLast_0(e.bendPoints, new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(s, ($clinit_InternalProperties_2() , LEVELMIN)))) - nodeBendpointPadding)); + $addLast_0(e.bendPoints, new KVector_1(bendTmp, t.pos.y_0 + t.size_0.y_0 + nodeBendpointPadding + edgeEndTexturePadding)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 + t.size_0.x_0 / 2, t.pos.y_0 + t.size_0.y_0 + nodeBendpointPadding + edgeEndTexturePadding)); + $addLast_0(e.bendPoints, new KVector_1(t.pos.x_0 + t.size_0.x_0 / 2, t.pos.y_0 + t.size_0.y_0 + nodeBendpointPadding)); + } + else { + e.bendPoints.size_0 == 0 || (castTo($getLast(e.bendPoints), 8).y_0 = $doubleValue(castToDouble($getProperty(s, ($clinit_InternalProperties_2() , LEVELMAX)))) + nodeBendpointPadding * castTo(inOuts.second, 17).value_0); + $addLast_0(e.bendPoints, new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(s, ($clinit_InternalProperties_2() , LEVELMAX)))) + nodeBendpointPadding * castTo(inOuts.second, 17).value_0)); + $addLast_0(e.bendPoints, new KVector_1(bendTmp, t.pos.y_0 - nodeBendpointPadding * castTo(inOuts.first, 17).value_0 - edgeEndTexturePadding)); + } + return new Pair(valueOf_3(sideOneEdges), valueOf_3(sideTwoEdges)); +} + +function $avoidOverlapSetEndPoints(tGraph, d, nodeBendpointPadding, edgeEndTexturePadding){ + var i, ins, interpolation, lastX, lastY, levelStartCoord, n, n$iterator, nextX, nextY, num; + for (n$iterator = $listIterator_2(tGraph.nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + if ($equals_5(n.label_0, 'SUPER_ROOT')) { + continue; + } + ins = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(getAllIncomingEdges(n, tGraph), 16)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + d == ($clinit_Direction_0() , LEFT_6) || d == RIGHT_6?ins.sort_0(new EdgeRouter$lambda$19$Type):ins.sort_0(new EdgeRouter$lambda$20$Type); + num = ins.size_1(); + for (i = 0; i < num; i++) { + interpolation = num == 1?0.5:(1 + i) / (num + 1); + if (d == LEFT_6) { + levelStartCoord = $doubleValue(castToDouble($getProperty(n, ($clinit_InternalProperties_2() , LEVELMAX)))); + if (n.pos.x_0 + n.size_0.x_0 + edgeEndTexturePadding < levelStartCoord) { + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(levelStartCoord + nodeBendpointPadding, n.pos.y_0 + n.size_0.y_0 * interpolation)); + } + else if (castTo(ins.get_0(i), 65).bendPoints.size_0 > 0) { + lastX = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).x_0; + nextX = n.pos.x_0 + n.size_0.x_0 / 2; + lastY = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).y_0; + nextY = n.pos.y_0 + n.size_0.y_0 / 2; + edgeEndTexturePadding > 0 && $wnd.Math.abs(lastY - nextY) / ($wnd.Math.abs(lastX - nextX) / 40) > 50 && (nextY > lastY?$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 + edgeEndTexturePadding / 5.3, n.pos.y_0 + n.size_0.y_0 * interpolation - edgeEndTexturePadding / 2)):$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 + edgeEndTexturePadding / 5.3, n.pos.y_0 + n.size_0.y_0 * interpolation + edgeEndTexturePadding / 2))); + } + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0, n.pos.y_0 + n.size_0.y_0 * interpolation)); + } + else if (d == RIGHT_6) { + levelStartCoord = $doubleValue(castToDouble($getProperty(n, ($clinit_InternalProperties_2() , LEVELMIN)))); + if (n.pos.x_0 - edgeEndTexturePadding > levelStartCoord) { + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(levelStartCoord - nodeBendpointPadding, n.pos.y_0 + n.size_0.y_0 * interpolation)); + } + else if (castTo(ins.get_0(i), 65).bendPoints.size_0 > 0) { + lastX = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).x_0; + nextX = n.pos.x_0 + n.size_0.x_0 / 2; + lastY = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).y_0; + nextY = n.pos.y_0 + n.size_0.y_0 / 2; + edgeEndTexturePadding > 0 && $wnd.Math.abs(lastY - nextY) / ($wnd.Math.abs(lastX - nextX) / 40) > 50 && (nextY > lastY?$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 - edgeEndTexturePadding / 5.3, n.pos.y_0 + n.size_0.y_0 * interpolation - edgeEndTexturePadding / 2)):$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 - edgeEndTexturePadding / 5.3, n.pos.y_0 + n.size_0.y_0 * interpolation + edgeEndTexturePadding / 2))); + } + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0, n.pos.y_0 + n.size_0.y_0 * interpolation)); + } + else if (d == UP_1) { + levelStartCoord = $doubleValue(castToDouble($getProperty(n, ($clinit_InternalProperties_2() , LEVELMAX)))); + if (n.pos.y_0 + n.size_0.y_0 + edgeEndTexturePadding < levelStartCoord) { + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation, levelStartCoord + nodeBendpointPadding)); + } + else if (castTo(ins.get_0(i), 65).bendPoints.size_0 > 0) { + lastX = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).x_0; + nextX = n.pos.x_0 + n.size_0.x_0 / 2; + lastY = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).y_0; + nextY = n.pos.y_0 + n.size_0.y_0 / 2; + edgeEndTexturePadding > 0 && $wnd.Math.abs(lastX - nextX) / ($wnd.Math.abs(lastY - nextY) / 40) > 50 && (nextX > lastX?$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation - edgeEndTexturePadding / 2, n.pos.y_0 + edgeEndTexturePadding / 5.3 + n.size_0.y_0)):$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation + edgeEndTexturePadding / 2, n.pos.y_0 + edgeEndTexturePadding / 5.3 + n.size_0.y_0))); + } + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation, n.pos.y_0 + n.size_0.y_0)); + } + else { + levelStartCoord = $doubleValue(castToDouble($getProperty(n, ($clinit_InternalProperties_2() , LEVELMIN)))); + if (isCycleInducing(castTo(ins.get_0(i), 65), tGraph)) { + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation, castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).y_0)); + } + else if (n.pos.y_0 - edgeEndTexturePadding > levelStartCoord) { + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation, levelStartCoord - nodeBendpointPadding)); + } + else if (castTo(ins.get_0(i), 65).bendPoints.size_0 > 0) { + lastX = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).x_0; + nextX = n.pos.x_0 + n.size_0.x_0 / 2; + lastY = castTo($getLast(castTo(ins.get_0(i), 65).bendPoints), 8).y_0; + nextY = n.pos.y_0 + n.size_0.y_0 / 2; + edgeEndTexturePadding > 0 && $wnd.Math.abs(lastX - nextX) / ($wnd.Math.abs(lastY - nextY) / 40) > 50 && (nextX > lastX?$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation - edgeEndTexturePadding / 2, n.pos.y_0 - edgeEndTexturePadding / 5.3)):$addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation + edgeEndTexturePadding / 2, n.pos.y_0 - edgeEndTexturePadding / 5.3))); + } + $addLast_0(castTo(ins.get_0(i), 65).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0 * interpolation, n.pos.y_0)); + } + } + } +} + +function $avoidOverlapSetStartPoints(tGraph, d, nodeBendpointPadding){ + var i, interpolation, levelEndCoord, n, n$iterator, num, outs, tar, x_0, y_0; + for (n$iterator = $listIterator_2(tGraph.nodes, 0); n$iterator.currentNode != n$iterator.this$01.tail;) { + n = castTo($next_9(n$iterator), 40); + if ($equals_5(n.label_0, 'SUPER_ROOT')) { + continue; + } + outs = getAllOutgoingEdges(n, tGraph); + d == ($clinit_Direction_0() , LEFT_6) || d == RIGHT_6?$sort(outs, new EdgeRouter$lambda$17$Type):$sort(outs, new EdgeRouter$lambda$18$Type); + num = outs.array.length; + for (i = 0; i < num; i++) { + tar = (checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).target; + $equals_5(tar.label_0, 'n11') && Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit; + if ($booleanValue(castToBoolean($getProperty(n, ($clinit_InternalProperties_2() , COMPACT_LEVEL_ASCENSION)))) && !isCycleInducing((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)), tGraph)) { + continue; + } + interpolation = num == 1?0.5:(i + 1) / (num + 1); + if (d == LEFT_6) { + levelEndCoord = $doubleValue(castToDouble($getProperty(n, LEVELMIN))); + y_0 = n.pos.y_0 + n.size_0.y_0 * interpolation; + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1($wnd.Math.min(levelEndCoord, n.pos.x_0 - nodeBendpointPadding), y_0)); + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(n.pos.x_0, y_0)); + } + else if (d == RIGHT_6) { + levelEndCoord = $doubleValue(castToDouble($getProperty(n, LEVELMAX))) + nodeBendpointPadding; + y_0 = n.pos.y_0 + n.size_0.y_0 * interpolation; + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(levelEndCoord, y_0)); + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(n.pos.x_0 + n.size_0.x_0, y_0)); + } + else if (d == UP_1) { + levelEndCoord = $doubleValue(castToDouble($getProperty(n, LEVELMIN))); + x_0 = n.pos.x_0 + n.size_0.x_0 * interpolation; + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(x_0, $wnd.Math.min(n.pos.y_0 - nodeBendpointPadding, levelEndCoord))); + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(x_0, n.pos.y_0)); + } + else { + levelEndCoord = $doubleValue(castToDouble($getProperty(n, LEVELMAX))) + nodeBendpointPadding; + x_0 = n.pos.x_0 + n.size_0.x_0 * interpolation; + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(x_0, levelEndCoord)); + $addFirst_0((checkCriticalElementIndex(i, outs.array.length) , castTo(outs.array[i], 65)).bendPoints, new KVector_1(x_0, n.pos.y_0 + n.size_0.y_0)); + } + } + } +} + +function $avoidOverlapSpecialEdges(tGraph, d, nodeBendpointPadding, edgeEndTexturePadding){ + var bend1, bend2, bendTriple, curLevel, distictEdges, e, e$iterator, finalCurlevel, first, gap, i, i0, insPerLevel, interpolation, key, last, levelDiff, maxLevel, nextLevelNodes, nodeGaps, outsPerLevel, sideOneEdges, sideTwoEdges, sides, sourceLevel, start_0, targetLevel; + sideOneEdges = 0; + sideTwoEdges = 0; + nodeGaps = new HashMap; + maxLevel = castTo($get_17($max_1($map(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$0$Type), new EdgeRouter$0methodref$compare$Type)), 17).value_0 + 1; + outsPerLevel = initUnidimensionalArray(I_classLit, $intern_49, 28, maxLevel, 15, 1); + insPerLevel = initUnidimensionalArray(I_classLit, $intern_49, 28, maxLevel, 15, 1); + for (i0 = 0; i0 < maxLevel; i0++) { + outsPerLevel[i0] = 0; + insPerLevel[i0] = 0; + } + distictEdges = castTo($collect_1($distinct(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.edges, 16))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + for (e$iterator = distictEdges.iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 65); + sourceLevel = castTo($getProperty(e.source, ($clinit_MrTreeOptions() , TREE_LEVEL_0)), 17).value_0; + targetLevel = castTo($getProperty(e.target, TREE_LEVEL_0), 17).value_0; + levelDiff = targetLevel - sourceLevel; + if (levelDiff > 1) { + for (curLevel = sourceLevel + 1; curLevel < targetLevel; curLevel++) { + finalCurlevel = curLevel; + nextLevelNodes = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new EdgeRouter$lambda$2$Type(finalCurlevel)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [IDENTITY_FINISH]))), 15); + i = 0; + if (d == ($clinit_Direction_0() , LEFT_6) || d == RIGHT_6) { + nextLevelNodes.sort_0(new EdgeRouter$lambda$3$Type); + for (i = 0; i < nextLevelNodes.size_1(); i++) { + interpolation = (curLevel - sourceLevel) / (targetLevel - sourceLevel); + if (castTo(nextLevelNodes.get_0(i), 40).pos.y_0 > e.source.pos.y_0 * (1 - interpolation) + e.target.pos.y_0 * interpolation) { + break; + } + } + if (nextLevelNodes.size_1() > 0) { + start_0 = e.bendPoints.size_0 == 0?$clone_1(e.source.pos):castTo($getLast(e.bendPoints), 8); + last = $add_19($clone_1(castTo(nextLevelNodes.get_0(nextLevelNodes.size_1() - 1), 40).pos), castTo(nextLevelNodes.get_0(nextLevelNodes.size_1() - 1), 40).size_0); + first = $add_19($clone_1(castTo(nextLevelNodes.get_0(0), 40).pos), castTo(nextLevelNodes.get_0(0), 40).size_0); + if (i >= nextLevelNodes.size_1() - 1 && start_0.y_0 > last.y_0 && e.target.pos.y_0 > last.y_0) { + continue; + } + if (i <= 0 && start_0.y_0 < first.x_0 && e.target.pos.y_0 < first.y_0) { + continue; + } + } + } + else { + nextLevelNodes.sort_0(new EdgeRouter$lambda$4$Type); + for (i = 0; i < nextLevelNodes.size_1(); i++) { + interpolation = (curLevel - sourceLevel) / (targetLevel - sourceLevel); + if (castTo(nextLevelNodes.get_0(i), 40).pos.x_0 > e.source.pos.x_0 * (1 - interpolation) + e.target.pos.x_0 * interpolation) { + break; + } + } + if (nextLevelNodes.size_1() > 0) { + start_0 = e.bendPoints.size_0 == 0?$clone_1(e.source.pos):castTo($getLast(e.bendPoints), 8); + last = $add_19($clone_1(castTo(nextLevelNodes.get_0(nextLevelNodes.size_1() - 1), 40).pos), castTo(nextLevelNodes.get_0(nextLevelNodes.size_1() - 1), 40).size_0); + first = $add_19($clone_1(castTo(nextLevelNodes.get_0(0), 40).pos), castTo(nextLevelNodes.get_0(0), 40).size_0); + if (i >= nextLevelNodes.size_1() - 1 && start_0.x_0 > last.x_0 && e.target.pos.x_0 > last.x_0) { + continue; + } + if (i <= 0 && start_0.x_0 < first.x_0 && e.target.pos.x_0 < first.x_0) { + continue; + } + } + } + bend1 = new KVector; + bend2 = new KVector; + $add_7(e.bendPoints, bend1); + $add_7(e.bendPoints, bend2); + bendTriple = new Triple(bend1, bend2, e); + key = or_0(shl_0(curLevel, 32), and_0(i, $intern_69)); + if ($containsKey_3(nodeGaps, valueOf_4(key))) { + gap = castTo($get_10(nodeGaps, valueOf_4(key)), 675); + $add_7(gap.bendPoints, bendTriple); + $isHorizontal(gap.d)?$sort_0(gap.bendPoints, new MultiLevelEdgeNodeNodeGap$lambda$0$Type):$sort_0(gap.bendPoints, new MultiLevelEdgeNodeNodeGap$lambda$1$Type); + $updateBendPoints(gap); + } + else { + gap = new MultiLevelEdgeNodeNodeGap(i == 0?null:castTo(nextLevelNodes.get_0(i - 1), 40), i == nextLevelNodes.size_1()?null:castTo(nextLevelNodes.get_0(i), 40), bendTriple, tGraph); + $put_6(nodeGaps, valueOf_4(key), gap); + } + if (d == LEFT_6 || d == RIGHT_6) { + gap.onFirstNodeSide && gap.neighborTwo.pos.y_0 <= $doubleValue(castToDouble($getProperty(tGraph, ($clinit_InternalProperties_2() , GRAPH_YMIN)))) && ++sideOneEdges; + gap.onLastNodeSide && gap.neighborOne.pos.y_0 + gap.neighborOne.size_0.y_0 >= $doubleValue(castToDouble($getProperty(tGraph, ($clinit_InternalProperties_2() , GRAPH_YMAX)))) && ++sideTwoEdges; + } + else { + gap.onFirstNodeSide && gap.neighborTwo.pos.x_0 <= $doubleValue(castToDouble($getProperty(tGraph, ($clinit_InternalProperties_2() , GRAPH_XMIN)))) && ++sideOneEdges; + gap.onLastNodeSide && gap.neighborOne.pos.x_0 + gap.neighborOne.size_0.x_0 >= $doubleValue(castToDouble($getProperty(tGraph, ($clinit_InternalProperties_2() , GRAPH_XMAX)))) && ++sideTwoEdges; + } + } + } + else if (levelDiff == 0) { + $middleToMiddleEdgeRoute(e); + } + else if (levelDiff < 0) { + ++outsPerLevel[sourceLevel]; + ++insPerLevel[targetLevel]; + sides = $avoidOverlapHandleCycleInducingEdges(e, d, tGraph, new Pair(valueOf_3(sideOneEdges), valueOf_3(sideTwoEdges)), nodeBendpointPadding, edgeEndTexturePadding, new Pair(valueOf_3(insPerLevel[targetLevel]), valueOf_3(outsPerLevel[sourceLevel]))); + sideOneEdges = castTo(sides.first, 17).value_0; + sideTwoEdges = castTo(sides.second, 17).value_0; + } + } +} + +function $middleToMiddle(tGraph){ + var tEdge, tEdge$iterator; + for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_9(tEdge$iterator), 65); + $middleToMiddleEdgeRoute(tEdge); + } +} + +function $middleToMiddleEdgeRoute(tEdge){ + var bendPoints, source, sourcePoint, target, targetPoint; + bendPoints = tEdge.bendPoints; + source = tEdge.source; + target = tEdge.target; + sourcePoint = new KVector_1(source.pos.x_0 + source.size_0.x_0 / 2, source.pos.y_0 + source.size_0.y_0 / 2); + targetPoint = new KVector_1(target.pos.x_0 + target.size_0.x_0 / 2, target.pos.y_0 + target.size_0.y_0 / 2); + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); + toNodeBorder(sourcePoint, castTo($get_7(bendPoints, 1), 8), tEdge.source.size_0); + toNodeBorder(targetPoint, castTo($get_7(bendPoints, bendPoints.size_0 - 2), 8), tEdge.target.size_0); +} + +function $process_96(tGraph, progressMonitor){ + var e, e$iterator, mode, nodeBendpointPadding, edgeEndTexturePadding, d; + progressMonitor.begin('Edge routing', 1); + mode = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , EDGE_ROUTING_MODE_0)), 392); + if (mode == ($clinit_EdgeRoutingMode() , MIDDLE_TO_MIDDLE)) { + $middleToMiddle(tGraph); + } + else if (mode == AVOID_OVERLAP) { + castTo($get_17($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(tGraph.nodes, 16)), new TreeUtil$lambda$0$Type))), 40); + nodeBendpointPadding = $doubleValue(castToDouble($getProperty(tGraph, SPACING_EDGE_NODE_0))); + edgeEndTexturePadding = $doubleValue(castToDouble($getProperty(tGraph, EDGE_END_TEXTURE_LENGTH_0))); + d = castTo($getProperty(tGraph, DIRECTION_0), 88); + $avoidOverlapSetStartPoints(tGraph, d, nodeBendpointPadding); + $avoidOverlapSpecialEdges(tGraph, d, nodeBendpointPadding, edgeEndTexturePadding); + $avoidOverlapSetEndPoints(tGraph, d, nodeBendpointPadding, edgeEndTexturePadding); + for (e$iterator = $listIterator_2(tGraph.edges, 0); e$iterator.currentNode != e$iterator.this$01.tail;) { + e = castTo($next_9(e$iterator), 65); + e.bendPoints.size_0 < 2 && $middleToMiddleEdgeRoute(e); + } + } + progressMonitor.done_1(); +} + +function EdgeRouter(){ + $clinit_EdgeRouter(); +} + +function lambda$11_2(x_0){ + $clinit_EdgeRouter(); + return x_0.pos.x_0 + x_0.size_0.x_0 / 2; +} + +function lambda$13_0(nodeBendpointPadding_0, finalSideTwoEdges_2, x_2){ + $clinit_EdgeRouter(); + return x_2.pos.x_0 + x_2.size_0.x_0 + nodeBendpointPadding_0 * finalSideTwoEdges_2; +} + +function lambda$15_0(nodeBendpointPadding_0, finalSideOneEdges_2, x_2){ + $clinit_EdgeRouter(); + return x_2.pos.x_0 - nodeBendpointPadding_0 * finalSideOneEdges_2; +} + +function lambda$17(x_0, y_1){ + $clinit_EdgeRouter(); + return compare_4((x_0.bendPoints.size_0 == 0?new KVector_1(x_0.target.pos.x_0, x_0.target.pos.y_0):castTo($getFirst(x_0.bendPoints), 8)).y_0, (y_1.bendPoints.size_0 == 0?new KVector_1(y_1.target.pos.x_0, y_1.target.pos.y_0):castTo($getFirst(y_1.bendPoints), 8)).y_0); +} + +function lambda$18(x_0, y_1){ + $clinit_EdgeRouter(); + return compare_4((x_0.bendPoints.size_0 == 0?new KVector_1(x_0.target.pos.x_0, x_0.target.pos.y_0):castTo($getFirst(x_0.bendPoints), 8)).x_0, (y_1.bendPoints.size_0 == 0?new KVector_1(y_1.target.pos.x_0, y_1.target.pos.y_0):castTo($getFirst(y_1.bendPoints), 8)).x_0); +} + +function lambda$19_0(x_0, y_1){ + $clinit_EdgeRouter(); + return compare_4((x_0.bendPoints.size_0 == 0?new KVector_1(x_0.source.pos.x_0, x_0.source.pos.y_0):castTo($getLast(x_0.bendPoints), 8)).y_0, (y_1.bendPoints.size_0 == 0?new KVector_1(y_1.source.pos.x_0, y_1.source.pos.y_0):castTo($getLast(y_1.bendPoints), 8)).y_0); +} + +function lambda$2_11(finalCurlevel_0, x_1){ + $clinit_EdgeRouter(); + return castTo($getProperty(x_1, ($clinit_MrTreeOptions() , TREE_LEVEL_0)), 17).value_0 == finalCurlevel_0; +} + +function lambda$20_0(x_0, y_1){ + $clinit_EdgeRouter(); + return compare_4((x_0.bendPoints.size_0 == 0?new KVector_1(x_0.source.pos.x_0, x_0.source.pos.y_0):castTo($getLast(x_0.bendPoints), 8)).x_0, (y_1.bendPoints.size_0 == 0?new KVector_1(y_1.source.pos.x_0, y_1.source.pos.y_0):castTo($getLast(y_1.bendPoints), 8)).x_0); +} + +function lambda$3_8(x_0, y_1){ + $clinit_EdgeRouter(); + return compare_4(x_0.pos.y_0, y_1.pos.y_0); +} + +function lambda$4_10(x_0, y_1){ + $clinit_EdgeRouter(); + return compare_4(x_0.pos.x_0, y_1.pos.x_0); +} + +function lambda$5_6(x_0){ + $clinit_EdgeRouter(); + return x_0.pos.y_0 + x_0.size_0.y_0 / 2; +} + +function lambda$7_5(nodeBendpointPadding_0, finalSideTwoEdges_2, x_2){ + $clinit_EdgeRouter(); + return x_2.pos.y_0 + x_2.size_0.y_0 + nodeBendpointPadding_0 * finalSideTwoEdges_2; +} + +function lambda$9_1(nodeBendpointPadding_0, finalSideOneEdges_2, x_2){ + $clinit_EdgeRouter(); + return x_2.pos.y_0 - nodeBendpointPadding_0 * finalSideOneEdges_2; +} + +defineClass(1496, 1, $intern_113, EdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_26(graph){ + return castTo(graph, 121) , INTERMEDIATE_PROCESSING_CONFIG_2; +} +; +_.process = function process_92(tGraph, progressMonitor){ + $process_96(castTo(tGraph, 121), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_2; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter', 1496); +function EdgeRouter$0methodref$compare$Type(){ +} + +defineClass(1498, 1, $intern_88, EdgeRouter$0methodref$compare$Type); +_.compare_1 = function compare_92(arg0, arg1){ + return compare_5(castTo(arg0, 17).value_0, castTo(arg1, 17).value_0); +} +; +_.equals_0 = function equals_179(other){ + return this === other; +} +; +_.reversed = function reversed_84(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$0methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/0methodref$compare$Type', 1498); +function EdgeRouter$1methodref$doubleValue$Type(){ +} + +defineClass(1503, 1, {}, EdgeRouter$1methodref$doubleValue$Type); +_.applyAsDouble = function applyAsDouble_8(arg0){ + return $doubleValue(castToDouble(arg0)); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$1methodref$doubleValue$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/1methodref$doubleValue$Type', 1503); +function EdgeRouter$2methodref$compare$Type(){ +} + +defineClass(1505, 1, $intern_88, EdgeRouter$2methodref$compare$Type); +_.compare_1 = function compare_93(arg0, arg1){ + return compare_4($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +_.equals_0 = function equals_180(other){ + return this === other; +} +; +_.reversed = function reversed_85(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$2methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/2methodref$compare$Type', 1505); +function EdgeRouter$3methodref$compare$Type(){ +} + +defineClass(1507, 1, $intern_88, EdgeRouter$3methodref$compare$Type); +_.compare_1 = function compare_94(arg0, arg1){ + return compare_4($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +_.equals_0 = function equals_181(other){ + return this === other; +} +; +_.reversed = function reversed_86(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$3methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/3methodref$compare$Type', 1507); +function EdgeRouter$4methodref$doubleValue$Type(){ +} + +defineClass(1509, 1, {}, EdgeRouter$4methodref$doubleValue$Type); +_.applyAsDouble = function applyAsDouble_9(arg0){ + return $doubleValue(castToDouble(arg0)); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$4methodref$doubleValue$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/4methodref$doubleValue$Type', 1509); +function EdgeRouter$5methodref$compare$Type(){ +} + +defineClass(1511, 1, $intern_88, EdgeRouter$5methodref$compare$Type); +_.compare_1 = function compare_95(arg0, arg1){ + return compare_4($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +_.equals_0 = function equals_182(other){ + return this === other; +} +; +_.reversed = function reversed_87(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$5methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/5methodref$compare$Type', 1511); +function EdgeRouter$6methodref$compare$Type(){ +} + +defineClass(1513, 1, $intern_88, EdgeRouter$6methodref$compare$Type); +_.compare_1 = function compare_96(arg0, arg1){ + return compare_4($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +_.equals_0 = function equals_183(other){ + return this === other; +} +; +_.reversed = function reversed_88(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$6methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/6methodref$compare$Type', 1513); +function EdgeRouter$lambda$0$Type(){ +} + +defineClass(1497, 1, {}, EdgeRouter$lambda$0$Type); +_.apply_0 = function apply_160(arg0){ + return $clinit_EdgeRouter() , castTo($getProperty(castTo(arg0, 40), ($clinit_MrTreeOptions() , TREE_LEVEL_0)), 17); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$0$Type', 1497); +function EdgeRouter$lambda$11$Type(){ +} + +defineClass(1508, 1, {}, EdgeRouter$lambda$11$Type); +_.apply_0 = function apply_161(arg0){ + return lambda$11_2(castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$11$Type', 1508); +function EdgeRouter$lambda$13$Type(nodeBendpointPadding_0, finalSideTwoEdges_2){ + this.nodeBendpointPadding_0 = nodeBendpointPadding_0; + this.finalSideTwoEdges_2 = finalSideTwoEdges_2; +} + +defineClass(1510, 1, {}, EdgeRouter$lambda$13$Type); +_.apply_0 = function apply_162(arg0){ + return lambda$13_0(this.nodeBendpointPadding_0, this.finalSideTwoEdges_2, castTo(arg0, 40)); +} +; +_.finalSideTwoEdges_2 = 0; +_.nodeBendpointPadding_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$13$Type', 1510); +function EdgeRouter$lambda$15$Type(nodeBendpointPadding_0, finalSideOneEdges_2){ + this.nodeBendpointPadding_0 = nodeBendpointPadding_0; + this.finalSideOneEdges_2 = finalSideOneEdges_2; +} + +defineClass(1512, 1, {}, EdgeRouter$lambda$15$Type); +_.apply_0 = function apply_163(arg0){ + return lambda$15_0(this.nodeBendpointPadding_0, this.finalSideOneEdges_2, castTo(arg0, 40)); +} +; +_.finalSideOneEdges_2 = 0; +_.nodeBendpointPadding_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$15$Type', 1512); +function EdgeRouter$lambda$17$Type(){ +} + +defineClass(1514, 1, $intern_88, EdgeRouter$lambda$17$Type); +_.compare_1 = function compare_97(arg0, arg1){ + return lambda$17(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_184(other){ + return this === other; +} +; +_.reversed = function reversed_89(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$17$Type', 1514); +function EdgeRouter$lambda$18$Type(){ +} + +defineClass(1515, 1, $intern_88, EdgeRouter$lambda$18$Type); +_.compare_1 = function compare_98(arg0, arg1){ + return lambda$18(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_185(other){ + return this === other; +} +; +_.reversed = function reversed_90(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$18$Type', 1515); +function EdgeRouter$lambda$19$Type(){ +} + +defineClass(1516, 1, $intern_88, EdgeRouter$lambda$19$Type); +_.compare_1 = function compare_99(arg0, arg1){ + return lambda$19_0(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_186(other){ + return this === other; +} +; +_.reversed = function reversed_91(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$19$Type', 1516); +function EdgeRouter$lambda$2$Type(finalCurlevel_0){ + this.finalCurlevel_0 = finalCurlevel_0; +} + +defineClass(1499, 1, $intern_40, EdgeRouter$lambda$2$Type); +_.test_0 = function test_119(arg0){ + return lambda$2_11(this.finalCurlevel_0, castTo(arg0, 40)); +} +; +_.finalCurlevel_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$2$Type', 1499); +function EdgeRouter$lambda$20$Type(){ +} + +defineClass(1517, 1, $intern_88, EdgeRouter$lambda$20$Type); +_.compare_1 = function compare_100(arg0, arg1){ + return lambda$20_0(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_187(other){ + return this === other; +} +; +_.reversed = function reversed_92(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$20$Type', 1517); +function EdgeRouter$lambda$3$Type(){ +} + +defineClass(1500, 1, $intern_88, EdgeRouter$lambda$3$Type); +_.compare_1 = function compare_101(arg0, arg1){ + return lambda$3_8(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_188(other){ + return this === other; +} +; +_.reversed = function reversed_93(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$3$Type', 1500); +function EdgeRouter$lambda$4$Type(){ +} + +defineClass(1501, 1, $intern_88, EdgeRouter$lambda$4$Type); +_.compare_1 = function compare_102(arg0, arg1){ + return lambda$4_10(castTo(arg0, 40), castTo(arg1, 40)); +} +; +_.equals_0 = function equals_189(other){ + return this === other; +} +; +_.reversed = function reversed_94(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$4$Type', 1501); +function EdgeRouter$lambda$5$Type(){ +} + +defineClass(1502, 1, {}, EdgeRouter$lambda$5$Type); +_.apply_0 = function apply_164(arg0){ + return lambda$5_6(castTo(arg0, 40)); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$5$Type', 1502); +function EdgeRouter$lambda$7$Type(nodeBendpointPadding_0, finalSideTwoEdges_2){ + this.nodeBendpointPadding_0 = nodeBendpointPadding_0; + this.finalSideTwoEdges_2 = finalSideTwoEdges_2; +} + +defineClass(1504, 1, {}, EdgeRouter$lambda$7$Type); +_.apply_0 = function apply_165(arg0){ + return lambda$7_5(this.nodeBendpointPadding_0, this.finalSideTwoEdges_2, castTo(arg0, 40)); +} +; +_.finalSideTwoEdges_2 = 0; +_.nodeBendpointPadding_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$7$Type', 1504); +function EdgeRouter$lambda$9$Type(nodeBendpointPadding_0, finalSideOneEdges_2){ + this.nodeBendpointPadding_0 = nodeBendpointPadding_0; + this.finalSideOneEdges_2 = finalSideOneEdges_2; +} + +defineClass(1506, 1, {}, EdgeRouter$lambda$9$Type); +_.apply_0 = function apply_166(arg0){ + return lambda$9_1(this.nodeBendpointPadding_0, this.finalSideOneEdges_2, castTo(arg0, 40)); +} +; +_.finalSideOneEdges_2 = 0; +_.nodeBendpointPadding_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter/lambda$9$Type', 1506); +function $updateBendPoints(this$static){ + var bend1, bend2, bendTmp, count, i, interpolation, p, p$iterator; + i = 0; + count = this$static.bendPoints.size_0; + for (p$iterator = $listIterator_2(this$static.bendPoints, 0); p$iterator.currentNode != p$iterator.this$01.tail;) { + p = castTo($next_9(p$iterator), 240); + interpolation = (i + 1) / (count + 1); + if (!this$static.neighborOne && !this$static.neighborTwo) { + return; + } + else if (!!this$static.neighborOne && !this$static.neighborTwo) { + this$static.onLastNodeSide = true; + if (this$static.d == ($clinit_Direction_0() , LEFT_6)) { + bendTmp = this$static.neighborOne.pos.y_0 + this$static.neighborOne.size_0.y_0 + this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMAX)))) + this$static.nodeBendpointPadding, bendTmp); + bend2 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMIN))) - this$static.nodeBendpointPadding, bendTmp); + } + else if (this$static.d == RIGHT_6) { + bendTmp = this$static.neighborOne.pos.y_0 + this$static.neighborOne.size_0.y_0 + this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMIN)))) - this$static.nodeBendpointPadding, bendTmp); + bend2 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMAX))) + this$static.nodeBendpointPadding, bendTmp); + } + else if (this$static.d == UP_1) { + bendTmp = this$static.neighborOne.pos.x_0 + this$static.neighborOne.size_0.x_0 + this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMAX)))) + this$static.nodeBendpointPadding); + bend2 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMIN))) - this$static.nodeBendpointPadding); + } + else { + bendTmp = this$static.neighborOne.pos.x_0 + this$static.neighborOne.size_0.x_0 + this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMIN)))) - this$static.nodeBendpointPadding); + bend2 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMAX))) + this$static.nodeBendpointPadding); + } + } + else if (!!this$static.neighborOne && !!this$static.neighborTwo) { + if (this$static.d == ($clinit_Direction_0() , LEFT_6)) { + bendTmp = this$static.neighborTwo.pos.y_0 * interpolation + (this$static.neighborOne.pos.y_0 + this$static.neighborOne.size_0.y_0) * (1 - interpolation); + bend1 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMAX)))) + this$static.nodeBendpointPadding, bendTmp); + bend2 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMIN))) - this$static.nodeBendpointPadding, bendTmp); + } + else if (this$static.d == RIGHT_6) { + bendTmp = this$static.neighborTwo.pos.y_0 * interpolation + (this$static.neighborOne.pos.y_0 + this$static.neighborOne.size_0.y_0) * (1 - interpolation); + bend1 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMIN)))) - this$static.nodeBendpointPadding, bendTmp); + bend2 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMAX))) + this$static.nodeBendpointPadding, bendTmp); + } + else if (this$static.d == UP_1) { + bendTmp = this$static.neighborTwo.pos.x_0 * interpolation + (this$static.neighborOne.pos.x_0 + this$static.neighborOne.size_0.x_0) * (1 - interpolation); + bend1 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMAX)))) + this$static.nodeBendpointPadding); + bend2 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMIN))) - this$static.nodeBendpointPadding); + } + else { + bendTmp = this$static.neighborTwo.pos.x_0 * interpolation + (this$static.neighborOne.pos.x_0 + this$static.neighborOne.size_0.x_0) * (1 - interpolation); + bend1 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, ($clinit_InternalProperties_2() , LEVELMIN)))) - this$static.nodeBendpointPadding); + bend2 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborOne, LEVELMAX))) + this$static.nodeBendpointPadding); + } + } + else { + this$static.onFirstNodeSide = true; + if (this$static.d == ($clinit_Direction_0() , LEFT_6)) { + bendTmp = this$static.neighborTwo.pos.y_0 - this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborTwo, ($clinit_InternalProperties_2() , LEVELMAX)))) + this$static.nodeBendpointPadding, bendTmp); + bend2 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborTwo, LEVELMIN))) - this$static.nodeBendpointPadding, bendTmp); + } + else if (this$static.d == RIGHT_6) { + bendTmp = this$static.neighborTwo.pos.y_0 - this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborTwo, ($clinit_InternalProperties_2() , LEVELMIN)))) - this$static.nodeBendpointPadding, bendTmp); + bend2 = new KVector_1($doubleValue(castToDouble($getProperty(this$static.neighborTwo, LEVELMAX))) + this$static.nodeBendpointPadding, bendTmp); + } + else if (this$static.d == UP_1) { + bendTmp = this$static.neighborTwo.pos.x_0 - this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborTwo, ($clinit_InternalProperties_2() , LEVELMAX)))) + this$static.nodeBendpointPadding); + bend2 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborTwo, LEVELMIN))) - this$static.nodeBendpointPadding); + } + else { + bendTmp = this$static.neighborTwo.pos.x_0 - this$static.nodeBendpointPadding * (i + 1); + bend1 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborTwo, ($clinit_InternalProperties_2() , LEVELMIN)))) - this$static.nodeBendpointPadding); + bend2 = new KVector_1(bendTmp, $doubleValue(castToDouble($getProperty(this$static.neighborTwo, LEVELMAX))) + this$static.nodeBendpointPadding); + } + } + castTo(p.first, 8).x_0 = bend1.x_0; + castTo(p.first, 8).y_0 = bend1.y_0; + p.second.x_0 = bend2.x_0; + p.second.y_0 = bend2.y_0; + ++i; + } +} + +function MultiLevelEdgeNodeNodeGap(neighborOne, neighborTwo, bendTriple, graph){ + var bends; + this.neighborOne = neighborOne; + this.neighborTwo = neighborTwo; + bends = new LinkedList; + $addNode_0(bends, bendTriple, bends.tail.prev, bends.tail); + this.bendPoints = bends; + this.d = castTo($getProperty(graph, ($clinit_MrTreeOptions() , DIRECTION_0)), 88); + this.nodeBendpointPadding = $doubleValue(castToDouble($getProperty(graph, SPACING_EDGE_NODE_0))); + $updateBendPoints(this); +} + +function lambda$0_35(x_0, y_1){ + return compare_4(castTo(x_0.third, 65).target.pos.y_0, castTo(y_1.third, 65).target.pos.y_0); +} + +function lambda$1_18(x_0, y_1){ + return compare_4(castTo(x_0.third, 65).target.pos.x_0, castTo(y_1.third, 65).target.pos.x_0); +} + +defineClass(675, 1, {675:1}, MultiLevelEdgeNodeNodeGap); +_.nodeBendpointPadding = 0; +_.onFirstNodeSide = false; +_.onLastNodeSide = false; +var Lorg_eclipse_elk_alg_mrtree_p4route_MultiLevelEdgeNodeNodeGap_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'MultiLevelEdgeNodeNodeGap', 675); +function MultiLevelEdgeNodeNodeGap$lambda$0$Type(){ +} + +defineClass(1943, 1, $intern_88, MultiLevelEdgeNodeNodeGap$lambda$0$Type); +_.compare_1 = function compare_103(arg0, arg1){ + return lambda$0_35(castTo(arg0, 240), castTo(arg1, 240)); +} +; +_.equals_0 = function equals_190(other){ + return this === other; +} +; +_.reversed = function reversed_95(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_MultiLevelEdgeNodeNodeGap$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'MultiLevelEdgeNodeNodeGap/lambda$0$Type', 1943); +function MultiLevelEdgeNodeNodeGap$lambda$1$Type(){ +} + +defineClass(1944, 1, $intern_88, MultiLevelEdgeNodeNodeGap$lambda$1$Type); +_.compare_1 = function compare_104(arg0, arg1){ + return lambda$1_18(castTo(arg0, 240), castTo(arg1, 240)); +} +; +_.equals_0 = function equals_191(other){ + return this === other; +} +; +_.reversed = function reversed_96(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_p4route_MultiLevelEdgeNodeNodeGap$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'MultiLevelEdgeNodeNodeGap/lambda$1$Type', 1944); +function $clinit_InternalProperties_3(){ + $clinit_InternalProperties_3 = emptyMethod; + ROOT_NODE = new Property('root'); +} + +var ROOT_NODE; +function $clinit_RadialLayoutPhases(){ + $clinit_RadialLayoutPhases = emptyMethod; + P1_NODE_PLACEMENT = new RadialLayoutPhases('P1_NODE_PLACEMENT', 0); + P2_EDGE_ROUTING = new RadialLayoutPhases('P2_EDGE_ROUTING', 1); +} + +function $create_9(this$static){ + switch (this$static.ordinal) { + case 0: + return new EadesRadial; + case 1: + return new StraightLineEdgeRouter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function RadialLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_76(name_0){ + $clinit_RadialLayoutPhases(); + return valueOf(($clinit_RadialLayoutPhases$Map() , $MAP_66), name_0); +} + +function values_84(){ + $clinit_RadialLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_37, 501, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]); +} + +defineClass(501, 22, {3:1, 34:1, 22:1, 501:1, 188:1, 196:1}, RadialLayoutPhases); +_.create_1 = function create_23(){ + return $create_9(this); +} +; +_.create_2 = function create_22(){ + return $create_9(this); +} +; +var P1_NODE_PLACEMENT, P2_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.radial', 'RadialLayoutPhases', 501, Ljava_lang_Enum_2_classLit, values_84, valueOf_76); +function $clinit_RadialLayoutPhases$Map(){ + $clinit_RadialLayoutPhases$Map = emptyMethod; + $MAP_66 = createValueOfMap(($clinit_RadialLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_37, 501, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]))); +} + +var $MAP_66; +function $assembleAlgorithm(this$static, layoutGraph){ + var algorithm, configuration; + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_RadialLayoutPhases() , P1_NODE_PLACEMENT), P1_NODE_PLACEMENT); + $setPhase(this$static.algorithmAssembler, P2_EDGE_ROUTING, P2_EDGE_ROUTING); + configuration = new LayoutProcessorConfiguration; + $addBefore(configuration, P2_EDGE_ROUTING, ($clinit_IntermediateProcessorStrategy_1() , OVERLAP_REMOVAL)); + maskUndefined($getProperty_0(layoutGraph, ($clinit_RadialOptions() , COMPACTOR_0))) !== maskUndefined(($clinit_CompactionStrategy_0() , NONE_12)) && $addBefore(configuration, P2_EDGE_ROUTING, COMPACTION_1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROTATE_0))) && $addBefore(configuration, P2_EDGE_ROUTING, ROTATION_0); + $addBefore(configuration, P2_EDGE_ROUTING, GRAPH_SIZE_CALCULATION); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROTATION_OUTGOING_EDGE_ANGLES_0))) && $addAfter(configuration, P2_EDGE_ROUTING, OUTGOING_EDGE_ANGLES); + $addProcessorConfiguration(this$static.algorithmAssembler, configuration); + algorithm = $build_0(this$static.algorithmAssembler, layoutGraph); + return algorithm; +} + +function RadialLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit); +} + +defineClass(1113, 205, $intern_96, RadialLayoutProvider); +_.layout = function layout_4(layoutGraph, progressMonitor){ + var algorithm, builder, layoutRadius, processor, processor$iterator, root; + algorithm = $assembleAlgorithm(this, layoutGraph); + progressMonitor.begin('Radial layout', algorithm.array.length); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_RadialOptions() , OMIT_NODE_MICRO_LAYOUT_2)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + root = findRoot(layoutGraph); + $setProperty_1(layoutGraph, ($clinit_InternalProperties_3() , ROOT_NODE), root); + if (!root) { + throw toJs(new IllegalArgumentException_0('The given graph is not a tree!')); + } + layoutRadius = $doubleValue(castToDouble($getProperty_0(layoutGraph, RADIUS_0))); + layoutRadius == 0 && (layoutRadius = findLargestNodeInGraph(layoutGraph)); + $setProperty_1(layoutGraph, RADIUS_0, layoutRadius); + for (processor$iterator = new ArrayList$1($assembleAlgorithm(this, layoutGraph)); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_6(processor$iterator), 47); + processor.process(layoutGraph, progressMonitor.subTask(1)); + } + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_radial_RadialLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialLayoutProvider', 1113); +function findLargestNodeInGraph(graph){ + var child, child$iterator, diameter, height, largestChild, largestChildSize, width_0; + largestChildSize = 0; + for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + width_0 = child.width_0; + height = child.height; + diameter = $wnd.Math.sqrt(width_0 * width_0 + height * height); + largestChildSize = $wnd.Math.max(diameter, largestChildSize); + largestChild = findLargestNodeInGraph(child); + largestChildSize = $wnd.Math.max(largestChild, largestChildSize); + } + return largestChildSize; +} + +function findRoot(graph){ + var child, child$iterator, incomingEdges; + for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + incomingEdges = allIncomingEdges(child); + if (!$hasNext_1(new Iterators$ConcatenatedIterator(transform_2(incomingEdges.val$inputs1.iterator_0(), new Iterables$10)))) { + return child; + } + } + return null; +} + +function findRootOfNode(elkNode){ + var parent_0; + parent_0 = getTreeParent(elkNode); + return !parent_0?elkNode:findRootOfNode(parent_0); +} + +function getNextLevelNodeSet(nodes){ + var nextLevelSet, node, node$iterator, successors; + successors = new HashSet; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 27); + nextLevelSet = getSuccessorSet(node); + $addAll(successors, nextLevelSet); + } + return successors; +} + +function getNextLevelNodes(nodes){ + var nextLevelNodes, node, node$iterator, successors; + successors = new ArrayList; + for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 27); + nextLevelNodes = getSuccessors(node); + $addAll_2(successors, nextLevelNodes); + } + return successors; +} + +function getNumberOfLeaves(node){ + var child, child$iterator, leafs, successors; + leafs = 0; + successors = getSuccessors(node); + if (successors.array.length == 0) { + return 1; + } + else { + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 27); + leafs += getNumberOfLeaves(child); + } + } + return leafs; +} + +function getSuccessorSet(node){ + var children, old, outgoingEdge, outgoingEdge$iterator, successors, target; + successors = new HashSet; + children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 74); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 193)) { + target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 84)); + children.map_0.containsKey(target) || (old = successors.map_0.put(target, successors) , old == null); + } + } + return successors; +} + +function getSuccessors(node){ + var children, outgoingEdge, outgoingEdge$iterator, successors, target; + successors = new ArrayList; + children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 74); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 193)) { + target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 84)); + children.map_0.containsKey(target) || (push_1(successors.array, target) , true); + } + } + return successors; +} + +function getTreeParent(node){ + var edgeFromParent, iterator; + iterator = allIncomingEdges(node); + if (isEmpty_13(iterator)) { + return null; + } + else { + edgeFromParent = (checkNotNull(iterator) , castTo(get_23(new Iterators$ConcatenatedIterator(transform_2(iterator.val$inputs1.iterator_0(), new Iterables$10))), 74)); + return connectableShapeToNode(castTo($get_20((!edgeFromParent.sources && (edgeFromParent.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edgeFromParent, 4, 7)) , edgeFromParent.sources), 0), 84)); + } +} + +function lambda$0_36(nodeOffsetY_0, radialOffset_2, node1_2, node2_3){ + var arc1, arc2, position1, position2, xPos1, xPos2, yPos1, yPos2; + position1 = castTo($getProperty_0(node1_2, ($clinit_CoreOptions() , POSITION_2)), 8); + xPos1 = position1.x_0; + yPos1 = position1.y_0 + nodeOffsetY_0; + arc1 = $wnd.Math.atan2(yPos1, xPos1); + arc1 < 0 && (arc1 += $intern_126); + arc1 += radialOffset_2; + arc1 > $intern_126 && (arc1 -= $intern_126); + position2 = castTo($getProperty_0(node2_3, POSITION_2), 8); + xPos2 = position2.x_0; + yPos2 = position2.y_0 + nodeOffsetY_0; + arc2 = $wnd.Math.atan2(yPos2, xPos2); + arc2 < 0 && (arc2 += $intern_126); + arc2 += radialOffset_2; + arc2 > $intern_126 && (arc2 -= $intern_126); + return $clinit_DoubleMath() , checkNonNegative(1.0E-10) , $wnd.Math.abs(arc1 - arc2) <= 1.0E-10 || arc1 == arc2 || isNaN(arc1) && isNaN(arc2)?0:arc1 < arc2?-1:arc1 > arc2?1:compare_0(isNaN(arc1), isNaN(arc2)); +} + +function RadialUtil$lambda$0$Type(radialOffset_2){ + this.nodeOffsetY_0 = 0; + this.radialOffset_2 = radialOffset_2; +} + +defineClass(556, 1, $intern_88, RadialUtil$lambda$0$Type); +_.compare_1 = function compare_105(arg0, arg1){ + return lambda$0_36(this.nodeOffsetY_0, this.radialOffset_2, castTo(arg0, 27), castTo(arg1, 27)); +} +; +_.equals_0 = function equals_192(other){ + return this === other; +} +; +_.reversed = function reversed_97(){ + return new Comparators$ReversedComparator(this); +} +; +_.nodeOffsetY_0 = 0; +_.radialOffset_2 = 0; +var Lorg_eclipse_elk_alg_radial_RadialUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialUtil/lambda$0$Type', 556); +function $process_97(graph, progressMonitor){ + var additionalX, additionalY, dx, dy, height, height0, margins, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, node$iterator0, offset, padding, posX, posY, root, rootMargins, rootX, rootY, width_0, width0; + progressMonitor.begin('Calculate Graph Size', 1); + progressMonitor.logGraph(graph, 'Before'); + minXPos = $intern_98; + minYPos = $intern_98; + maxXPos = $intern_127; + maxYPos = $intern_127; + for (node$iterator0 = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 27); + posX = node.x_0; + posY = node.y_0; + width0 = node.width_0; + height0 = node.height; + margins = castTo($getProperty_0(node, ($clinit_CoreOptions() , MARGINS_0)), 140); + minXPos = $wnd.Math.min(minXPos, posX - margins.left); + minYPos = $wnd.Math.min(minYPos, posY - margins.top_0); + maxXPos = $wnd.Math.max(maxXPos, posX + width0 + margins.right); + maxYPos = $wnd.Math.max(maxYPos, posY + height0 + margins.bottom); + } + padding = castTo($getProperty_0(graph, ($clinit_CoreOptions() , PADDING_6)), 107); + offset = new KVector_1(minXPos - padding.left, minYPos - padding.top_0); + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + if ($booleanValue(castToBoolean($getProperty_0(graph, ($clinit_RadialOptions() , CENTER_ON_ROOT_0))))) { + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + rootMargins = castTo($getProperty_0(root, MARGINS_0), 140); + rootX = root.x_0 + root.width_0 / 2 + (rootMargins.left + rootMargins.right) / 2 - offset.x_0; + rootY = root.y_0 + root.height / 2 + (rootMargins.top_0 + rootMargins.bottom) / 2 - offset.y_0; + dx = width_0 - rootX; + dy = height - rootY; + if (dx < width_0 / 2) { + additionalX = dx - rootX; + width_0 += additionalX; + offset.x_0 -= additionalX; + } + else { + additionalX = rootX - dx; + width_0 += additionalX; + } + if (dy < height / 2) { + additionalY = dy - rootY; + height += additionalY; + offset.y_0 -= additionalY; + } + else { + additionalY = rootY - dy; + height += additionalY; + } + } + for (node$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + $setX_2(node, node.x_0 - offset.x_0); + $setY_3(node, node.y_0 - offset.y_0); + } + if (!$booleanValue(castToBoolean($getProperty_0(graph, NODE_SIZE_FIXED_GRAPH_SIZE_3)))) { + $setWidth_0(graph, width_0); + $setHeight_0(graph, height); + } + $setProperty_1(graph, CHILD_AREA_WIDTH, width_0 - (padding.left + padding.right)); + $setProperty_1(graph, CHILD_AREA_HEIGHT, height - (padding.top_0 + padding.bottom)); + progressMonitor.logGraph(graph, 'After'); +} + +function CalculateGraphSize(){ +} + +defineClass(1395, 1, $intern_105, CalculateGraphSize); +_.process = function process_93(graph, progressMonitor){ + $process_97(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_CalculateGraphSize_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'CalculateGraphSize', 1395); +function $process_98(graph){ + var angle, edge, edge$iterator, edgeVector, end, root, start_0; + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + for (edge$iterator = new AbstractEList$EIterator((!root.outgoingEdges && (root.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, root, 7, 4)) , root.outgoingEdges)); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 74); + start_0 = new KVector_1(castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166).startX, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166).startY); + end = new KVector_1(castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166).endX, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166).endY); + edgeVector = new KVector_1(end.x_0 - start_0.x_0, end.y_0 - start_0.y_0); + angle = $wnd.Math.atan2(edgeVector.y_0, edgeVector.x_0); + castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84).setProperty(($clinit_RadialOptions() , ROTATION_TARGET_ANGLE_0), angle); + } +} + +function EdgeAngleCalculator(){ +} + +defineClass(1396, 1, $intern_105, EdgeAngleCalculator); +_.process = function process_94(graph, progressMonitor){ + $process_98(castTo(graph, 27)); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_EdgeAngleCalculator_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'EdgeAngleCalculator', 1396); +function $clinit_IntermediateProcessorStrategy_1(){ + $clinit_IntermediateProcessorStrategy_1 = emptyMethod; + OVERLAP_REMOVAL = new IntermediateProcessorStrategy_1('OVERLAP_REMOVAL', 0); + COMPACTION_1 = new IntermediateProcessorStrategy_1('COMPACTION', 1); + ROTATION_0 = new IntermediateProcessorStrategy_1('ROTATION', 2); + GRAPH_SIZE_CALCULATION = new IntermediateProcessorStrategy_1('GRAPH_SIZE_CALCULATION', 3); + OUTGOING_EDGE_ANGLES = new IntermediateProcessorStrategy_1('OUTGOING_EDGE_ANGLES', 4); +} + +function IntermediateProcessorStrategy_1(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_77(name_0){ + $clinit_IntermediateProcessorStrategy_1(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_1() , $MAP_67), name_0); +} + +function values_85(){ + $clinit_IntermediateProcessorStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_37, 368, 0, [OVERLAP_REMOVAL, COMPACTION_1, ROTATION_0, GRAPH_SIZE_CALCULATION, OUTGOING_EDGE_ANGLES]); +} + +defineClass(368, 22, {3:1, 34:1, 22:1, 368:1, 196:1}, IntermediateProcessorStrategy_1); +_.create_1 = function create_24(){ + switch (this.ordinal) { + case 0: + return new RadiusExtensionOverlapRemoval; + case 1: + return new GeneralCompactor; + case 2: + return new GeneralRotator; + case 3: + return new CalculateGraphSize; + case 4: + return new EdgeAngleCalculator; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var COMPACTION_1, GRAPH_SIZE_CALCULATION, OUTGOING_EDGE_ANGLES, OVERLAP_REMOVAL, ROTATION_0; +var Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.intermediate', 'IntermediateProcessorStrategy', 368, Ljava_lang_Enum_2_classLit, values_85, valueOf_77); +function $clinit_IntermediateProcessorStrategy$Map_1(){ + $clinit_IntermediateProcessorStrategy$Map_1 = emptyMethod; + $MAP_67 = createValueOfMap(($clinit_IntermediateProcessorStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_37, 368, 0, [OVERLAP_REMOVAL, COMPACTION_1, ROTATION_0, GRAPH_SIZE_CALCULATION, OUTGOING_EDGE_ANGLES]))); +} + +var $MAP_67; +function $contractLayer(this$static, layerNodes, isContracting){ + var length_0, node, node$iterator, parentX, parentY, treeParent, x_0, xPos, y_0, yPos; + for (node$iterator = layerNodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 27); + xPos = node.x_0 + node.width_0 / 2; + yPos = node.y_0 + node.height / 2; + treeParent = this$static.root_0; + parentX = treeParent.x_0 + treeParent.width_0 / 2; + parentY = treeParent.y_0 + treeParent.height / 2; + x_0 = xPos - parentX; + y_0 = yPos - parentY; + length_0 = $wnd.Math.sqrt(x_0 * x_0 + y_0 * y_0); + x_0 *= this$static.compactionStep / length_0; + y_0 *= this$static.compactionStep / length_0; + if (isContracting) { + xPos -= x_0; + yPos -= y_0; + } + else { + xPos += x_0; + yPos += y_0; + } + $setX_2(node, xPos - node.width_0 / 2); + $setY_3(node, yPos - node.height / 2); + } +} + +function $overlap_1(this$static, node1, node2){ + var height1, height2, width1, width2, x1, x2, y1, y2; + x1 = node1.x_0 - this$static.spacing / 2; + x2 = node2.x_0 - this$static.spacing / 2; + y1 = node1.y_0 - this$static.spacing / 2; + y2 = node2.y_0 - this$static.spacing / 2; + width1 = node1.width_0 + this$static.spacing; + width2 = node2.width_0 + this$static.spacing; + height1 = node1.height + this$static.spacing; + height2 = node2.height + this$static.spacing; + if (x1 < x2 + width2 && x2 < x1 && y1 < y2 + height2 && y2 < y1) { + return true; + } + else if (x2 < x1 + width1 && x1 < x2 && y2 < y1 + height1 && y1 < y2) { + return true; + } + else if (x1 < x2 + width2 && x2 < x1 && y1 < y2 && y2 < y1 + height1) { + return true; + } + else if (x2 < x1 + width1 && x1 < x2 && y1 < y2 + height2 && y2 < y1) { + return true; + } + return false; +} + +function $overlapLayer(this$static, nodes){ + var i, overlapping; + overlapping = false; + if (nodes.size_1() < 2) { + return false; + } + for (i = 0; i < nodes.size_1(); i++) { + i < nodes.size_1() - 1?(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 27), castTo(nodes.get_0(i + 1), 27))):(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 27), castTo(nodes.get_0(0), 27))); + } + return overlapping; +} + +function $setCompactionStep(this$static, compactionStep){ + this$static.compactionStep = compactionStep; +} + +function $setRoot(this$static, root){ + this$static.root_0 = root; +} + +function $setSpacing(this$static, spacing){ + this$static.spacing = spacing; +} + +defineClass(653, 1, {}); +_.compactionStep = 1; +_.spacing = 0; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AbstractRadiusExtensionCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AbstractRadiusExtensionCompaction', 653); +function $constructContour(this$static, nodes){ + var node, node$iterator, successors; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 27); + $put(this$static.leftContour, node, node); + $put(this$static.rightContour, node, node); + successors = getSuccessors(node); + if (successors.array.length != 0) { + !!this$static.sorter && this$static.sorter.sort_1(successors); + $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 27))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 27)); + while (getNextLevelNodes(successors).array.length != 0) { + successors = getNextLevelNodes(successors); + !!this$static.sorter && this$static.sorter.sort_1(successors); + $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 27))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 27)); + } + } + } +} + +function $contourOverlap(this$static, neighbourWedgeParent, node, left){ + var contour, contourNode, contourNode$iterator; + contour = left?castTo($get(this$static.leftContour, neighbourWedgeParent), 21):castTo($get(this$static.rightContour, neighbourWedgeParent), 21); + for (contourNode$iterator = contour.iterator_0(); contourNode$iterator.hasNext_0();) { + contourNode = castTo(contourNode$iterator.next_1(), 27); + if ($overlap_1(this$static, node, contourNode)) { + return true; + } + } + return false; +} + +function $contractWedge(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes){ + var isOverlapping, nextLevelNodes, wasContracted; + isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); + wasContracted = false; + while (!isOverlapping) { + $contractLayer(this$static, currentRadiusNodes, true); + wasContracted = true; + isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); + } + wasContracted && $contractLayer(this$static, currentRadiusNodes, false); + nextLevelNodes = getNextLevelNodes(currentRadiusNodes); + if (nextLevelNodes.array.length != 0) { + !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); + $contractWedge(this$static, currentRadiusNodes, radialPredecessor, radialSuccessor, nextLevelNodes); + } +} + +function $overlapping(this$static, predecessors, leftParent, rightParent, layerNodes){ + var firstNode, lastNode, predecessor, predecessor$iterator, sortedNode, sortedNode$iterator; + !!this$static.sorter && this$static.sorter.sort_1(layerNodes); + firstNode = castTo(layerNodes.get_0(0), 27); + if ($contourOverlap(this$static, leftParent, firstNode, false)) { + return true; + } + lastNode = castTo(layerNodes.get_0(layerNodes.size_1() - 1), 27); + if ($contourOverlap(this$static, rightParent, lastNode, true)) { + return true; + } + if ($overlapLayer(this$static, layerNodes)) { + return true; + } + for (sortedNode$iterator = layerNodes.iterator_0(); sortedNode$iterator.hasNext_0();) { + sortedNode = castTo(sortedNode$iterator.next_1(), 27); + for (predecessor$iterator = predecessors.iterator_0(); predecessor$iterator.hasNext_0();) { + predecessor = castTo(predecessor$iterator.next_1(), 27); + if ($overlap_1(this$static, sortedNode, predecessor)) { + return true; + } + } + } + return false; +} + +function AnnulusWedgeCompaction(){ + this.leftContour = new HashMultimap; + this.rightContour = new HashMultimap; +} + +defineClass(1834, 653, {}, AnnulusWedgeCompaction); +_.compact_0 = function compact_2(graph){ + var i, k, leftParent, nodeAsList, rightParent, rootList, spacing, stepSize, successors; + this.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + $setRoot(this, this.root); + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 300)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 17); + !!stepSize && $setCompactionStep(this, stepSize.value_0); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); + successors = getSuccessors(this.root); + !!this.sorter && this.sorter.sort_1(successors); + $constructContour(this, successors); + rootList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_128, 27, 0, [this.root])); + for (k = 0; k < 2; k++) { + for (i = 0; i < successors.array.length; i++) { + nodeAsList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_128, 27, 0, [(checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 27))])); + rightParent = i < successors.array.length - 1?(checkCriticalElementIndex(i + 1, successors.array.length) , castTo(successors.array[i + 1], 27)):(checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 27)); + leftParent = i == 0?castTo($get_11(successors, successors.array.length - 1), 27):(checkCriticalElementIndex(i - 1, successors.array.length) , castTo(successors.array[i - 1], 27)); + $contractWedge(this, (checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 27) , rootList), leftParent, rightParent, nodeAsList); + } + } +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AnnulusWedgeCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AnnulusWedgeCompaction', 1834); +function $process_99(graph, progressMonitor){ + var compactor; + progressMonitor.begin('General Compactor', 1); + compactor = $create_11(castTo($getProperty_0(graph, ($clinit_RadialOptions() , COMPACTOR_0)), 393)); + compactor.compact_0(graph); +} + +function GeneralCompactor(){ +} + +defineClass(1393, 1, $intern_105, GeneralCompactor); +_.process = function process_95(graph, progressMonitor){ + $process_99(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_GeneralCompactor_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'GeneralCompactor', 1393); +function $calculateRadius(this$static, node){ + var radius, root, rootX, rootY, vectorX, vectorY, xPos, yPos; + xPos = node.x_0; + yPos = node.y_0; + root = this$static.root_0; + rootX = root.x_0; + rootY = root.y_0; + vectorX = xPos - rootX; + vectorY = yPos - rootY; + radius = $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + return radius; +} + +function $contract(this$static, nodes){ + var isOverlapping, nextLevelNodes, wasContracted; + if (nodes.array.length != 0) { + isOverlapping = $overlapping_0(this$static, nodes); + wasContracted = false; + while (!isOverlapping) { + $contractLayer(this$static, nodes, true); + wasContracted = true; + isOverlapping = $overlapping_0(this$static, nodes); + } + wasContracted && $contractLayer(this$static, nodes, false); + nextLevelNodes = getNextLevelNodes(nodes); + !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); + this$static.lastRadius = $calculateRadius(this$static, (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 27))); + $contract(this$static, nextLevelNodes); + } +} + +function $overlapping_0(this$static, nodes){ + var node, node$iterator, parent_0; + if ($overlapLayer(this$static, nodes)) { + return true; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 27); + parent_0 = getTreeParent(node); + if ($overlap_1(this$static, node, parent_0)) { + return true; + } + if ($calculateRadius(this$static, node) - this$static.spacing <= this$static.lastRadius) { + return true; + } + } + return false; +} + +function RadialCompaction(){ +} + +defineClass(1833, 653, {}, RadialCompaction); +_.compact_0 = function compact_3(graph){ + var firstLevelNodes, root, spacing, stepSize; + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + this.root_0 = root; + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 300)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 17); + !!stepSize && $setCompactionStep(this, stepSize.value_0); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); + firstLevelNodes = getSuccessors(root); + !!this.sorter && this.sorter.sort_1(firstLevelNodes); + $contract(this, firstLevelNodes); +} +; +_.lastRadius = 0; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_RadialCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'RadialCompaction', 1833); +function $isCrossing(this$static, node1, node2){ + var b1, b2, m1, m2, node1Vector, node2Vector, position1, position2, rootX, rootY, xCut, xPos1, xPos2, yPos1, yPos2; + rootX = this$static.root.x_0 + this$static.root.width_0 / 2; + rootY = this$static.root.x_0 + this$static.root.width_0 / 2; + xPos1 = node1.x_0 + node1.width_0 / 2; + yPos1 = node1.y_0 + node1.height / 2; + node1Vector = new KVector_1(xPos1, yPos1); + position1 = castTo($getProperty_0(node1, ($clinit_CoreOptions() , POSITION_2)), 8); + position1.x_0 = position1.x_0 + rootX; + position1.y_0 = position1.y_0 + rootY; + m1 = (node1Vector.y_0 - position1.y_0) / (node1Vector.x_0 - position1.x_0); + b1 = node1Vector.y_0 - m1 * node1Vector.x_0; + xPos2 = node2.x_0 + node2.width_0 / 2; + yPos2 = node2.y_0 + node2.height / 2; + node2Vector = new KVector_1(xPos2, yPos2); + position2 = castTo($getProperty_0(node2, POSITION_2), 8); + position2.x_0 = position2.x_0 + rootX; + position2.y_0 = position2.y_0 + rootY; + m2 = (node2Vector.y_0 - position2.y_0) / (node2Vector.x_0 - position2.x_0); + b2 = node2Vector.y_0 - m2 * node2Vector.x_0; + xCut = (b1 - b2) / (m2 - m1); + if (position1.x_0 < xCut && node1Vector.x_0 < xCut || xCut < position1.x_0 && xCut < node1Vector.x_0) { + return false; + } + else if (position2.x_0 < xCut && node2Vector.x_0 < xCut || xCut < position2.x_0 && xCut < node2Vector.x_0) { + return false; + } + return true; +} + +function CrossingMinimizationPosition(){ +} + +defineClass(1842, 1, {}, CrossingMinimizationPosition); +_.evaluate = function evaluate(rootNode){ + var crossings, i, k, node1, node1$iterator, nodes; + this.root = rootNode; + crossings = 0; + nodes = getSuccessors(rootNode); + k = 0; + for (node1$iterator = new ArrayList$1(nodes); node1$iterator.i < node1$iterator.this$01.array.length;) { + node1 = castTo($next_6(node1$iterator), 27); + ++k; + for (i = k; i < nodes.array.length; i++) { + $isCrossing(this, node1, (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 27))) && (crossings += 1); + } + } + return crossings; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_CrossingMinimizationPosition_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'CrossingMinimizationPosition', 1842); +function EdgeLengthOptimization(){ +} + +defineClass(1840, 1, {}, EdgeLengthOptimization); +_.evaluate = function evaluate_0(root){ + var edge, edge$iterator, edgeLength, rootX, rootY, sourceClip, target, targetClip, targetX, targetY, vector, vectorX, vectorY; + edgeLength = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)); + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + rootX = root.x_0 + root.width_0 / 2; + rootY = root.y_0 + root.height / 2; + vector = new KVector; + vector.x_0 = targetX - rootX; + vector.y_0 = targetY - rootY; + sourceClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(sourceClip, root.width_0, root.height); + vector.x_0 -= sourceClip.x_0; + vector.y_0 -= sourceClip.y_0; + rootX = targetX - vector.x_0; + rootY = targetY - vector.y_0; + targetClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(targetClip, target.width_0, target.height); + vector.x_0 -= targetClip.x_0; + vector.y_0 -= targetClip.y_0; + targetX = rootX + vector.x_0; + targetY = rootY + vector.y_0; + vectorX = targetX - rootX; + vectorY = targetY - rootY; + edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + } + return edgeLength; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthOptimization', 1840); +function EdgeLengthPositionOptimization(){ +} + +defineClass(1841, 1, {}, EdgeLengthPositionOptimization); +_.evaluate = function evaluate_1(root){ + var edge, edge$iterator, edgeLength, position, rootX, rootY, target, targetX, targetY, vectorX, vectorY; + edgeLength = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)); + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + position = castTo($getProperty_0(target, ($clinit_CoreOptions() , POSITION_2)), 8); + rootX = root.x_0 + position.x_0 + root.width_0 / 2; + rootY = root.y_0 + position.y_0 + root.height; + vectorX = targetX - rootX; + vectorY = targetY - rootY; + edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + } + return edgeLength; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthPositionOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthPositionOptimization', 1841); +function $extend(this$static, graph, nodes, progressMonitor){ + var firstNode, index_0, movedDistance, movedX, movedY, nextLevelNode, nextLevelNode$iterator, nextLevelNodes, node, node$iterator, oldPositions, root, rootX, rootY, nodeX, nodeY, differenceX, differenceY, length_0, unitX, unitY; + if (nodes.array.length != 0) { + oldPositions = new ArrayList; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 27); + $add_3(oldPositions, new KVector_1(node.x_0, node.y_0)); + } + progressMonitor.logGraph(graph, 'Before removing overlaps'); + while ($overlapLayer(this$static, nodes)) { + $contractLayer(this$static, nodes, false); + } + progressMonitor.logGraph(graph, 'After removing overlaps'); + movedX = 0; + movedY = 0; + firstNode = null; + if (nodes.array.length != 0) { + firstNode = (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 27)); + movedX = firstNode.x_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).x_0; + movedY = firstNode.y_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).y_0; + } + movedDistance = $wnd.Math.sqrt(movedX * movedX + movedY * movedY); + nextLevelNodes = getNextLevelNodeSet(nodes); + index_0 = 1; + if (nextLevelNodes.map_0.size_1() != 0) { + for (nextLevelNode$iterator = nextLevelNodes.map_0.keySet_0().iterator_0(); nextLevelNode$iterator.hasNext_0();) { + nextLevelNode = castTo(nextLevelNode$iterator.next_1(), 27); + root = this$static.root_0; + rootX = root.x_0 + root.width_0 / 2; + rootY = root.y_0 + root.height / 2; + nodeX = nextLevelNode.x_0 + nextLevelNode.width_0 / 2; + nodeY = nextLevelNode.y_0 + nextLevelNode.height / 2; + differenceX = nodeX - rootX; + differenceY = nodeY - rootY; + length_0 = $wnd.Math.sqrt(differenceX * differenceX + differenceY * differenceY); + unitX = differenceX / length_0; + unitY = differenceY / length_0; + $setX_2(nextLevelNode, nextLevelNode.x_0 + unitX * movedDistance); + $setY_3(nextLevelNode, nextLevelNode.y_0 + unitY * movedDistance); + } + progressMonitor.logGraph(graph, 'Child movement ' + index_0); + ++index_0; + } + !!this$static.sorter && this$static.sorter.sort_1(new ArrayList_1(nextLevelNodes)); + $extend(this$static, graph, new ArrayList_1(nextLevelNodes), progressMonitor); + } +} + +function $process_100(this$static, graph, progressMonitor){ + var root, spacing, successors; + progressMonitor.begin('Remove overlaps', 1); + progressMonitor.logGraph(graph, 'Before'); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + this$static.root_0 = root; + this$static.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 300)); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this$static, (checkCriticalNotNull(spacing) , spacing)); + successors = getSuccessors(root); + $extend(this$static, graph, successors, progressMonitor); + progressMonitor.logGraph(graph, 'After'); +} + +function RadiusExtensionOverlapRemoval(){ +} + +defineClass(1392, 653, $intern_105, RadiusExtensionOverlapRemoval); +_.process = function process_96(graph, progressMonitor){ + $process_100(this, castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_overlaps_RadiusExtensionOverlapRemoval_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.overlaps', 'RadiusExtensionOverlapRemoval', 1392); +function $rotate(graph){ + var alignmentAngle, alpha_0, firstNode, firstVector, lastNode, lastVector, node, node$iterator, pos, root, targetAngle, wedgeAngle, newX; + targetAngle = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , ROTATION_TARGET_ANGLE_0)))); + if ($booleanValue(castToBoolean($getProperty_0(graph, ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE_0)))) { + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + lastNode = castTo($get_20($getTargets(castTo($get_20((!root.outgoingEdges && (root.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, root, 7, 4)) , root.outgoingEdges), (!root.outgoingEdges && (root.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, root, 7, 4)) , root.outgoingEdges).size_0 - 1), 74)), 0), 27); + firstNode = castTo($get_20($getTargets(castTo($get_20((!root.outgoingEdges && (root.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, root, 7, 4)) , root.outgoingEdges), 0), 74)), 0), 27); + lastVector = new KVector_1(lastNode.x_0 + lastNode.width_0 / 2, lastNode.y_0 + lastNode.height / 2); + firstVector = new KVector_1(firstNode.x_0 + firstNode.width_0 / 2, firstNode.y_0 + firstNode.height / 2); + alpha_0 = targetAngle; + alpha_0 <= 0 && (alpha_0 += $intern_126); + wedgeAngle = $wnd.Math.acos((lastVector.x_0 * firstVector.x_0 + lastVector.y_0 * firstVector.y_0) / ($wnd.Math.sqrt(lastVector.x_0 * lastVector.x_0 + lastVector.y_0 * lastVector.y_0) * $wnd.Math.sqrt(firstVector.x_0 * firstVector.x_0 + firstVector.y_0 * firstVector.y_0))); + wedgeAngle <= 0 && (wedgeAngle += $intern_126); + alignmentAngle = $wnd.Math.atan2(lastVector.y_0, lastVector.x_0); + alignmentAngle <= 0 && (alignmentAngle += $intern_126); + targetAngle = $intern_122 - (alignmentAngle - alpha_0 + wedgeAngle / 2); + } + for (node$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + pos = new KVector_1(node.x_0 + node.width_0 / 2, node.y_0 + node.height / 2); + newX = pos.x_0 * $wnd.Math.cos(targetAngle) - pos.y_0 * $wnd.Math.sin(targetAngle); + pos.y_0 = pos.x_0 * $wnd.Math.sin(targetAngle) + pos.y_0 * $wnd.Math.cos(targetAngle); + pos.x_0 = newX; + $setLocation_1(node, pos.x_0 - node.width_0 / 2, pos.y_0 - node.height / 2); + } +} + +function $process_101(graph, progressMonitor){ + progressMonitor.begin("General 'Rotator", 1); + $rotate(graph); +} + +function GeneralRotator(){ +} + +defineClass(1394, 1, $intern_105, GeneralRotator); +_.process = function process_97(graph, progressMonitor){ + $process_101(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_rotation_GeneralRotator_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.rotation', 'GeneralRotator', 1394); +function $clinit_AnnulusWedgeCriteria(){ + $clinit_AnnulusWedgeCriteria = emptyMethod; + LEAF_NUMBER = new AnnulusWedgeCriteria('LEAF_NUMBER', 0); + NODE_SIZE_0 = new AnnulusWedgeCriteria('NODE_SIZE', 1); +} + +function $create_10(this$static){ + switch (this$static.ordinal) { + case 0: + return new AnnulusWedgeByLeafs; + case 1: + return new AnnulusWedgeByNodeSpace; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function AnnulusWedgeCriteria(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_78(name_0){ + $clinit_AnnulusWedgeCriteria(); + return valueOf(($clinit_AnnulusWedgeCriteria$Map() , $MAP_68), name_0); +} + +function values_86(){ + $clinit_AnnulusWedgeCriteria(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_37, 434, 0, [LEAF_NUMBER, NODE_SIZE_0]); +} + +defineClass(434, 22, {3:1, 34:1, 22:1, 434:1}, AnnulusWedgeCriteria); +var LEAF_NUMBER, NODE_SIZE_0; +var Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'AnnulusWedgeCriteria', 434, Ljava_lang_Enum_2_classLit, values_86, valueOf_78); +function $clinit_AnnulusWedgeCriteria$Map(){ + $clinit_AnnulusWedgeCriteria$Map = emptyMethod; + $MAP_68 = createValueOfMap(($clinit_AnnulusWedgeCriteria() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_37, 434, 0, [LEAF_NUMBER, NODE_SIZE_0]))); +} + +var $MAP_68; +function $clinit_CompactionStrategy_0(){ + $clinit_CompactionStrategy_0 = emptyMethod; + NONE_12 = new CompactionStrategy_0('NONE', 0); + RADIAL_COMPACTION = new CompactionStrategy_0('RADIAL_COMPACTION', 1); + WEDGE_COMPACTION = new CompactionStrategy_0('WEDGE_COMPACTION', 2); +} + +function $create_11(this$static){ + switch (this$static.ordinal) { + case 1: + return new RadialCompaction; + case 2: + return new AnnulusWedgeCompaction; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CompactionStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_79(name_0){ + $clinit_CompactionStrategy_0(); + return valueOf(($clinit_CompactionStrategy$Map_0() , $MAP_69), name_0); +} + +function values_87(){ + $clinit_CompactionStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_37, 393, 0, [NONE_12, RADIAL_COMPACTION, WEDGE_COMPACTION]); +} + +defineClass(393, 22, {3:1, 34:1, 22:1, 393:1}, CompactionStrategy_0); +var NONE_12, RADIAL_COMPACTION, WEDGE_COMPACTION; +var Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'CompactionStrategy', 393, Ljava_lang_Enum_2_classLit, values_87, valueOf_79); +function $clinit_CompactionStrategy$Map_0(){ + $clinit_CompactionStrategy$Map_0 = emptyMethod; + $MAP_69 = createValueOfMap(($clinit_CompactionStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_37, 393, 0, [NONE_12, RADIAL_COMPACTION, WEDGE_COMPACTION]))); +} + +var $MAP_69; +function $clinit_RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider = emptyMethod; + CENTER_ON_ROOT = new Property_1('org.eclipse.elk.radial.centerOnRoot', ($clinit_Boolean() , false)); + ORDER_ID = new Property_1('org.eclipse.elk.radial.orderId', valueOf_3(0)); + RADIUS = new Property_1('org.eclipse.elk.radial.radius', 0); + ROTATE = new Property_1('org.eclipse.elk.radial.rotate', false); + COMPACTOR_DEFAULT = ($clinit_CompactionStrategy_0() , NONE_12); + COMPACTOR = new Property_1('org.eclipse.elk.radial.compactor', COMPACTOR_DEFAULT); + valueOf_3(0); + COMPACTION_STEP_SIZE = new Property_1('org.eclipse.elk.radial.compactionStepSize', valueOf_3(1)); + SORTER_DEFAULT = ($clinit_SortingStrategy() , NONE_14); + SORTER = new Property_1('org.eclipse.elk.radial.sorter', SORTER_DEFAULT); + WEDGE_CRITERIA_DEFAULT = ($clinit_AnnulusWedgeCriteria() , NODE_SIZE_0); + WEDGE_CRITERIA = new Property_1('org.eclipse.elk.radial.wedgeCriteria', WEDGE_CRITERIA_DEFAULT); + OPTIMIZATION_CRITERIA_DEFAULT = ($clinit_RadialTranslationStrategy() , NONE_13); + OPTIMIZATION_CRITERIA = new Property_1('org.eclipse.elk.radial.optimizationCriteria', OPTIMIZATION_CRITERIA_DEFAULT); + ROTATION_TARGET_ANGLE = new Property_1('org.eclipse.elk.radial.rotation.targetAngle', 0); + ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE = new Property_1('org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace', false); + ROTATION_OUTGOING_EDGE_ANGLES = new Property_1('org.eclipse.elk.radial.rotation.outgoingEdgeAngles', false); +} + +function RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider(); +} + +defineClass(863, 1, $intern_90, RadialMetaDataProvider); +_.apply_4 = function apply_167(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.centerOnRoot'), ''), 'Center On Root'), 'Centers the layout on the root of the tree i.e. so that the central node is also the center node of the final layout. This introduces additional whitespace.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.orderId'), ''), 'Order ID'), 'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'), valueOf_3(0)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.radius'), ''), 'Radius'), 'The radius option can be used to set the initial radius for the radial layouter.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.rotate'), ''), 'Rotate'), 'The rotate option determines whether a rotation of the layout should be performed.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactor'), ''), 'Compaction'), 'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'), COMPACTOR_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactionStepSize'), ''), 'Compaction Step Size'), 'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'), valueOf_3(1)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.radial.compactionStepSize', 'org.eclipse.elk.radial.compactor', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.sorter'), ''), 'Sorter'), 'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'), SORTER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.wedgeCriteria'), ''), 'Annulus Wedge Criteria'), 'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'), WEDGE_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.optimizationCriteria'), ''), 'Translation Optimization'), 'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'), OPTIMIZATION_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.rotation.targetAngle'), 'rotation'), 'Target Angle'), 'The angle in radians that the layout should be rotated to after layout.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.radial.rotation.targetAngle', 'org.eclipse.elk.radial.rotate', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace'), 'rotation'), 'Additional Wedge Space'), 'If set to true, modifies the target angle by rotating further such that space is left for an edge to pass in between the nodes. This option should only be used in conjunction with top-down layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace', 'org.eclipse.elk.radial.rotate', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.rotation.outgoingEdgeAngles'), 'rotation'), 'Outgoing Edge Angles'), 'Calculate the required angle of connected nodes to leave space for an incoming edge. This option should only be used in conjunction with top-down layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $apply_20((new RadialOptions , registry)); +} +; +var CENTER_ON_ROOT, COMPACTION_STEP_SIZE, COMPACTOR, COMPACTOR_DEFAULT, OPTIMIZATION_CRITERIA, OPTIMIZATION_CRITERIA_DEFAULT, ORDER_ID, RADIUS, ROTATE, ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE, ROTATION_OUTGOING_EDGE_ANGLES, ROTATION_TARGET_ANGLE, SORTER, SORTER_DEFAULT, WEDGE_CRITERIA, WEDGE_CRITERIA_DEFAULT; +var Lorg_eclipse_elk_alg_radial_options_RadialMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialMetaDataProvider', 863); +function $clinit_RadialOptions(){ + $clinit_RadialOptions = emptyMethod; + POSITION_1 = ($clinit_CoreOptions() , POSITION_2); + SPACING_NODE_NODE_2 = SPACING_NODE_NODE_6; + NODE_SIZE_CONSTRAINTS_3 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_2 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_3 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_3 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_2 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_3 = PORT_LABELS_PLACEMENT_5; + COMPACTION_STEP_SIZE_0 = ($clinit_RadialMetaDataProvider() , COMPACTION_STEP_SIZE); + COMPACTOR_0 = COMPACTOR; + ROTATE_0 = ROTATE; + ROTATION_TARGET_ANGLE_0 = ROTATION_TARGET_ANGLE; + ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE_0 = ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE; + ROTATION_OUTGOING_EDGE_ANGLES_0 = ROTATION_OUTGOING_EDGE_ANGLES; + OPTIMIZATION_CRITERIA_0 = OPTIMIZATION_CRITERIA; + ORDER_ID_0 = ORDER_ID; + RADIUS_0 = RADIUS; + SORTER_0 = SORTER; + WEDGE_CRITERIA_0 = WEDGE_CRITERIA; + CENTER_ON_ROOT_0 = CENTER_ON_ROOT; +} + +function $apply_20(registry){ + $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.radial'), 'ELK Radial'), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new RadialOptions$RadialFactory), 'org.eclipse.elk.radial'))); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.position', $getDefault(POSITION_1)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactionStepSize', $getDefault(COMPACTION_STEP_SIZE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactor', $getDefault(COMPACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.rotate', $getDefault(ROTATE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.rotation.targetAngle', $getDefault(ROTATION_TARGET_ANGLE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace', $getDefault(ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.rotation.outgoingEdgeAngles', $getDefault(ROTATION_OUTGOING_EDGE_ANGLES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.optimizationCriteria', $getDefault(OPTIMIZATION_CRITERIA_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.orderId', $getDefault(ORDER_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.radius', $getDefault(RADIUS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.sorter', $getDefault(SORTER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.wedgeCriteria', $getDefault(WEDGE_CRITERIA_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.centerOnRoot', $getDefault(CENTER_ON_ROOT_0)); +} + +function RadialOptions(){ + $clinit_RadialOptions(); +} + +defineClass(1008, 1, $intern_90, RadialOptions); +_.apply_4 = function apply_168(registry){ + $apply_20(registry); +} +; +var CENTER_ON_ROOT_0, COMPACTION_STEP_SIZE_0, COMPACTOR_0, NODE_LABELS_PLACEMENT_3, NODE_SIZE_CONSTRAINTS_3, NODE_SIZE_MINIMUM_2, NODE_SIZE_OPTIONS_3, OMIT_NODE_MICRO_LAYOUT_2, OPTIMIZATION_CRITERIA_0, ORDER_ID_0, PORT_LABELS_PLACEMENT_3, POSITION_1, RADIUS_0, ROTATE_0, ROTATION_COMPUTE_ADDITIONAL_WEDGE_SPACE_0, ROTATION_OUTGOING_EDGE_ANGLES_0, ROTATION_TARGET_ANGLE_0, SORTER_0, SPACING_NODE_NODE_2, WEDGE_CRITERIA_0; +var Lorg_eclipse_elk_alg_radial_options_RadialOptions_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions', 1008); +function RadialOptions$RadialFactory(){ +} + +defineClass(1009, 1, {}, RadialOptions$RadialFactory); +_.create_0 = function create_25(){ + var provider; + return provider = new RadialLayoutProvider , provider; +} +; +_.destroy = function destroy_4(obj){ +} +; +var Lorg_eclipse_elk_alg_radial_options_RadialOptions$RadialFactory_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions/RadialFactory', 1009); +function $clinit_RadialTranslationStrategy(){ + $clinit_RadialTranslationStrategy = emptyMethod; + NONE_13 = new RadialTranslationStrategy('NONE', 0); + EDGE_LENGTH_0 = new RadialTranslationStrategy('EDGE_LENGTH', 1); + EDGE_LENGTH_BY_POSITION = new RadialTranslationStrategy('EDGE_LENGTH_BY_POSITION', 2); + CROSSING_MINIMIZATION_BY_POSITION = new RadialTranslationStrategy('CROSSING_MINIMIZATION_BY_POSITION', 3); +} + +function $create_12(this$static){ + switch (this$static.ordinal) { + case 1: + return new EdgeLengthOptimization; + case 2: + return new EdgeLengthPositionOptimization; + case 3: + return new CrossingMinimizationPosition; + case 0: + return null; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function RadialTranslationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_80(name_0){ + $clinit_RadialTranslationStrategy(); + return valueOf(($clinit_RadialTranslationStrategy$Map() , $MAP_70), name_0); +} + +function values_88(){ + $clinit_RadialTranslationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_37, 354, 0, [NONE_13, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]); +} + +defineClass(354, 22, {3:1, 34:1, 22:1, 354:1}, RadialTranslationStrategy); +var CROSSING_MINIMIZATION_BY_POSITION, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, NONE_13; +var Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'RadialTranslationStrategy', 354, Ljava_lang_Enum_2_classLit, values_88, valueOf_80); +function $clinit_RadialTranslationStrategy$Map(){ + $clinit_RadialTranslationStrategy$Map = emptyMethod; + $MAP_70 = createValueOfMap(($clinit_RadialTranslationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_37, 354, 0, [NONE_13, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]))); +} + +var $MAP_70; +function $clinit_SortingStrategy(){ + $clinit_SortingStrategy = emptyMethod; + NONE_14 = new SortingStrategy('NONE', 0); + POLAR_COORDINATE = new SortingStrategy('POLAR_COORDINATE', 1); + ID_0 = new SortingStrategy('ID', 2); +} + +function $create_13(this$static){ + switch (this$static.ordinal) { + case 0: + return null; + case 1: + return new PolarCoordinateSorter; + case 2: + return new IDSorter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function SortingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_81(name_0){ + $clinit_SortingStrategy(); + return valueOf(($clinit_SortingStrategy$Map() , $MAP_71), name_0); +} + +function values_89(){ + $clinit_SortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_37, 300, 0, [NONE_14, POLAR_COORDINATE, ID_0]); +} + +defineClass(300, 22, {3:1, 34:1, 22:1, 300:1}, SortingStrategy); +var ID_0, NONE_14, POLAR_COORDINATE; +var Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'SortingStrategy', 300, Ljava_lang_Enum_2_classLit, values_89, valueOf_81); +function $clinit_SortingStrategy$Map(){ + $clinit_SortingStrategy$Map = emptyMethod; + $MAP_71 = createValueOfMap(($clinit_SortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_37, 300, 0, [NONE_14, POLAR_COORDINATE, ID_0]))); +} + +var $MAP_71; +function $positionNodes(this$static, node, currentRadius, minAlpha, maxAlpha, optimalOffset){ + var alpha_0, alphaPoint, child, child$iterator, numberOfChildLeafs, numberOfLeafs, radOffest, s, successors, tau, xPos, yPos, xPosition, yPosition; + radOffest = optimalOffset; + alphaPoint = (minAlpha + maxAlpha) / 2 + radOffest; + xPos = currentRadius * $wnd.Math.cos(alphaPoint); + yPos = currentRadius * $wnd.Math.sin(alphaPoint); + xPosition = xPos - node.width_0 / 2; + yPosition = yPos - node.height / 2; + $setX_2(node, xPosition); + $setY_3(node, yPosition); + numberOfLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(node); + tau = 2 * $wnd.Math.acos(currentRadius / currentRadius + this$static.radius); + if (tau < maxAlpha - minAlpha) { + s = tau / numberOfLeafs; + alpha_0 = (minAlpha + maxAlpha - tau) / 2; + } + else { + s = (maxAlpha - minAlpha) / numberOfLeafs; + alpha_0 = minAlpha; + } + successors = getSuccessors(node); + if (this$static.sorter) { + this$static.sorter.initialize_0(this$static.root); + this$static.sorter.sort_1(successors); + } + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 27); + numberOfChildLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(child); + $positionNodes(this$static, child, currentRadius + this$static.radius, alpha_0, alpha_0 + s * numberOfChildLeafs, optimalOffset); + alpha_0 += s * numberOfChildLeafs; + } +} + +function $process_102(this$static, graph, progressMonitor){ + progressMonitor.begin('Eades radial', 1); + progressMonitor.logGraph(graph, 'After'); + this$static.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + this$static.radius = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , RADIUS_0)))); + this$static.sorter = $create_13(castTo($getProperty_0(graph, SORTER_0), 300)); + this$static.annulusWedgeCriteria = $create_10(castTo($getProperty_0(graph, WEDGE_CRITERIA_0), 434)); + this$static.optimizer = $create_12(castTo($getProperty_0(graph, OPTIMIZATION_CRITERIA_0), 354)); + $translate_0(this$static); + progressMonitor.logGraph(graph, 'After'); +} + +function $translate_0(this$static){ + var i, offset, optimalOffset, optimalValue, translatedValue; + optimalOffset = 0; + optimalValue = $intern_98; + if (this$static.optimizer) { + for (i = 0; i < 360; i++) { + offset = i * 0.017453292519943295; + $positionNodes(this$static, this$static.root, 0, 0, $intern_126, offset); + translatedValue = this$static.optimizer.evaluate(this$static.root); + if (translatedValue < optimalValue) { + optimalOffset = offset; + optimalValue = translatedValue; + } + } + } + $positionNodes(this$static, this$static.root, 0, 0, $intern_126, optimalOffset); +} + +function EadesRadial(){ +} + +defineClass(1476, 1, $intern_113, EadesRadial); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_27(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_98(graph, progressMonitor){ + $process_102(this, castTo(graph, 27), progressMonitor); +} +; +_.radius = 0; +var Lorg_eclipse_elk_alg_radial_p1position_EadesRadial_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position', 'EadesRadial', 1476); +function AnnulusWedgeByLeafs(){ +} + +defineClass(1838, 1, {}, AnnulusWedgeByLeafs); +_.calculateWedgeSpace = function calculateWedgeSpace(node){ + return getNumberOfLeaves(node); +} +; +var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByLeafs_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByLeafs', 1838); +function $calculateWedgeSpace(this$static, node){ + var child, child$iterator, childSpace, height, nodeSize, successors, width_0; + successors = getSuccessors(node); + height = node.height; + width_0 = node.width_0; + nodeSize = $wnd.Math.sqrt(height * height + width_0 * width_0); + childSpace = 0; + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 27); + childSpace += $calculateWedgeSpace(this$static, child); + } + return $wnd.Math.max(childSpace, nodeSize); +} + +function AnnulusWedgeByNodeSpace(){ +} + +defineClass(1839, 1, {}, AnnulusWedgeByNodeSpace); +_.calculateWedgeSpace = function calculateWedgeSpace_0(node){ + return $calculateWedgeSpace(this, node); +} +; +var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByNodeSpace_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByNodeSpace', 1839); +function $process_103(this$static, graph, progressMonitor){ + var root; + progressMonitor.begin('Straight Line Edge Routing', 1); + progressMonitor.logGraph(graph, 'Before'); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 27); + $routeEdges_1(this$static, root); + progressMonitor.logGraph(graph, 'After'); +} + +function $routeEdges_1(this$static, node){ + var edge, edge$iterator, section, sourceClip, sourceX, sourceY, target, targetClip, targetX, targetY, vector; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + if (!instanceOf($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 193)) { + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)); + if (!$isHierarchical(edge)) { + sourceX = node.x_0 + node.width_0 / 2; + sourceY = node.y_0 + node.height / 2; + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + vector = new KVector; + vector.x_0 = targetX - sourceX; + vector.y_0 = targetY - sourceY; + sourceClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(sourceClip, node.width_0, node.height); + vector.x_0 -= sourceClip.x_0; + vector.y_0 -= sourceClip.y_0; + sourceX = targetX - vector.x_0; + sourceY = targetY - vector.y_0; + targetClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(targetClip, target.width_0, target.height); + vector.x_0 -= targetClip.x_0; + vector.y_0 -= targetClip.y_0; + targetX = sourceX + vector.x_0; + targetY = sourceY + vector.y_0; + section = firstEdgeSection(edge, true, true); + $setStartX(section, sourceX); + $setStartY(section, sourceY); + $setEndX(section, targetX); + $setEndY(section, targetY); + $routeEdges_1(this$static, target); + } + } + } +} + +function StraightLineEdgeRouter(){ +} + +defineClass(1477, 1, $intern_113, StraightLineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_28(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_99(graph, progressMonitor){ + $process_103(this, castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_p2routing_StraightLineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.radial.p2routing', 'StraightLineEdgeRouter', 1477); +function $sort_2(this$static, nodes){ + nodes.sort_0(this$static.idSorter); +} + +function IDSorter(){ + this.idSorter = new IDSorter$lambda$0$Type; +} + +function lambda$0_37(node1_0, node2_1){ + var orderID1, orderID2; + orderID1 = castTo($getProperty_0(node1_0, ($clinit_RadialOptions() , ORDER_ID_0)), 17); + orderID2 = castTo($getProperty_0(node2_1, ORDER_ID_0), 17); + return compare_5(orderID1.value_0, orderID2.value_0); +} + +defineClass(826, 1, {}, IDSorter); +_.initialize_0 = function initialize_3(root){ +} +; +_.sort_1 = function sort_11(nodes){ + $sort_2(this, nodes); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter', 826); +function IDSorter$lambda$0$Type(){ +} + +defineClass(1837, 1, $intern_88, IDSorter$lambda$0$Type); +_.compare_1 = function compare_106(arg0, arg1){ + return lambda$0_37(castTo(arg0, 27), castTo(arg1, 27)); +} +; +_.equals_0 = function equals_193(other){ + return this === other; +} +; +_.reversed = function reversed_98(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter/lambda$0$Type', 1837); +function $initialize_7(this$static, root){ + var successors; + this$static.idSorter = new IDSorter; + successors = getSuccessors(root); + $sort(successors, this$static.compRight); + $setIDForNodes(this$static, successors, 0); +} + +function $setIDForNodes(this$static, nodes, idOffset){ + var arc, id_0, nextLayerId, node, node$iterator, nodeSuccessors; + id_0 = idOffset; + nextLayerId = 0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 27); + $setProperty_1(node, ($clinit_RadialOptions() , ORDER_ID_0), valueOf_3(id_0++)); + nodeSuccessors = getSuccessors(node); + arc = $wnd.Math.atan2(node.y_0 + node.height / 2, node.x_0 + node.width_0 / 2); + arc += arc < 0?$intern_126:0; + arc < 0.7853981633974483 || arc > $intern_129?$sort(nodeSuccessors, this$static.compLeft):arc <= $intern_129 && arc > $intern_130?$sort(nodeSuccessors, this$static.compTop):arc <= $intern_130 && arc > $intern_131?$sort(nodeSuccessors, this$static.compRight):arc <= $intern_131 && $sort(nodeSuccessors, this$static.compBottom); + nextLayerId = $setIDForNodes(this$static, nodeSuccessors, nextLayerId); + } + return id_0; +} + +function PolarCoordinateSorter(){ + this.compRight = new RadialUtil$lambda$0$Type(0); + this.compLeft = new RadialUtil$lambda$0$Type($intern_122); + this.compTop = new RadialUtil$lambda$0$Type($intern_121); + this.compBottom = new RadialUtil$lambda$0$Type($intern_97); +} + +defineClass(1836, 1, {}, PolarCoordinateSorter); +_.initialize_0 = function initialize_4(root){ + $initialize_7(this, root); +} +; +_.sort_1 = function sort_12(nodes){ + var root; + if (!nodes.isEmpty()) { + if (!this.idSorter) { + root = findRootOfNode(castTo(nodes.get_0(0), 27)); + $initialize_7(this, root); + } + $sort_2(this.idSorter, nodes); + } +} +; +var Lorg_eclipse_elk_alg_radial_sorting_PolarCoordinateSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'PolarCoordinateSorter', 1836); +function $clinit_RectPackingLayoutPhases(){ + $clinit_RectPackingLayoutPhases = emptyMethod; + P1_WIDTH_APPROXIMATION = new RectPackingLayoutPhases('P1_WIDTH_APPROXIMATION', 0); + P2_PACKING = new RectPackingLayoutPhases('P2_PACKING', 1); + P3_WHITESPACE_ELIMINATION = new RectPackingLayoutPhases('P3_WHITESPACE_ELIMINATION', 2); +} + +function RectPackingLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_82(name_0){ + $clinit_RectPackingLayoutPhases(); + return valueOf(($clinit_RectPackingLayoutPhases$Map() , $MAP_72), name_0); +} + +function values_90(){ + $clinit_RectPackingLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutPhases_2_classLit, 1), $intern_37, 445, 0, [P1_WIDTH_APPROXIMATION, P2_PACKING, P3_WHITESPACE_ELIMINATION]); +} + +defineClass(445, 22, {3:1, 34:1, 22:1, 445:1}, RectPackingLayoutPhases); +var P1_WIDTH_APPROXIMATION, P2_PACKING, P3_WHITESPACE_ELIMINATION; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutPhases', 445, Ljava_lang_Enum_2_classLit, values_90, valueOf_82); +function $clinit_RectPackingLayoutPhases$Map(){ + $clinit_RectPackingLayoutPhases$Map = emptyMethod; + $MAP_72 = createValueOfMap(($clinit_RectPackingLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutPhases_2_classLit, 1), $intern_37, 445, 0, [P1_WIDTH_APPROXIMATION, P2_PACKING, P3_WHITESPACE_ELIMINATION]))); +} + +var $MAP_72; +function RectPackingLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutPhases_2_classLit); +} + +function applyPadding(rectangles, padding){ + var rect, rect$iterator; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 27); + $setLocation_1(rect, rect.x_0 + padding.left, rect.y_0 + padding.top_0); + } +} + +defineClass(1118, 205, $intern_96, RectPackingLayoutProvider); +_.layout = function layout_5(layoutGraph, progressMonitor){ + var algorithm, builder, builder0, counter, elkNode, elkNode$iterator, fixedGraphSize, monitorProgress, nodeNodeSpacing, padding, priority, processor, processor$iterator, realHeight, realWidth, rect, rect$iterator, rectangles, region1, region2, region3, slotIndex, stackable, tryBox, configuration; + progressMonitor.begin('Rectangle Packing', 1); + padding = castTo($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , PADDING_3)), 107); + fixedGraphSize = $booleanValue(castToBoolean($getProperty_0(layoutGraph, NODE_SIZE_FIXED_GRAPH_SIZE_2))); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, SPACING_NODE_NODE_3))); + tryBox = $booleanValue(castToBoolean($getProperty_0(layoutGraph, TRYBOX_0))); + rectangles = (!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_3))) || $execute((builder0 = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder0)); + stackable = false; + if (tryBox && rectangles.size_0 >= 3) { + region2 = castTo($get_20(rectangles, 0), 27); + region3 = castTo($get_20(rectangles, 1), 27); + counter = 0; + while (counter + 2 < rectangles.size_0) { + region1 = region2; + region2 = region3; + region3 = castTo($get_20(rectangles, counter + 2), 27); + if (region1.height >= region2.height + region3.height + nodeNodeSpacing || region3.height >= region1.height + region2.height + nodeNodeSpacing) { + stackable = true; + break; + } + else { + ++counter; + } + } + } + else { + stackable = true; + } + if (!stackable) { + priority = rectangles.size_0; + for (elkNode$iterator = new AbstractEList$EIterator(rectangles); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 27); + $setProperty_1(elkNode, ($clinit_CoreOptions() , PRIORITY_3), valueOf_3(priority)); + --priority; + } + $layout_4(layoutGraph, new BasicProgressMonitor); + progressMonitor.done_1(); + return; + } + algorithm = ($reset_4(this.algorithmAssembler) , $setPhase(this.algorithmAssembler, ($clinit_RectPackingLayoutPhases() , P1_WIDTH_APPROXIMATION), castTo($getProperty_0(layoutGraph, WIDTH_APPROXIMATION_STRATEGY_0), 188)) , $setPhase(this.algorithmAssembler, P2_PACKING, castTo($getProperty_0(layoutGraph, PACKING_STRATEGY_0), 188)) , $setPhase(this.algorithmAssembler, P3_WHITESPACE_ELIMINATION, castTo($getProperty_0(layoutGraph, WHITE_SPACE_ELIMINATION_STRATEGY_0), 188)) , $addProcessorConfiguration(this.algorithmAssembler, (configuration = new LayoutProcessorConfiguration , $addBefore(configuration, P1_WIDTH_APPROXIMATION, ($clinit_IntermediateProcessorStrategy_2() , MIN_SIZE_PRE_PROCESSOR)) , $addBefore(configuration, P2_PACKING, MIN_SIZE_POST_PROCESSOR) , $booleanValue(castToBoolean($getProperty_0(layoutGraph, INTERACTIVE_6))) && $addBefore(configuration, P1_WIDTH_APPROXIMATION, INTERACTIVE_NODE_REORDERER) , configuration)) , $build_0(this.algorithmAssembler, layoutGraph)); + monitorProgress = 1 / algorithm.array.length; + slotIndex = 0; + for (processor$iterator = new ArrayList$1(algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_6(processor$iterator), 47); + if (progressMonitor.isCanceled()) { + return; + } + processor.process(layoutGraph, progressMonitor.subTask(monitorProgress)); + ++slotIndex; + } + realWidth = 0; + realHeight = 0; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 27); + realWidth = $wnd.Math.max(realWidth, rect.x_0 + rect.width_0); + realHeight = $wnd.Math.max(realHeight, rect.y_0 + rect.height); + } + translate_1(layoutGraph, new KVector_1($doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_InternalProperties_4() , DRAWING_WIDTH)))), $doubleValue(castToDouble($getProperty_0(layoutGraph, DRAWING_HEIGHT)))), new KVector_1(realWidth, realHeight)); + applyPadding(rectangles, padding); + fixedGraphSize || resizeNode_1(layoutGraph, $doubleValue(castToDouble($getProperty_0(layoutGraph, DRAWING_WIDTH))) + (padding.left + padding.right), $doubleValue(castToDouble($getProperty_0(layoutGraph, DRAWING_HEIGHT))) + (padding.top_0 + padding.bottom), false, true); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_3))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider', 1118); +function $process_104(graph, progressMonitor){ + var elkNode, elkNode$iterator, elkNode$iterator0, elkNode$iterator1, elkNode$iterator2, fixedNodes, index_0, position, rectangles; + progressMonitor.begin('Interactive Node Reorderer', 1); + rectangles = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); + fixedNodes = new ArrayList; + for (elkNode$iterator0 = new AbstractEList$EIterator(rectangles); elkNode$iterator0.cursor != elkNode$iterator0.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator0), 27); + $hasProperty_0(elkNode, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)) && (push_1(fixedNodes.array, elkNode) , true); + } + for (elkNode$iterator1 = new ArrayList$1(fixedNodes); elkNode$iterator1.i < elkNode$iterator1.this$01.array.length;) { + elkNode = castTo($next_6(elkNode$iterator1), 27); + $remove_32(rectangles, elkNode); + } + $clinit_Collections(); + $sort(fixedNodes, new InteractiveNodeReorderer$lambda$0$Type); + for (elkNode$iterator2 = new ArrayList$1(fixedNodes); elkNode$iterator2.i < elkNode$iterator2.this$01.array.length;) { + elkNode = castTo($next_6(elkNode$iterator2), 27); + position = castTo($getProperty_0(elkNode, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 17).value_0; + position = $wnd.Math.min(position, rectangles.size_0); + $add_20(rectangles, position, elkNode); + } + index_0 = 0; + for (elkNode$iterator = new AbstractEList$EIterator(rectangles); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 27); + $setProperty_1(elkNode, ($clinit_RectPackingOptions() , CURRENT_POSITION_0), valueOf_3(index_0)); + ++index_0; + } + progressMonitor.done_1(); +} + +function InteractiveNodeReorderer(){ +} + +function lambda$0_38(a_0, b_1){ + var positionA, positionB; + positionA = castTo($getProperty_0(a_0, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 17).value_0; + positionB = castTo($getProperty_0(b_1, DESIRED_POSITION_0), 17).value_0; + return positionA == positionB?-1:positionA < positionB?-1:positionA > positionB?1:0; +} + +defineClass(1518, 1, $intern_105, InteractiveNodeReorderer); +_.process = function process_100(graph, progressMonitor){ + $process_104(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_intermediate_InteractiveNodeReorderer_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.intermediate', 'InteractiveNodeReorderer', 1518); +function InteractiveNodeReorderer$lambda$0$Type(){ +} + +defineClass(1519, 1, $intern_88, InteractiveNodeReorderer$lambda$0$Type); +_.compare_1 = function compare_107(arg0, arg1){ + return lambda$0_38(castTo(arg0, 27), castTo(arg1, 27)); +} +; +_.equals_0 = function equals_194(other){ + return this === other; +} +; +_.reversed = function reversed_99(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_rectpacking_intermediate_InteractiveNodeReorderer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.intermediate', 'InteractiveNodeReorderer/lambda$0$Type', 1519); +function $clinit_IntermediateProcessorStrategy_2(){ + $clinit_IntermediateProcessorStrategy_2 = emptyMethod; + INTERACTIVE_NODE_REORDERER = new IntermediateProcessorStrategy_2('INTERACTIVE_NODE_REORDERER', 0); + MIN_SIZE_PRE_PROCESSOR = new IntermediateProcessorStrategy_2('MIN_SIZE_PRE_PROCESSOR', 1); + MIN_SIZE_POST_PROCESSOR = new IntermediateProcessorStrategy_2('MIN_SIZE_POST_PROCESSOR', 2); +} + +function IntermediateProcessorStrategy_2(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_83(name_0){ + $clinit_IntermediateProcessorStrategy_2(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_2() , $MAP_73), name_0); +} + +function values_91(){ + $clinit_IntermediateProcessorStrategy_2(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_37, 456, 0, [INTERACTIVE_NODE_REORDERER, MIN_SIZE_PRE_PROCESSOR, MIN_SIZE_POST_PROCESSOR]); +} + +defineClass(456, 22, {3:1, 34:1, 22:1, 456:1, 196:1}, IntermediateProcessorStrategy_2); +_.create_1 = function create_26(){ + switch (this.ordinal) { + case 0: + return new InteractiveNodeReorderer; + case 1: + return new MinSizePreProcessor; + case 2: + return new MinSizePostProcessor; + } + return null; +} +; +var INTERACTIVE_NODE_REORDERER, MIN_SIZE_POST_PROCESSOR, MIN_SIZE_PRE_PROCESSOR; +var Lorg_eclipse_elk_alg_rectpacking_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.intermediate', 'IntermediateProcessorStrategy', 456, Ljava_lang_Enum_2_classLit, values_91, valueOf_83); +function $clinit_IntermediateProcessorStrategy$Map_2(){ + $clinit_IntermediateProcessorStrategy$Map_2 = emptyMethod; + $MAP_73 = createValueOfMap(($clinit_IntermediateProcessorStrategy_2() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_37, 456, 0, [INTERACTIVE_NODE_REORDERER, MIN_SIZE_PRE_PROCESSOR, MIN_SIZE_POST_PROCESSOR]))); +} + +var $MAP_73; +function $process_105(graph, progressMonitor){ + progressMonitor.begin('Min Size Postprocessing', 1); + $setProperty_1(graph, ($clinit_InternalProperties_4() , TARGET_WIDTH), $wnd.Math.max($doubleValue(castToDouble($getProperty_0(graph, TARGET_WIDTH))), $doubleValue(castToDouble($getProperty_0(graph, MIN_WIDTH_0))))); + progressMonitor.done_1(); +} + +function MinSizePostProcessor(){ +} + +defineClass(1521, 1, $intern_105, MinSizePostProcessor); +_.process = function process_101(graph, progressMonitor){ + $process_105(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_intermediate_MinSizePostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.intermediate', 'MinSizePostProcessor', 1521); +function $process_106(graph, progressMonitor){ + var minSize; + progressMonitor.begin('Min Size Preprocessing', 1); + minSize = effectiveMinSizeConstraintFor(graph); + $setProperty_1(graph, ($clinit_InternalProperties_4() , MIN_WIDTH_0), minSize.x_0); + $setProperty_1(graph, MIN_HEIGHT, minSize.y_0); + progressMonitor.done_1(); +} + +function MinSizePreProcessor(){ +} + +defineClass(1520, 1, $intern_105, MinSizePreProcessor); +_.process = function process_102(graph, progressMonitor){ + $process_106(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_intermediate_MinSizePreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.intermediate', 'MinSizePreProcessor', 1520); +function $clinit_InternalProperties_4(){ + $clinit_InternalProperties_4 = emptyMethod; + ADDITIONAL_HEIGHT = new Property('additionalHeight'); + DRAWING_HEIGHT = new Property('drawingHeight'); + DRAWING_WIDTH = new Property('drawingWidth'); + MIN_HEIGHT = new Property('minHeight'); + MIN_WIDTH_0 = new Property('minWidth'); + ROWS_0 = new Property('rows'); + TARGET_WIDTH = new Property('targetWidth'); + MIN_ROW_INCREASE = new Property_0('minRowIncrease', 0); + MAX_ROW_INCREASE = new Property_0('maxRowIncrease', 0); + MIN_ROW_DECREASE = new Property_0('minRowDecrease', 0); + MAX_ROW_DECREASE = new Property_0('maxRowDecrease', 0); +} + +var ADDITIONAL_HEIGHT, DRAWING_HEIGHT, DRAWING_WIDTH, MAX_ROW_DECREASE, MAX_ROW_INCREASE, MIN_HEIGHT, MIN_ROW_DECREASE, MIN_ROW_INCREASE, MIN_WIDTH_0, ROWS_0, TARGET_WIDTH; +function $clinit_OptimizationGoal(){ + $clinit_OptimizationGoal = emptyMethod; + ASPECT_RATIO_DRIVEN = new OptimizationGoal('ASPECT_RATIO_DRIVEN', 0); + MAX_SCALE_DRIVEN = new OptimizationGoal('MAX_SCALE_DRIVEN', 1); + AREA_DRIVEN = new OptimizationGoal('AREA_DRIVEN', 2); +} + +function OptimizationGoal(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_84(name_0){ + $clinit_OptimizationGoal(); + return valueOf(($clinit_OptimizationGoal$Map() , $MAP_74), name_0); +} + +function values_92(){ + $clinit_OptimizationGoal(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_37, 394, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]); +} + +defineClass(394, 22, {3:1, 34:1, 22:1, 394:1}, OptimizationGoal); +var AREA_DRIVEN, ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN; +var Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.options', 'OptimizationGoal', 394, Ljava_lang_Enum_2_classLit, values_92, valueOf_84); +function $clinit_OptimizationGoal$Map(){ + $clinit_OptimizationGoal$Map = emptyMethod; + $MAP_74 = createValueOfMap(($clinit_OptimizationGoal() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_37, 394, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]))); +} + +var $MAP_74; +function $clinit_RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider = emptyMethod; + TRYBOX = new Property_1('org.eclipse.elk.rectpacking.trybox', ($clinit_Boolean() , false)); + valueOf_3(-1); + CURRENT_POSITION = new Property_1('org.eclipse.elk.rectpacking.currentPosition', valueOf_3(-1)); + valueOf_3(-1); + DESIRED_POSITION = new Property_1('org.eclipse.elk.rectpacking.desiredPosition', valueOf_3(-1)); + IN_NEW_ROW = new Property_1('org.eclipse.elk.rectpacking.inNewRow', false); + WIDTH_APPROXIMATION_STRATEGY_DEFAULT = ($clinit_WidthApproximationStrategy() , GREEDY_1); + WIDTH_APPROXIMATION_STRATEGY = new Property_1('org.eclipse.elk.rectpacking.widthApproximation.strategy', WIDTH_APPROXIMATION_STRATEGY_DEFAULT); + WIDTH_APPROXIMATION_TARGET_WIDTH = new Property_1('org.eclipse.elk.rectpacking.widthApproximation.targetWidth', -1); + WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_DEFAULT = ($clinit_OptimizationGoal() , MAX_SCALE_DRIVEN); + WIDTH_APPROXIMATION_OPTIMIZATION_GOAL = new Property_1('org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal', WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_DEFAULT); + WIDTH_APPROXIMATION_LAST_PLACE_SHIFT = new Property_1('org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift', true); + PACKING_STRATEGY_DEFAULT = ($clinit_PackingStrategy() , COMPACTION_2); + PACKING_STRATEGY = new Property_1('org.eclipse.elk.rectpacking.packing.strategy', PACKING_STRATEGY_DEFAULT); + PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION = new Property_1('org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation', false); + valueOf_3(1); + PACKING_COMPACTION_ITERATIONS = new Property_1('org.eclipse.elk.rectpacking.packing.compaction.iterations', valueOf_3(1)); + WHITE_SPACE_ELIMINATION_STRATEGY = new Property('org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy'); +} + +function RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider(); +} + +defineClass(867, 1, $intern_90, RectPackingMetaDataProvider); +_.apply_4 = function apply_169(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.trybox'), ''), 'Try box layout first'), 'Whether one should check whether the regions are stackable to see whether box layout would do the job. For example, nodes with the same height are not stackable inside a row. Therefore, box layout will perform better and faster.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.currentPosition'), ''), 'Current position of a node in the order of nodes'), 'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'), valueOf_3(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.desiredPosition'), ''), 'Desired index of node'), 'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'), valueOf_3(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.inNewRow'), ''), 'In new Row'), 'If set to true this node begins in a new row. Consequently this node cannot be moved in a previous layer during compaction. Width approximation does does not take this into account.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.widthApproximation.strategy'), 'widthApproximation'), 'Width Approximation Strategy'), 'Strategy for finding an initial width of the drawing.'), WIDTH_APPROXIMATION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_WidthApproximationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.widthApproximation.targetWidth'), 'widthApproximation'), 'Target Width'), 'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'), -1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal'), 'widthApproximation'), 'Optimization Goal'), 'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'), WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_DEFAULT), ENUM), Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift'), 'widthApproximation'), 'Shift Last Placed.'), 'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.packing.strategy'), 'packing'), 'Compaction Strategy'), 'Strategy for finding an initial placement on nodes.'), PACKING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_rectpacking_p2packing_PackingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation'), 'packing.compaction'), 'Row Height Reevaluation'), 'During the compaction step the height of a row is normally not changed. If this options is set, the blocks of other rows might be added if they exceed the row height. If this is the case the whole row has to be packed again to be optimal regarding the new row height. This option should, therefore, be used with care since it might be computation heavy.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.packing.compaction.iterations'), 'packing.compaction'), 'Compaction iterations'), 'Defines the number of compaction iterations. E.g. if set to 2 the width is initially approximated, then the drawing is compacted and based on the resulting drawing the target width is decreased or increased and a second compaction step is executed and the result compared to the first one. The best run is used based on the scale measure.'), valueOf_3(1)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy'), 'whiteSpaceElimination'), 'White Space Approximation Strategy'), 'Strategy for expanding nodes such that whitespace in the parent is eliminated.'), ENUM), Lorg_eclipse_elk_alg_rectpacking_p3whitespaceelimination_WhiteSpaceEliminationStrategy_2_classLit), of_1(PARENTS)))); + $apply_21((new RectPackingOptions , registry)); +} +; +var CURRENT_POSITION, DESIRED_POSITION, IN_NEW_ROW, PACKING_COMPACTION_ITERATIONS, PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION, PACKING_STRATEGY, PACKING_STRATEGY_DEFAULT, TRYBOX, WHITE_SPACE_ELIMINATION_STRATEGY, WIDTH_APPROXIMATION_LAST_PLACE_SHIFT, WIDTH_APPROXIMATION_OPTIMIZATION_GOAL, WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_DEFAULT, WIDTH_APPROXIMATION_STRATEGY, WIDTH_APPROXIMATION_STRATEGY_DEFAULT, WIDTH_APPROXIMATION_TARGET_WIDTH; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingMetaDataProvider', 867); +function $clinit_RectPackingOptions(){ + $clinit_RectPackingOptions = emptyMethod; + ASPECT_RATIO_3 = new Property_2(($clinit_CoreOptions() , ASPECT_RATIO_5), 1.3); + NODE_SIZE_FIXED_GRAPH_SIZE_2 = new Property_2(NODE_SIZE_FIXED_GRAPH_SIZE_3, ($clinit_Boolean() , false)); + PADDING_DEFAULT_2 = new ElkPadding_0(15); + PADDING_3 = new Property_2(PADDING_6, PADDING_DEFAULT_2); + SPACING_NODE_NODE_3 = new Property_2(SPACING_NODE_NODE_6, 15); + CONTENT_ALIGNMENT_0 = CONTENT_ALIGNMENT_2; + NODE_SIZE_CONSTRAINTS_4 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_3 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_4 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_4 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_3 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_4 = PORT_LABELS_PLACEMENT_5; + WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_0 = ($clinit_RectPackingMetaDataProvider() , WIDTH_APPROXIMATION_OPTIMIZATION_GOAL); + WIDTH_APPROXIMATION_LAST_PLACE_SHIFT_0 = WIDTH_APPROXIMATION_LAST_PLACE_SHIFT; + WIDTH_APPROXIMATION_TARGET_WIDTH_0 = WIDTH_APPROXIMATION_TARGET_WIDTH; + WIDTH_APPROXIMATION_STRATEGY_0 = WIDTH_APPROXIMATION_STRATEGY; + PACKING_STRATEGY_0 = PACKING_STRATEGY; + PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION_0 = PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION; + PACKING_COMPACTION_ITERATIONS_0 = PACKING_COMPACTION_ITERATIONS; + WHITE_SPACE_ELIMINATION_STRATEGY_0 = WHITE_SPACE_ELIMINATION_STRATEGY; + INTERACTIVE_6 = INTERACTIVE_8; + INTERACTIVE_LAYOUT_1 = INTERACTIVE_LAYOUT_2; + DESIRED_POSITION_0 = DESIRED_POSITION; + CURRENT_POSITION_0 = CURRENT_POSITION; + IN_NEW_ROW_0 = IN_NEW_ROW; + TRYBOX_0 = TRYBOX; +} + +function $apply_21(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.rectpacking'), 'ELK Rectangle Packing'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'), new RectPackingOptions$RectpackingFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.aspectRatio', 1.3); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.fixedGraphSize', ($clinit_Boolean() , false)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.padding', PADDING_DEFAULT_2); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_3)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal', $getDefault(WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift', $getDefault(WIDTH_APPROXIMATION_LAST_PLACE_SHIFT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.widthApproximation.targetWidth', $getDefault(WIDTH_APPROXIMATION_TARGET_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.widthApproximation.strategy', $getDefault(WIDTH_APPROXIMATION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.packing.strategy', $getDefault(PACKING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation', $getDefault(PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.packing.compaction.iterations', $getDefault(PACKING_COMPACTION_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy', $getDefault(WHITE_SPACE_ELIMINATION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_6)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.desiredPosition', $getDefault(DESIRED_POSITION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.currentPosition', $getDefault(CURRENT_POSITION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.inNewRow', $getDefault(IN_NEW_ROW_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.trybox', $getDefault(TRYBOX_0)); +} + +function RectPackingOptions(){ + $clinit_RectPackingOptions(); +} + +defineClass(1016, 1, $intern_90, RectPackingOptions); +_.apply_4 = function apply_170(registry){ + $apply_21(registry); +} +; +var ASPECT_RATIO_3, CONTENT_ALIGNMENT_0, CURRENT_POSITION_0, DESIRED_POSITION_0, INTERACTIVE_6, INTERACTIVE_LAYOUT_1, IN_NEW_ROW_0, NODE_LABELS_PLACEMENT_4, NODE_SIZE_CONSTRAINTS_4, NODE_SIZE_FIXED_GRAPH_SIZE_2, NODE_SIZE_MINIMUM_3, NODE_SIZE_OPTIONS_4, OMIT_NODE_MICRO_LAYOUT_3, PACKING_COMPACTION_ITERATIONS_0, PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION_0, PACKING_STRATEGY_0, PADDING_3, PADDING_DEFAULT_2, PORT_LABELS_PLACEMENT_4, SPACING_NODE_NODE_3, TRYBOX_0, WHITE_SPACE_ELIMINATION_STRATEGY_0, WIDTH_APPROXIMATION_LAST_PLACE_SHIFT_0, WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_0, WIDTH_APPROXIMATION_STRATEGY_0, WIDTH_APPROXIMATION_TARGET_WIDTH_0; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions', 1016); +function RectPackingOptions$RectpackingFactory(){ +} + +defineClass(1017, 1, {}, RectPackingOptions$RectpackingFactory); +_.create_0 = function create_27(){ + var provider; + return provider = new RectPackingLayoutProvider , provider; +} +; +_.destroy = function destroy_5(obj){ +} +; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions$RectpackingFactory_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions/RectpackingFactory', 1017); +function $approxBoundingBox(this$static, rectangles, nodeNodeSpacing, padding){ + var bestOpt, currentValues, firstRect, lastPlaced, opt1, opt2, opt3, opt4, placedRects, rectangleIdx, toPlace; + firstRect = castTo($get_20(rectangles, 0), 27); + $setX_2(firstRect, 0); + $setY_3(firstRect, 0); + placedRects = new ArrayList; + push_1(placedRects.array, firstRect); + lastPlaced = firstRect; + currentValues = new DrawingData(this$static.aspectRatio, firstRect.width_0, firstRect.height, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); + for (rectangleIdx = 1; rectangleIdx < rectangles.size_0; rectangleIdx++) { + toPlace = castTo($get_20(rectangles, rectangleIdx), 27); + opt1 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt2 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt3 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt4 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + bestOpt = $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding); + $setX_2(toPlace, bestOpt.nextXcoordinate); + $setY_3(toPlace, bestOpt.nextYcoordinate); + $setPlacementOption(bestOpt, WHOLE_DRAWING); + currentValues = bestOpt; + lastPlaced = toPlace; + push_1(placedRects.array, toPlace); + } + return currentValues; +} + +function $calcValuesForOpt(this$static, option, toPlace, lastPlaced, drawing, placedRects, nodeNodeSpacing){ + var drawingHeight, drawingWidth, height, heightToPlace, newDrawing, width_0, widthToPlace, x_0, y_0; + x_0 = 0; + y_0 = 0; + drawingWidth = drawing.drawingWidth; + drawingHeight = drawing.drawingHeight; + heightToPlace = toPlace.height; + widthToPlace = toPlace.width_0; + switch (option.ordinal) { + case 0: + x_0 = lastPlaced.x_0 + lastPlaced.width_0 + nodeNodeSpacing; + this$static.lpShift?(y_0 = calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing)):(y_0 = lastPlaced.y_0); + width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); + height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); + break; + case 1: + y_0 = lastPlaced.y_0 + lastPlaced.height + nodeNodeSpacing; + this$static.lpShift?(x_0 = calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing)):(x_0 = lastPlaced.x_0); + width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); + height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); + break; + case 2: + x_0 = drawingWidth + nodeNodeSpacing; + y_0 = 0; + width_0 = drawingWidth + nodeNodeSpacing + widthToPlace; + height = $wnd.Math.max(drawingHeight, heightToPlace); + break; + case 3: + x_0 = 0; + y_0 = drawingHeight + nodeNodeSpacing; + width_0 = $wnd.Math.max(drawingWidth, widthToPlace); + height = drawingHeight + nodeNodeSpacing + heightToPlace; + break; + default:throw toJs(new IllegalArgumentException_0('IllegalPlacementOption.')); + } + newDrawing = new DrawingData_0(this$static.aspectRatio, width_0, height, option, x_0, y_0); + return newDrawing; +} + +function $checkSpecialCases(drawing1, drawing2, lastPlaced, toPlace){ + var areaLPB, areaLPR, firstOpt, firstOptLPBorCDB, firstOptLPRorCDR, firstOptLPRorLPB, lpbOpt, lprOpt, secondOpt, secondOptLPBorCDB, secondOptLPRorCDR, secondOptLPRorLPB, lastPlacedBottomBorder, toPlaceBottomBorder, maxYLPR, heightLPR, widthLPR, lastPlacedRightBorder, toPlaceRightBorder, maxXLPB, widthLPB, heightLPB; + firstOpt = drawing1.placementOption; + secondOpt = drawing2.placementOption; + firstOptLPBorCDB = firstOpt == ($clinit_DrawingDataDescriptor() , CANDIDATE_POSITION_LAST_PLACED_BELOW) || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; + secondOptLPBorCDB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; + firstOptLPRorCDR = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; + secondOptLPRorCDR = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; + firstOptLPRorLPB = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; + secondOptLPRorLPB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; + if (firstOptLPBorCDB && secondOptLPBorCDB) { + return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW?drawing1:drawing2; + } + else if (firstOptLPRorCDR && secondOptLPRorCDR) { + return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT?drawing1:drawing2; + } + else if (firstOptLPRorLPB && secondOptLPRorLPB) { + if (firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT) { + lprOpt = drawing1; + lpbOpt = drawing2; + } + else { + lprOpt = drawing2; + lpbOpt = drawing1; + } + areaLPR = (lastPlacedBottomBorder = lastPlaced.y_0 + lastPlaced.height , toPlaceBottomBorder = lprOpt.nextYcoordinate + toPlace.height , maxYLPR = $wnd.Math.max(lastPlacedBottomBorder, toPlaceBottomBorder) , heightLPR = maxYLPR - $wnd.Math.min(lastPlaced.y_0, lprOpt.nextYcoordinate) , widthLPR = lprOpt.nextXcoordinate + toPlace.width_0 - lastPlaced.x_0 , widthLPR * heightLPR); + areaLPB = (lastPlacedRightBorder = lastPlaced.x_0 + lastPlaced.width_0 , toPlaceRightBorder = lpbOpt.nextXcoordinate + toPlace.width_0 , maxXLPB = $wnd.Math.max(lastPlacedRightBorder, toPlaceRightBorder) , widthLPB = maxXLPB - $wnd.Math.min(lastPlaced.x_0, lpbOpt.nextXcoordinate) , heightLPB = lpbOpt.nextYcoordinate + toPlace.height - lastPlaced.y_0 , widthLPB * heightLPB); + return areaLPR <= areaLPB?drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_RIGHT?drawing1:drawing2:drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_BELOW?drawing1:drawing2; + } + return drawing1; +} + +function $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding){ + var candidates, filter, filter$iterator, filters; + candidates = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit, 1), $intern_2, 238, 0, [opt1, opt2, opt3, opt4])); + filters = null; + switch (this$static.goal.ordinal) { + case 1: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_BestCandidateFilter_2_classLit, 1), $intern_2, 535, 0, [new ScaleMeasureFilter, new AreaFilter, new AspectRatioFilter])); + break; + case 0: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_BestCandidateFilter_2_classLit, 1), $intern_2, 535, 0, [new AspectRatioFilter, new AreaFilter, new ScaleMeasureFilter])); + break; + case 2: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_BestCandidateFilter_2_classLit, 1), $intern_2, 535, 0, [new AreaFilter, new ScaleMeasureFilter, new AspectRatioFilter])); + } + for (filter$iterator = new ArrayList$1(filters); filter$iterator.i < filter$iterator.this$01.array.length;) { + filter = castTo($next_6(filter$iterator), 535); + candidates.array.length > 1 && (candidates = filter.filterList(candidates, this$static.aspectRatio, padding)); + } + if (candidates.array.length == 1) { + return castTo($get_11(candidates, candidates.array.length - 1), 238); + } + if (candidates.array.length == 2) { + return $checkSpecialCases((checkCriticalElementIndex(0, candidates.array.length) , castTo(candidates.array[0], 238)), (checkCriticalElementIndex(1, candidates.array.length) , castTo(candidates.array[1], 238)), lastPlaced, toPlace); + } + return null; +} + +function AreaApproximation(aspectRatio, goal, lpShift){ + this.aspectRatio = aspectRatio; + this.goal = goal; + this.lpShift = lpShift; +} + +defineClass(1705, 1, {}, AreaApproximation); +_.aspectRatio = 0; +_.lpShift = false; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_AreaApproximation_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'AreaApproximation', 1705); +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_BestCandidateFilter_2_classLit = createForInterface('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'BestCandidateFilter'); +function AreaFilter(){ +} + +defineClass(673, 1, {535:1}, AreaFilter); +_.filterList = function filterList(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, minArea, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + minArea = $intern_60; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_6(opt$iterator), 238); + minArea = $wnd.Math.min(minArea, (opt.drawingWidth + (padding.left + padding.right)) * (opt.drawingHeight + (padding.top_0 + padding.bottom))); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_6(candidate$iterator), 238); + (candidate.drawingWidth + (padding.left + padding.right)) * (candidate.drawingHeight + (padding.top_0 + padding.bottom)) == minArea && (push_1(remainingCandidates.array, candidate) , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_AreaFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'AreaFilter', 673); +function AspectRatioFilter(){ +} + +defineClass(674, 1, {535:1}, AspectRatioFilter); +_.filterList = function filterList_0(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, opt, opt$iterator, remainingCandidates, smallestDeviation; + remainingCandidates = new ArrayList; + smallestDeviation = $intern_60; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_6(opt$iterator), 238); + smallestDeviation = $wnd.Math.min(smallestDeviation, $wnd.Math.abs((opt.drawingWidth + (padding.left + padding.right)) / (opt.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio)); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_6(candidate$iterator), 238); + $wnd.Math.abs((candidate.drawingWidth + (padding.left + padding.right)) / (candidate.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio) == smallestDeviation && (push_1(remainingCandidates.array, candidate) , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_AspectRatioFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'AspectRatioFilter', 674); +function calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing){ + var closestLeftNeighbour, closestNeighborRightBorder, placedRect, placedRect$iterator, placedRectRightBorder; + closestLeftNeighbour = null; + closestNeighborRightBorder = 0; + for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { + placedRect = castTo($next_6(placedRect$iterator), 27); + placedRectRightBorder = placedRect.x_0 + placedRect.width_0; + if (y_0 < placedRect.y_0 + placedRect.height + nodeNodeSpacing) { + !closestLeftNeighbour?(closestLeftNeighbour = placedRect):lastPlaced.x_0 - placedRectRightBorder < lastPlaced.x_0 - closestNeighborRightBorder && (closestLeftNeighbour = placedRect); + closestNeighborRightBorder = closestLeftNeighbour.x_0 + closestLeftNeighbour.width_0; + } + } + return !closestLeftNeighbour?0:closestNeighborRightBorder + nodeNodeSpacing; +} + +function calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing){ + var closestNeighborBottomBorder, closestUpperNeighbor, placedRect, placedRect$iterator, placedRectBottomBorder; + closestUpperNeighbor = null; + closestNeighborBottomBorder = 0; + for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { + placedRect = castTo($next_6(placedRect$iterator), 27); + placedRectBottomBorder = placedRect.y_0 + placedRect.height; + if (x_0 < placedRect.x_0 + placedRect.width_0 + nodeNodeSpacing) { + !closestUpperNeighbor?(closestUpperNeighbor = placedRect):lastPlaced.y_0 - placedRectBottomBorder < lastPlaced.y_0 - closestNeighborBottomBorder && (closestUpperNeighbor = placedRect); + closestNeighborBottomBorder = closestUpperNeighbor.y_0 + closestUpperNeighbor.height; + } + } + return !closestUpperNeighbor?0:closestNeighborBottomBorder + nodeNodeSpacing; +} + +function $process_107(graph, progressMonitor){ + var aspectRatio, drawing, firstIt, goal, lastPlaceShift, nodeNodeSpacing, padding, rectangles; + progressMonitor.begin('Greedy Width Approximator', 1); + aspectRatio = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); + padding = castTo($getProperty_0(graph, PADDING_3), 107); + goal = castTo($getProperty_0(graph, WIDTH_APPROXIMATION_OPTIMIZATION_GOAL_0), 394); + lastPlaceShift = $booleanValue(castToBoolean($getProperty_0(graph, WIDTH_APPROXIMATION_LAST_PLACE_SHIFT_0))); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(graph, SPACING_NODE_NODE_3))); + rectangles = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); + resetCoordinates(rectangles); + firstIt = new AreaApproximation(aspectRatio, goal, lastPlaceShift); + drawing = $approxBoundingBox(firstIt, rectangles, nodeNodeSpacing, padding); + $setProperty_1(graph, ($clinit_InternalProperties_4() , TARGET_WIDTH), drawing.drawingWidth); + progressMonitor.done_1(); +} + +function GreedyWidthApproximator(){ +} + +defineClass(1469, 1, $intern_113, GreedyWidthApproximator); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_29(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_103(graph, progressMonitor){ + $process_107(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_GreedyWidthApproximator_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'GreedyWidthApproximator', 1469); +function ScaleMeasureFilter(){ +} + +defineClass(672, 1, {535:1}, ScaleMeasureFilter); +_.filterList = function filterList_1(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, maxScale, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + maxScale = $intern_61; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_6(opt$iterator), 238); + maxScale = $wnd.Math.max(maxScale, computeScaleMeasure(opt.drawingWidth + (padding.left + padding.right), opt.drawingHeight + (padding.top_0 + padding.bottom), opt.dar)); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_6(candidate$iterator), 238); + computeScaleMeasure(candidate.drawingWidth + (padding.left + padding.right), candidate.drawingHeight + (padding.top_0 + padding.bottom), candidate.dar) == maxScale && (push_1(remainingCandidates.array, candidate) , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_ScaleMeasureFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'ScaleMeasureFilter', 672); +function $process_108(graph, progressMonitor){ + progressMonitor.begin('Target Width Setter', 1); + if ($hasProperty_0(graph, ($clinit_RectPackingOptions() , WIDTH_APPROXIMATION_TARGET_WIDTH_0))) { + $setProperty_1(graph, ($clinit_InternalProperties_4() , TARGET_WIDTH), castToDouble($getProperty_0(graph, WIDTH_APPROXIMATION_TARGET_WIDTH_0))); + } + else { + throw toJs(new UnsupportedConfigurationException_0('A target width has to be set if the TargetWidthWidthApproximator should be used.')); + } + progressMonitor.done_1(); +} + +function TargetWidthWidthApproximator(){ +} + +defineClass(1470, 1, $intern_113, TargetWidthWidthApproximator); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_30(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_104(graph, progressMonitor){ + $process_108(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_TargetWidthWidthApproximator_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'TargetWidthWidthApproximator', 1470); +function $clinit_WidthApproximationStrategy(){ + $clinit_WidthApproximationStrategy = emptyMethod; + GREEDY_1 = new WidthApproximationStrategy('GREEDY', 0); + TARGET_WIDTH_0 = new WidthApproximationStrategy('TARGET_WIDTH', 1); +} + +function $create_14(this$static){ + switch (this$static.ordinal) { + case 0: + return new GreedyWidthApproximator; + case 1: + return new TargetWidthWidthApproximator; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the width approximator ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function WidthApproximationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_85(name_0){ + $clinit_WidthApproximationStrategy(); + return valueOf(($clinit_WidthApproximationStrategy$Map() , $MAP_75), name_0); +} + +function values_93(){ + $clinit_WidthApproximationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_WidthApproximationStrategy_2_classLit, 1), $intern_37, 491, 0, [GREEDY_1, TARGET_WIDTH_0]); +} + +defineClass(491, 22, {3:1, 34:1, 22:1, 491:1, 188:1, 196:1}, WidthApproximationStrategy); +_.create_1 = function create_29(){ + return $create_14(this); +} +; +_.create_2 = function create_28(){ + return $create_14(this); +} +; +var GREEDY_1, TARGET_WIDTH_0; +var Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_WidthApproximationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.p1widthapproximation', 'WidthApproximationStrategy', 491, Ljava_lang_Enum_2_classLit, values_93, valueOf_85); +function $clinit_WidthApproximationStrategy$Map(){ + $clinit_WidthApproximationStrategy$Map = emptyMethod; + $MAP_75 = createValueOfMap(($clinit_WidthApproximationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p1widthapproximation_WidthApproximationStrategy_2_classLit, 1), $intern_37, 491, 0, [GREEDY_1, TARGET_WIDTH_0]))); +} + +var $MAP_75; +function absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing){ + var rect, somethingWasChanged; + somethingWasChanged = false; + rect = castTo($get_11(nextBlock.children, 0), 27); + while (placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing)) { + somethingWasChanged = true; + $removeChild(nextBlock, rect); + if (nextBlock.children.array.length == 0) { + break; + } + rect = castTo($get_11(nextBlock.children, 0), 27); + } + nextBlock.children.array.length == 0 && $removeBlock(nextBlock.parentRow, nextBlock); + somethingWasChanged && $updateDimension(block.stack_0); + return somethingWasChanged; +} + +function compact_4(rowIdx, rows_0, boundingWidth, nodeNodeSpacing, rowHeightReevaluation){ + var block, blockId, blocks, compactRowAgain, currentStack, nextBlock, nextBlockMinHeight, nextRowIndex, oldRowHeight, row, somethingWasChanged, wasFromNextRow, nextBlock_0; + somethingWasChanged = false; + compactRowAgain = false; + nextRowIndex = rowIdx + 1; + row = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 186)); + blocks = row.children; + currentStack = null; + for (blockId = 0; blockId < row.children.array.length; blockId++) { + block = (checkCriticalElementIndex(blockId, blocks.array.length) , castTo(blocks.array[blockId], 172)); + if (block.fixed_0) { + continue; + } + if (block.children.array.length == 0) { + $clinit_System(); + String.fromCharCode(10); + $removeBlock(row, block); + --blockId; + somethingWasChanged = true; + continue; + } + if (!block.positionFixed) { + !!currentStack && $updateDimension(currentStack); + currentStack = new BlockStack(!currentStack?0:currentStack.x_0 + currentStack.width_0 + nodeNodeSpacing, row.y_0, nodeNodeSpacing); + $setLocation(block, currentStack.x_0 + currentStack.width_0, row.y_0); + $add_3(row.stacks, currentStack); + $addBlock(currentStack, block); + block.positionFixed = true; + } + nextBlock = null; + nextBlock = (nextBlock_0 = null , blockId < row.children.array.length - 1?(nextBlock_0 = castTo($get_11(row.children, blockId + 1), 172)):nextRowIndex < rows_0.array.length && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)).children.array.length != 0 && (nextBlock_0 = castTo($get_11((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)).children, 0), 172)) , nextBlock_0); + wasFromNextRow = false; + !!nextBlock && (wasFromNextRow = !equals_Ljava_lang_Object__Z__devirtual$(nextBlock.parentRow, row)); + if (nextBlock) { + if (nextBlock.children.array.length != 0 && !$booleanValue(castToBoolean(castTo($get_11(nextBlock.children, 0), 27).getProperty(($clinit_RectPackingOptions() , IN_NEW_ROW_0))))) { + $placeRectsIn(block, boundingWidth - block.x_0); + $updateDimension(block.stack_0); + somethingWasChanged = somethingWasChanged | absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing); + } + else { + $removeBlock(row, nextBlock); + break; + } + if (nextBlock.children.array.length == 0) { + rows_0.array.length > nextRowIndex && $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)), nextBlock); + nextBlock = null; + while (rows_0.array.length > nextRowIndex && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)).children.array.length == 0) { + $remove_12(rows_0, (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , rows_0.array[nextRowIndex])); + } + } + if (!nextBlock) { + --blockId; + continue; + } + if (!$booleanValue(castToBoolean(castTo($get_11(nextBlock.children, 0), 27).getProperty(($clinit_RectPackingOptions() , IN_NEW_ROW_0)))) && placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + continue; + } + if (wasFromNextRow) { + oldRowHeight = row.height; + nextBlockMinHeight = nextBlock.minHeight; + if (!$booleanValue(castToBoolean(castTo($get_11(nextBlock.children, 0), 27).getProperty(IN_NEW_ROW_0))) && placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing, rowHeightReevaluation)) { + somethingWasChanged = true; + if (oldRowHeight < nextBlockMinHeight) { + compactRowAgain = true; + nextBlock.parentRow = row; + break; + } + continue; + } + else if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + continue; + } + } + else if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + continue; + } + if (somethingWasChanged) { + continue; + } + } + if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + !!nextBlock && (nextBlock.positionFixed = false); + continue; + } + else { + $updateDimension(block.stack_0); + } + } + return new Pair(($clinit_Boolean() , somethingWasChanged?true:false), compactRowAgain?true:false); +} + +function placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing){ + var bounds, bounds0, currentBlockMinHeight, nextBlockMinHeight, remainingWidth, somethingWasChanged; + somethingWasChanged = false; + remainingWidth = boundingWidth - block.x_0; + currentBlockMinHeight = block.y_0 - row.y_0 + (bounds0 = $placeRectsIn_1(block, remainingWidth, false) , bounds0.height); + if (nextBlock.minWidth + nodeNodeSpacing > remainingWidth) { + return false; + } + nextBlockMinHeight = (bounds = $placeRectsIn_1(nextBlock, remainingWidth, false) , bounds.height); + if (currentBlockMinHeight + nodeNodeSpacing + nextBlockMinHeight <= row.height) { + $placeRectsIn(block, boundingWidth - block.x_0); + block.fixed_0 = true; + $placeRectsIn(nextBlock, boundingWidth - block.x_0); + $setLocation(nextBlock, block.x_0, block.y_0 + block.height + nodeNodeSpacing); + nextBlock.positionFixed = true; + $addBlock(block.stack_0, nextBlock); + somethingWasChanged = true; + if (wasFromNextRow) { + $addBlock_0(row, nextBlock); + nextBlock.parentRow = row; + if (rows_0.array.length > nextRowIndex) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + } + } + return somethingWasChanged; +} + +function placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing, rowHeightReevaluation){ + var bounds, currentBlockMinWidth, lastRowOptimization, nextBlockHeight, potentialWidth, shouldRowHeigthBeReevalauted, somethingWasChanged, stack_0, stack$iterator, targetWidthOfNextBlock; + somethingWasChanged = false; + currentBlockMinWidth = $getWidthForFixedHeight(block.stack_0, row.y_0 + row.height - block.stack_0.y_0); + shouldRowHeigthBeReevalauted = nextBlock.minHeight > row.height && rowHeightReevaluation; + targetWidthOfNextBlock = boundingWidth - (block.stack_0.x_0 + currentBlockMinWidth - nodeNodeSpacing); + nextBlockHeight = (bounds = $placeRectsIn_1(nextBlock, targetWidthOfNextBlock, false) , bounds.height); + if (shouldRowHeigthBeReevalauted && nextBlockHeight > nextBlock.minHeight) { + return false; + } + if (shouldRowHeigthBeReevalauted) { + potentialWidth = 0; + for (stack$iterator = new ArrayList$1(row.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_6(stack$iterator), 315); + potentialWidth += $getWidthForFixedHeight(stack_0, nextBlock.minHeight) + nodeNodeSpacing; + } + targetWidthOfNextBlock = boundingWidth - potentialWidth; + } + if (targetWidthOfNextBlock < nextBlock.minWidth) { + return false; + } + lastRowOptimization = nextRowIndex == rows_0.array.length - 1 && targetWidthOfNextBlock >= (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)).width_0; + if (!shouldRowHeigthBeReevalauted && nextBlockHeight > row.height && !lastRowOptimization) { + return false; + } + if (lastRowOptimization || shouldRowHeigthBeReevalauted || nextBlockHeight <= row.height) { + if (lastRowOptimization && nextBlockHeight > row.height) { + block.height = nextBlockHeight; + $placeRectsIn(block, $getWidthForTargetHeight(block, nextBlockHeight)); + } + else { + $placeRectsIn_2(block.stack_0, currentBlockMinWidth); + block.fixed_0 = true; + } + $placeRectsIn(nextBlock, boundingWidth - (block.x_0 + block.width_0)); + $setLocation(nextBlock, block.stack_0.x_0 + block.stack_0.width_0, row.y_0); + $addBlock_0(row, nextBlock); + if (rows_0.array.length > nextRowIndex) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 186)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + somethingWasChanged = true; + } + return somethingWasChanged; +} + +function useRowHeight(row, block){ + var previousWidth, somethingWasChanged, targetWidth; + somethingWasChanged = false; + previousWidth = block.stack_0.width_0; + if (block.height < row.height) { + targetWidth = $getWidthForFixedHeight(block.stack_0, row.height); + if (block.stack_0.width_0 > targetWidth) { + $placeRectsIn_2(block.stack_0, targetWidth); + somethingWasChanged = previousWidth != block.stack_0.width_0; + } + } + return somethingWasChanged; +} + +function $clone_0(node){ + var child, child$iterator, clone, elkNode, elkNode0, newChild; + clone = ($clinit_ElkGraphFactory() , elkNode0 = new ElkNodeImpl , elkNode0); + $copyProperties_0(clone, node); + for (child$iterator = new AbstractEList$EIterator((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + newChild = (elkNode = new ElkNodeImpl , elkNode); + $setParent_2(newChild, clone); + $setDimensions_0(newChild, child.width_0, child.height); + $setIdentifier(newChild, child.identifier); + $setLocation_1(newChild, child.x_0, child.y_0); + $add_21((!clone.children && (clone.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, clone, 10, 11)) , clone.children), newChild); + $copyProperties_0(newChild, child); + } + return clone; +} + +function $copyPosition(this$static, node, other){ + var i; + $setDimensions_0(other, node.width_0, node.height); + $setLocation_1(other, node.x_0, node.y_0); + for (i = 0; i < (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0; i++) { + $copyPosition(this$static, castTo($get_20((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children), i), 27), castTo($get_20((!other.children && (other.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, other, 10, 11)) , other.children), i), 27)); + } +} + +function $copyRowWidthChangeValues(graph, compaction){ + $setProperty_1(graph, ($clinit_InternalProperties_4() , MIN_ROW_INCREASE), compaction.potentialRowWidthIncreaseMin); + $setProperty_1(graph, MAX_ROW_INCREASE, compaction.potentialRowWidthIncreaseMax); + $setProperty_1(graph, MIN_ROW_DECREASE, compaction.potentialRowWidthDecreaseMin); + $setProperty_1(graph, MAX_ROW_DECREASE, compaction.potentialRowWidthDecreaseMax); +} + +function $process_109(this$static, graph, progressMonitor){ + var aspectRatio, clone, drawing, i, iterations, newDrawing, newSM, nodeNodeSpacing, oldSM, padding, secondIt, padding_0, aspectRatio_0; + progressMonitor.begin('Compaction', 1); + !graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)); + aspectRatio = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(graph, SPACING_NODE_NODE_3))); + padding = castTo($getProperty_0(graph, PADDING_3), 107); + secondIt = new RowFillingAndCompaction(aspectRatio, nodeNodeSpacing); + drawing = $start(secondIt, graph, padding); + $copyRowWidthChangeValues(graph, secondIt); + iterations = castTo($getProperty_0(graph, PACKING_COMPACTION_ITERATIONS_0), 17).value_0; + while (iterations > 1) { + clone = $clone_0(graph); + oldSM = drawing.scaleMeasure; + padding_0 = castTo($getProperty_0(graph, PADDING_3), 107); + aspectRatio_0 = $doubleValue(castToDouble($getProperty_0(graph, ASPECT_RATIO_3))); + (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children).size_0 > 1 && $doubleValue(castToDouble($getProperty_0(graph, ($clinit_InternalProperties_4() , MIN_ROW_INCREASE)))) != $intern_60 && (drawing.drawingWidth + (padding_0.left + padding_0.right)) / (drawing.drawingHeight + (padding_0.top_0 + padding_0.bottom)) < aspectRatio_0?$setProperty_1(clone, ($clinit_InternalProperties_4() , TARGET_WIDTH), $doubleValue(castToDouble($getProperty_0(graph, TARGET_WIDTH))) + $doubleValue(castToDouble($getProperty_0(graph, MIN_ROW_INCREASE)))):(!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children).size_0 > 1 && $doubleValue(castToDouble($getProperty_0(graph, ($clinit_InternalProperties_4() , MIN_ROW_DECREASE)))) != $intern_60 && (drawing.drawingWidth + (padding_0.left + padding_0.right)) / (drawing.drawingHeight + (padding_0.top_0 + padding_0.bottom)) > aspectRatio_0 && $setProperty_1(clone, ($clinit_InternalProperties_4() , TARGET_WIDTH), $wnd.Math.max($doubleValue(castToDouble($getProperty_0(graph, MIN_WIDTH_0))), $doubleValue(castToDouble($getProperty_0(clone, TARGET_WIDTH))) - $doubleValue(castToDouble($getProperty_0(graph, MIN_ROW_DECREASE))))); + secondIt = new RowFillingAndCompaction(aspectRatio, nodeNodeSpacing); + newDrawing = $start(secondIt, clone, padding); + newSM = newDrawing.scaleMeasure; + if (newSM >= oldSM && newSM == newSM) { + for (i = 0; i < (!clone.children && (clone.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, clone, 10, 11)) , clone.children).size_0; i++) { + $copyPosition(this$static, castTo($get_20((!clone.children && (clone.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, clone, 10, 11)) , clone.children), i), 27), castTo($get_20((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children), i), 27)); + } + $copyRowWidthChangeValues(graph, secondIt); + $setDrawingWidth(drawing, newDrawing.drawingWidth); + $setDrawingHeight(drawing, newDrawing.drawingHeight); + } + --iterations; + } + $setProperty_1(graph, ($clinit_InternalProperties_4() , DRAWING_HEIGHT), drawing.drawingHeight); + $setProperty_1(graph, DRAWING_WIDTH, drawing.drawingWidth); + progressMonitor.done_1(); +} + +function Compactor(){ +} + +defineClass(1471, 1, $intern_113, Compactor); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_31(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_105(graph, progressMonitor){ + $process_109(this, castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p2packing_Compactor_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p2packing', 'Compactor', 1471); +function place(rectangles, boundingWidth, nodeNodeSpacing){ + var block, currentWidth, drawingHeight, newBlock, potentialRowWidth, rect, rect$iterator, row, rows_0; + rows_0 = new ArrayList; + row = new RectRow(0, nodeNodeSpacing); + drawingHeight = 0; + $addBlock_0(row, new Block(0, 0, row, nodeNodeSpacing)); + currentWidth = 0; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 27); + block = castTo($get_11(row.children, row.children.array.length - 1), 172); + potentialRowWidth = currentWidth + rect.width_0 + (castTo($get_11(row.children, 0), 172).children.array.length == 0?0:nodeNodeSpacing); + if (potentialRowWidth > boundingWidth || $booleanValue(castToBoolean($getProperty_0(rect, ($clinit_RectPackingOptions() , IN_NEW_ROW_0))))) { + currentWidth = 0; + drawingHeight += row.height + nodeNodeSpacing; + push_1(rows_0.array, row); + row = new RectRow(drawingHeight, nodeNodeSpacing); + block = new Block(0, row.y_0, row, nodeNodeSpacing); + $addBlock_0(row, block); + currentWidth = 0; + } + if (block.children.array.length == 0 || !$booleanValue(castToBoolean($getProperty_0($getParent_2(rect), ($clinit_RectPackingOptions() , PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION_0)))) && (rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height)) { + $addChild(block, rect); + } + else { + newBlock = new Block(block.x_0 + block.width_0 + nodeNodeSpacing, row.y_0, row, nodeNodeSpacing); + $addBlock_0(row, newBlock); + $addChild(newBlock, rect); + } + currentWidth = rect.x_0 + rect.width_0; + } + push_1(rows_0.array, row); + return rows_0; +} + +function placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing){ + var lastRow, lastRow0, lastRow_0; + if (rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { + lastRow0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 209); + if (lastRow0.x_0 + lastRow0.width_0 + rect.width_0 + nodeNodeSpacing <= boundingWidth && (lastRow = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 209) , lastRow.y_0 - row.y_0 + rect.height <= row.height || row.children.array.length == 1)) { + $addChild(block, rect); + return true; + } + else if (block.x_0 + rect.width_0 <= boundingWidth && (block.y_0 + block.height + rect.height + nodeNodeSpacing <= row.height || row.children.array.length == 1)) { + $add_3(block.children, rect); + lastRow_0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 209); + $add_3(block.rows_0, new BlockRow(block.x_0, lastRow_0.y_0 + lastRow_0.height + block.nodeNodeSpacing, block.nodeNodeSpacing)); + $addRectangle(castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 209), rect); + $adjustSizeAdd(block, rect); + return true; + } + } + return false; +} + +function $process_110(graph, progressMonitor){ + var additionalHeight, height, padding, rectangles, size_0, width_0; + progressMonitor.begin('No Compaction', 1); + padding = castTo($getProperty_0(graph, ($clinit_RectPackingOptions() , PADDING_3)), 107); + rectangles = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); + size_0 = calculateDimensions(rectangles); + width_0 = $wnd.Math.max(size_0.x_0, $doubleValue(castToDouble($getProperty_0(graph, ($clinit_InternalProperties_4() , MIN_WIDTH_0)))) - (padding.left + padding.right)); + height = $wnd.Math.max(size_0.y_0, $doubleValue(castToDouble($getProperty_0(graph, MIN_HEIGHT))) - (padding.top_0 + padding.bottom)); + additionalHeight = height - size_0.y_0; + $setProperty_1(graph, ADDITIONAL_HEIGHT, additionalHeight); + $setProperty_1(graph, DRAWING_WIDTH, width_0); + $setProperty_1(graph, DRAWING_HEIGHT, height + additionalHeight); + progressMonitor.done_1(); +} + +function NoPlacement(){ +} + +defineClass(1473, 1, $intern_113, NoPlacement); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_32(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_106(graph, progressMonitor){ + $process_110(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p2packing_NoPlacement_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p2packing', 'NoPlacement', 1473); +function $clinit_PackingStrategy(){ + $clinit_PackingStrategy = emptyMethod; + COMPACTION_2 = new PackingStrategy('COMPACTION', 0); + SIMPLE_0 = new PackingStrategy('SIMPLE', 1); + NONE_15 = new PackingStrategy('NONE', 2); +} + +function $create_15(this$static){ + switch (this$static.ordinal) { + case 0: + return new Compactor; + case 1: + return new SimplePlacement; + case 2: + return new NoPlacement; + default:return null; + } +} + +function PackingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_86(name_0){ + $clinit_PackingStrategy(); + return valueOf(($clinit_PackingStrategy$Map() , $MAP_76), name_0); +} + +function values_94(){ + $clinit_PackingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p2packing_PackingStrategy_2_classLit, 1), $intern_37, 439, 0, [COMPACTION_2, SIMPLE_0, NONE_15]); +} + +defineClass(439, 22, {3:1, 34:1, 22:1, 439:1, 188:1, 196:1}, PackingStrategy); +_.create_1 = function create_31(){ + return $create_15(this); +} +; +_.create_2 = function create_30(){ + return $create_15(this); +} +; +var COMPACTION_2, NONE_15, SIMPLE_0; +var Lorg_eclipse_elk_alg_rectpacking_p2packing_PackingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.p2packing', 'PackingStrategy', 439, Ljava_lang_Enum_2_classLit, values_94, valueOf_86); +function $clinit_PackingStrategy$Map(){ + $clinit_PackingStrategy$Map = emptyMethod; + $MAP_76 = createValueOfMap(($clinit_PackingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p2packing_PackingStrategy_2_classLit, 1), $intern_37, 439, 0, [COMPACTION_2, SIMPLE_0, NONE_15]))); +} + +var $MAP_76; +function $adjustWidthAndHeight(this$static, row){ + var index_0, maxHeight, maxWidth, stack_0, stack$iterator; + maxHeight = 0; + maxWidth = 0; + index_0 = 0; + for (stack$iterator = new ArrayList$1(row.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_6(stack$iterator), 315); + $updateDimension(stack_0); + maxHeight = $wnd.Math.max(maxHeight, stack_0.height); + maxWidth += stack_0.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + row.height = maxHeight; + row.width_0 = maxWidth; +} + +function $start(this$static, layoutGraph, padding){ + var additionalHeight, block, block$iterator, blockRow, blockRow$iterator, currentRow, height, lastBlock, lastStack, minHeight, minWidth, previousRow, result, rowIdx, rows_0, size_0, targetWidth, totalWidth; + targetWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_InternalProperties_4() , TARGET_WIDTH)))); + minWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, MIN_WIDTH_0))); + minHeight = $doubleValue(castToDouble($getProperty_0(layoutGraph, MIN_HEIGHT))); + resetCoordinates((!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children)); + rows_0 = place((!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children), targetWidth, this$static.nodeNodeSpacing); + for (rowIdx = 0; rowIdx < rows_0.array.length; rowIdx++) { + currentRow = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 186)); + if (rowIdx != 0) { + previousRow = (checkCriticalElementIndex(rowIdx - 1, rows_0.array.length) , castTo(rows_0.array[rowIdx - 1], 186)); + $setY_1(currentRow, previousRow.y_0 + previousRow.height + this$static.nodeNodeSpacing); + } + result = compact_4(rowIdx, rows_0, targetWidth, this$static.nodeNodeSpacing, $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , PACKING_COMPACTION_ROW_HEIGHT_REEVALUATION_0))))); + if ($booleanValue(castToBoolean(result.second))) { + for (block$iterator = new ArrayList$1(currentRow.children); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + block.fixed_0 = false; + block.positionFixed = false; + $adjustSizeAfterRemove(block); + } + currentRow.stacks = new ArrayList; + currentRow.width_0 = targetWidth; + --rowIdx; + } + else { + $adjustWidthAndHeight(this$static, currentRow); + if (rowIdx + 1 < rows_0.array.length) { + this$static.potentialRowWidthIncreaseMax = $wnd.Math.max(currentRow.width_0 + this$static.nodeNodeSpacing + castTo($get_11((checkCriticalElementIndex(rowIdx + 1, rows_0.array.length) , castTo(rows_0.array[rowIdx + 1], 186)).children, 0), 172).width_0 - targetWidth, this$static.potentialRowWidthDecreaseMax); + this$static.potentialRowWidthIncreaseMin = $wnd.Math.min(currentRow.width_0 + this$static.nodeNodeSpacing + castTo($get_11((checkCriticalElementIndex(rowIdx + 1, rows_0.array.length) , castTo(rows_0.array[rowIdx + 1], 186)).children, 0), 172).width_0 - targetWidth, this$static.potentialRowWidthDecreaseMin); + if (currentRow.stacks.array.length != 0) { + this$static.potentialRowWidthDecreaseMax = $wnd.Math.max(this$static.potentialRowWidthDecreaseMax, castTo($get_11(currentRow.stacks, currentRow.stacks.array.length - 1), 315).width_0 + (currentRow.stacks.array.length <= 1?0:this$static.nodeNodeSpacing)); + this$static.potentialRowWidthDecreaseMin = $wnd.Math.min(this$static.potentialRowWidthDecreaseMax, castTo($get_11(currentRow.stacks, currentRow.stacks.array.length - 1), 315).width_0 + (currentRow.stacks.array.length <= 1?0:this$static.nodeNodeSpacing)); + } + } + if (rows_0.array.length == 1) { + lastStack = castTo($get_11(currentRow.stacks, currentRow.stacks.array.length - 1), 315); + lastBlock = castTo($get_11(lastStack.blocks, lastStack.blocks.array.length - 1), 172); + for (blockRow$iterator = new ArrayList$1(lastBlock.rows_0); blockRow$iterator.i < blockRow$iterator.this$01.array.length;) { + blockRow = castTo($next_6(blockRow$iterator), 209); + this$static.potentialRowWidthDecreaseMax = $wnd.Math.max(this$static.potentialRowWidthDecreaseMax, lastBlock.width_0 - blockRow.width_0); + this$static.potentialRowWidthDecreaseMin = $wnd.Math.min(this$static.potentialRowWidthDecreaseMin, lastBlock.width_0 - blockRow.width_0); + this$static.potentialRowWidthIncreaseMax = $wnd.Math.max(this$static.potentialRowWidthIncreaseMax, blockRow.width_0 + this$static.nodeNodeSpacing); + this$static.potentialRowWidthIncreaseMin = $wnd.Math.min(this$static.potentialRowWidthIncreaseMin, blockRow.width_0 + this$static.nodeNodeSpacing); + } + } + } + } + size_0 = calculateDimensions_0(rows_0, this$static.nodeNodeSpacing); + totalWidth = $wnd.Math.max(size_0.x_0, minWidth - (padding.left + padding.right)); + height = $wnd.Math.max(size_0.y_0, minHeight - (padding.top_0 + padding.bottom)); + additionalHeight = height - size_0.y_0; + $setProperty_1(layoutGraph, ADDITIONAL_HEIGHT, additionalHeight); + $setProperty_1(layoutGraph, ROWS_0, rows_0); + return new DrawingData(this$static.aspectRatio, totalWidth, size_0.y_0 + additionalHeight, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); +} + +function RowFillingAndCompaction(aspectRatio, nodeNodeSpacing){ + this.aspectRatio = aspectRatio; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(810, 1, {}, RowFillingAndCompaction); +_.aspectRatio = 0; +_.nodeNodeSpacing = 0; +_.potentialRowWidthDecreaseMax = 0; +_.potentialRowWidthDecreaseMin = $intern_60; +_.potentialRowWidthIncreaseMax = 0; +_.potentialRowWidthIncreaseMin = $intern_60; +var Lorg_eclipse_elk_alg_rectpacking_p2packing_RowFillingAndCompaction_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p2packing', 'RowFillingAndCompaction', 810); +function $process_111(graph, progressMonitor){ + var additionalHeight, block, block$iterator, height, nodeNodeSpacing, padding, row, row$iterator, rows_0, size_0, stack_0, targetWidth, width_0; + progressMonitor.begin('No Compaction', 1); + targetWidth = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_InternalProperties_4() , TARGET_WIDTH)))); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RectPackingOptions() , SPACING_NODE_NODE_3)))); + padding = castTo($getProperty_0(graph, PADDING_3), 107); + resetCoordinates((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); + rows_0 = place((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children), targetWidth, nodeNodeSpacing); + !graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)); + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 186); + for (block$iterator = new ArrayList$1(row.children); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + stack_0 = new BlockStack(block.x_0, block.y_0, $doubleValue(castToDouble($getProperty_0(graph, SPACING_NODE_NODE_3)))); + $addBlock(stack_0, block); + $add_3(row.stacks, stack_0); + } + } + size_0 = calculateDimensions_0(rows_0, nodeNodeSpacing); + width_0 = $wnd.Math.max(size_0.x_0, $doubleValue(castToDouble($getProperty_0(graph, MIN_WIDTH_0))) - (padding.left + padding.right)); + height = $wnd.Math.max(size_0.y_0, $doubleValue(castToDouble($getProperty_0(graph, MIN_HEIGHT))) - (padding.top_0 + padding.bottom)); + additionalHeight = height - size_0.y_0; + $setProperty_1(graph, ADDITIONAL_HEIGHT, additionalHeight); + $setProperty_1(graph, DRAWING_WIDTH, width_0); + $setProperty_1(graph, DRAWING_HEIGHT, height + additionalHeight); + $setProperty_1(graph, ROWS_0, rows_0); + progressMonitor.done_1(); +} + +function SimplePlacement(){ +} + +defineClass(1472, 1, $intern_113, SimplePlacement); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_33(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_107(graph, progressMonitor){ + $process_111(castTo(graph, 27), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p2packing_SimplePlacement_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p2packing', 'SimplePlacement', 1472); +function $process_112(graph, progressMonitor){ + var lastArg; + progressMonitor.begin('Equal Whitespace Eliminator', 1); + if ($hasProperty_0(graph, ($clinit_InternalProperties_4() , ROWS_0))) { + expand(castTo($getProperty_0(graph, ROWS_0), 15), $doubleValue(castToDouble($getProperty_0(graph, DRAWING_WIDTH))), (lastArg = $doubleValue(castToDouble($getProperty_0(graph, ADDITIONAL_HEIGHT))) , $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RectPackingOptions() , SPACING_NODE_NODE_3)))) , lastArg)); + } + else { + throw toJs(new UnsupportedConfigurationException_0('The graph does not contain rows.')); + } + progressMonitor.done_1(); +} + +function EqualWhitespaceEliminator(){ +} + +defineClass(1474, 1, $intern_113, EqualWhitespaceEliminator); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_34(graph){ + return castTo(graph, 27) , null; +} +; +_.process = function process_108(graph, progressMonitor){ + this.process_0(castTo(graph, 27), progressMonitor); +} +; +_.process_0 = function process_109(graph, progressMonitor){ + $process_112(graph, progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p3whitespaceelimination_EqualWhitespaceEliminator_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p3whitespaceelimination', 'EqualWhitespaceEliminator', 1474); +function expand(rows_0, drawingWidth, additionalHeight){ + var heightPerRow, index_0, row, row$iterator; + heightPerRow = additionalHeight / rows_0.size_1(); + index_0 = 0; + for (row$iterator = rows_0.iterator_0(); row$iterator.hasNext_0();) { + row = castTo(row$iterator.next_1(), 186); + $setY_1(row, row.y_0 + heightPerRow * index_0); + $expand_2(row, drawingWidth, heightPerRow); + ++index_0; + } +} + +function ToAspectratioNodeExpander(){ +} + +defineClass(1475, 1474, $intern_113, ToAspectratioNodeExpander); +_.process_0 = function process_110(graph, progressMonitor){ + var additionalHeight, aspectRatio, desiredAspectRatio, height, width_0; + progressMonitor.begin('To Aspect Ratio Whitesapce Eliminator', 1); + width_0 = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_InternalProperties_4() , DRAWING_WIDTH)))); + height = $doubleValue(castToDouble($getProperty_0(graph, DRAWING_HEIGHT))); + desiredAspectRatio = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); + additionalHeight = $doubleValue(castToDouble($getProperty_0(graph, ADDITIONAL_HEIGHT))); + aspectRatio = width_0 / height; + if (aspectRatio < desiredAspectRatio) { + width_0 = height * desiredAspectRatio; + $setProperty_1(graph, DRAWING_WIDTH, width_0); + } + else { + additionalHeight += width_0 / desiredAspectRatio - height; + $setProperty_1(graph, ADDITIONAL_HEIGHT, additionalHeight); + $setProperty_1(graph, DRAWING_HEIGHT, height + additionalHeight); + } + $process_112(graph, progressMonitor); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_rectpacking_p3whitespaceelimination_ToAspectratioNodeExpander_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.p3whitespaceelimination', 'ToAspectratioNodeExpander', 1475); +function $clinit_WhiteSpaceEliminationStrategy(){ + $clinit_WhiteSpaceEliminationStrategy = emptyMethod; + EQUAL_BETWEEN_STRUCTURES = new WhiteSpaceEliminationStrategy('EQUAL_BETWEEN_STRUCTURES', 0); + TO_ASPECT_RATIO = new WhiteSpaceEliminationStrategy('TO_ASPECT_RATIO', 1); +} + +function $create_16(this$static){ + switch (this$static.ordinal) { + case 0: + return new EqualWhitespaceEliminator; + case 1: + return new ToAspectratioNodeExpander; + default:return null; + } +} + +function WhiteSpaceEliminationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_87(name_0){ + $clinit_WhiteSpaceEliminationStrategy(); + return valueOf(($clinit_WhiteSpaceEliminationStrategy$Map() , $MAP_77), name_0); +} + +function values_95(){ + $clinit_WhiteSpaceEliminationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p3whitespaceelimination_WhiteSpaceEliminationStrategy_2_classLit, 1), $intern_37, 492, 0, [EQUAL_BETWEEN_STRUCTURES, TO_ASPECT_RATIO]); +} + +defineClass(492, 22, {3:1, 34:1, 22:1, 492:1, 188:1, 196:1}, WhiteSpaceEliminationStrategy); +_.create_1 = function create_33(){ + return $create_16(this); +} +; +_.create_2 = function create_32(){ + return $create_16(this); +} +; +var EQUAL_BETWEEN_STRUCTURES, TO_ASPECT_RATIO; +var Lorg_eclipse_elk_alg_rectpacking_p3whitespaceelimination_WhiteSpaceEliminationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.p3whitespaceelimination', 'WhiteSpaceEliminationStrategy', 492, Ljava_lang_Enum_2_classLit, values_95, valueOf_87); +function $clinit_WhiteSpaceEliminationStrategy$Map(){ + $clinit_WhiteSpaceEliminationStrategy$Map = emptyMethod; + $MAP_77 = createValueOfMap(($clinit_WhiteSpaceEliminationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_p3whitespaceelimination_WhiteSpaceEliminationStrategy_2_classLit, 1), $intern_37, 492, 0, [EQUAL_BETWEEN_STRUCTURES, TO_ASPECT_RATIO]))); +} + +var $MAP_77; +function $addChild(this$static, rect){ + this$static.rows_0.array.length == 0 && $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); + $add_3(this$static.children, rect); + $addRectangle(castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 209), rect); + $adjustSizeAdd(this$static, rect); +} + +function $adjustChildrensXandY(this$static, xChange, yChange){ + var rect, rect$iterator; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_6(rect$iterator), 27); + $setLocation_1(rect, rect.x_0 + xChange, rect.y_0 + yChange); + } +} + +function $adjustSizeAdd(this$static, rect){ + var row, row$iterator, totalHeight, widthOflastRow; + widthOflastRow = castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 209).width_0; + this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); + this$static.width_0 = $wnd.Math.max(this$static.width_0, widthOflastRow); + this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0 + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing)); + this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); + this$static.maxHeight += rect.height + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing); + this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); + totalHeight = this$static.rows_0.array.length > 0?(this$static.rows_0.array.length - 1) * this$static.nodeNodeSpacing:0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 209); + totalHeight += row.height; + } + this$static.height = totalHeight; + this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); + $notifyAboutNodeChange(this$static.parentRow); +} + +function $adjustSizeAfterRemove(this$static){ + var index_0, newHeight, newWidth, rect, rect$iterator, row, row$iterator, rowsToDelete; + newWidth = 0; + newHeight = 0; + rowsToDelete = new LinkedList; + index_0 = 0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 209); + if (row.rects.array.length == 0) { + $addNode_0(rowsToDelete, row, rowsToDelete.tail.prev, rowsToDelete.tail); + } + else { + newWidth = $wnd.Math.max(newWidth, row.width_0); + newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + } + ++index_0; + } + $removeAll_0(this$static.rows_0, rowsToDelete); + this$static.height = newHeight; + this$static.width_0 = newWidth; + this$static.minWidth = 0; + this$static.minHeight = 0; + this$static.maxHeight = 0; + this$static.smallestRectHeight = $intern_60; + this$static.smallestRectWidth = $intern_60; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_6(rect$iterator), 27); + this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); + this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0); + this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); + this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); + this$static.maxHeight += rect.height + this$static.nodeNodeSpacing; + } + this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); + $notifyAboutNodeChange(this$static.parentRow); +} + +function $expand(this$static, additionalWidthPerBlock, additionalHeightForBlock){ + var additionalHeightForRow, index_0, row, row$iterator, widthForRow; + widthForRow = this$static.width_0 + additionalWidthPerBlock; + this$static.width_0 += additionalWidthPerBlock; + this$static.height += additionalHeightForBlock; + additionalHeightForRow = additionalHeightForBlock / this$static.rows_0.array.length; + index_0 = 0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 209); + $expand_0(row, widthForRow, additionalHeightForRow, index_0); + ++index_0; + } +} + +function $getWidthForTargetHeight(this$static, height){ + var bounds, lowerBound, newWidth, upperBound, viableWidth; + if (this$static.maxHeight <= height) { + return this$static.minWidth; + } + if ($placeRectsIn_0(this$static, this$static.minWidth, height)) { + return this$static.minWidth; + } + upperBound = this$static.width_0; + lowerBound = this$static.minWidth; + viableWidth = this$static.width_0; + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + while (lowerBound + 1 < upperBound) { + bounds = $placeRectsIn_1(this$static, newWidth, false); + if (bounds.width_0 <= newWidth && bounds.height <= height) { + viableWidth = newWidth; + upperBound = newWidth; + } + else { + lowerBound = newWidth; + } + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + } + return viableWidth; +} + +function $placeRectsIn(this$static, width_0){ + var bounds, oldHeight, oldWidth; + oldWidth = this$static.width_0; + oldHeight = this$static.height; + bounds = $placeRectsIn_1(this$static, width_0, true); + return bounds.width_0 != oldWidth || bounds.height != oldHeight; +} + +function $placeRectsIn_0(this$static, width_0, height){ + var bounds; + bounds = $placeRectsIn_1(this$static, width_0, false); + return bounds.width_0 <= width_0 && bounds.height <= height; +} + +function $placeRectsIn_1(this$static, width_0, placeRects){ + var currentHeight, currentWidth, currentX, currentY, index_0, maxHeightInRow, rect, rect$iterator, row, widthInRow; + currentX = 0; + currentY = this$static.y_0; + currentWidth = 0; + currentHeight = 0; + maxHeightInRow = 0; + widthInRow = 0; + row = 0; + if (placeRects) { + this$static.rows_0.array.length = 0; + $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); + } + index_0 = 0; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_6(rect$iterator), 27); + if (currentX + rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0) > width_0 && maxHeightInRow > 0) { + currentX = 0; + currentY += maxHeightInRow + this$static.nodeNodeSpacing; + currentWidth = $wnd.Math.max(currentWidth, widthInRow); + currentHeight += maxHeightInRow + this$static.nodeNodeSpacing; + maxHeightInRow = 0; + widthInRow = 0; + if (placeRects) { + ++row; + $add_3(this$static.rows_0, new BlockRow(this$static.x_0, currentY, this$static.nodeNodeSpacing)); + } + index_0 = 0; + } + widthInRow += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + maxHeightInRow = $wnd.Math.max(maxHeightInRow, rect.height); + placeRects && $addRectangle(castTo($get_11(this$static.rows_0, row), 209), rect); + currentX += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + currentWidth = $wnd.Math.max(currentWidth, widthInRow); + currentHeight += maxHeightInRow; + if (placeRects) { + this$static.width_0 = currentWidth; + this$static.height = currentHeight; + $notifyAboutNodeChange(this$static.parentRow); + } + return new ElkRectangle_0(this$static.x_0, this$static.y_0, currentWidth, currentHeight); +} + +function $removeChild(this$static, rect){ + var row, row$iterator; + $remove_12(this$static.children, rect); + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 209); + if ($indexOf_3(row.rects, rect, 0) != -1) { + $remove_12(row.rects, rect); + $updateRow(row); + row.rects.array.length == 0 && $remove_12(this$static.rows_0, row); + break; + } + } + $adjustSizeAfterRemove(this$static); +} + +function $setLocation(this$static, xCoord, yCoord){ + var row, row$iterator; + $adjustChildrensXandY(this$static, xCoord - this$static.x_0, yCoord - this$static.y_0); + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 209); + $setX_0(row, row.x_0 + xCoord - this$static.x_0); + $setY_0(row, row.y_0 + yCoord - this$static.y_0); + } + this$static.x_0 = xCoord; + this$static.y_0 = yCoord; +} + +function Block(xCoord, yCoord, parentRow, nodeNodeSpacing){ + this.children = new ArrayList; + this.rows_0 = new ArrayList; + this.nodeNodeSpacing = nodeNodeSpacing; + this.parentRow = parentRow; + this.x_0 = xCoord; + this.y_0 = yCoord; + this.width_0 = 0; + this.height = 0; +} + +defineClass(172, 1, {172:1}, Block); +_.averageHeight = 0; +_.fixed_0 = false; +_.height = 0; +_.maxHeight = 0; +_.minHeight = 0; +_.minWidth = 0; +_.nodeNodeSpacing = 0; +_.positionFixed = false; +_.smallestRectHeight = $intern_60; +_.smallestRectWidth = $intern_60; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_Block_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'Block', 172); +function $addRectangle(this$static, rect){ + $setX_2(rect, this$static.x_0 + this$static.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing)); + $setY_3(rect, this$static.y_0); + this$static.height = $wnd.Math.max(this$static.height, rect.height); + this$static.width_0 += rect.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.rects, rect); + return true; +} + +function $expand_0(this$static, widthForRow, additionalHeightForRow, index_0){ + var additionalWidthForRect, i, newHeight, newWidth, oldHeight, oldWidth, rect, rect$iterator; + additionalWidthForRect = (widthForRow - this$static.width_0) / this$static.rects.array.length; + i = 0; + this$static.height += additionalHeightForRow; + this$static.width_0 = widthForRow; + for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_6(rect$iterator), 27); + oldWidth = rect.width_0; + oldHeight = rect.height; + $setX_2(rect, rect.x_0 + i * additionalWidthForRect); + $setY_3(rect, rect.y_0 + index_0 * additionalHeightForRow); + $setWidth_0(rect, rect.width_0 + additionalWidthForRect); + $setHeight_0(rect, this$static.height); + ++i; + newWidth = rect.width_0; + newHeight = rect.height; + translate_1(rect, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); + } +} + +function $setX_0(this$static, x_0){ + this$static.x_0 = x_0; +} + +function $setY_0(this$static, y_0){ + this$static.y_0 = y_0; +} + +function $updateRow(this$static){ + var height, rect, rect$iterator, width_0; + width_0 = 0; + height = 0; + for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_6(rect$iterator), 27); + $setX_2(rect, this$static.x_0 + width_0); + $setY_3(rect, this$static.y_0); + width_0 += rect.width_0 + this$static.nodeNodeSpacing; + height = $wnd.Math.max(height, rect.height + this$static.nodeNodeSpacing); + } + this$static.width_0 = width_0 - this$static.nodeNodeSpacing; + this$static.height = height - this$static.nodeNodeSpacing; +} + +function BlockRow(x_0, y_0, nodeNodeSpacing){ + this.rects = new ArrayList; + this.x_0 = x_0; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(209, 1, {209:1}, BlockRow); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_BlockRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockRow', 209); +function $addBlock(this$static, block){ + block.stack_0 = this$static; + this$static.width_0 = $wnd.Math.max(this$static.width_0, block.width_0); + this$static.height += block.height + (this$static.blocks.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.blocks, block); +} + +function $expand_1(this$static, additionalWidth, additionalHeight){ + var additionalHeightPerBlock, block, block$iterator, index_0; + index_0 = 0; + additionalHeightPerBlock = additionalHeight / this$static.blocks.array.length; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + $setLocation(block, block.x_0, block.y_0 + index_0 * additionalHeightPerBlock); + $expand(block, this$static.width_0 - block.width_0 + additionalWidth, additionalHeightPerBlock); + ++index_0; + } +} + +function $getMinimumWidth_1(this$static){ + var block, block$iterator, minWidth; + minWidth = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + minWidth = $wnd.Math.max(minWidth, block.minWidth); + } + return minWidth; +} + +function $getWidthForFixedHeight(this$static, height){ + var block, block$iterator, bounds, lowerBound, minWidth, newWidth, totalHeight, upperBound, viableWidth; + if (this$static.blocks.array.length == 1) { + return $getWidthForTargetHeight(castTo($get_11(this$static.blocks, 0), 172), height); + } + minWidth = $getMinimumWidth_1(this$static); + totalHeight = 0; + upperBound = this$static.width_0; + lowerBound = minWidth; + viableWidth = this$static.width_0; + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + while (lowerBound + 1 < upperBound) { + totalHeight = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + totalHeight += (bounds = $placeRectsIn_1(block, newWidth, false) , bounds.height); + } + if (totalHeight < height) { + viableWidth = newWidth; + upperBound = newWidth; + } + else { + lowerBound = newWidth; + } + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + } + return viableWidth; +} + +function $placeRectsIn_2(this$static, targetWidth){ + var block, block$iterator, currentHeight, currentWidth, currentY; + currentY = this$static.y_0; + currentHeight = 0; + currentWidth = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + $setLocation(block, this$static.x_0, currentY); + $placeRectsIn(block, targetWidth); + currentWidth = $wnd.Math.max(currentWidth, block.width_0); + currentY += block.height + this$static.nodeNodeSpacing; + currentHeight = currentY; + } + this$static.width_0 = currentWidth; + this$static.height = currentHeight; +} + +function $setLocation_0(this$static, x_0, y_0){ + var block, block$iterator, xDiff, yDiff; + xDiff = x_0 - this$static.x_0; + yDiff = y_0 - this$static.y_0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + $setLocation(block, block.x_0 + xDiff, block.y_0 + yDiff); + } + this$static.x_0 = x_0; + this$static.y_0 = y_0; +} + +function $updateDimension(this$static){ + var block, block$iterator, height, index_0, width_0; + height = 0; + width_0 = 0; + index_0 = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_6(block$iterator), 172); + width_0 = $wnd.Math.max(width_0, block.width_0); + height += block.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + this$static.height = height; + this$static.width_0 = width_0; +} + +function BlockStack(x_0, y_0, nodeNodeSpacing){ + this.blocks = new ArrayList; + this.x_0 = x_0; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(315, 1, {315:1}, BlockStack); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_BlockStack_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockStack', 315); +function $setDrawingHeight(this$static, drawingHeight){ + this$static.drawingHeight = drawingHeight; + this$static.drawingWidth > 0 && this$static.drawingHeight > 0 && (this$static.scaleMeasure = computeScaleMeasure(this$static.drawingWidth, this$static.drawingHeight, this$static.dar)); +} + +function $setDrawingWidth(this$static, drawingWidth){ + this$static.drawingWidth = drawingWidth; + this$static.drawingWidth > 0 && this$static.drawingHeight > 0 && (this$static.scaleMeasure = computeScaleMeasure(this$static.drawingWidth, this$static.drawingHeight, this$static.dar)); +} + +function $setPlacementOption(this$static, placementOption){ + this$static.placementOption = placementOption; +} + +function DrawingData(dar, drawingWidth, drawingHeight, placementOption){ + DrawingData_0.call(this, dar, drawingWidth, drawingHeight, placementOption, 0, 0); +} + +function DrawingData_0(dar, drawingWidth, drawingHeight, placementOption, nextXcoord, nextYcoord){ + this.dar = dar; + this.drawingWidth = drawingWidth; + this.drawingHeight = drawingHeight; + this.placementOption = placementOption; + this.nextXcoordinate = nextXcoord; + this.nextYcoordinate = nextYcoord; + this.drawingWidth > 0 && this.drawingHeight > 0 && (this.scaleMeasure = computeScaleMeasure(this.drawingWidth, this.drawingHeight, this.dar)); +} + +defineClass(238, 1, {238:1}, DrawingData, DrawingData_0); +_.dar = 0; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.nextXcoordinate = 0; +_.nextYcoordinate = 0; +_.scaleMeasure = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'DrawingData', 238); +function $clinit_DrawingDataDescriptor(){ + $clinit_DrawingDataDescriptor = emptyMethod; + CANDIDATE_POSITION_LAST_PLACED_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_RIGHT', 0); + CANDIDATE_POSITION_LAST_PLACED_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_BELOW', 1); + CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT', 2); + CANDIDATE_POSITION_WHOLE_DRAWING_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW', 3); + WHOLE_DRAWING = new DrawingDataDescriptor('WHOLE_DRAWING', 4); +} + +function DrawingDataDescriptor(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_88(name_0){ + $clinit_DrawingDataDescriptor(); + return valueOf(($clinit_DrawingDataDescriptor$Map() , $MAP_78), name_0); +} + +function values_96(){ + $clinit_DrawingDataDescriptor(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_37, 373, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]); +} + +defineClass(373, 22, {3:1, 34:1, 22:1, 373:1}, DrawingDataDescriptor); +var CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, WHOLE_DRAWING; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.util', 'DrawingDataDescriptor', 373, Ljava_lang_Enum_2_classLit, values_96, valueOf_88); +function $clinit_DrawingDataDescriptor$Map(){ + $clinit_DrawingDataDescriptor$Map = emptyMethod; + $MAP_78 = createValueOfMap(($clinit_DrawingDataDescriptor() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_37, 373, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]))); +} + +var $MAP_78; +function calculateDimensions(rectangles){ + var maxHeight, maxWidth, node, node$iterator; + maxWidth = 0; + maxHeight = 0; + for (node$iterator = new AbstractEList$EIterator(rectangles); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + maxWidth = $wnd.Math.max(node.width_0 + node.x_0, maxWidth); + maxHeight = $wnd.Math.max(node.height + node.y_0, maxHeight); + } + return new KVector_1(maxWidth, maxHeight); +} + +function calculateDimensions_0(rows_0, nodeNodeSpacing){ + var index_0, maxWidth, newHeight, row, row$iterator; + maxWidth = 0; + newHeight = 0; + index_0 = 0; + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_6(row$iterator), 186); + maxWidth = $wnd.Math.max(maxWidth, row.width_0); + newHeight += row.height + (index_0 > 0?nodeNodeSpacing:0); + ++index_0; + } + return new KVector_1(maxWidth, newHeight); +} + +function computeScaleMeasure(width_0, height, dar){ + return $wnd.Math.min(dar / width_0, 1 / height); +} + +function resetCoordinates(graph){ + var node, node$iterator; + for (node$iterator = new AbstractEList$EIterator(graph); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + $setX_2(node, 0); + $setY_3(node, 0); + } +} + +function $addBlock_0(this$static, block){ + this$static.height = $wnd.Math.max(this$static.height, block.height); + this$static.width_0 += block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.children, block); +} + +function $expand_2(this$static, width_0, additionalHeight){ + var additionalHeightForStack, additionalWidth, additionalWidthPerStack, index_0, stack_0, stack$iterator; + additionalWidth = width_0 - this$static.width_0; + additionalWidthPerStack = additionalWidth / this$static.stacks.array.length; + index_0 = 0; + for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_6(stack$iterator), 315); + additionalHeightForStack = this$static.height - stack_0.height + additionalHeight; + $setLocation_0(stack_0, stack_0.x_0 + index_0 * additionalWidthPerStack, stack_0.y_0); + $expand_1(stack_0, additionalWidthPerStack, additionalHeightForStack); + ++index_0; + } +} + +function $notifyAboutNodeChange(this$static){ + var child, child$iterator, index_0, newMaxHeight, totalStackWidth; + totalStackWidth = 0; + newMaxHeight = $intern_61; + index_0 = 0; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 172); + totalStackWidth += child.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); + ++index_0; + } + this$static.width_0 = totalStackWidth; + this$static.height = newMaxHeight; +} + +function $removeBlock(this$static, block){ + var child, child$iterator, newMaxHeight; + $remove_12(this$static.children, block); + this$static.width_0 -= block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); + newMaxHeight = $intern_127; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_6(child$iterator), 172); + newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); + } + this$static.height = newMaxHeight; +} + +function $setY_1(this$static, y_0){ + var stack_0, stack$iterator, yChange; + yChange = y_0 - this$static.y_0; + for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_6(stack$iterator), 315); + $setLocation_0(stack_0, stack_0.x_0, stack_0.y_0 + yChange); + } + this$static.y_0 = y_0; +} + +function RectRow(y_0, nodeNodeSpacing){ + this.children = new ArrayList; + this.stacks = new ArrayList; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(186, 1, {186:1}, RectRow); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_RectRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'RectRow', 186); +function $applyPositions_0(this$static, g){ + var e, e$iterator, elkNode, endLocation, kedgeSection, maxX, maxY, minX, minY, node, node$iterator, padding, source, startLocation, target, uv, vu; + minX = $intern_60; + minY = $intern_60; + maxX = $intern_61; + maxY = $intern_61; + for (node$iterator = new ArrayList$1(g.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 68); + elkNode = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 42).second, 27); + $setLocation_1(elkNode, node.rect.x_0, node.rect.y_0); + minX = $wnd.Math.min(minX, elkNode.x_0); + minY = $wnd.Math.min(minY, elkNode.y_0); + maxX = $wnd.Math.max(maxX, elkNode.x_0 + elkNode.width_0); + maxY = $wnd.Math.max(maxY, elkNode.y_0 + elkNode.height); + } + padding = castTo($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PADDING_4)), 107); + resizeNode_1(this$static.elkGraph, maxX - minX + (padding.left + padding.right), maxY - minY + (padding.top_0 + padding.bottom), true, true); + translate_0(this$static.elkGraph, -minX + padding.left, -minY + padding.top_0); + for (e$iterator = new AbstractEList$EIterator($getContainedEdges(this$static.elkGraph)); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 74); + kedgeSection = firstEdgeSection(e, true, true); + source = getSourceNode(e); + target = getTargetNode_0(e); + startLocation = new KVector_1(source.x_0 + source.width_0 / 2, source.y_0 + source.height / 2); + endLocation = new KVector_1(target.x_0 + target.width_0 / 2, target.y_0 + target.height / 2); + uv = $sub_0(new KVector_1(endLocation.x_0, endLocation.y_0), startLocation); + clipVector(uv, source.width_0, source.height); + $add_19(startLocation, uv); + vu = $sub_0(new KVector_1(startLocation.x_0, startLocation.y_0), endLocation); + clipVector(vu, target.width_0, target.height); + $add_19(endLocation, vu); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); + } +} + +function $importGraph_2(this$static, inputGraph){ + var adapter, calcu, center, closest, compactionStrategy, costFunction, costFunctionID, distance, elkNode, elkNode$iterator, halfHeight, halfWidth, id_0, margin, node, node$iterator, node$iterator0, preferredRootID, rootSelection, treeConstructionStrategy, vertex; + this$static.elkGraph = inputGraph; + this$static.nodeMap = new HashMap; + adapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(this$static.elkGraph)); + calcu = new NodeMarginCalculator(adapter); + $process(calcu); + preferredRootID = castToString($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PROCESSING_ORDER_PREFERRED_ROOT))); + costFunctionID = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION), 324); + treeConstructionStrategy = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_TREE_CONSTRUCTION), 437); + compactionStrategy = castTo($getProperty_0(this$static.elkGraph, COMPACTION_COMPACTION_STRATEGY), 490); + rootSelection = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_ROOT_SELECTION), 438); + this$static.spacingNodeNode = $doubleValue(castToDouble($getProperty_0(this$static.elkGraph, SPACING_NODE_NODE_4))); + costFunction = this$static.centerDistance; + switch (costFunctionID.ordinal) { + case 0: + costFunction = this$static.centerDistance; + break; + case 1: + costFunction = this$static.circleUnderlap; + break; + case 2: + costFunction = this$static.rectangleUnderlap; + break; + case 3: + costFunction = this$static.invertedOverlap; + break; + case 4: + costFunction = this$static.minimumRootDistance; + break; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (costFunctionID.name_0 != null?costFunctionID.name_0:'' + costFunctionID.ordinal))); + } + this$static.graph_0 = new Graph(costFunction, treeConstructionStrategy, compactionStrategy); + $setProperty_0(this$static.graph_0, ($clinit_InternalProperties() , DEBUG_SVG), castToBoolean($getProperty_0(this$static.elkGraph, DEBUG_MODE_1))); + this$static.graph_0.orthogonalCompaction = $booleanValue(castToBoolean($getProperty_0(this$static.elkGraph, COMPACTION_ORTHOGONAL))); + if ($getChildren(this$static.elkGraph).size_0 == 0) { + return this$static.graph_0; + } + for (elkNode$iterator = new AbstractEList$EIterator($getChildren(this$static.elkGraph)); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 27); + halfWidth = elkNode.width_0 / 2; + halfHeight = elkNode.height / 2; + vertex = new KVector_1(elkNode.x_0 + halfWidth, elkNode.y_0 + halfHeight); + while ($containsKey_3(this$static.nodeMap, vertex)) { + $add_18(vertex, ($wnd.Math.random() - 0.5) * $intern_101, ($wnd.Math.random() - 0.5) * $intern_101); + } + margin = castTo($getProperty_0(elkNode, ($clinit_CoreOptions() , MARGINS_0)), 140); + node = new Node_0(vertex, new ElkRectangle_0(vertex.x_0 - halfWidth - this$static.spacingNodeNode / 2 - margin.left, vertex.y_0 - halfHeight - this$static.spacingNodeNode / 2 - margin.top_0, elkNode.width_0 + this$static.spacingNodeNode + (margin.left + margin.right), elkNode.height + this$static.spacingNodeNode + (margin.top_0 + margin.bottom))); + $add_3(this$static.graph_0.vertices, node); + $put_6(this$static.nodeMap, vertex, new Pair(node, elkNode)); + } + switch (rootSelection.ordinal) { + case 0: + if (preferredRootID == null) { + this$static.graph_0.preferredRoot = castTo($get_11(this$static.graph_0.vertices, 0), 68); + } + else { + for (node$iterator0 = new ArrayList$1(this$static.graph_0.vertices); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_6(node$iterator0), 68); + id_0 = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 42).second, 27).getIdentifier(); + id_0 != null && $equals_5(id_0, preferredRootID) && (this$static.graph_0.preferredRoot = node); + } + } + + break; + case 1: + center = new KVector_1(this$static.elkGraph.width_0, this$static.elkGraph.height); + center.x_0 *= 0.5; + center.y_0 *= 0.5; + $add_18(center, this$static.elkGraph.x_0, this$static.elkGraph.y_0); + closest = $intern_60; + for (node$iterator = new ArrayList$1(this$static.graph_0.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_6(node$iterator), 68); + distance = $distance_0(node.originalVertex, center); + if (distance < closest) { + closest = distance; + this$static.graph_0.preferredRoot = node; + } + } + + break; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (rootSelection.name_0 != null?rootSelection.name_0:'' + rootSelection.ordinal))); + } + return this$static.graph_0; +} + +function $lambda$1_7(this$static, e_0){ + return $wnd.Math.min($distance_0(e_0.u, this$static.graph_0.preferredRoot.vertex), $distance_0(e_0.v, this$static.graph_0.preferredRoot.vertex)); +} + +function $lambda$2_4(this$static, e_0){ + var n1, n2; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 42).first, 68); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 42).first, 68); + return $distance_0(e_0.u, e_0.v) - $distance_0(e_0.u, $getPosition(n1.rect)) - $distance_0(e_0.v, $getPosition(n2.rect)); +} + +function $lambda$3_3(this$static, e_0){ + var n1, n2; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 42).first, 68); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 42).first, 68); + return $underlap(n1, n2); +} + +function $lambda$4_2(this$static, e_0){ + var dist, n1, n2, r1, r2, s; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 42).first, 68); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 42).first, 68); + r1 = n1.rect; + r2 = n2.rect; + dist = shortestDistance_0(r1, r2); + if (dist >= 0) { + return dist; + } + s = $length($sub_0(new KVector_1(r2.x_0 + r2.width_0 / 2, r2.y_0 + r2.height / 2), new KVector_1(r1.x_0 + r1.width_0 / 2, r1.y_0 + r1.height / 2))); + return -(overlap_0(r1, r2) - 1) * s; +} + +function $updateGraph(this$static, g){ + var n, n$iterator, original, updatedNodeMap; + updatedNodeMap = new HashMap; + g.tEdges = null; + g.tree = null; + for (n$iterator = new ArrayList$1(g.vertices); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_6(n$iterator), 68); + original = castTo($get_10(this$static.nodeMap, n.originalVertex), 42); + n.originalVertex = $getCenter(n.rect); + $put_6(updatedNodeMap, n.originalVertex, original); + } + this$static.nodeMap = updatedNodeMap; +} + +function ElkGraphImporter_0(){ + this.centerDistance = new ElkGraphImporter$lambda$0$Type_1; + this.minimumRootDistance = new ElkGraphImporter$lambda$1$Type_0(this); + this.circleUnderlap = new ElkGraphImporter$lambda$2$Type_0(this); + this.rectangleUnderlap = new ElkGraphImporter$lambda$3$Type(this); + this.invertedOverlap = new ElkGraphImporter$lambda$4$Type_0(this); +} + +defineClass(763, 1, {}, ElkGraphImporter_0); +_.spacingNodeNode = 0; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter', 763); +function ElkGraphImporter$lambda$0$Type_1(){ +} + +defineClass(1209, 1, {}, ElkGraphImporter$lambda$0$Type_1); +_.cost = function cost_0(arg0){ + return $distance_0(arg0.u, arg0.v); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$0$Type', 1209); +function ElkGraphImporter$lambda$1$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1210, 1, {}, ElkGraphImporter$lambda$1$Type_0); +_.cost = function cost_1(arg0){ + return $lambda$1_7(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$1$Type', 1210); +function ElkGraphImporter$lambda$2$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1211, 1, {}, ElkGraphImporter$lambda$2$Type_0); +_.cost = function cost_2(arg0){ + return $lambda$2_4(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$2$Type', 1211); +function ElkGraphImporter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1212, 1, {}, ElkGraphImporter$lambda$3$Type); +_.cost = function cost_3(arg0){ + return $lambda$3_3(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$3$Type', 1212); +function ElkGraphImporter$lambda$4$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1213, 1, {}, ElkGraphImporter$lambda$4$Type_0); +_.cost = function cost_4(arg0){ + return $lambda$4_2(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$4$Type', 1213); +function OverlapRemovalLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +function lambda$0_39(overlapEdges_0, n1_1, n2_2){ + return $add_6(overlapEdges_0, new TEdge(n1_1.originalVertex, n2_2.originalVertex)); +} + +defineClass(1115, 205, $intern_96, OverlapRemovalLayoutProvider); +_.layout = function layout_6(layoutGraph, progressMonitor){ + var graph, graphImporter, iteration, lad, layoutProvider, maxIterations, overlapEdges, overlapHandler, overlapsExisted, processor, processor$iterator, requestedAlgorithm; + if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , UNDERLYING_LAYOUT_ALGORITHM_1))); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 205); + layoutProvider.layout(layoutGraph, progressMonitor.subTask(1)); + } + } + $setProperty_1(layoutGraph, PROCESSING_ORDER_ROOT_SELECTION, ($clinit_RootSelection() , CENTER_NODE)); + $setProperty_1(layoutGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, ($clinit_SpanningTreeCostFunction() , INVERTED_OVERLAP)); + $setProperty_1(layoutGraph, PROCESSING_ORDER_TREE_CONSTRUCTION, ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE)); + maxIterations = castTo($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , OVERLAP_REMOVAL_MAX_ITERATIONS_0)), 17).value_0; + progressMonitor.begin('Overlap removal', 1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, DEBUG_MODE_2))) && 'null45scanlineOverlaps'; + overlapEdges = new HashSet; + overlapHandler = new OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges); + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + overlapsExisted = true; + iteration = 0; + while (iteration < maxIterations && overlapsExisted) { + if ($booleanValue(castToBoolean($getProperty_0(layoutGraph, OVERLAP_REMOVAL_RUN_SCANLINE_0)))) { + overlapEdges.map_0.clear_0(); + $sweep_0(new ScanlineOverlapCheck(overlapHandler), graph.vertices); + if (overlapEdges.map_0.size_1() == 0) { + break; + } + graph.tEdges = overlapEdges; + } + $reset_4(this.algorithmAssembler); + $setPhase(this.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); + $setPhase(this.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); + $setPhase(this.algorithmAssembler, P3_EXECUTION, ($clinit_OverlapRemovalStrategy() , GROW_TREE)); + this.algorithm = $build_0(this.algorithmAssembler, graph); + for (processor$iterator = new ArrayList$1(this.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_6(processor$iterator), 47); + processor.process(graph, progressMonitor.subTask(1)); + } + $updateGraph(graphImporter, graph); + overlapsExisted = $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , OVERLAPS_EXISTED)))); + ++iteration; + } + $applyPositions_0(graphImporter, graph); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider', 1115); +function $handle_4(this$static, arg0, arg1){ + lambda$0_39(this$static.overlapEdges_0, arg0, arg1); +} + +function OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges_0){ + this.overlapEdges_0 = overlapEdges_0; +} + +defineClass(1116, 1, {}, OverlapRemovalLayoutProvider$lambda$0$Type); +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider/lambda$0$Type', 1116); +function $clinit_SPOrEPhases(){ + $clinit_SPOrEPhases = emptyMethod; + P1_STRUCTURE = new SPOrEPhases('P1_STRUCTURE', 0); + P2_PROCESSING_ORDER = new SPOrEPhases('P2_PROCESSING_ORDER', 1); + P3_EXECUTION = new SPOrEPhases('P3_EXECUTION', 2); +} + +function SPOrEPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_89(name_0){ + $clinit_SPOrEPhases(); + return valueOf(($clinit_SPOrEPhases$Map() , $MAP_79), name_0); +} + +function values_97(){ + $clinit_SPOrEPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_37, 444, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]); +} + +defineClass(444, 22, {3:1, 34:1, 22:1, 444:1}, SPOrEPhases); +var P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION; +var Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit = createForEnum('org.eclipse.elk.alg.spore', 'SPOrEPhases', 444, Ljava_lang_Enum_2_classLit, values_97, valueOf_89); +function $clinit_SPOrEPhases$Map(){ + $clinit_SPOrEPhases$Map = emptyMethod; + $MAP_79 = createValueOfMap(($clinit_SPOrEPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_37, 444, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]))); +} + +var $MAP_79; +function $shrink(this$static, graph, progressMonitor){ + var processor, processor$iterator; + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); + $setPhase(this$static.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); + $setPhase(this$static.algorithmAssembler, P3_EXECUTION, graph.compactionStrategy); + this$static.algorithm = $build_0(this$static.algorithmAssembler, graph); + progressMonitor.begin('Compaction by shrinking a tree', this$static.algorithm.array.length); + if (graph.vertices.array.length > 1) { + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_6(processor$iterator), 47); + processor.process(graph, progressMonitor.subTask(1)); + } + } + progressMonitor.done_1(); +} + +function ShrinkTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +defineClass(1219, 1, {}, ShrinkTree); +var Lorg_eclipse_elk_alg_spore_ShrinkTree_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTree', 1219); +function ShrinkTreeLayoutProvider(){ + this.shrinktree = new ShrinkTree; +} + +defineClass(1117, 205, $intern_96, ShrinkTreeLayoutProvider); +_.layout = function layout_7(layoutGraph, progressMonitor){ + var graph, graphImporter, lad, layoutProvider, requestedAlgorithm; + if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, UNDERLYING_LAYOUT_ALGORITHM)); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 205); + layoutProvider.layout(layoutGraph, progressMonitor.subTask(1)); + } + } + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + $shrink(this.shrinktree, graph, progressMonitor.subTask(1)); + $applyPositions_0(graphImporter, graph); +} +; +var Lorg_eclipse_elk_alg_spore_ShrinkTreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTreeLayoutProvider', 1117); +function Graph(costFun, treeStrategy, compStrategy){ + this.vertices = new ArrayList; + this.costFunction = costFun; + this.treeConstructionStrategy = treeStrategy; + this.compactionStrategy = compStrategy; +} + +defineClass(306, 137, {3:1, 306:1, 96:1, 137:1}, Graph); +_.orthogonalCompaction = false; +var Lorg_eclipse_elk_alg_spore_graph_Graph_2_classLit = createForClass('org.eclipse.elk.alg.spore.graph', 'Graph', 306); +function $clinit_CompactionStrategy_1(){ + $clinit_CompactionStrategy_1 = emptyMethod; + DEPTH_FIRST_0 = new CompactionStrategy_1; +} + +function $create_17(this$static){ + switch (this$static.ordinal) { + case 0: + return new ShrinkTreeCompactionPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CompactionStrategy_1(){ + Enum.call(this, 'DEPTH_FIRST', 0); +} + +function valueOf_90(name_0){ + $clinit_CompactionStrategy_1(); + return valueOf(($clinit_CompactionStrategy$Map_1() , $MAP_80), name_0); +} + +function values_98(){ + $clinit_CompactionStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_37, 490, 0, [DEPTH_FIRST_0]); +} + +defineClass(490, 22, {3:1, 34:1, 22:1, 490:1, 188:1, 196:1}, CompactionStrategy_1); +_.create_1 = function create_35(){ + return $create_17(this); +} +; +_.create_2 = function create_34(){ + return $create_17(this); +} +; +var DEPTH_FIRST_0; +var Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'CompactionStrategy', 490, Ljava_lang_Enum_2_classLit, values_98, valueOf_90); +function $clinit_CompactionStrategy$Map_1(){ + $clinit_CompactionStrategy$Map_1 = emptyMethod; + $MAP_80 = createValueOfMap(($clinit_CompactionStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_37, 490, 0, [DEPTH_FIRST_0]))); +} + +var $MAP_80; +function $clinit_OverlapRemovalStrategy(){ + $clinit_OverlapRemovalStrategy = emptyMethod; + GROW_TREE = new OverlapRemovalStrategy; +} + +function OverlapRemovalStrategy(){ + Enum.call(this, 'GROW_TREE', 0); +} + +function valueOf_91(name_0){ + $clinit_OverlapRemovalStrategy(); + return valueOf(($clinit_OverlapRemovalStrategy$Map() , $MAP_81), name_0); +} + +function values_99(){ + $clinit_OverlapRemovalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_37, 558, 0, [GROW_TREE]); +} + +defineClass(558, 22, {3:1, 34:1, 22:1, 558:1, 188:1, 196:1}, OverlapRemovalStrategy); +_.create_1 = function create_37(){ + return new GrowTreePhase; +} +; +_.create_2 = function create_36(){ + return new GrowTreePhase; +} +; +var GROW_TREE; +var Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'OverlapRemovalStrategy', 558, Ljava_lang_Enum_2_classLit, values_99, valueOf_91); +function $clinit_OverlapRemovalStrategy$Map(){ + $clinit_OverlapRemovalStrategy$Map = emptyMethod; + $MAP_81 = createValueOfMap(($clinit_OverlapRemovalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_37, 558, 0, [GROW_TREE]))); +} + +var $MAP_81; +function $clinit_RootSelection(){ + $clinit_RootSelection = emptyMethod; + FIXED_1 = new RootSelection('FIXED', 0); + CENTER_NODE = new RootSelection('CENTER_NODE', 1); +} + +function RootSelection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_92(name_0){ + $clinit_RootSelection(); + return valueOf(($clinit_RootSelection$Map() , $MAP_82), name_0); +} + +function values_100(){ + $clinit_RootSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_37, 438, 0, [FIXED_1, CENTER_NODE]); +} + +defineClass(438, 22, {3:1, 34:1, 22:1, 438:1}, RootSelection); +var CENTER_NODE, FIXED_1; +var Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'RootSelection', 438, Ljava_lang_Enum_2_classLit, values_100, valueOf_92); +function $clinit_RootSelection$Map(){ + $clinit_RootSelection$Map = emptyMethod; + $MAP_82 = createValueOfMap(($clinit_RootSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_37, 438, 0, [FIXED_1, CENTER_NODE]))); +} + +var $MAP_82; +function $clinit_SpanningTreeCostFunction(){ + $clinit_SpanningTreeCostFunction = emptyMethod; + CENTER_DISTANCE = new SpanningTreeCostFunction('CENTER_DISTANCE', 0); + CIRCLE_UNDERLAP = new SpanningTreeCostFunction('CIRCLE_UNDERLAP', 1); + RECTANGLE_UNDERLAP = new SpanningTreeCostFunction('RECTANGLE_UNDERLAP', 2); + INVERTED_OVERLAP = new SpanningTreeCostFunction('INVERTED_OVERLAP', 3); + MINIMUM_ROOT_DISTANCE = new SpanningTreeCostFunction('MINIMUM_ROOT_DISTANCE', 4); +} + +function SpanningTreeCostFunction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_93(name_0){ + $clinit_SpanningTreeCostFunction(); + return valueOf(($clinit_SpanningTreeCostFunction$Map() , $MAP_83), name_0); +} + +function values_101(){ + $clinit_SpanningTreeCostFunction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_37, 324, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]); +} + +defineClass(324, 22, {3:1, 34:1, 22:1, 324:1}, SpanningTreeCostFunction); +var CENTER_DISTANCE, CIRCLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE, RECTANGLE_UNDERLAP; +var Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'SpanningTreeCostFunction', 324, Ljava_lang_Enum_2_classLit, values_101, valueOf_93); +function $clinit_SpanningTreeCostFunction$Map(){ + $clinit_SpanningTreeCostFunction$Map = emptyMethod; + $MAP_83 = createValueOfMap(($clinit_SpanningTreeCostFunction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_37, 324, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]))); +} + +var $MAP_83; +function $clinit_SporeCompactionOptions(){ + $clinit_SporeCompactionOptions = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); + PROCESSING_ORDER_TREE_CONSTRUCTION = PROCESSING_ORDER_TREE_CONSTRUCTION_0; + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION = PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0; + PROCESSING_ORDER_PREFERRED_ROOT = PROCESSING_ORDER_PREFERRED_ROOT_0; + PROCESSING_ORDER_ROOT_SELECTION = PROCESSING_ORDER_ROOT_SELECTION_0; + PADDING_DEFAULT_3 = new ElkPadding_0(8); + PADDING_4 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_3); + SPACING_NODE_NODE_4 = new Property_2(SPACING_NODE_NODE_6, 8); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; + COMPACTION_COMPACTION_STRATEGY = COMPACTION_COMPACTION_STRATEGY_0; + COMPACTION_ORTHOGONAL = COMPACTION_ORTHOGONAL_0; + DEBUG_MODE_1 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); +} + +function $apply_22(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeCompaction'), 'ELK SPOrE Compaction'), 'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'), new SporeCompactionOptions$SporeCompactionFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.treeConstruction', $getDefault(PROCESSING_ORDER_TREE_CONSTRUCTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.spanningTreeCostFunction', $getDefault(PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.preferredRoot', $getDefault(PROCESSING_ORDER_PREFERRED_ROOT)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.rootSelection', $getDefault(PROCESSING_ORDER_ROOT_SELECTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.padding', PADDING_DEFAULT_3); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.spacing.nodeNode', 8); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.compactionStrategy', $getDefault(COMPACTION_COMPACTION_STRATEGY)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.orthogonal', $getDefault(COMPACTION_ORTHOGONAL)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); +} + +function SporeCompactionOptions(){ + $clinit_SporeCompactionOptions(); +} + +defineClass(1014, 1, $intern_90, SporeCompactionOptions); +_.apply_4 = function apply_171(registry){ + $apply_22(registry); +} +; +var COMPACTION_COMPACTION_STRATEGY, COMPACTION_ORTHOGONAL, DEBUG_MODE_1, PADDING_4, PADDING_DEFAULT_3, PROCESSING_ORDER_PREFERRED_ROOT, PROCESSING_ORDER_ROOT_SELECTION, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, PROCESSING_ORDER_TREE_CONSTRUCTION, SPACING_NODE_NODE_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY, UNDERLYING_LAYOUT_ALGORITHM; +var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions', 1014); +function SporeCompactionOptions$SporeCompactionFactory(){ +} + +defineClass(1015, 1, {}, SporeCompactionOptions$SporeCompactionFactory); +_.create_0 = function create_38(){ + var provider; + return provider = new ShrinkTreeLayoutProvider , provider; +} +; +_.destroy = function destroy_6(obj){ +} +; +var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions$SporeCompactionFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions/SporeCompactionFactory', 1015); +function $clinit_SporeMetaDataProvider(){ + $clinit_SporeMetaDataProvider = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM_0 = new Property('org.eclipse.elk.underlyingLayoutAlgorithm'); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT = ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.structure.structureExtractionStrategy', STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT); + PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT = ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE); + PROCESSING_ORDER_TREE_CONSTRUCTION_0 = new Property_1('org.eclipse.elk.processingOrder.treeConstruction', PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT); + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT = ($clinit_SpanningTreeCostFunction() , CIRCLE_UNDERLAP); + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0 = new Property_1('org.eclipse.elk.processingOrder.spanningTreeCostFunction', PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT); + PROCESSING_ORDER_PREFERRED_ROOT_0 = new Property_1('org.eclipse.elk.processingOrder.preferredRoot', null); + PROCESSING_ORDER_ROOT_SELECTION_DEFAULT = ($clinit_RootSelection() , CENTER_NODE); + PROCESSING_ORDER_ROOT_SELECTION_0 = new Property_1('org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_ROOT_SELECTION_DEFAULT); + COMPACTION_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy_1() , DEPTH_FIRST_0); + COMPACTION_COMPACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.compaction.compactionStrategy', COMPACTION_COMPACTION_STRATEGY_DEFAULT); + COMPACTION_ORTHOGONAL_0 = new Property_1('org.eclipse.elk.compaction.orthogonal', ($clinit_Boolean() , false)); + OVERLAP_REMOVAL_MAX_ITERATIONS = new Property_1('org.eclipse.elk.overlapRemoval.maxIterations', valueOf_3(64)); + OVERLAP_REMOVAL_RUN_SCANLINE = new Property_1('org.eclipse.elk.overlapRemoval.runScanline', true); + PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0 = FIXED_1; +} + +function SporeMetaDataProvider(){ + $clinit_SporeMetaDataProvider(); +} + +defineClass(866, 1, $intern_90, SporeMetaDataProvider); +_.apply_4 = function apply_172(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.underlyingLayoutAlgorithm'), ''), 'Underlying Layout Algorithm'), 'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.structure.structureExtractionStrategy'), 'structure'), 'Structure Extraction Strategy'), 'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'), STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.treeConstruction'), 'processingOrder'), 'Tree Construction Strategy'), 'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'), PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.spanningTreeCostFunction'), 'processingOrder'), 'Cost Function for Spanning Tree'), 'The cost function is used in the creation of the spanning tree.'), PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.preferredRoot'), 'processingOrder'), 'Root node for spanning tree construction'), 'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'), null), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.processingOrder.preferredRoot', 'org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.rootSelection'), 'processingOrder'), 'Root selection for spanning tree'), 'This sets the method used to select a root node for the construction of a spanning tree'), PROCESSING_ORDER_ROOT_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.compactionStrategy'), 'compaction'), 'Compaction Strategy'), 'This option defines how the compaction is applied.'), COMPACTION_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.orthogonal'), 'compaction'), 'Orthogonal Compaction'), 'Restricts the translation of nodes to orthogonal directions in the compaction phase.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.maxIterations'), 'overlapRemoval'), 'Upper limit for iterations of overlap removal'), null), valueOf_3(64)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.runScanline'), 'overlapRemoval'), 'Whether to run a supplementary scanline overlap check.'), null), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $apply_23((new SporeOverlapRemovalOptions , registry)); + $apply_22((new SporeCompactionOptions , registry)); +} +; +var COMPACTION_COMPACTION_STRATEGY_0, COMPACTION_COMPACTION_STRATEGY_DEFAULT, COMPACTION_ORTHOGONAL_0, OVERLAP_REMOVAL_MAX_ITERATIONS, OVERLAP_REMOVAL_RUN_SCANLINE, PROCESSING_ORDER_PREFERRED_ROOT_0, PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_DEFAULT, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT, PROCESSING_ORDER_TREE_CONSTRUCTION_0, PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT, UNDERLYING_LAYOUT_ALGORITHM_0; +var Lorg_eclipse_elk_alg_spore_options_SporeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeMetaDataProvider', 866); +function $clinit_SporeOverlapRemovalOptions(){ + $clinit_SporeOverlapRemovalOptions = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM_1 = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); + PADDING_DEFAULT_4 = new ElkPadding_0(8); + new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_4); + new Property_2(SPACING_NODE_NODE_6, 8); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1 = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; + OVERLAP_REMOVAL_MAX_ITERATIONS_0 = OVERLAP_REMOVAL_MAX_ITERATIONS; + OVERLAP_REMOVAL_RUN_SCANLINE_0 = OVERLAP_REMOVAL_RUN_SCANLINE; + DEBUG_MODE_2 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); +} + +function $apply_23(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeOverlap'), 'ELK SPOrE Overlap Removal'), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new SporeOverlapRemovalOptions$SporeOverlapFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM_1)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.padding', PADDING_DEFAULT_4); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.spacing.nodeNode', 8); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.maxIterations', $getDefault(OVERLAP_REMOVAL_MAX_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.runScanline', $getDefault(OVERLAP_REMOVAL_RUN_SCANLINE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); +} + +function SporeOverlapRemovalOptions(){ + $clinit_SporeOverlapRemovalOptions(); +} + +defineClass(1012, 1, $intern_90, SporeOverlapRemovalOptions); +_.apply_4 = function apply_173(registry){ + $apply_23(registry); +} +; +var DEBUG_MODE_2, OVERLAP_REMOVAL_MAX_ITERATIONS_0, OVERLAP_REMOVAL_RUN_SCANLINE_0, PADDING_DEFAULT_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1, UNDERLYING_LAYOUT_ALGORITHM_1; +var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions', 1012); +function SporeOverlapRemovalOptions$SporeOverlapFactory(){ +} + +defineClass(1013, 1, {}, SporeOverlapRemovalOptions$SporeOverlapFactory); +_.create_0 = function create_39(){ + var provider; + return provider = new OverlapRemovalLayoutProvider , provider; +} +; +_.destroy = function destroy_7(obj){ +} +; +var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions$SporeOverlapFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions/SporeOverlapFactory', 1013); +function $clinit_StructureExtractionStrategy(){ + $clinit_StructureExtractionStrategy = emptyMethod; + DELAUNAY_TRIANGULATION = new StructureExtractionStrategy; +} + +function $create_18(this$static){ + switch (this$static.ordinal) { + case 0: + return new DelaunayTriangulationPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function StructureExtractionStrategy(){ + Enum.call(this, 'DELAUNAY_TRIANGULATION', 0); +} + +function valueOf_94(name_0){ + $clinit_StructureExtractionStrategy(); + return valueOf(($clinit_StructureExtractionStrategy$Map() , $MAP_84), name_0); +} + +function values_102(){ + $clinit_StructureExtractionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_37, 539, 0, [DELAUNAY_TRIANGULATION]); +} + +defineClass(539, 22, {3:1, 34:1, 22:1, 539:1, 188:1, 196:1}, StructureExtractionStrategy); +_.create_1 = function create_41(){ + return $create_18(this); +} +; +_.create_2 = function create_40(){ + return $create_18(this); +} +; +var DELAUNAY_TRIANGULATION; +var Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'StructureExtractionStrategy', 539, Ljava_lang_Enum_2_classLit, values_102, valueOf_94); +function $clinit_StructureExtractionStrategy$Map(){ + $clinit_StructureExtractionStrategy$Map = emptyMethod; + $MAP_84 = createValueOfMap(($clinit_StructureExtractionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_37, 539, 0, [DELAUNAY_TRIANGULATION]))); +} + +var $MAP_84; +function $clinit_TreeConstructionStrategy(){ + $clinit_TreeConstructionStrategy = emptyMethod; + MINIMUM_SPANNING_TREE = new TreeConstructionStrategy('MINIMUM_SPANNING_TREE', 0); + MAXIMUM_SPANNING_TREE = new TreeConstructionStrategy('MAXIMUM_SPANNING_TREE', 1); +} + +function $create_19(this$static){ + switch (this$static.ordinal) { + case 0: + return new MinSTPhase; + case 1: + return new MaxSTPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function TreeConstructionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_95(name_0){ + $clinit_TreeConstructionStrategy(); + return valueOf(($clinit_TreeConstructionStrategy$Map() , $MAP_85), name_0); +} + +function values_103(){ + $clinit_TreeConstructionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_37, 437, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]); +} + +defineClass(437, 22, {3:1, 34:1, 22:1, 437:1, 188:1, 196:1}, TreeConstructionStrategy); +_.create_1 = function create_43(){ + return $create_19(this); +} +; +_.create_2 = function create_42(){ + return $create_19(this); +} +; +var MAXIMUM_SPANNING_TREE, MINIMUM_SPANNING_TREE; +var Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'TreeConstructionStrategy', 437, Ljava_lang_Enum_2_classLit, values_103, valueOf_95); +function $clinit_TreeConstructionStrategy$Map(){ + $clinit_TreeConstructionStrategy$Map = emptyMethod; + $MAP_85 = createValueOfMap(($clinit_TreeConstructionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_37, 437, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]))); +} + +var $MAP_85; +function $process_113(graph, progressMonitor){ + var vertices; + progressMonitor.begin('Delaunay triangulation', 1); + vertices = new ArrayList; + $forEach_1(graph.vertices, new DelaunayTriangulationPhase$lambda$0$Type(vertices)); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG)))) && 'null10bw'; + !graph.tEdges?(graph.tEdges = triangulate(vertices)):$addAll(graph.tEdges, triangulate(vertices)); + progressMonitor.done_1(); +} + +function DelaunayTriangulationPhase(){ +} + +defineClass(1463, 1, $intern_113, DelaunayTriangulationPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_35(graph){ + return castTo(graph, 306) , new LayoutProcessorConfiguration; +} +; +_.process = function process_111(graph, progressMonitor){ + $process_113(castTo(graph, 306), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase', 1463); +function DelaunayTriangulationPhase$lambda$0$Type(vertices_0){ + this.vertices_0 = vertices_0; +} + +defineClass(1464, 1, $intern_19, DelaunayTriangulationPhase$lambda$0$Type); +_.accept = function accept_134(arg0){ + $add_3(this.vertices_0, castTo(arg0, 68).originalVertex); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase/lambda$0$Type', 1464); +function $addNode_1(this$static, s, t){ + var child, tTree, tTree$iterator; + for (tTree$iterator = new ArrayList$1(t.children); tTree$iterator.i < tTree$iterator.this$01.array.length;) { + tTree = castTo($next_6(tTree$iterator), 225); + child = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 68)); + $add_3(s.children, child); + $addNode_1(this$static, child, tTree); + } +} + +function $convert(this$static, tTree, graph){ + var root; + $reset(this$static.nodeMap); + $forEach_1(graph.vertices, new MinSTPhase$lambda$0$Type(this$static)); + root = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 68)); + $addNode_1(this$static, root, tTree); + graph.tree = root; +} + +function $lambda$0_10(this$static, n_0){ + return $put_6(this$static.nodeMap, n_0.originalVertex, n_0); +} + +function MinSTPhase(){ + this.nodeMap = new HashMap; +} + +defineClass(794, 1, $intern_113, MinSTPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_36(graph){ + return castTo(graph, 306) , new LayoutProcessorConfiguration; +} +; +_.process = function process_112(graph, progressMonitor){ + this.process_1(castTo(graph, 306), progressMonitor); +} +; +_.process_1 = function process_113(graph, progressMonitor){ + var lastArg, root, tTree; + progressMonitor.begin('Minimum spanning tree construction', 1); + graph.preferredRoot?(root = graph.preferredRoot.originalVertex):(root = castTo($get_11(graph.vertices, 0), 68).originalVertex); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tTree = createSpanningTree(graph.tEdges, root, (lastArg = graph.costFunction , lastArg))):(tTree = createSpanningTree(graph.tEdges, root, graph.costFunction)); + $convert(this, tTree, graph); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase', 794); +function MaxSTPhase(){ + MinSTPhase.call(this); +} + +function lambda$0_40(graph_0, e_1){ + return -graph_0.costFunction.cost(e_1); +} + +defineClass(1466, 794, $intern_113, MaxSTPhase); +_.process_1 = function process_114(graph, progressMonitor){ + var invertedCF, lastArg, root, tree; + progressMonitor.begin('Maximum spanning tree construction', 1); + invertedCF = new MaxSTPhase$lambda$0$Type(graph); + graph.preferredRoot?(root = graph.preferredRoot.vertex):(root = castTo($get_11(graph.vertices, 0), 68).vertex); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tree = createSpanningTree(graph.tEdges, root, (lastArg = invertedCF , lastArg))):(tree = createSpanningTree(graph.tEdges, root, invertedCF)); + $convert(this, tree, graph); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase', 1466); +function MaxSTPhase$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1467, 1, {}, MaxSTPhase$lambda$0$Type); +_.cost = function cost_5(arg0){ + return lambda$0_40(this.graph_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase/lambda$0$Type', 1467); +function MinSTPhase$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1465, 1, $intern_19, MinSTPhase$lambda$0$Type); +_.accept = function accept_135(arg0){ + $lambda$0_10(this.$$outer_0, castTo(arg0, 68)); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase/lambda$0$Type', 1465); +function $debugOut(this$static, c){ + $drawTree(this$static, this$static.root, this$static.svg); + castTo(this$static.root.node, 68); + !!c && castTo(c.node, 68).rect; +} + +function $drawTree(this$static, t, img){ + castTo(t.node, 68); + $forEach_1(t.children, new GrowTreePhase$lambda$0$Type(this$static, img, t)); +} + +function $growAt(this$static, r){ + var c, c$iterator, t; + for (c$iterator = new ArrayList$1(r.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_6(c$iterator), 225); + $translate(castTo(c.node, 68), $sub_0($clone_1(castTo(r.node, 68).vertex), castTo(r.node, 68).originalVertex)); + t = overlap_0(castTo(r.node, 68).rect, castTo(c.node, 68).rect); + t > 1 && (this$static.overlapsExisted = true); + $setCenterPosition(castTo(c.node, 68), $add_19($clone_1(castTo(r.node, 68).vertex), $scale($sub_0($clone_1(castTo(c.node, 68).originalVertex), castTo(r.node, 68).originalVertex), t))); + $debugOut(this$static, r); + $growAt(this$static, c); + } +} + +function $lambda$0_11(this$static, img_1, t_2, c_2){ + castTo(t_2.node, 68); + castTo(t_2.node, 68); + castTo(c_2.node, 68); + castTo(c_2.node, 68); + castTo(c_2.node, 68); + $forEach_1(c_2.children, new GrowTreePhase$lambda$0$Type(this$static, img_1, c_2)); +} + +function $process_114(this$static, graph, progressMonitor){ + progressMonitor.begin('Grow Tree', 1); + this$static.root = graph.tree; + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { + this$static.svg = new SVGImage; + $debugOut(this$static, null); + } + else { + this$static.svg = new SVGImage; + } + this$static.overlapsExisted = false; + $growAt(this$static, graph.tree); + $setProperty_0(graph, OVERLAPS_EXISTED, ($clinit_Boolean() , this$static.overlapsExisted?true:false)); + progressMonitor.done_1(); +} + +function GrowTreePhase(){ +} + +defineClass(796, 1, $intern_113, GrowTreePhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_37(graph){ + return castTo(graph, 306) , new LayoutProcessorConfiguration; +} +; +_.process = function process_115(graph, progressMonitor){ + $process_114(this, castTo(graph, 306), progressMonitor); +} +; +_.overlapsExisted = false; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase', 796); +function GrowTreePhase$lambda$0$Type($$outer_0, img_1, t_2){ + this.$$outer_0 = $$outer_0; + this.img_1 = img_1; + this.t_2 = t_2; +} + +defineClass(797, 1, $intern_19, GrowTreePhase$lambda$0$Type); +_.accept = function accept_136(arg0){ + $lambda$0_11(this.$$outer_0, this.img_1, this.t_2, castTo(arg0, 225)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase/lambda$0$Type', 797); +function $debugOut_0(this$static, tree){ + var svg; + svg = new SVGImage; + castTo(tree.node, 68); + castTo(tree.node, 68); + castTo(tree.node, 68); + $forEach_1(tree.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg, tree)); +} + +function $lambda$0_12(this$static, svg_1, t_2, c_2){ + var cv; + castTo(t_2.node, 68); + castTo(t_2.node, 68); + castTo(c_2.node, 68); + castTo(c_2.node, 68); + cv = $sub_0($clone_1(castTo(t_2.node, 68).vertex), castTo(c_2.node, 68).vertex); + $scaleToLength(cv, $distance(castTo(t_2.node, 68), castTo(c_2.node, 68), cv)); + castTo(c_2.node, 68); + castTo(c_2.node, 68); + castTo(c_2.node, 68).vertex.x_0 + cv.x_0; + castTo(c_2.node, 68).vertex.y_0 + cv.y_0; + castTo(c_2.node, 68); + $forEach_1(c_2.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg_1, c_2)); +} + +function $process_115(this$static, graph, progressMonitor){ + var lastArg; + progressMonitor.begin('Shrinking tree compaction', 1); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { + $debugOut_0(this$static, graph.tree); + compact_0(graph.tree, (lastArg = graph.orthogonalCompaction , lastArg)); + } + else { + compact_0(graph.tree, graph.orthogonalCompaction); + } + progressMonitor.done_1(); +} + +function ShrinkTreeCompactionPhase(){ +} + +defineClass(1468, 1, $intern_113, ShrinkTreeCompactionPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_38(graph){ + return castTo(graph, 306) , new LayoutProcessorConfiguration; +} +; +_.process = function process_116(graph, progressMonitor){ + $process_115(this, castTo(graph, 306), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase', 1468); +function ShrinkTreeCompactionPhase$lambda$0$Type($$outer_0, svg_1, t_2){ + this.$$outer_0 = $$outer_0; + this.svg_1 = svg_1; + this.t_2 = t_2; +} + +defineClass(795, 1, $intern_19, ShrinkTreeCompactionPhase$lambda$0$Type); +_.accept = function accept_137(arg0){ + $lambda$0_12(this.$$outer_0, this.svg_1, this.t_2, castTo(arg0, 225)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase/lambda$0$Type', 795); +var Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit = createForInterface('org.eclipse.elk.core.util', 'IGraphElementVisitor'); +function $clinit_LayoutConfigurator(){ + $clinit_LayoutConfigurator = emptyMethod; + new Property('org.eclipse.elk.addLayoutConfig'); + NO_OVERWRITE_HOLDER = new LayoutConfigurator$lambda$1$Type; + NO_OVERWRITE = new LayoutConfigurator$lambda$0$Type; + OPTION_TARGET_FILTER = new LayoutConfigurator$lambda$2$Type; +} + +function $addFilter(this$static, filter){ + $add_3(this$static.optionFilters, filter); + return this$static; +} + +function $applyProperties(this$static, element, properties){ + var accept, clone, entry, entry$iterator, filters, value_0; + filters = this$static.optionFilters; + for (entry$iterator = (!properties.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):properties.propertyMap).entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + accept = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(filters, 16)), new Predicate$lambda$2$Type(new LayoutConfigurator$lambda$3$Type(element, entry)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + if (accept) { + value_0 = entry.getValue(); + if (instanceOf(value_0, 4)) { + clone = clone_11(value_0); + clone != null && (value_0 = clone); + } + element.setProperty(castTo(entry.getKey(), 149), value_0); + } + } +} + +function $configure(this$static, elementClass){ + var result; + result = castTo($get_10(this$static.classOptionMap, elementClass), 137); + if (!result) { + result = new MapPropertyHolder; + $put_6(this$static.classOptionMap, elementClass, result); + } + return result; +} + +function $findClassOptions(this$static, element){ + var combined; + combined = new MapPropertyHolder; + !!element && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit), 96)); + instanceOf(element, 422) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkShape_2_classLit), 96)); + if (instanceOf(element, 366)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), 96)); + return combined; + } + instanceOf(element, 84) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit), 96)); + if (instanceOf(element, 207)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkNode_2_classLit), 96)); + return combined; + } + if (instanceOf(element, 193)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkPort_2_classLit), 96)); + return combined; + } + instanceOf(element, 326) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), 96)); + return combined; +} + +function LayoutConfigurator(){ + $clinit_LayoutConfigurator(); + this.elementOptionMap = new HashMap; + this.classOptionMap = new HashMap; + this.optionFilters = new ArrayList; +} + +function lambda$2_12(e_0, property_1){ + $clinit_LayoutConfigurator(); + var optionData, targets; + optionData = $getOptionData(getInstance(), property_1.getId()); + if (optionData) { + targets = optionData.targets; + if (instanceOf(e_0, 207)) { + return $isHierarchical_0(castTo(e_0, 27))?$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(targets, PARENTS):$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)); + } + else if (instanceOf(e_0, 326)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , EDGES)); + } + else if (instanceOf(e_0, 193)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , PORTS)); + } + else if (instanceOf(e_0, 366)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , LABELS)); + } + } + return true; +} + +function lambda$3_9(element_0, entry_1, filter_2){ + $clinit_LayoutConfigurator(); + return filter_2.accept_3(element_0, castTo(entry_1.getKey(), 149)); +} + +defineClass(872, 1, {536:1}, LayoutConfigurator); +_.visit = function visit(element){ + var combined; + combined = $findClassOptions(this, element); + $copyProperties(combined, castTo($get_10(this.elementOptionMap, element), 96)); + $applyProperties(this, element, combined); +} +; +var NO_OVERWRITE, NO_OVERWRITE_HOLDER, OPTION_TARGET_FILTER; +var Lorg_eclipse_elk_core_LayoutConfigurator_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator', 872); +var Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit = createForInterface('org.eclipse.elk.core', 'LayoutConfigurator/IPropertyHolderOptionFilter'); +function LayoutConfigurator$lambda$0$Type(){ +} + +defineClass(944, 1, {2032:1}, LayoutConfigurator$lambda$0$Type); +_.accept_3 = function accept_138(e, p){ + return $clinit_LayoutConfigurator() , !e.hasProperty(p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$0$Type', 944); +function LayoutConfigurator$lambda$1$Type(){ +} + +defineClass(943, 1, {845:1}, LayoutConfigurator$lambda$1$Type); +_.accept_4 = function accept_139(holder, property){ + return $clinit_LayoutConfigurator() , !holder.hasProperty(property); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$1$Type', 943); +function $accept_5(e, p){ + return lambda$2_12(e, p); +} + +function LayoutConfigurator$lambda$2$Type(){ +} + +defineClass(945, 1, {2032:1}, LayoutConfigurator$lambda$2$Type); +_.accept_3 = function accept_140(e, p){ + return $accept_5(e, p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$2$Type', 945); +function LayoutConfigurator$lambda$3$Type(element_0, entry_1){ + this.element_0 = element_0; + this.entry_1 = entry_1; +} + +defineClass(946, 1, $intern_40, LayoutConfigurator$lambda$3$Type); +_.test_0 = function test_120(arg0){ + return lambda$3_9(this.element_0, this.entry_1, castTo(arg0, 2032)); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$3$Type', 946); +function $countNodesRecursively(this$static, layoutNode, countAncestors){ + var childNode, childNode$iterator, count, parent_0; + count = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; + for (childNode$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 27); + (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 == 0 || (count += $countNodesRecursively(this$static, childNode, false)); + } + if (countAncestors) { + parent_0 = $getParent_2(layoutNode); + while (parent_0) { + count += (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; + parent_0 = $getParent_2(parent_0); + } + } + return count; +} + +function $countNodesWithHierarchy(this$static, parentNode){ + var childData, childNode, childNode$iterator, count, parentData; + count = (!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0; + for (childNode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 27); + if (maskUndefined($getProperty_0(childNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) !== maskUndefined(($clinit_HierarchyHandling() , SEPARATE_CHILDREN))) { + parentData = castTo($getProperty_0(parentNode, RESOLVED_ALGORITHM), 143); + childData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 143); + (parentData == childData || !!parentData && $equals_8(parentData, childData)) && (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 != 0 && (count += $countNodesWithHierarchy(this$static, childNode)); + } + } + return count; +} + +function $evaluateHierarchyHandlingInheritance(layoutNode){ + var parentHandling; + if (maskUndefined($getProperty_0(layoutNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) === maskUndefined(($clinit_HierarchyHandling() , INHERIT))) { + if (!$getParent_2(layoutNode)) { + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); + } + else { + parentHandling = castTo($getProperty_0($getParent_2(layoutNode), HIERARCHY_HANDLING_0), 346); + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, parentHandling); + } + } +} + +function $executeAlgorithm(layoutNode, algorithmData, progressMonitor){ + var exception, layoutProvider; + layoutProvider = castTo($fetch(algorithmData.providerPool), 205); + try { + layoutProvider.layout(layoutNode, progressMonitor); + $release(algorithmData.providerPool, layoutProvider); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + exception = $e0; + throw toJs(exception); + } + else + throw toJs($e0); + } +} + +function $gatherInsideSelfLoops(node){ + var edge, edge$iterator, insideSelfLoops; + if ($booleanValue(castToBoolean($getProperty_0(node, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0))))) { + insideSelfLoops = new ArrayList; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + $isSelfloop(edge) && $booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO_0))) && (push_1(insideSelfLoops.array, edge) , true); + } + return insideSelfLoops; + } + else { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $layout_3(this$static, layoutGraph, progressMonitor){ + var nodeCount; + nodeCount = $countNodesRecursively(this$static, layoutGraph, true); + $begin(progressMonitor, 'Recursive Graph Layout', nodeCount); + applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 536, 0, [new DeprecatedLayoutOptionReplacer])); + $hasProperty_0(layoutGraph, ($clinit_CoreOptions() , RESOLVED_ALGORITHM)) || applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 536, 0, [new LayoutAlgorithmResolver])); + $layoutRecursively(this$static, layoutGraph, null, progressMonitor); + $done_0(progressMonitor); +} + +function $layoutRecursively(this$static, layoutNode, testController, progressMonitor){ + var algorithmData, alignmentShiftX, alignmentShiftY, approximator, bendPoint, bendPoint$iterator, child, child$iterator, childAreaAvailableHeight, childAreaAvailableWidth, childAreaDesiredHeight, childAreaDesiredWidth, childLayoutSelfLoops, childNode, childNode$iterator, childrenInsideSelfLoops, contentAlignment, edge, edge$iterator, hasChildren, hasInsideSelfLoops, insideSelfLoops, junctionPoint, junctionPoint$iterator, junctionPoints, label_0, label$iterator, localAlgorithmData, node, node$iterator, nodeCount, nodeQueue, padding, scaleFactor, scaleFactorX, scaleFactorY, section, section$iterator, selfLoop, selfLoop$iterator, size_0, stopHierarchy, supportsInsideSelfLoops, topdownLayoutMonitor, xShift, yShift; + if (progressMonitor.isCanceled()) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + if ($booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_CoreOptions() , NO_LAYOUT_0))))) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + hasChildren = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0 != 0; + insideSelfLoops = $gatherInsideSelfLoops(layoutNode); + hasInsideSelfLoops = !insideSelfLoops.isEmpty(); + if (hasChildren || hasInsideSelfLoops) { + algorithmData = castTo($getProperty_0(layoutNode, RESOLVED_ALGORITHM), 143); + if (!algorithmData) { + throw toJs(new UnsupportedConfigurationException_0('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.')); + } + supportsInsideSelfLoops = $supportsFeature(algorithmData, ($clinit_GraphFeature() , INSIDE_SELF_LOOPS)); + $evaluateHierarchyHandlingInheritance(layoutNode); + if (!hasChildren && hasInsideSelfLoops && !supportsInsideSelfLoops) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + childrenInsideSelfLoops = new ArrayList; + if (maskUndefined($getProperty_0(layoutNode, HIERARCHY_HANDLING_0)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)) && ($supportsFeature(algorithmData, COMPOUND) || $supportsFeature(algorithmData, CLUSTERS))) { + if ($booleanValue(castToBoolean($getProperty_0(layoutNode, TOPDOWN_LAYOUT_2)))) { + throw toJs(new UnsupportedConfigurationException_0('Topdown layout cannot be used together with hierarchy handling.')); + } + nodeCount = $countNodesWithHierarchy(this$static, layoutNode); + nodeQueue = new LinkedList; + $addAll(nodeQueue, (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); + while (nodeQueue.size_0 != 0) { + node = castTo(nodeQueue.size_0 == 0?null:(checkCriticalElement(nodeQueue.size_0 != 0) , $removeNode_0(nodeQueue, nodeQueue.header.next_0)), 27); + $evaluateHierarchyHandlingInheritance(node); + stopHierarchy = maskUndefined($getProperty_0(node, HIERARCHY_HANDLING_0)) === maskUndefined(SEPARATE_CHILDREN); + if (stopHierarchy || $hasProperty_0(node, ALGORITHM) && !$equals_8(algorithmData, $getProperty_0(node, RESOLVED_ALGORITHM))) { + childLayoutSelfLoops = $layoutRecursively(this$static, node, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + $setProperty_1(node, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); + applyConfiguredNodeScaling(node); + } + else { + $addAll(nodeQueue, (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + } + } + } + else { + nodeCount = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; + if ($booleanValue(castToBoolean($getProperty_0(layoutNode, TOPDOWN_LAYOUT_2)))) { + topdownLayoutMonitor = progressMonitor.subTask(1); + topdownLayoutMonitor.begin('Topdown Layout', 1); + if ($getProperty_0(layoutNode, TOPDOWN_NODE_TYPE) == null) { + throw toJs(new UnsupportedConfigurationException_0(layoutNode.identifier + ' has not been assigned a top-down node type.')); + } + if (castTo($getProperty_0(layoutNode, TOPDOWN_NODE_TYPE), 280) == ($clinit_TopdownNodeTypes() , HIERARCHICAL_NODE) || castTo($getProperty_0(layoutNode, TOPDOWN_NODE_TYPE), 280) == ROOT_NODE_0) { + for (childNode$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 27); + localAlgorithmData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 143); + if ((!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 > 0 && ($fetch(localAlgorithmData.providerPool) , false)) { + if (castTo($getProperty_0(childNode, TOPDOWN_NODE_TYPE), 280) == HIERARCHICAL_NODE) { + throw toJs(new UnsupportedConfigurationException_0('Topdown Layout Providers should only be used on parallel nodes.')); + } + throwClassCastExceptionUnlessNull($fetch(localAlgorithmData.providerPool)); + null.$_nullMethod(); + $setDimensions_0(childNode, $wnd.Math.max(childNode.width_0, null.$_nullField), $wnd.Math.max(childNode.height, null.$_nullField)); + } + else if ($getProperty_0(childNode, TOPDOWN_SIZE_APPROXIMATOR) != null) { + approximator = castTo($getProperty_0(childNode, TOPDOWN_SIZE_APPROXIMATOR), 347); + size_0 = approximator.getSize_0(childNode); + $setDimensions_0(childNode, $wnd.Math.max(childNode.width_0, size_0.x_0), $wnd.Math.max(childNode.height, size_0.y_0)); + } + } + } + padding = castTo($getProperty_0(layoutNode, PADDING_6), 107); + childAreaAvailableWidth = layoutNode.width_0 - (padding.left + padding.right); + childAreaAvailableHeight = layoutNode.height - (padding.top_0 + padding.bottom); + topdownLayoutMonitor.log_0('Available Child Area: (' + childAreaAvailableWidth + '|' + childAreaAvailableHeight + ')'); + $setProperty_1(layoutNode, ASPECT_RATIO_5, childAreaAvailableWidth / childAreaAvailableHeight); + $executeAlgorithm(layoutNode, algorithmData, progressMonitor.subTask(nodeCount)); + if (castTo($getProperty_0(layoutNode, TOPDOWN_NODE_TYPE), 280) == ROOT_NODE_0) { + computeChildAreaDimensions(layoutNode); + $setDimensions_0(layoutNode, padding.left + $doubleValue(castToDouble($getProperty_0(layoutNode, CHILD_AREA_WIDTH))) + padding.right, padding.top_0 + $doubleValue(castToDouble($getProperty_0(layoutNode, CHILD_AREA_HEIGHT))) + padding.bottom); + } + topdownLayoutMonitor.log_0('Executed layout algorithm: ' + castToString($getProperty_0(layoutNode, ALGORITHM)) + ' on node ' + layoutNode.identifier); + if (castTo($getProperty_0(layoutNode, TOPDOWN_NODE_TYPE), 280) == HIERARCHICAL_NODE) { + if (childAreaAvailableWidth < 0 || childAreaAvailableHeight < 0) { + throw toJs(new UnsupportedConfigurationException_0('The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. ' + layoutNode.identifier)); + } + $hasProperty_0(layoutNode, CHILD_AREA_WIDTH) || $hasProperty_0(layoutNode, CHILD_AREA_HEIGHT) || computeChildAreaDimensions(layoutNode); + childAreaDesiredWidth = $doubleValue(castToDouble($getProperty_0(layoutNode, CHILD_AREA_WIDTH))); + childAreaDesiredHeight = $doubleValue(castToDouble($getProperty_0(layoutNode, CHILD_AREA_HEIGHT))); + topdownLayoutMonitor.log_0('Desired Child Area: (' + childAreaDesiredWidth + '|' + childAreaDesiredHeight + ')'); + scaleFactorX = childAreaAvailableWidth / childAreaDesiredWidth; + scaleFactorY = childAreaAvailableHeight / childAreaDesiredHeight; + scaleFactor = $wnd.Math.min(scaleFactorX, $wnd.Math.min(scaleFactorY, $doubleValue(castToDouble($getProperty_0(layoutNode, TOPDOWN_SCALE_CAP))))); + $setProperty_1(layoutNode, TOPDOWN_SCALE_FACTOR_2, scaleFactor); + topdownLayoutMonitor.log_0(layoutNode.identifier + ' -- Local Scale Factor (X|Y): (' + scaleFactorX + '|' + scaleFactorY + ')'); + contentAlignment = castTo($getProperty_0(layoutNode, CONTENT_ALIGNMENT_2), 21); + alignmentShiftX = 0; + alignmentShiftY = 0; + scaleFactor < scaleFactorX && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(alignmentShiftX = (childAreaAvailableWidth / 2 - childAreaDesiredWidth * scaleFactor / 2) / scaleFactor):contentAlignment.contains(H_RIGHT) && (alignmentShiftX = (childAreaAvailableWidth - childAreaDesiredWidth * scaleFactor) / scaleFactor)); + scaleFactor < scaleFactorY && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(alignmentShiftY = (childAreaAvailableHeight / 2 - childAreaDesiredHeight * scaleFactor / 2) / scaleFactor):contentAlignment.contains(V_BOTTOM) && (alignmentShiftY = (childAreaAvailableHeight - childAreaDesiredHeight * scaleFactor) / scaleFactor)); + xShift = alignmentShiftX + (padding.left / scaleFactor - padding.left); + yShift = alignmentShiftY + (padding.top_0 / scaleFactor - padding.top_0); + topdownLayoutMonitor.log_0('Shift: (' + xShift + '|' + yShift + ')'); + for (node$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + $setX_2(node, node.x_0 + xShift); + $setY_3(node, node.y_0 + yShift); + } + for (edge$iterator = new AbstractEList$EIterator((!layoutNode.containedEdges && (layoutNode.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, layoutNode, 12, 3)) , layoutNode.containedEdges)); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 74); + for (section$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); section$iterator.cursor != section$iterator.this$01_2.size_1();) { + section = castTo($doNext(section$iterator), 166); + $setStartLocation(section, section.startX + xShift, section.startY + yShift); + $setEndLocation(section, section.endX + xShift, section.endY + yShift); + for (bendPoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 377); + $set_9(bendPoint, bendPoint.x_0 + xShift, bendPoint.y_0 + yShift); + } + } + for (label$iterator = new AbstractEList$EIterator((!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + $setLocation_1(label_0, label_0.x_0 + xShift, label_0.y_0 + yShift); + } + junctionPoints = castTo($getProperty_0(edge, JUNCTION_POINTS_0), 75); + for (junctionPoint$iterator = $listIterator_2(junctionPoints, 0); junctionPoint$iterator.currentNode != junctionPoint$iterator.this$01.tail;) { + junctionPoint = castTo($next_9(junctionPoint$iterator), 8); + junctionPoint.x_0 += xShift; + junctionPoint.y_0 += yShift; + } + $setProperty_1(edge, JUNCTION_POINTS_0, junctionPoints); + } + } + topdownLayoutMonitor.done_1(); + } + for (child$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + childLayoutSelfLoops = $layoutRecursively(this$static, child, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + applyConfiguredNodeScaling(child); + } + } + if (progressMonitor.isCanceled()) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + for (selfLoop$iterator = new ArrayList$1(childrenInsideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_6(selfLoop$iterator), 74); + $setProperty_1(selfLoop, NO_LAYOUT_0, ($clinit_Boolean() , true)); + } + $booleanValue(castToBoolean($getProperty_0(layoutNode, TOPDOWN_LAYOUT_2))) || $executeAlgorithm(layoutNode, algorithmData, progressMonitor.subTask(nodeCount)); + $postProcessInsideSelfLoops(childrenInsideSelfLoops); + return hasInsideSelfLoops && supportsInsideSelfLoops?insideSelfLoops:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); + } + else { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $postProcessInsideSelfLoops(insideSelfLoops){ + var bend, bend$iterator, node, section, selfLoop, selfLoop$iterator, xOffset, yOffset; + for (selfLoop$iterator = new ArrayList$1(insideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_6(selfLoop$iterator), 74); + node = connectableShapeToNode(castTo($get_20((!selfLoop.sources && (selfLoop.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, selfLoop, 4, 7)) , selfLoop.sources), 0), 84)); + xOffset = node.x_0; + yOffset = node.y_0; + section = castTo($get_20((!selfLoop.sections && (selfLoop.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, selfLoop, 6, 6)) , selfLoop.sections), 0), 166); + $setStartLocation(section, section.startX + xOffset, section.startY + yOffset); + $setEndLocation(section, section.endX + xOffset, section.endY + yOffset); + for (bend$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bend$iterator.cursor != bend$iterator.this$01_2.size_1();) { + bend = castTo($doNext(bend$iterator), 377); + $set_9(bend, bend.x_0 + xOffset, bend.y_0 + yOffset); + } + $offset_1(castTo($getProperty_0(selfLoop, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 75), xOffset, yOffset); + } +} + +function RecursiveGraphLayoutEngine(){ +} + +defineClass(869, 1, {}, RecursiveGraphLayoutEngine); +var Lorg_eclipse_elk_core_RecursiveGraphLayoutEngine_2_classLit = createForClass('org.eclipse.elk.core', 'RecursiveGraphLayoutEngine', 869); +function UnsupportedConfigurationException(){ + RuntimeException.call(this); +} + +function UnsupportedConfigurationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(224, 63, $intern_44, UnsupportedConfigurationException, UnsupportedConfigurationException_0); +var Lorg_eclipse_elk_core_UnsupportedConfigurationException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedConfigurationException', 224); +function UnsupportedGraphException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(370, 63, $intern_44, UnsupportedGraphException); +var Lorg_eclipse_elk_core_UnsupportedGraphException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedGraphException', 370); +function $ensureListSize(this$static, size_0){ + var i; + for (i = this$static.list.array.length; i < size_0; i++) { + $add_3(this$static.list, this$static.provideDefault()); + } +} + +function $getListItem(this$static, index_0){ + if (index_0 < 0) { + throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); + } + $ensureListSize(this$static, index_0 + 1); + return $get_11(this$static.list, index_0); +} + +function $setListItem(this$static, index_0, value_0){ + if (index_0 < 0) { + throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); + } + if (index_0 < this$static.list.array.length) { + $set_1(this$static.list, index_0, value_0); + } + else { + $ensureListSize(this$static, index_0); + $add_3(this$static.list, value_0); + } +} + +function AbstractRandomListAccessor(){ + this.list = new ArrayList; +} + +defineClass(761, 1, {}); +var Lorg_eclipse_elk_core_util_AbstractRandomListAccessor_2_classLit = createForClass('org.eclipse.elk.core.util', 'AbstractRandomListAccessor', 761); +function $addProcessorConfiguration(this$static, config){ + $addAll_6(this$static.additionalProcessors, config); + return this$static; +} + +function $build_0(this$static, graph){ + var algorithm, phase, phase$array, phase$array0, phase$index, phase$index0, phase$max, phase$max0, phaseEnumConstants, phaseFactory, phaseImplementation, phaseImplementations, processorConfiguration; + if (this$static.failOnMissingPhase && this$static.configuredPhases.size_0 < this$static.numberOfPhases) { + throw toJs(new IllegalStateException_0('Expected ' + this$static.numberOfPhases + ' phases to be configured; ' + 'only found ' + this$static.configuredPhases.size_0)); + } + phaseEnumConstants = castTo($getEnumConstants(this$static.phasesEnumClass), 9); + phaseImplementations = newArrayListWithCapacity(this$static.numberOfPhases); + for (phase$array0 = phaseEnumConstants , phase$index0 = 0 , phase$max0 = phase$array0.length; phase$index0 < phase$max0; ++phase$index0) { + phase = phase$array0[phase$index0]; + phaseFactory = castTo($getListItem(this$static, phase.ordinal), 188); + phaseFactory?$add_3(phaseImplementations, castTo($retrieveProcessor(this$static, phaseFactory), 106)):(phaseImplementations.array.push(null) , undefined , true); + } + processorConfiguration = new LayoutProcessorConfiguration; + $forEach_3($filter($map($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(phaseImplementations, 16)), new AlgorithmAssembler$lambda$0$Type), new AlgorithmAssembler$lambda$1$Type(graph)), new AlgorithmAssembler$lambda$2$Type), new AlgorithmAssembler$lambda$3$Type(processorConfiguration)); + $addAll_6(processorConfiguration, this$static.additionalProcessors); + algorithm = new ArrayList; + for (phase$array = phaseEnumConstants , phase$index = 0 , phase$max = phase$array.length; phase$index < phase$max; ++phase$index) { + phase = phase$array[phase$index]; + $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phase.ordinal), 20)))); + phaseImplementation = castTo($get_11(phaseImplementations, phase.ordinal), 106); + !!phaseImplementation && (push_1(algorithm.array, phaseImplementation) , true); + } + $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phaseEnumConstants[phaseEnumConstants.length - 1].ordinal + 1), 20)))); + return algorithm; +} + +function $lambda$4_3(this$static, processors_1, factory_1){ + return $add_3(processors_1, $retrieveProcessor(this$static, factory_1)); +} + +function $reset_4(this$static){ + this$static.list.array.length = 0; + $clear_0(this$static.configuredPhases); + $clear_10(this$static.additionalProcessors); + return this$static; +} + +function $retrieveProcessor(this$static, factory){ + var processor; + if (this$static.enableCaching) { + if ($containsKey_3(this$static.cache, factory)) { + return castTo($get_10(this$static.cache, factory), 47); + } + else { + processor = factory.create_1(); + $put_6(this$static.cache, factory, processor); + return processor; + } + } + else { + return factory.create_1(); + } +} + +function $retrieveProcessors(this$static, factories){ + var processors; + processors = newArrayListWithCapacity(factories.map_0.size_1()); + $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(factories, 1)), this$static.processorComparator), new AlgorithmAssembler$lambda$4$Type(this$static, processors)); + return processors; +} + +function $setPhase(this$static, phase, phaseFactory){ + $setListItem(this$static, phase.ordinal, phaseFactory); + $add_5(this$static.configuredPhases, phase); + return this$static; +} + +function AlgorithmAssembler(phaseEnum){ + var all; + AbstractRandomListAccessor.call(this); + this.processorComparator = new EnumBasedFactoryComparator; + this.phasesEnumClass = phaseEnum; + this.numberOfPhases = castTo(phaseEnum.enumConstantsFunc && phaseEnum.enumConstantsFunc(), 9).length; + if (this.numberOfPhases == 0) { + throw toJs(new IllegalArgumentException_0('There must be at least one phase in the phase enumeration.')); + } + this.configuredPhases = (all = castTo($getEnumConstants(this.phasesEnumClass), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.additionalProcessors = new LayoutProcessorConfiguration; + this.cache = new HashMap; +} + +function lambda$1_19(graph_0, phase_1){ + return phase_1.getLayoutProcessorConfiguration(graph_0); +} + +defineClass(450, 761, {}, AlgorithmAssembler); +_.provideDefault = function provideDefault(){ + return null; +} +; +_.enableCaching = true; +_.failOnMissingPhase = true; +_.numberOfPhases = 0; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler', 450); +function AlgorithmAssembler$lambda$0$Type(){ +} + +defineClass(1200, 1, $intern_40, AlgorithmAssembler$lambda$0$Type); +_.test_0 = function test_121(arg0){ + return !!castTo(arg0, 106); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$0$Type', 1200); +function AlgorithmAssembler$lambda$1$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1201, 1, {}, AlgorithmAssembler$lambda$1$Type); +_.apply_0 = function apply_174(arg0){ + return lambda$1_19(this.graph_0, castTo(arg0, 106)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$1$Type', 1201); +function AlgorithmAssembler$lambda$2$Type(){ +} + +defineClass(1202, 1, $intern_40, AlgorithmAssembler$lambda$2$Type); +_.test_0 = function test_122(arg0){ + return !!castTo(arg0, 80); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$2$Type', 1202); +function AlgorithmAssembler$lambda$3$Type(processorConfiguration_0){ + this.processorConfiguration_0 = processorConfiguration_0; +} + +defineClass(1203, 1, $intern_19, AlgorithmAssembler$lambda$3$Type); +_.accept = function accept_141(arg0){ + $addAll_6(this.processorConfiguration_0, castTo(arg0, 80)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$3$Type', 1203); +function AlgorithmAssembler$lambda$4$Type($$outer_0, processors_1){ + this.$$outer_0 = $$outer_0; + this.processors_1 = processors_1; +} + +defineClass(1204, 1, $intern_19, AlgorithmAssembler$lambda$4$Type); +_.accept = function accept_142(arg0){ + $lambda$4_3(this.$$outer_0, this.processors_1, castTo(arg0, 196)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$4$Type', 1204); +function $compare_26(factory1, factory2){ + getClass__Ljava_lang_Class___devirtual$(factory1); + getClass__Ljava_lang_Class___devirtual$(factory2); + return $compareTo(castTo(factory1, 22), castTo(factory2, 22)); +} + +function EnumBasedFactoryComparator(){ +} + +defineClass(1343, 1, $intern_88, EnumBasedFactoryComparator); +_.compare_1 = function compare_108(factory1, factory2){ + return $compare_26(castTo(factory1, 196), castTo(factory2, 196)); +} +; +_.equals_0 = function equals_195(other){ + return this === other; +} +; +_.reversed = function reversed_100(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_alg_EnumBasedFactoryComparator_2_classLit = createForClass('org.eclipse.elk.core.alg', 'EnumBasedFactoryComparator', 1343); +function $add_17(this$static, processor){ + if (this$static.currentIndex < 0) { + throw toJs(new IllegalStateException_0('Did not call before(...) or after(...) before calling add(...).')); + } + $doAdd(this$static, this$static.currentIndex, processor); + return this$static; +} + +function $addAfter(this$static, phase, processor){ + this$static.currentIndex = -1; + $doAdd(this$static, phase.ordinal + 1, processor); + return this$static; +} + +function $addAll_6(this$static, configuration){ + var i; + for (i = 0; i < configuration.list.array.length; i++) { + castTo($getListItem(this$static, i), 21).addAll(castTo($getListItem(configuration, i), 16)); + } + return this$static; +} + +function $addBefore(this$static, phase, processor){ + this$static.currentIndex = -1; + $doAdd(this$static, phase.ordinal, processor); + return this$static; +} + +function $after(this$static, phase){ + this$static.currentIndex = phase.ordinal + 1; + return this$static; +} + +function $before(this$static, phase){ + this$static.currentIndex = phase.ordinal; + return this$static; +} + +function $clear_10(this$static){ + setLength(this$static.list.array, 0); + this$static.currentIndex = -1; + return this$static; +} + +function $doAdd(this$static, index_0, processor){ + castTo($getListItem(this$static, index_0), 21).add_2(processor); +} + +function LayoutProcessorConfiguration(){ + AbstractRandomListAccessor.call(this); + setLength(this.list.array, 0); + this.currentIndex = -1; +} + +function createFrom_0(source){ + return $addAll_6(new LayoutProcessorConfiguration, source); +} + +defineClass(80, 761, {80:1}, LayoutProcessorConfiguration); +_.provideDefault = function provideDefault_0(){ + return new HashSet; +} +; +_.currentIndex = 0; +var Lorg_eclipse_elk_core_alg_LayoutProcessorConfiguration_2_classLit = createForClass('org.eclipse.elk.core.alg', 'LayoutProcessorConfiguration', 80); +function $clinit_DeprecatedLayoutOptionReplacer(){ + $clinit_DeprecatedLayoutOptionReplacer = emptyMethod; + NEXT_TO_PORT_IF_POSSIBLE = new DeprecatedLayoutOptionReplacer$lambda$0$Type; + SPACE_EFFICIENT = new DeprecatedLayoutOptionReplacer$lambda$1$Type; + RULES = of_0(($clinit_CoreOptions() , PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0), NEXT_TO_PORT_IF_POSSIBLE, NODE_SIZE_OPTIONS_6, SPACE_EFFICIENT); +} + +function DeprecatedLayoutOptionReplacer(){ + $clinit_DeprecatedLayoutOptionReplacer(); +} + +function lambda$0_41(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + castTo(e_0.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 181).add_2(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + e_0.setProperty(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, null); +} + +function lambda$1_20(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + if (castTo(e_0.getProperty(($clinit_CoreOptions() , NODE_SIZE_OPTIONS_6)), 181).contains(($clinit_SizeOptions() , SPACE_EFFICIENT_PORT_LABELS))) { + castTo(e_0.getProperty(PORT_LABELS_PLACEMENT_5), 181).add_2(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + castTo(e_0.getProperty(NODE_SIZE_OPTIONS_6), 181).remove_1(SPACE_EFFICIENT_PORT_LABELS); + } +} + +function lambda$2_13(element_0, option_1, replacer_2){ + $clinit_DeprecatedLayoutOptionReplacer(); + element_0.hasProperty(option_1) && replacer_2.accept(element_0); +} + +defineClass(1025, 1, {536:1}, DeprecatedLayoutOptionReplacer); +_.visit = function visit_0(element){ + $forEach_2(RULES, new DeprecatedLayoutOptionReplacer$lambda$2$Type(element)); +} +; +var NEXT_TO_PORT_IF_POSSIBLE, RULES, SPACE_EFFICIENT; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer', 1025); +function DeprecatedLayoutOptionReplacer$lambda$0$Type(){ +} + +defineClass(1026, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$0$Type); +_.accept = function accept_143(arg0){ + lambda$0_41(castTo(arg0, 167)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$0$Type', 1026); +function DeprecatedLayoutOptionReplacer$lambda$1$Type(){ +} + +defineClass(1027, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$1$Type); +_.accept = function accept_144(arg0){ + lambda$1_20(castTo(arg0, 167)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$1$Type', 1027); +function DeprecatedLayoutOptionReplacer$lambda$2$Type(element_0){ + this.element_0 = element_0; +} + +defineClass(1028, 1, {}, DeprecatedLayoutOptionReplacer$lambda$2$Type); +_.accept_1 = function accept_145(arg0, arg1){ + lambda$2_13(this.element_0, castTo(arg0, 149), castTo(arg1, 41)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$2$Type', 1028); +function $addKnownOption(this$static, property, defaultValue){ + $putStringValue(this$static.knownOptions, property.id_0, defaultValue); +} + +function $equals_8(this$static, obj){ + if (instanceOf(obj, 143)) { + return $equals_5(this$static.id_0, castTo(obj, 143).id_0); + } + return false; +} + +function $supportsFeature(this$static, graphFeature){ + return $containsEnum(this$static.supportedFeatures, graphFeature); +} + +function LayoutAlgorithmData(builder){ + var all; + this.knownOptions = new HashMap; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; + this.providerPool = new InstancePool(builder.providerFactory); + this.category = builder.category; + !builder.supportedFeatures?(this.supportedFeatures = (all = castTo($getEnumConstants(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.supportedFeatures = builder.supportedFeatures); +} + +defineClass(143, 1, {701:1, 143:1}, LayoutAlgorithmData); +_.equals_0 = function equals_196(obj){ + return $equals_8(this, obj); +} +; +_.getDescription = function getDescription(){ + return this.description; +} +; +_.getId = function getId(){ + return this.id_0; +} +; +_.getName = function getName_2(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_65(){ + return $hashCode_2(this.id_0); +} +; +_.toString_0 = function toString_111(){ + return 'Layout Algorithm: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData', 143); +function $category(this$static, acategory){ + this$static.category = acategory; + return this$static; +} + +function $description(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $id(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $name_0(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function $providerFactory(this$static, aproviderFactory){ + this$static.providerFactory = aproviderFactory; + return this$static; +} + +function $supportedFeatures(this$static, asupportedFeatures){ + this$static.supportedFeatures = asupportedFeatures; + return this$static; +} + +function LayoutAlgorithmData$Builder(){ +} + +defineClass(269, 1, {}, LayoutAlgorithmData$Builder); +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData/Builder', 269); +function $resolveAlgorithm(node){ + var algorithmId, message; + algorithmId = castToString($getProperty_0(node, ($clinit_CoreOptions() , ALGORITHM))); + if ($resolveAndSetAlgorithm(algorithmId, node)) { + return; + } + if (!$hasProperty_0(node, RESOLVED_ALGORITHM) && ((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(node, INSIDE_SELF_LOOPS_ACTIVATE_0))))) { + if (algorithmId == null || $trim(algorithmId).length == 0) { + if (!$resolveAndSetAlgorithm('org.eclipse.elk.layered', node)) { + message = $append_11($append_11(new StringBuilder_1('Unable to load default layout algorithm '), 'org.eclipse.elk.layered'), ' for unconfigured node '); + printElementPath(node, message); + throw toJs(new UnsupportedConfigurationException_0(message.string)); + } + } + else { + message = $append_11($append_11(new StringBuilder_1("Layout algorithm '"), algorithmId), "' not found for "); + printElementPath(node, message); + throw toJs(new UnsupportedConfigurationException_0(message.string)); + } + } +} + +function $resolveAndSetAlgorithm(algorithmId, node){ + var algorithmData; + algorithmData = $getAlgorithmDataBySuffix(getInstance(), algorithmId); + if (algorithmData) { + $setProperty_1(node, ($clinit_CoreOptions() , RESOLVED_ALGORITHM), algorithmData); + return true; + } + else { + return false; + } +} + +function LayoutAlgorithmResolver(){ +} + +defineClass(1029, 1, {536:1}, LayoutAlgorithmResolver); +_.visit = function visit_1(element){ + instanceOf(element, 207) && !$booleanValue(castToBoolean(element.getProperty(($clinit_CoreOptions() , NO_LAYOUT_0)))) && $resolveAlgorithm(castTo(element, 27)); +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmResolver_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmResolver', 1029); +function LayoutCategoryData(builder){ + this.layouters = new LinkedList; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; +} + +defineClass(233, 1, {701:1, 233:1}, LayoutCategoryData); +_.equals_0 = function equals_197(obj){ + if (instanceOf(obj, 233)) { + return $equals_5(this.id_0, castTo(obj, 233).id_0); + } + return false; +} +; +_.getDescription = function getDescription_0(){ + return this.description; +} +; +_.getId = function getId_0(){ + return this.id_0; +} +; +_.getName = function getName_3(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_66(){ + return $hashCode_2(this.id_0); +} +; +_.toString_0 = function toString_112(){ + return 'Layout Type: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutCategoryData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData', 233); +function $description_0(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $id_0(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $name_1(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function LayoutCategoryData$Builder(){ +} + +defineClass(357, 1, {}, LayoutCategoryData$Builder); +var Lorg_eclipse_elk_core_data_LayoutCategoryData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData/Builder', 357); +function $getAlgorithmData(this$static, id_0){ + return castTo($get_16(this$static.layoutAlgorithmMap, id_0), 143); +} + +function $getAlgorithmDataBySuffix(this$static, suffix){ + var d, d$iterator, data_0, entry, id_0, outerIter, suffixlength; + if (suffix == null || suffix.length == 0) { + return null; + } + data_0 = castTo($getStringValue(this$static.algorithmSuffixMap, suffix), 143); + if (!data_0) { + for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 143)); + id_0 = d.id_0; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + !!data_0 && $putStringValue(this$static.algorithmSuffixMap, suffix, data_0); + } + return data_0; +} + +function $getCategoryData(this$static, id_0){ + return castTo($get_16(this$static.layoutCategoryMap, id_0), 233); +} + +function $getOptionData(this$static, id_0){ + var data_0; + data_0 = castTo($get_16(this$static.layoutOptionMap, id_0), 23); + return data_0?data_0:castTo($get_16(this$static.legacyLayoutOptionMap, id_0), 23); +} + +function $getOptionDataBySuffix(this$static, suffix){ + var d, d$iterator, d$iterator0, data_0, entry, id_0, id$array, id$index, id$max, legacyIds, outerIter, outerIter0, suffixlength; + if (suffix == null || suffix.length == 0) { + return null; + } + data_0 = castTo($getStringValue(this$static.optionSuffixMap, suffix), 23); + if (!data_0) { + for (d$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); d$iterator0.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator0.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 23)); + id_0 = d.id_0; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + if (!data_0) { + for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 23)); + legacyIds = d.legacyIds; + if (legacyIds != null) { + for (id$array = legacyIds , id$index = 0 , id$max = id$array.length; id$index < id$max; ++id$index) { + id_0 = id$array[id$index]; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + } + } + } + !!data_0 && $putStringValue(this$static.optionSuffixMap, suffix, data_0); + } + return data_0; +} + +function $registerLayoutMetaDataProviders(this$static, providers){ + var provider, provider$array, provider$index, provider$max, registry; + for (provider$array = providers , provider$index = 0 , provider$max = provider$array.length; provider$index < provider$max; ++provider$index) { + provider = provider$array[provider$index]; + registry = new LayoutMetaDataService$Registry(this$static); + provider.apply_4(registry); + $applyDependencies(registry); + } + $reset(this$static.optionSuffixMap); +} + +function LayoutMetaDataService(){ + this.layoutAlgorithmMap = new LinkedHashMap; + this.layoutOptionMap = new LinkedHashMap; + this.legacyLayoutOptionMap = new LinkedHashMap; + this.layoutCategoryMap = new LinkedHashMap; + this.algorithmSuffixMap = new HashMap; + this.optionSuffixMap = new HashMap; + register(Lorg_eclipse_elk_core_math_KVector_2_classLit, new LayoutMetaDataService$lambda$0$Type, new LayoutMetaDataService$lambda$1$Type); + register(Lorg_eclipse_elk_core_math_KVectorChain_2_classLit, new LayoutMetaDataService$lambda$2$Type, new LayoutMetaDataService$lambda$3$Type); + register(Lorg_eclipse_elk_core_math_ElkMargin_2_classLit, new LayoutMetaDataService$lambda$4$Type, new LayoutMetaDataService$lambda$5$Type); + register(Lorg_eclipse_elk_core_math_ElkPadding_2_classLit, new LayoutMetaDataService$lambda$6$Type, new LayoutMetaDataService$lambda$7$Type); + register(Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit, new LayoutMetaDataService$lambda$8$Type, new LayoutMetaDataService$lambda$9$Type); + register(Ljava_util_ArrayList_2_classLit, new LayoutMetaDataService$lambda$10$Type, new LayoutMetaDataService$lambda$11$Type); + register(Ljava_util_LinkedList_2_classLit, new LayoutMetaDataService$lambda$12$Type, new LayoutMetaDataService$lambda$13$Type); + register(Ljava_util_HashSet_2_classLit, new LayoutMetaDataService$lambda$14$Type, new LayoutMetaDataService$lambda$15$Type); + register(Ljava_util_LinkedHashSet_2_classLit, new LayoutMetaDataService$lambda$16$Type, new LayoutMetaDataService$lambda$17$Type); + register(Ljava_util_TreeSet_2_classLit, new LayoutMetaDataService$lambda$18$Type, new LayoutMetaDataService$lambda$19$Type); +} + +function getInstance(){ + if (!instance_2) { + instance_2 = new LayoutMetaDataService; + $registerLayoutMetaDataProviders(instance_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new CoreOptions])); + } + return instance_2; +} + +defineClass(879, 1, {}, LayoutMetaDataService); +var instance_2; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService', 879); +function $addDependency(this$static, sourceOption, targetOption, requiredValue){ + var dep; + dep = new LayoutMetaDataService$Registry$Triple; + dep.firstId = sourceOption; + dep.secondId = targetOption; + dep.value_0 = requiredValue; + $add_7(this$static.optionDependencies, dep); +} + +function $addOptionSupport(this$static, algorithm, option, defaultValue){ + var sup_0; + sup_0 = new LayoutMetaDataService$Registry$Triple; + sup_0.firstId = algorithm; + sup_0.secondId = option; + sup_0.value_0 = defaultValue; + $add_7(this$static.optionSupport, sup_0); +} + +function $applyDependencies(this$static){ + var algorithm, algorithm$iterator, category, categoryId, dep, dep$iterator, entry, option, outerIter, source, sup_0, sup$iterator, target; + for (algorithm$iterator = (outerIter = (new AbstractMap$2(this$static.this$01.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); algorithm$iterator.val$outerIter2.hasNext_0();) { + algorithm = (entry = castTo(algorithm$iterator.val$outerIter2.next_1(), 44) , castTo(entry.getValue(), 143)); + categoryId = algorithm.category; + categoryId == null && (categoryId = ''); + category = $getCategoryData(this$static.this$01, categoryId); + !category && categoryId.length == 0 && (category = $retrieveBackupCategory(this$static)); + !!category && !$advanceToFind(category.layouters, algorithm, false) && $add_7(category.layouters, algorithm); + } + for (dep$iterator = $listIterator_2(this$static.optionDependencies, 0); dep$iterator.currentNode != dep$iterator.this$01.tail;) { + dep = castTo($next_9(dep$iterator), 487); + source = $getOptionData(this$static.this$01, dep.firstId); + target = $getOptionData(this$static.this$01, dep.secondId); + !!source && !!target && $add_7(source.dependencies, new Pair(target, dep.value_0)); + } + $reset_0(this$static.optionDependencies); + for (sup$iterator = $listIterator_2(this$static.optionSupport, 0); sup$iterator.currentNode != sup$iterator.this$01.tail;) { + sup_0 = castTo($next_9(sup$iterator), 487); + algorithm = $getAlgorithmData(this$static.this$01, sup_0.firstId); + option = $getOptionData(this$static.this$01, sup_0.secondId); + !!algorithm && !!option && $addKnownOption(algorithm, option, sup_0.value_0); + } + $reset_0(this$static.optionSupport); +} + +function $register(this$static, algorithmData){ + $put_11(this$static.this$01.layoutAlgorithmMap, algorithmData.id_0, algorithmData); +} + +function $register_0(this$static, categoryData){ + $put_11(this$static.this$01.layoutCategoryMap, categoryData.id_0, categoryData); +} + +function $register_1(this$static, optionData){ + var id_0, legacyId, legacyId$array, legacyId$index, legacyId$max; + id_0 = optionData.id_0; + $put_11(this$static.this$01.layoutOptionMap, id_0, optionData); + if (optionData.legacyIds != null) { + for (legacyId$array = optionData.legacyIds , legacyId$index = 0 , legacyId$max = legacyId$array.length; legacyId$index < legacyId$max; ++legacyId$index) { + legacyId = legacyId$array[legacyId$index]; + $put_11(this$static.this$01.legacyLayoutOptionMap, legacyId, optionData); + } + } +} + +function $retrieveBackupCategory(this$static){ + var otherCategory; + otherCategory = castTo($get_16(this$static.this$01.layoutCategoryMap, ''), 233); + if (!otherCategory) { + otherCategory = new LayoutCategoryData($name_1($id_0(new LayoutCategoryData$Builder, ''), 'Other')); + $put_11(this$static.this$01.layoutCategoryMap, '', otherCategory); + } + return otherCategory; +} + +function LayoutMetaDataService$Registry(this$0){ + this.this$01 = this$0; + this.optionDependencies = new LinkedList; + this.optionSupport = new LinkedList; +} + +defineClass(880, 1, {}, LayoutMetaDataService$Registry); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry', 880); +function LayoutMetaDataService$Registry$Triple(){ +} + +defineClass(487, 1, {487:1}, LayoutMetaDataService$Registry$Triple); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry$Triple_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry/Triple', 487); +function LayoutMetaDataService$lambda$0$Type(){ +} + +defineClass(881, 1, $intern_132, LayoutMetaDataService$lambda$0$Type); +_.newInstance = function newInstance_0(){ + return new KVector; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$0$Type', 881); +function LayoutMetaDataService$lambda$1$Type(){ +} + +defineClass(882, 1, $intern_133, LayoutMetaDataService$lambda$1$Type); +_.clone = function clone_1(arg0){ + return $clone_1(castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$1$Type', 882); +function LayoutMetaDataService$lambda$10$Type(){ +} + +defineClass(891, 1, $intern_132, LayoutMetaDataService$lambda$10$Type); +_.newInstance = function newInstance_1(){ + return new ArrayList; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$10$Type', 891); +function LayoutMetaDataService$lambda$11$Type(){ +} + +defineClass(892, 1, $intern_133, LayoutMetaDataService$lambda$11$Type); +_.clone = function clone_2(arg0){ + return new ArrayList_1(castTo(arg0, 13)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$11$Type', 892); +function LayoutMetaDataService$lambda$12$Type(){ +} + +defineClass(893, 1, $intern_132, LayoutMetaDataService$lambda$12$Type); +_.newInstance = function newInstance_2(){ + return new LinkedList; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$12$Type', 893); +function LayoutMetaDataService$lambda$13$Type(){ +} + +defineClass(894, 1, $intern_133, LayoutMetaDataService$lambda$13$Type); +_.clone = function clone_3(arg0){ + return newLinkedList(castTo(arg0, 67)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$13$Type', 894); +function LayoutMetaDataService$lambda$14$Type(){ +} + +defineClass(895, 1, $intern_132, LayoutMetaDataService$lambda$14$Type); +_.newInstance = function newInstance_3(){ + return new HashSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$14$Type', 895); +function LayoutMetaDataService$lambda$15$Type(){ +} + +defineClass(896, 1, $intern_133, LayoutMetaDataService$lambda$15$Type); +_.clone = function clone_4(arg0){ + return newHashSet(castTo(arg0, 49)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$15$Type', 896); +function LayoutMetaDataService$lambda$16$Type(){ +} + +defineClass(897, 1, $intern_132, LayoutMetaDataService$lambda$16$Type); +_.newInstance = function newInstance_4(){ + return new LinkedHashSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$16$Type', 897); +function LayoutMetaDataService$lambda$17$Type(){ +} + +defineClass(898, 1, $intern_133, LayoutMetaDataService$lambda$17$Type); +_.clone = function clone_5(arg0){ + return newLinkedHashSet(castTo(arg0, 49)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$17$Type', 898); +function LayoutMetaDataService$lambda$18$Type(){ +} + +defineClass(899, 1, $intern_132, LayoutMetaDataService$lambda$18$Type); +_.newInstance = function newInstance_5(){ + return new TreeSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$18$Type', 899); +function LayoutMetaDataService$lambda$19$Type(){ +} + +defineClass(900, 1, $intern_133, LayoutMetaDataService$lambda$19$Type); +_.clone = function clone_6(arg0){ + return newTreeSet(castTo(arg0, 157)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$19$Type', 900); +function LayoutMetaDataService$lambda$2$Type(){ +} + +defineClass(883, 1, $intern_132, LayoutMetaDataService$lambda$2$Type); +_.newInstance = function newInstance_6(){ + return new KVectorChain; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$2$Type', 883); +function LayoutMetaDataService$lambda$3$Type(){ +} + +defineClass(884, 1, $intern_133, LayoutMetaDataService$lambda$3$Type); +_.clone = function clone_7(arg0){ + return new KVectorChain_0(castTo(arg0, 75)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$3$Type', 884); +function LayoutMetaDataService$lambda$4$Type(){ +} + +defineClass(885, 1, $intern_132, LayoutMetaDataService$lambda$4$Type); +_.newInstance = function newInstance_7(){ + return new ElkMargin; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$4$Type', 885); +function LayoutMetaDataService$lambda$5$Type(){ +} + +defineClass(886, 1, $intern_133, LayoutMetaDataService$lambda$5$Type); +_.clone = function clone_8(arg0){ + return new ElkMargin_2(castTo(arg0, 140)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$5$Type', 886); +function LayoutMetaDataService$lambda$6$Type(){ +} + +defineClass(887, 1, $intern_132, LayoutMetaDataService$lambda$6$Type); +_.newInstance = function newInstance_8(){ + return new ElkPadding; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$6$Type', 887); +function LayoutMetaDataService$lambda$7$Type(){ +} + +defineClass(888, 1, $intern_133, LayoutMetaDataService$lambda$7$Type); +_.clone = function clone_9(arg0){ + return new ElkPadding_1(castTo(arg0, 107)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$7$Type', 888); +function LayoutMetaDataService$lambda$8$Type(){ +} + +defineClass(889, 1, $intern_132, LayoutMetaDataService$lambda$8$Type); +_.newInstance = function newInstance_9(){ + return new IndividualSpacings; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$8$Type', 889); +function LayoutMetaDataService$lambda$9$Type(){ +} + +defineClass(890, 1, $intern_133, LayoutMetaDataService$lambda$9$Type); +_.clone = function clone_10(arg0){ + return new IndividualSpacings_0(castTo(arg0, 385)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$9$Type', 890); +var Lorg_eclipse_elk_graph_properties_IProperty_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IProperty'); +function $checkEnumClass(this$static){ + if (!this$static.clazz || (this$static.clazz.modifiers & 8) == 0) { + throw toJs(new IllegalStateException_0('Enumeration class expected for layout option ' + this$static.id_0)); + } +} + +function $compareTo_19(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $createDataInstance(this$static){ + var instance; + if (!this$static.clazz) { + throw toJs(new IllegalStateException_0('IDataType class expected for layout option ' + this$static.id_0)); + } + instance = newInstance_10(this$static.clazz); + if (instance == null) { + throw toJs(new IllegalStateException_0("Couldn't create new instance of property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return castTo(instance, 423); +} + +function $enumForString(this$static, leString){ + var constants, index_0, value_0; + try { + value_0 = valueOf_0(this$static.clazz, leString); + return value_0; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 33)) { + try { + index_0 = __parseAndValidateInt(leString, $intern_43, $intern_0); + constants = $getEnumConstants(this$static.clazz); + if (index_0 >= 0 && index_0 < constants.length) { + return constants[index_0]; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 130)) + throw toJs($e0); + } + return null; + } + else + throw toJs($e1); + } +} + +function $enumSetForStringArray(this$static, leClazz, leString){ + var all, component, component$array, component$index, component$max, components, o, set_0; + set_0 = (all = castTo(leClazz.enumConstantsFunc && leClazz.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + components = $split_0(leString, '[\\[\\]\\s,]+'); + for (component$array = components , component$index = 0 , component$max = component$array.length; component$index < component$max; ++component$index) { + component = component$array[component$index]; + if ($trim(component).length == 0) { + continue; + } + o = $enumForString(this$static, component); + if (o == null) { + return null; + } + else { + $add_5(set_0, castTo(o, 22)); + } + } + return set_0; +} + +function $parseValue(this$static, valueString){ + var value_0; + if (valueString == null || $equals_5(valueString, 'null')) { + return null; + } + if (valueString.length == 0 && this$static.type_0 != ($clinit_LayoutOptionData$Type() , ENUMSET)) { + return null; + } + switch (this$static.type_0.ordinal) { + case 1: + return $equalsIgnoreCase(valueString, 'true')?($clinit_Boolean() , TRUE_0):$equalsIgnoreCase(valueString, 'false')?($clinit_Boolean() , FALSE_0):null; + case 2: + try { + return valueOf_3(__parseAndValidateInt(valueString, $intern_43, $intern_0)); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + return null; + } + else + throw toJs($e0); + } + + case 4: + try { + return __parseAndValidateDouble(valueString); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 130)) { + return null; + } + else + throw toJs($e1); + } + + case 3: + return valueString; + case 5: + $checkEnumClass(this$static); + return $enumForString(this$static, valueString); + case 6: + $checkEnumClass(this$static); + return $enumSetForStringArray(this$static, this$static.clazz, valueString); + case 7: + try { + value_0 = $createDataInstance(this$static); + value_0.parse_0(valueString); + return value_0; + } + catch ($e2) { + $e2 = toJava($e2); + if (instanceOf($e2, 33)) { + return null; + } + else + throw toJs($e2); + } + + default:throw toJs(new IllegalStateException_0('Invalid type set for this layout option.')); + } +} + +function LayoutOptionData(builder){ + var all; + this.dependencies = new LinkedList; + this.id_0 = builder.id_0; + this.group_0 = builder.group_0; + this.name_0 = builder.name_0; + this.description = builder.description; + this.defaultValue = builder.defaultValue; + this.type_0 = builder.type_0; + this.clazz = builder.clazz; + !builder.targets?(this.targets = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.targets = builder.targets); + this.legacyIds = builder.legacyIds; +} + +defineClass(23, 1, {34:1, 701:1, 23:1, 149:1}, LayoutOptionData); +_.compareTo_0 = function compareTo_20(other){ + return $compareTo_19(this, castTo(other, 149)); +} +; +_.equals_0 = function equals_198(obj){ + return instanceOf(obj, 23)?$equals_5(this.id_0, castTo(obj, 23).id_0):instanceOf(obj, 149) && $equals_5(this.id_0, castTo(obj, 149).getId()); +} +; +_.getDefault = function getDefault(){ + var clone; + if (instanceOf(this.defaultValue, 4)) { + clone = clone_11(this.defaultValue); + if (clone == null) { + throw toJs(new IllegalStateException_0("Couldn't clone property '" + this.id_0 + "'. " + "Make sure it's type is registered with the " + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return clone; + } + else { + return this.defaultValue; + } +} +; +_.getDescription = function getDescription_1(){ + return this.description; +} +; +_.getId = function getId_1(){ + return this.id_0; +} +; +_.getName = function getName_4(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_67(){ + return $hashCode_2(this.id_0); +} +; +_.toString_0 = function toString_113(){ + return 'Layout Option: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutOptionData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData', 23); +function $defaultValue(this$static, adefaultValue){ + this$static.defaultValue = adefaultValue; + return this$static; +} + +function $description_1(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $group(this$static, agroup){ + this$static.group_0 = agroup; + return this$static; +} + +function $id_1(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $legacyIds(this$static, alegacyIds){ + this$static.legacyIds = alegacyIds; + return this$static; +} + +function $name_2(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function $optionClass(this$static, aclazz){ + this$static.clazz = aclazz; + return this$static; +} + +function $targets(this$static, atargets){ + this$static.targets = atargets; + return this$static; +} + +function $type(this$static, atype){ + this$static.type_0 = atype; + return this$static; +} + +function LayoutOptionData$Builder(){ +} + +defineClass(24, 1, {}, LayoutOptionData$Builder); +var Lorg_eclipse_elk_core_data_LayoutOptionData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData/Builder', 24); +function $clinit_LayoutOptionData$Target(){ + $clinit_LayoutOptionData$Target = emptyMethod; + PARENTS = new LayoutOptionData$Target('PARENTS', 0); + NODES = new LayoutOptionData$Target('NODES', 1); + EDGES = new LayoutOptionData$Target('EDGES', 2); + PORTS = new LayoutOptionData$Target('PORTS', 3); + LABELS = new LayoutOptionData$Target('LABELS', 4); +} + +function LayoutOptionData$Target(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_96(name_0){ + $clinit_LayoutOptionData$Target(); + return valueOf(($clinit_LayoutOptionData$Target$Map() , $MAP_86), name_0); +} + +function values_104(){ + $clinit_LayoutOptionData$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]); +} + +defineClass(170, 22, {3:1, 34:1, 22:1, 170:1}, LayoutOptionData$Target); +var EDGES, LABELS, NODES, PARENTS, PORTS; +var Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Target', 170, Ljava_lang_Enum_2_classLit, values_104, valueOf_96); +function $clinit_LayoutOptionData$Target$Map(){ + $clinit_LayoutOptionData$Target$Map = emptyMethod; + $MAP_86 = createValueOfMap(($clinit_LayoutOptionData$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]))); +} + +var $MAP_86; +function $clinit_LayoutOptionData$Type(){ + $clinit_LayoutOptionData$Type = emptyMethod; + UNDEFINED_1 = new LayoutOptionData$Type('UNDEFINED', 0); + BOOLEAN = new LayoutOptionData$Type('BOOLEAN', 1); + INT = new LayoutOptionData$Type('INT', 2); + STRING = new LayoutOptionData$Type('STRING', 3); + DOUBLE = new LayoutOptionData$Type('DOUBLE', 4); + ENUM = new LayoutOptionData$Type('ENUM', 5); + ENUMSET = new LayoutOptionData$Type('ENUMSET', 6); + OBJECT = new LayoutOptionData$Type('OBJECT', 7); +} + +function LayoutOptionData$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_97(name_0){ + $clinit_LayoutOptionData$Type(); + return valueOf(($clinit_LayoutOptionData$Type$Map() , $MAP_87), name_0); +} + +function values_105(){ + $clinit_LayoutOptionData$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_37, 285, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]); +} + +defineClass(285, 22, {3:1, 34:1, 22:1, 285:1}, LayoutOptionData$Type); +var BOOLEAN, DOUBLE, ENUM, ENUMSET, INT, OBJECT, STRING, UNDEFINED_1; +var Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Type', 285, Ljava_lang_Enum_2_classLit, values_105, valueOf_97); +function $clinit_LayoutOptionData$Type$Map(){ + $clinit_LayoutOptionData$Type$Map = emptyMethod; + $MAP_87 = createValueOfMap(($clinit_LayoutOptionData$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_37, 285, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]))); +} + +var $MAP_87; +function $clinit_LabelManagementOptions(){ + $clinit_LabelManagementOptions = emptyMethod; + LABEL_MANAGER = new Property('org.eclipse.elk.labels.labelManager'); +} + +var LABEL_MANAGER; +function $clinit_ElkMath(){ + $clinit_ElkMath = emptyMethod; + FACT_TABLE = stampJavaTypeInfo(getClassLiteralForArray(J_classLit, 1), $intern_63, 28, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, {l:3506176, m:794077, h:1}, {l:884736, m:916411, h:20}, {l:3342336, m:3912489, h:363}, {l:589824, m:3034138, h:6914}, {l:3407872, m:1962506, h:138294}]); + $wnd.Math.pow(2, -65); +} + +function approximateBezierSegment(controlPoints){ + $clinit_ElkMath(); + var i, result, t; + result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, 2, 0, 1); + t = 0; + for (i = 0; i < 2; i++) { + t += 0.5; + result[i] = getPointOnBezierSegment(t, controlPoints); + } + return result; +} + +function binomiald(n, k){ + if (n < 0 || k < 0) { + throw toJs(new IllegalArgumentException_0('k and n must be positive')); + } + else if (k > n) { + throw toJs(new IllegalArgumentException_0('k must be smaller than n')); + } + else + return k == 0 || k == n?1:n == 0?0:factd(n) / (factd(k) * factd(n - k)); +} + +function clipVector(v, width_0, height){ + $clinit_ElkMath(); + var absx, absy, hh, wh, xscale, yscale; + wh = width_0 / 2; + hh = height / 2; + absx = $wnd.Math.abs(v.x_0); + absy = $wnd.Math.abs(v.y_0); + xscale = 1; + yscale = 1; + absx > wh && (xscale = wh / absx); + absy > hh && (yscale = hh / absy); + $scale(v, $wnd.Math.min(xscale, yscale)); + return v; +} + +function contains_49(rect, p){ + var maxX, maxY, minX, minY; + minX = rect.x_0; + maxX = rect.x_0 + rect.width_0; + minY = rect.y_0; + maxY = rect.y_0 + rect.height; + return p.x_0 > minX && p.x_0 < maxX && p.y_0 > minY && p.y_0 < maxY; +} + +function contains_50(rect, p1, p2){ + $clinit_ElkMath(); + return contains_49(rect, p1) && contains_49(rect, p2); +} + +function contains_51(rect, path){ + $clinit_ElkMath(); + var first, p1, p2, pathIt; + if (path.size_0 < 2) { + return false; + } + pathIt = $listIterator_2(path, 0); + first = castTo($next_9(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_9(pathIt), 8); + if (!(contains_49(rect, p1) && contains_49(rect, p2))) { + return false; + } + p1 = p2; + } + if (!(contains_49(rect, p1) && contains_49(rect, first))) { + return false; + } + return true; +} + +function distance_0(a1, a2, b1, b2, v){ + $clinit_ElkMath(); + return $wnd.Math.min(traceRays(a1, a2, b1, b2, v), traceRays(b1, b2, a1, a2, $negate_0(new KVector_1(v.x_0, v.y_0)))); +} + +function factd(x_0){ + if (x_0 < 0) { + throw toJs(new IllegalArgumentException_0('The input must be positive')); + } + else + return x_0 < FACT_TABLE.length?toDouble_0(FACT_TABLE[x_0]):$wnd.Math.sqrt($intern_126 * x_0) * (powf(x_0, x_0) / powd(2.718281828459045, x_0)); +} + +function getPointOnBezierSegment(t, controlPoints){ + var factor, j, n, p, px, py; + n = controlPoints.length - 1; + px = 0; + py = 0; + for (j = 0; j <= n; j++) { + p = controlPoints[j]; + factor = binomiald(n, j) * powd(1 - t, n - j) * powd(t, j); + px += p.x_0 * factor; + py += p.y_0 * factor; + } + return new KVector_1(px, py); +} + +function intersects_0(rect, p1, p2){ + $clinit_ElkMath(); + if (contains_49(rect, p1) && contains_49(rect, p2)) { + return false; + } + return intersects_2(new KVector_1(rect.x_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0), p1, p2); +} + +function intersects_1(rect, path){ + $clinit_ElkMath(); + var first, p1, p2, pathIt; + if (path.size_0 < 2) { + return false; + } + pathIt = $listIterator_2(path, 0); + first = castTo($next_9(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_9(pathIt), 8); + if (intersects_0(rect, p1, p2)) { + return true; + } + p1 = p2; + } + if (intersects_0(rect, p1, first)) { + return true; + } + return false; +} + +function intersects_2(l11, l12, l21, l22){ + var d, intersects, s, t, u0, u1, v0, v1, x00, x01, x10, x11, y00, y01, y10, y11; + u0 = l11; + v0 = $sub_0(new KVector_1(l12.x_0, l12.y_0), l11); + u1 = l21; + v1 = $sub_0(new KVector_1(l22.x_0, l22.y_0), l21); + x00 = u0.x_0; + y00 = u0.y_0; + x10 = u1.x_0; + y10 = u1.y_0; + x01 = v0.x_0; + y01 = v0.y_0; + x11 = v1.x_0; + y11 = v1.y_0; + d = x11 * y01 - x01 * y11; + $clinit_DoubleMath(); + checkNonNegative($intern_117); + if ($wnd.Math.abs(0 - d) <= $intern_117 || 0 == d || isNaN(0) && isNaN(d)) { + return false; + } + s = 1 / d * ((x00 - x10) * y01 - (y00 - y10) * x01); + t = 1 / d * -(-(x00 - x10) * y11 + (y00 - y10) * x11); + intersects = (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - s) <= $intern_117 || 0 == s || isNaN(0) && isNaN(s)?0:0 < s?-1:0 > s?1:compare_0(isNaN(0), isNaN(s))) < 0 && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(s - 1) <= $intern_117 || s == 1 || isNaN(s) && isNaN(1)?0:s < 1?-1:s > 1?1:compare_0(isNaN(s), isNaN(1))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - t) <= $intern_117 || 0 == t || isNaN(0) && isNaN(t)?0:0 < t?-1:0 > t?1:compare_0(isNaN(0), isNaN(t))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(t - 1) <= $intern_117 || t == 1 || isNaN(t) && isNaN(1)?0:t < 1?-1:t > 1?1:compare_0(isNaN(t), isNaN(1))) < 0)); + return intersects; +} + +function intersects2(p, r, q, s){ + var center, d1, d2, l, pq, pqXr, rXs, t, u; + pq = $sub_0(new KVector_1(q.x_0, q.y_0), p); + pqXr = pq.x_0 * r.y_0 - pq.y_0 * r.x_0; + rXs = r.x_0 * s.y_0 - r.y_0 * s.x_0; + t = (pq.x_0 * s.y_0 - pq.y_0 * s.x_0) / rXs; + u = pqXr / rXs; + if (rXs == 0) { + if (pqXr == 0) { + center = $add_19(new KVector_1(q.x_0, q.y_0), $scale(new KVector_1(s.x_0, s.y_0), 0.5)); + d1 = $distance_0(p, center); + d2 = $distance_0($add_19(new KVector_1(p.x_0, p.y_0), r), center); + l = $wnd.Math.sqrt(s.x_0 * s.x_0 + s.y_0 * s.y_0) * 0.5; + if (d1 < d2 && d1 <= l) { + return new KVector_1(p.x_0, p.y_0); + } + if (d2 <= l) { + return $add_19(new KVector_1(p.x_0, p.y_0), r); + } + return null; + } + else { + return null; + } + } + else { + return t >= 0 && t <= 1 && u >= 0 && u <= 1?$add_19(new KVector_1(p.x_0, p.y_0), $scale(new KVector_1(r.x_0, r.y_0), t)):null; + } +} + +function maxd(values){ + $clinit_ElkMath(); + var i, max_0; + max_0 = $intern_124; + for (i = 0; i < values.length; i++) { + values[i] > max_0 && (max_0 = values[i]); + } + return max_0; +} + +function powd(a, b){ + var base, exp_0, result; + result = 1; + base = a; + exp_0 = b >= 0?b:-b; + while (exp_0 > 0) { + if (exp_0 % 2 == 0) { + base *= base; + exp_0 = exp_0 / 2 | 0; + } + else { + result *= base; + exp_0 -= 1; + } + } + return b < 0?1 / result:result; +} + +function powf(a, b){ + var base, exp_0, result; + result = 1; + base = a; + exp_0 = b >= 0?b:-b; + while (exp_0 > 0) { + if (exp_0 % 2 == 0) { + base *= base; + exp_0 = exp_0 / 2 | 0; + } + else { + result *= base; + exp_0 -= 1; + } + } + return b < 0?1 / result:result; +} + +function shortestDistance_0(r1, r2){ + $clinit_ElkMath(); + var bottomDist, horzDist, leftDist, rightDist, topDist, vertDist; + rightDist = r2.x_0 - (r1.x_0 + r1.width_0); + leftDist = r1.x_0 - (r2.x_0 + r2.width_0); + topDist = r1.y_0 - (r2.y_0 + r2.height); + bottomDist = r2.y_0 - (r1.y_0 + r1.height); + horzDist = $wnd.Math.max(leftDist, rightDist); + vertDist = $wnd.Math.max(topDist, bottomDist); + $clinit_DoubleMath(); + checkNonNegative($intern_117); + if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) >= 0 ^ (null , checkNonNegative($intern_117) , ($wnd.Math.abs(vertDist) <= $intern_117 || vertDist == 0 || isNaN(vertDist) && isNaN(0)?0:vertDist < 0?-1:vertDist > 0?1:compare_0(isNaN(vertDist), isNaN(0))) >= 0)) { + return $wnd.Math.max(vertDist, horzDist); + } + checkNonNegative($intern_117); + if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) > 0) { + return $wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); + } + return -$wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); +} + +function traceRays(a1, a2, b1, b2, v){ + var edgeCase, endpointHit, intersection, result; + result = $intern_60; + endpointHit = false; + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), $add_19(new KVector_1(b1.x_0, b1.y_0), v), $sub_0(new KVector_1(b2.x_0, b2.y_0), b1)); + edgeCase = !!intersection && !($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_134 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_134 || $wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_134 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_134); + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b1, v); + !!intersection && (($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_134 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_134) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_134 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_134) || edgeCase?(result = $wnd.Math.min(result, $length($sub_0(intersection, b1)))):(endpointHit = true)); + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b2, v); + !!intersection && (endpointHit || ($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_134 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_134) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_134 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_134) || edgeCase) && (result = $wnd.Math.min(result, $length($sub_0(intersection, b2)))); + return result; +} + +var FACT_TABLE; +function $getBottomLeft(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0 + this$static.height); +} + +function $getBottomRight(this$static){ + return new KVector_1(this$static.x_0 + this$static.width_0, this$static.y_0 + this$static.height); +} + +function $getCenter(this$static){ + return new KVector_1(this$static.x_0 + this$static.width_0 / 2, this$static.y_0 + this$static.height / 2); +} + +function $getPosition(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $getTopLeft(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $setRect(this$static, nx, ny, nw, nh){ + this$static.x_0 = nx; + this$static.y_0 = ny; + this$static.width_0 = nw; + this$static.height = nh; +} + +function $union(this$static, other){ + var t, x1, x2, y1, y2; + x1 = $wnd.Math.min(this$static.x_0, other.x_0); + y1 = $wnd.Math.min(this$static.y_0, other.y_0); + x2 = $wnd.Math.max(this$static.x_0 + this$static.width_0, other.x_0 + other.width_0); + y2 = $wnd.Math.max(this$static.y_0 + this$static.height, other.y_0 + other.height); + if (x2 < x1) { + t = x1; + x1 = x2; + x2 = t; + } + if (y2 < y1) { + t = y1; + y1 = y2; + y2 = t; + } + $setRect(this$static, x1, y1, x2 - x1, y2 - y1); +} + +function ElkRectangle(){ + ElkRectangle_0.call(this, 0, 0, 0, 0); +} + +function ElkRectangle_0(x_0, y_0, w, h){ + this.x_0 = x_0; + this.y_0 = y_0; + this.width_0 = w; + this.height = h; +} + +function ElkRectangle_1(rect){ + this.x_0 = rect.x_0; + this.y_0 = rect.y_0; + this.width_0 = rect.width_0; + this.height = rect.height; +} + +defineClass(116, 1, {116:1}, ElkRectangle, ElkRectangle_0, ElkRectangle_1); +_.equals_0 = function equals_199(obj){ + var other; + if (obj == null || !instanceOf(obj, 116)) { + return false; + } + other = castTo(obj, 116); + return equals_57(this.x_0, other.x_0) && equals_57(this.y_0, other.y_0) && equals_57(this.width_0, other.width_0) && equals_57(this.height, other.height); +} +; +_.hashCode_1 = function hashCode_68(){ + return hashCode_47(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0, this.width_0, this.height])); +} +; +_.toString_0 = function toString_114(){ + return 'Rect[x=' + this.x_0 + ',y=' + this.y_0 + ',w=' + this.width_0 + ',h=' + this.height + ']'; +} +; +_.height = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_core_math_ElkRectangle_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkRectangle', 116); +function $add_18(this$static, dx, dy){ + this$static.x_0 += dx; + this$static.y_0 += dy; + return this$static; +} + +function $add_19(this$static, v){ + this$static.x_0 += v.x_0; + this$static.y_0 += v.y_0; + return this$static; +} + +function $bound(this$static, lowx, lowy, highx, highy){ + if (highx < lowx || highy < lowy) { + throw toJs(new IllegalArgumentException_0('The highx must be bigger then lowx and the highy must be bigger then lowy')); + } + this$static.x_0 < lowx?(this$static.x_0 = lowx):this$static.x_0 > highx && (this$static.x_0 = highx); + this$static.y_0 < lowy?(this$static.y_0 = lowy):this$static.y_0 > highy && (this$static.y_0 = highy); + return this$static; +} + +function $clone_1(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $distance_0(this$static, v2){ + var dx, dy; + dx = this$static.x_0 - v2.x_0; + dy = this$static.y_0 - v2.y_0; + return $wnd.Math.sqrt(dx * dx + dy * dy); +} + +function $dotProduct(this$static, v2){ + return this$static.x_0 * v2.x_0 + this$static.y_0 * v2.y_0; +} + +function $equals_9(this$static, obj){ + var other; + if (instanceOf(obj, 8)) { + other = castTo(obj, 8); + return this$static.x_0 == other.x_0 && this$static.y_0 == other.y_0; + } + else { + return false; + } +} + +function $length(this$static){ + return $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); +} + +function $negate_0(this$static){ + this$static.x_0 = -this$static.x_0; + this$static.y_0 = -this$static.y_0; + return this$static; +} + +function $normalize_0(this$static){ + var length_0; + length_0 = $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); + if (length_0 > 0) { + this$static.x_0 /= length_0; + this$static.y_0 /= length_0; + } + return this$static; +} + +function $reset_5(this$static){ + this$static.x_0 = 0; + this$static.y_0 = 0; + return this$static; +} + +function $scale(this$static, scale){ + this$static.x_0 *= scale; + this$static.y_0 *= scale; + return this$static; +} + +function $scale_0(this$static, scalex, scaley){ + this$static.x_0 *= scalex; + this$static.y_0 *= scaley; + return this$static; +} + +function $scaleToLength(this$static, length_0){ + $normalize_0(this$static); + this$static.x_0 *= length_0; + this$static.y_0 *= length_0; + return this$static; +} + +function $set_7(this$static, newX, newY){ + this$static.x_0 = newX; + this$static.y_0 = newY; + return this$static; +} + +function $set_8(this$static, other){ + this$static.x_0 = other.x_0; + this$static.y_0 = other.y_0; + return this$static; +} + +function $sub(this$static, dx, dy){ + this$static.x_0 -= dx; + this$static.y_0 -= dy; + return this$static; +} + +function $sub_0(this$static, v){ + this$static.x_0 -= v.x_0; + this$static.y_0 -= v.y_0; + return this$static; +} + +function KVector(){ + this.x_0 = 0; + this.y_0 = 0; +} + +function KVector_0(angle){ + this.x_0 = $wnd.Math.cos(angle); + this.y_0 = $wnd.Math.sin(angle); +} + +function KVector_1(thex, they){ + this.x_0 = thex; + this.y_0 = they; +} + +function KVector_2(v){ + this.x_0 = v.x_0; + this.y_0 = v.y_0; +} + +function isdelim_0(c, delims){ + var i; + for (i = 0; i < delims.length; i++) { + if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { + return true; + } + } + return false; +} + +function sum_0(vs){ + var sum, v, v$array, v$index, v$max; + sum = new KVector; + for (v$array = vs , v$index = 0 , v$max = v$array.length; v$index < v$max; ++v$index) { + v = v$array[v$index]; + sum.x_0 += v.x_0; + sum.y_0 += v.y_0; + } + return sum; +} + +defineClass(8, 1, {3:1, 4:1, 8:1, 423:1}, KVector, KVector_0, KVector_1, KVector_2); +_.equals_0 = function equals_200(obj){ + return $equals_9(this, obj); +} +; +_.hashCode_1 = function hashCode_69(){ + return $hashCode_1(this.x_0) + reverse_1($hashCode_1(this.y_0)); +} +; +_.parse_0 = function parse_1(string){ + var end, exception, start_0, tokens; + start_0 = 0; + while (start_0 < string.length && isdelim_0((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { + ++start_0; + } + end = string.length; + while (end > 0 && isdelim_0((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { + --end; + } + if (start_0 >= end) { + throw toJs(new IllegalArgumentException_0('The given string does not contain any numbers.')); + } + tokens = $split_0((checkCriticalStringBounds(start_0, end, string.length) , string.substr(start_0, end - start_0)), ',|;|\r|\n'); + if (tokens.length != 2) { + throw toJs(new IllegalArgumentException_0('Exactly two numbers are expected, ' + tokens.length + ' were found.')); + } + try { + this.x_0 = __parseAndValidateDouble($trim(tokens[0])); + this.y_0 = __parseAndValidateDouble($trim(tokens[1])); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_115(){ + return '(' + this.x_0 + ',' + this.y_0 + ')'; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_core_math_KVector_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVector', 8); +function $addAll_7(this$static, vectors){ + var vector, vector$array, vector$index, vector$max; + for (vector$array = vectors , vector$index = 0 , vector$max = vector$array.length; vector$index < vector$max; ++vector$index) { + vector = vector$array[vector$index]; + $addNode_0(this$static, vector, this$static.tail.prev, this$static.tail); + } +} + +function $addAllAsCopies(this$static, index_0, chain){ + var copies, v, v$iterator; + copies = new LinkedList; + for (v$iterator = $listIterator_2(chain, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_9(v$iterator), 8); + $add_7(copies, new KVector_2(v)); + } + $addAll_0(this$static, index_0, copies); +} + +function $offset_1(this$static, dx, dy){ + var vector, vector$iterator; + for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_9(vector$iterator), 8); + vector.x_0 += dx; + vector.y_0 += dy; + } + return this$static; +} + +function $offset_2(this$static, offset){ + var vector, vector$iterator; + for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_9(vector$iterator), 8); + vector.x_0 += offset.x_0; + vector.y_0 += offset.y_0; + } + return this$static; +} + +function $toArray_7(this$static){ + var i, iter, result; + i = 0; + result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, this$static.size_0, 0, 1); + iter = $listIterator_2(this$static, 0); + while (iter.currentNode != iter.this$01.tail) { + result[i++] = castTo($next_9(iter), 8); + } + return result; +} + +function KVectorChain(){ + LinkedList.call(this); +} + +function KVectorChain_0(collection){ + LinkedList_0.call(this, collection); +} + +function KVectorChain_1(vectors){ + LinkedList.call(this); + $addAll_7(this, vectors); +} + +function reverse_3(chain){ + var result, vector, vector$iterator; + result = new KVectorChain; + for (vector$iterator = $listIterator_2(chain, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_9(vector$iterator), 8); + $add_0(result, 0, new KVector_2(vector)); + } + return result; +} + +defineClass(75, 67, {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 67:1, 15:1, 75:1, 423:1}, KVectorChain, KVectorChain_0, KVectorChain_1); +_.toArray = function toArray_25(){ + return $toArray_7(this); +} +; +_.parse_0 = function parse_2(string){ + var exception, i, tokens, x_0, xy, y_0; + tokens = $split_0(string, ',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n'); + $reset_0(this); + try { + i = 0; + xy = 0; + x_0 = 0; + y_0 = 0; + while (i < tokens.length) { + if (tokens[i] != null && $trim(tokens[i]).length > 0) { + xy % 2 == 0?(x_0 = __parseAndValidateDouble(tokens[i])):(y_0 = __parseAndValidateDouble(tokens[i])); + xy > 0 && xy % 2 != 0 && $add_7(this, new KVector_1(x_0, y_0)); + ++xy; + } + ++i; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string does not match the expected format for vectors.' + exception)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_116(){ + var builder, iter, vector; + builder = new StringBuilder_1('('); + iter = $listIterator_2(this, 0); + while (iter.currentNode != iter.this$01.tail) { + vector = castTo($next_9(iter), 8); + $append_11(builder, vector.x_0 + ',' + vector.y_0); + iter.currentNode != iter.this$01.tail && (builder.string += '; ' , builder); + } + return (builder.string += ')' , builder).string; +} +; +var Lorg_eclipse_elk_core_math_KVectorChain_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVectorChain', 75); +function $clinit_Alignment(){ + $clinit_Alignment = emptyMethod; + AUTOMATIC = new Alignment('AUTOMATIC', 0); + LEFT_5 = new Alignment('LEFT', 1); + RIGHT_5 = new Alignment('RIGHT', 2); + TOP_2 = new Alignment('TOP', 3); + BOTTOM_1 = new Alignment('BOTTOM', 4); + CENTER_4 = new Alignment('CENTER', 5); +} + +function Alignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_98(name_0){ + $clinit_Alignment(); + return valueOf(($clinit_Alignment$Map() , $MAP_88), name_0); +} + +function values_106(){ + $clinit_Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_37, 255, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]); +} + +defineClass(255, 22, {3:1, 34:1, 22:1, 255:1}, Alignment); +var AUTOMATIC, BOTTOM_1, CENTER_4, LEFT_5, RIGHT_5, TOP_2; +var Lorg_eclipse_elk_core_options_Alignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Alignment', 255, Ljava_lang_Enum_2_classLit, values_106, valueOf_98); +function $clinit_Alignment$Map(){ + $clinit_Alignment$Map = emptyMethod; + $MAP_88 = createValueOfMap(($clinit_Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_37, 255, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]))); +} + +var $MAP_88; +function $clinit_BoxLayouterOptions(){ + $clinit_BoxLayouterOptions = emptyMethod; + PADDING_DEFAULT_5 = new ElkPadding_0(15); + PADDING_5 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_5); + SPACING_NODE_NODE_5 = new Property_2(SPACING_NODE_NODE_6, 15); + PRIORITY_2 = new Property_2(PRIORITY_3, valueOf_3(0)); + EXPAND_NODES = EXPAND_NODES_0; + NODE_SIZE_CONSTRAINTS_5 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_OPTIONS_5 = NODE_SIZE_OPTIONS_6; + ASPECT_RATIO_4 = new Property_2(ASPECT_RATIO_5, $intern_135); + INTERACTIVE_7 = INTERACTIVE_8; + NODE_SIZE_MINIMUM_4 = NODE_SIZE_MINIMUM_5; + BOX_PACKING_MODE = BOX_PACKING_MODE_0; + CONTENT_ALIGNMENT_1 = CONTENT_ALIGNMENT_2; +} + +function $apply_24(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.box'), 'ELK Box'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'), new BoxLayouterOptions$BoxFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.padding', PADDING_DEFAULT_5); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.priority', valueOf_3(0)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_5)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_5)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.aspectRatio', $intern_135); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_7)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_4)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.box.packingMode', $getDefault(BOX_PACKING_MODE)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_1)); +} + +function BoxLayouterOptions(){ + $clinit_BoxLayouterOptions(); +} + +defineClass(991, 1, $intern_90, BoxLayouterOptions); +_.apply_4 = function apply_175(registry){ + $apply_24(registry); +} +; +var ASPECT_RATIO_4, BOX_PACKING_MODE, CONTENT_ALIGNMENT_1, EXPAND_NODES, INTERACTIVE_7, NODE_SIZE_CONSTRAINTS_5, NODE_SIZE_MINIMUM_4, NODE_SIZE_OPTIONS_5, PADDING_5, PADDING_DEFAULT_5, PRIORITY_2, SPACING_NODE_NODE_5; +var Lorg_eclipse_elk_core_options_BoxLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions', 991); +function BoxLayouterOptions$BoxFactory(){ +} + +defineClass(992, 1, {}, BoxLayouterOptions$BoxFactory); +_.create_0 = function create_44(){ + var provider; + return provider = new BoxLayoutProvider , provider; +} +; +_.destroy = function destroy_8(obj){ +} +; +var Lorg_eclipse_elk_core_options_BoxLayouterOptions$BoxFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions/BoxFactory', 992); +function $clinit_ContentAlignment(){ + $clinit_ContentAlignment = emptyMethod; + V_TOP = new ContentAlignment('V_TOP', 0); + V_CENTER = new ContentAlignment('V_CENTER', 1); + V_BOTTOM = new ContentAlignment('V_BOTTOM', 2); + H_LEFT = new ContentAlignment('H_LEFT', 3); + H_CENTER = new ContentAlignment('H_CENTER', 4); + H_RIGHT = new ContentAlignment('H_RIGHT', 5); +} + +function ContentAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_99(name_0){ + $clinit_ContentAlignment(); + return valueOf(($clinit_ContentAlignment$Map() , $MAP_89), name_0); +} + +function values_107(){ + $clinit_ContentAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_37, 298, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]); +} + +defineClass(298, 22, {3:1, 34:1, 22:1, 298:1}, ContentAlignment); +var H_CENTER, H_LEFT, H_RIGHT, V_BOTTOM, V_CENTER, V_TOP; +var Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'ContentAlignment', 298, Ljava_lang_Enum_2_classLit, values_107, valueOf_99); +function $clinit_ContentAlignment$Map(){ + $clinit_ContentAlignment$Map = emptyMethod; + $MAP_89 = createValueOfMap(($clinit_ContentAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_37, 298, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]))); +} + +var $MAP_89; +function $clinit_CoreOptions(){ + $clinit_CoreOptions = emptyMethod; + var all, all0; + ALGORITHM = new Property('org.eclipse.elk.algorithm'); + RESOLVED_ALGORITHM = new Property('org.eclipse.elk.resolvedAlgorithm'); + ALIGNMENT_DEFAULT = ($clinit_Alignment() , AUTOMATIC); + ALIGNMENT_0 = new Property_1('org.eclipse.elk.alignment', ALIGNMENT_DEFAULT); + new ExclusiveBounds$ExclusiveLowerBound; + ASPECT_RATIO_5 = new Property_1('org.eclipse.elk.aspectRatio', null); + BEND_POINTS = new Property('org.eclipse.elk.bendPoints'); + CONTENT_ALIGNMENT_DEFAULT = ($clinit_ContentAlignment() , of_2(V_TOP, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_37, 298, 0, [H_LEFT]))); + CONTENT_ALIGNMENT_2 = new Property_1('org.eclipse.elk.contentAlignment', CONTENT_ALIGNMENT_DEFAULT); + DEBUG_MODE_3 = new Property_1('org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); + DIRECTION_DEFAULT_1 = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION_1 = new Property_1('org.eclipse.elk.direction', DIRECTION_DEFAULT_1); + EDGE_ROUTING_DEFAULT_0 = ($clinit_EdgeRouting() , UNDEFINED_3); + EDGE_ROUTING_0 = new Property_1('org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT_0); + EXPAND_NODES_0 = new Property_1('org.eclipse.elk.expandNodes', false); + HIERARCHY_HANDLING_DEFAULT = ($clinit_HierarchyHandling() , INHERIT); + HIERARCHY_HANDLING_0 = new Property_1('org.eclipse.elk.hierarchyHandling', HIERARCHY_HANDLING_DEFAULT); + PADDING_DEFAULT_6 = new ElkPadding_0(12); + PADDING_6 = new Property_1('org.eclipse.elk.padding', PADDING_DEFAULT_6); + INTERACTIVE_8 = new Property_1('org.eclipse.elk.interactive', false); + INTERACTIVE_LAYOUT_2 = new Property_1('org.eclipse.elk.interactiveLayout', false); + OMIT_NODE_MICRO_LAYOUT_4 = new Property_1('org.eclipse.elk.omitNodeMicroLayout', false); + PORT_CONSTRAINTS_DEFAULT = ($clinit_PortConstraints() , UNDEFINED_4); + PORT_CONSTRAINTS_1 = new Property_1('org.eclipse.elk.portConstraints', PORT_CONSTRAINTS_DEFAULT); + POSITION_2 = new Property('org.eclipse.elk.position'); + PRIORITY_3 = new Property('org.eclipse.elk.priority'); + RANDOM_SEED_1 = new Property('org.eclipse.elk.randomSeed'); + SEPARATE_CONNECTED_COMPONENTS_2 = new Property('org.eclipse.elk.separateConnectedComponents'); + JUNCTION_POINTS_DEFAULT = new KVectorChain; + JUNCTION_POINTS_0 = new Property_1('org.eclipse.elk.junctionPoints', JUNCTION_POINTS_DEFAULT); + COMMENT_BOX_0 = new Property_1('org.eclipse.elk.commentBox', false); + HYPERNODE_0 = new Property_1('org.eclipse.elk.hypernode', false); + new Property('org.eclipse.elk.labelManager'); + MARGINS_DEFAULT = new ElkMargin; + MARGINS_0 = new Property_1('org.eclipse.elk.margins', MARGINS_DEFAULT); + NO_LAYOUT_0 = new Property_1('org.eclipse.elk.noLayout', false); + new ExclusiveBounds$ExclusiveLowerBound; + SCALE_FACTOR = new Property_1('org.eclipse.elk.scaleFactor', 1); + CHILD_AREA_WIDTH = new Property('org.eclipse.elk.childAreaWidth'); + CHILD_AREA_HEIGHT = new Property('org.eclipse.elk.childAreaHeight'); + TOPDOWN_LAYOUT_2 = new Property_1('org.eclipse.elk.topdownLayout', false); + new Property_1('org.eclipse.elk.animate', true); + valueOf_3(0); + new Property_1('org.eclipse.elk.animTimeFactor', valueOf_3(100)); + new Property_1('org.eclipse.elk.layoutAncestors', false); + valueOf_3(0); + new Property_1('org.eclipse.elk.maxAnimTime', valueOf_3(4000)); + valueOf_3(0); + new Property_1('org.eclipse.elk.minAnimTime', valueOf_3(400)); + new Property_1('org.eclipse.elk.progressBar', false); + new Property_1('org.eclipse.elk.validateGraph', false); + new Property_1('org.eclipse.elk.validateOptions', true); + new Property_1('org.eclipse.elk.zoomToFit', false); + BOX_PACKING_MODE_DEFAULT = ($clinit_BoxLayoutProvider$PackingMode() , SIMPLE_1); + BOX_PACKING_MODE_0 = new Property_1('org.eclipse.elk.box.packingMode', BOX_PACKING_MODE_DEFAULT); + SPACING_COMMENT_COMMENT_0 = new Property_1('org.eclipse.elk.spacing.commentComment', 10); + SPACING_COMMENT_NODE_0 = new Property_1('org.eclipse.elk.spacing.commentNode', 10); + SPACING_COMPONENT_COMPONENT_1 = new Property_1('org.eclipse.elk.spacing.componentComponent', 20); + SPACING_EDGE_EDGE_0 = new Property_1('org.eclipse.elk.spacing.edgeEdge', 10); + SPACING_EDGE_LABEL_1 = new Property_1('org.eclipse.elk.spacing.edgeLabel', 2); + SPACING_EDGE_NODE_1 = new Property_1('org.eclipse.elk.spacing.edgeNode', 10); + SPACING_LABEL_LABEL_0 = new Property_1('org.eclipse.elk.spacing.labelLabel', 0); + SPACING_LABEL_NODE_0 = new Property_1('org.eclipse.elk.spacing.labelNode', 5); + SPACING_LABEL_PORT_HORIZONTAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortHorizontal', 1); + SPACING_LABEL_PORT_VERTICAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortVertical', 1); + SPACING_NODE_NODE_6 = new Property_1('org.eclipse.elk.spacing.nodeNode', 20); + SPACING_NODE_SELF_LOOP_0 = new Property_1('org.eclipse.elk.spacing.nodeSelfLoop', 10); + SPACING_PORT_PORT_0 = new Property_1('org.eclipse.elk.spacing.portPort', 10); + SPACING_INDIVIDUAL_0 = new Property('org.eclipse.elk.spacing.individual'); + SPACING_PORTS_SURROUNDING_DEFAULT = new ElkMargin_0; + SPACING_PORTS_SURROUNDING_0 = new Property_1('org.eclipse.elk.spacing.portsSurrounding', SPACING_PORTS_SURROUNDING_DEFAULT); + PARTITIONING_PARTITION_0 = new Property('org.eclipse.elk.partitioning.partition'); + PARTITIONING_ACTIVATE_DEFAULT = false; + PARTITIONING_ACTIVATE_0 = new Property_1('org.eclipse.elk.partitioning.activate', PARTITIONING_ACTIVATE_DEFAULT); + NODE_LABELS_PADDING_DEFAULT = new ElkPadding_0(5); + NODE_LABELS_PADDING_0 = new Property_1('org.eclipse.elk.nodeLabels.padding', NODE_LABELS_PADDING_DEFAULT); + NODE_LABELS_PLACEMENT_DEFAULT = ($clinit_NodeLabelPlacement() , all0 = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0)); + NODE_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.nodeLabels.placement', NODE_LABELS_PLACEMENT_DEFAULT); + PORT_ALIGNMENT_DEFAULT_DEFAULT_0 = ($clinit_PortAlignment() , DISTRIBUTED); + PORT_ALIGNMENT_DEFAULT = new Property_1('org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT_0); + PORT_ALIGNMENT_NORTH_0 = new Property('org.eclipse.elk.portAlignment.north'); + PORT_ALIGNMENT_SOUTH_0 = new Property('org.eclipse.elk.portAlignment.south'); + PORT_ALIGNMENT_WEST_0 = new Property('org.eclipse.elk.portAlignment.west'); + PORT_ALIGNMENT_EAST_0 = new Property('org.eclipse.elk.portAlignment.east'); + NODE_SIZE_CONSTRAINTS_DEFAULT = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + NODE_SIZE_CONSTRAINTS_6 = new Property_1('org.eclipse.elk.nodeSize.constraints', NODE_SIZE_CONSTRAINTS_DEFAULT); + NODE_SIZE_OPTIONS_DEFAULT = of_1(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE)); + NODE_SIZE_OPTIONS_6 = new Property_1('org.eclipse.elk.nodeSize.options', NODE_SIZE_OPTIONS_DEFAULT); + NODE_SIZE_MINIMUM_DEFAULT = new KVector_1(0, 0); + NODE_SIZE_MINIMUM_5 = new Property_1('org.eclipse.elk.nodeSize.minimum', NODE_SIZE_MINIMUM_DEFAULT); + NODE_SIZE_FIXED_GRAPH_SIZE_3 = new Property_1('org.eclipse.elk.nodeSize.fixedGraphSize', false); + EDGE_LABELS_PLACEMENT_DEFAULT = ($clinit_EdgeLabelPlacement() , CENTER_5); + EDGE_LABELS_PLACEMENT_0 = new Property_1('org.eclipse.elk.edgeLabels.placement', EDGE_LABELS_PLACEMENT_DEFAULT); + EDGE_LABELS_INLINE_1 = new Property_1('org.eclipse.elk.edgeLabels.inline', false); + new Property('org.eclipse.elk.font.name'); + valueOf_3(1); + new Property_1('org.eclipse.elk.font.size', null); + PORT_ANCHOR_0 = new Property('org.eclipse.elk.port.anchor'); + PORT_INDEX_0 = new Property('org.eclipse.elk.port.index'); + PORT_SIDE_DEFAULT = ($clinit_PortSide() , UNDEFINED_5); + PORT_SIDE_0 = new Property_1('org.eclipse.elk.port.side', PORT_SIDE_DEFAULT); + PORT_BORDER_OFFSET_0 = new Property('org.eclipse.elk.port.borderOffset'); + PORT_LABELS_PLACEMENT_DEFAULT = ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0)); + PORT_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.portLabels.placement', PORT_LABELS_PLACEMENT_DEFAULT); + PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0 = new Property_1('org.eclipse.elk.portLabels.nextToPortIfPossible', false); + PORT_LABELS_TREAT_AS_GROUP_0 = new Property_1('org.eclipse.elk.portLabels.treatAsGroup', true); + new ExclusiveBounds$ExclusiveLowerBound; + TOPDOWN_SCALE_FACTOR_2 = new Property_1('org.eclipse.elk.topdown.scaleFactor', 1); + TOPDOWN_SIZE_APPROXIMATOR = new Property_1('org.eclipse.elk.topdown.sizeApproximator', null); + TOPDOWN_HIERARCHICAL_NODE_WIDTH_2 = new Property_1('org.eclipse.elk.topdown.hierarchicalNodeWidth', 150); + TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_2 = new Property_1('org.eclipse.elk.topdown.hierarchicalNodeAspectRatio', 1.414); + TOPDOWN_NODE_TYPE = new Property_1('org.eclipse.elk.topdown.nodeType', null); + TOPDOWN_SCALE_CAP = new Property_1('org.eclipse.elk.topdown.scaleCap', 1); + INSIDE_SELF_LOOPS_ACTIVATE_0 = new Property_1('org.eclipse.elk.insideSelfLoops.activate', false); + INSIDE_SELF_LOOPS_YO_0 = new Property_1('org.eclipse.elk.insideSelfLoops.yo', false); + EDGE_THICKNESS_1 = new Property_1('org.eclipse.elk.edge.thickness', 1); + EDGE_TYPE_DEFAULT = ($clinit_EdgeType() , NONE_16); + new Property_1('org.eclipse.elk.edge.type', EDGE_TYPE_DEFAULT); + PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0 = true; + TOPDOWN_SCALE_FACTOR_DEP_TOPDOWN_NODE_TYPE_0 = ($clinit_TopdownNodeTypes() , HIERARCHICAL_NODE); + TOPDOWN_SIZE_APPROXIMATOR_DEP_TOPDOWN_NODE_TYPE_0 = HIERARCHICAL_NODE; + TOPDOWN_SCALE_CAP_DEP_TOPDOWN_NODE_TYPE_0 = HIERARCHICAL_NODE; +} + +function CoreOptions(){ + $clinit_CoreOptions(); +} + +defineClass(699, 1, $intern_90, CoreOptions); +_.apply_4 = function apply_176(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.algorithm'), ''), 'Layout Algorithm'), 'Select a specific layout algorithm.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.resolvedAlgorithm'), ''), 'Resolved Layout Algorithm'), 'Meta data associated with the selected algorithm.'), OBJECT), Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.alignment'), ''), 'Alignment'), 'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'), ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_Alignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.aspectRatio'), ''), 'Aspect Ratio'), 'The desired aspect ratio of the drawing, that is the quotient of width by height.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.bendPoints'), ''), 'Bend Points'), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.contentAlignment'), ''), 'Content Alignment'), 'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'), CONTENT_ALIGNMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.debugMode'), ''), 'Debug Mode'), 'Whether additional debug information shall be generated.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.direction'), ''), 'Direction'), 'Overall direction of edges: horizontal (right / left) or vertical (down / up).'), DIRECTION_DEFAULT_1), ENUM), Lorg_eclipse_elk_core_options_Direction_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeRouting'), ''), 'Edge Routing'), 'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'), EDGE_ROUTING_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.expandNodes'), ''), 'Expand Nodes'), 'If active, nodes are expanded to fill the area of their parent.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hierarchyHandling'), ''), 'Hierarchy Handling'), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), HIERARCHY_HANDLING_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.padding'), ''), 'Padding'), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), PADDING_DEFAULT_6), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactive'), ''), 'Interactive'), 'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactiveLayout'), ''), 'interactive Layout'), 'Whether the graph should be changeable interactively and by setting constraints'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.omitNodeMicroLayout'), ''), 'Omit Node Micro Layout'), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portConstraints'), ''), 'Port Constraints'), 'Defines constraints of the position of the ports of a node.'), PORT_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortConstraints_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.position'), ''), 'Position'), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.priority'), ''), 'Priority'), 'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'), INT), Ljava_lang_Integer_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [EDGES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.randomSeed'), ''), 'Randomization Seed'), 'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.separateConnectedComponents'), ''), 'Separate Connected Components'), 'Whether each connected component should be processed separately.'), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.junctionPoints'), ''), 'Junction Points'), 'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'), JUNCTION_POINTS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.commentBox'), ''), 'Comment Box'), 'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hypernode'), ''), 'Hypernode'), 'Whether the node should be handled as a hypernode.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.labelManager'), ''), 'Label Manager'), "Label managers can shorten labels upon a layout algorithm's request."), OBJECT), Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.margins'), ''), 'Margins'), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), MARGINS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.noLayout'), ''), 'No Layout'), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [EDGES, PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.scaleFactor'), ''), 'Scale Factor'), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.childAreaWidth'), ''), 'Child Area Width'), 'The width of the area occupied by the laid out children of a node.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.childAreaHeight'), ''), 'Child Area Height'), 'The height of the area occupied by the laid out children of a node.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdownLayout'), ''), 'Topdown Layout'), "Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.topdownLayout', 'org.eclipse.elk.topdown.nodeType', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animate'), ''), 'Animate'), 'Whether the shift from the old layout to the new computed layout shall be animated.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animTimeFactor'), ''), 'Animation Time Factor'), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), valueOf_3(100)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layoutAncestors'), ''), 'Layout Ancestors'), 'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.maxAnimTime'), ''), 'Maximal Animation Time'), 'The maximal time for animations, in milliseconds.'), valueOf_3(4000)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.minAnimTime'), ''), 'Minimal Animation Time'), 'The minimal time for animations, in milliseconds.'), valueOf_3(400)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.progressBar'), ''), 'Progress Bar'), 'Whether a progress bar shall be displayed during layout computations.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateGraph'), ''), 'Validate Graph'), 'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateOptions'), ''), 'Validate Options'), 'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.zoomToFit'), ''), 'Zoom to Fit'), 'Whether the zoom level shall be set to view the whole diagram after layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.box.packingMode'), 'box'), 'Box Layout Mode'), 'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'), BOX_PACKING_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentComment'), 'spacing'), 'Comment Comment Spacing'), 'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentNode'), 'spacing'), 'Comment Node Spacing'), 'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.componentComponent'), 'spacing'), 'Components Spacing'), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeEdge'), 'spacing'), 'Edge Spacing'), 'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeLabel'), 'spacing'), 'Edge Label Spacing'), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeNode'), 'spacing'), 'Edge Node Spacing'), 'Spacing to be preserved between nodes and edges.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelLabel'), 'spacing'), 'Label Spacing'), 'Determines the amount of space to be left between two labels of the same graph element.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelNode'), 'spacing'), 'Label Node Spacing'), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortHorizontal'), 'spacing'), 'Horizontal spacing between Label and Port'), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortVertical'), 'spacing'), 'Vertical spacing between Label and Port'), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeNode'), 'spacing'), 'Node Spacing'), 'The minimal distance to be preserved between each two nodes.'), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeSelfLoop'), 'spacing'), 'Node Self Loop Spacing'), 'Spacing to be preserved between a node and its self loops.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portPort'), 'spacing'), 'Port Spacing'), 'Spacing between pairs of ports of the same node.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.individual'), 'spacing'), 'Individual Spacing'), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), OBJECT), Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [EDGES, PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portsSurrounding'), 'spacing'), 'Additional Port Space'), 'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'), SPACING_PORTS_SURROUNDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.partition'), 'partitioning'), 'Layout Partition'), 'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'), INT), Ljava_lang_Integer_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [NODES]))))); + $addDependency(registry, 'org.eclipse.elk.partitioning.partition', 'org.eclipse.elk.partitioning.activate', PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.activate'), 'partitioning'), 'Layout Partitioning'), 'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'), PARTITIONING_ACTIVATE_DEFAULT), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.padding'), 'nodeLabels'), 'Node Label Padding'), 'Define padding for node labels that are placed inside of a node.'), NODE_LABELS_PADDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.placement'), 'nodeLabels'), 'Node Label Placement'), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), NODE_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.default'), 'portAlignment'), 'Port Alignment'), 'Defines the default port distribution for a node. May be overridden for each side individually.'), PORT_ALIGNMENT_DEFAULT_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.north'), 'portAlignment'), 'Port Alignment (North)'), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.south'), 'portAlignment'), 'Port Alignment (South)'), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.west'), 'portAlignment'), 'Port Alignment (West)'), "Defines how ports on the western side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.east'), 'portAlignment'), 'Port Alignment (East)'), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.constraints'), 'nodeSize'), 'Node Size Constraints'), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), NODE_SIZE_CONSTRAINTS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.options'), 'nodeSize'), 'Node Size Options'), 'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'), NODE_SIZE_OPTIONS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeOptions_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.minimum'), 'nodeSize'), 'Node Size Minimum'), 'The minimal size to which a node can be reduced.'), NODE_SIZE_MINIMUM_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.fixedGraphSize'), 'nodeSize'), 'Fixed Graph Size'), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.placement'), 'edgeLabels'), 'Edge Label Placement'), 'Gives a hint on where to put edge labels.'), EDGE_LABELS_PLACEMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.inline'), 'edgeLabels'), 'Inline Edge Labels'), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.name'), 'font'), 'Font Name'), 'Font name used for a label.'), STRING), Ljava_lang_String_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.size'), 'font'), 'Font Size'), 'Font size used for a label.'), INT), Ljava_lang_Integer_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.anchor'), 'port'), 'Port Anchor Offset'), 'The offset to the port position where connections shall be attached.'), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.index'), 'port'), 'Port Index'), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), INT), Ljava_lang_Integer_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.side'), 'port'), 'Port Side'), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), PORT_SIDE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortSide_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.borderOffset'), 'port'), 'Port Border Offset'), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.placement'), 'portLabels'), 'Port Label Placement'), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), PORT_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.nextToPortIfPossible'), 'portLabels'), 'Port Labels Next to Port'), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.treatAsGroup'), 'portLabels'), 'Treat Port Labels as Group'), 'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdown.scaleFactor'), 'topdown'), 'Topdown Scale Factor'), "The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.topdown.scaleFactor', 'org.eclipse.elk.topdown.nodeType', TOPDOWN_SCALE_FACTOR_DEP_TOPDOWN_NODE_TYPE_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdown.sizeApproximator'), 'topdown'), 'Topdown Size Approximator'), 'The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size.'), null), ENUM), Lorg_eclipse_elk_core_options_TopdownSizeApproximator_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.topdown.sizeApproximator', 'org.eclipse.elk.topdown.nodeType', TOPDOWN_SIZE_APPROXIMATOR_DEP_TOPDOWN_NODE_TYPE_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdown.hierarchicalNodeWidth'), 'topdown'), 'Topdown Hierarchical Node Width'), 'The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself.'), 150), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [NODES]))))); + $addDependency(registry, 'org.eclipse.elk.topdown.hierarchicalNodeWidth', 'org.eclipse.elk.topdown.nodeType', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdown.hierarchicalNodeAspectRatio'), 'topdown'), 'Topdown Hierarchical Node Aspect Ratio'), 'The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself.'), 1.414), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_37, 170, 0, [NODES]))))); + $addDependency(registry, 'org.eclipse.elk.topdown.hierarchicalNodeAspectRatio', 'org.eclipse.elk.topdown.nodeType', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdown.nodeType'), 'topdown'), 'Topdown Node Type'), 'The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes.'), null), ENUM), Lorg_eclipse_elk_core_options_TopdownNodeTypes_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.topdown.nodeType', 'org.eclipse.elk.nodeSize.fixedGraphSize', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.topdown.scaleCap'), 'topdown'), 'Topdown Scale Cap'), 'Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes.'), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.topdown.scaleCap', 'org.eclipse.elk.topdown.nodeType', TOPDOWN_SCALE_CAP_DEP_TOPDOWN_NODE_TYPE_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.activate'), 'insideSelfLoops'), 'Activate Inside Self Loops'), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.yo'), 'insideSelfLoops'), 'Inside Self Loop'), 'Whether a self loop should be routed inside a node instead of around that node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.thickness'), 'edge'), 'Edge Thickness'), 'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.type'), 'edge'), 'Edge Type'), 'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'), EDGE_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeType_2_classLit), of_1(EDGES)))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.layered'), 'Layered'), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.orthogonal'), 'Orthogonal'), 'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.force'), 'Force'), 'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.circle'), 'Circle'), 'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.tree'), 'Tree'), 'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.planar'), 'Planar'), 'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.radial'), 'Radial'), 'Radial layout algorithms usually position the nodes of the graph on concentric circles.'))); + $apply_25((new FixedLayouterOptions , registry)); + $apply_24((new BoxLayouterOptions , registry)); + $apply_26((new RandomLayouterOptions , registry)); +} +; +var ALGORITHM, ALIGNMENT_0, ALIGNMENT_DEFAULT, ASPECT_RATIO_5, BEND_POINTS, BOX_PACKING_MODE_0, BOX_PACKING_MODE_DEFAULT, CHILD_AREA_HEIGHT, CHILD_AREA_WIDTH, COMMENT_BOX_0, CONTENT_ALIGNMENT_2, CONTENT_ALIGNMENT_DEFAULT, DEBUG_MODE_3, DIRECTION_1, DIRECTION_DEFAULT_1, EDGE_LABELS_INLINE_1, EDGE_LABELS_PLACEMENT_0, EDGE_LABELS_PLACEMENT_DEFAULT, EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT_0, EDGE_THICKNESS_1, EDGE_TYPE_DEFAULT, EXPAND_NODES_0, HIERARCHY_HANDLING_0, HIERARCHY_HANDLING_DEFAULT, HYPERNODE_0, INSIDE_SELF_LOOPS_ACTIVATE_0, INSIDE_SELF_LOOPS_YO_0, INTERACTIVE_8, INTERACTIVE_LAYOUT_2, JUNCTION_POINTS_0, JUNCTION_POINTS_DEFAULT, MARGINS_0, MARGINS_DEFAULT, NODE_LABELS_PADDING_0, NODE_LABELS_PADDING_DEFAULT, NODE_LABELS_PLACEMENT_5, NODE_LABELS_PLACEMENT_DEFAULT, NODE_SIZE_CONSTRAINTS_6, NODE_SIZE_CONSTRAINTS_DEFAULT, NODE_SIZE_FIXED_GRAPH_SIZE_3, NODE_SIZE_MINIMUM_5, NODE_SIZE_MINIMUM_DEFAULT, NODE_SIZE_OPTIONS_6, NODE_SIZE_OPTIONS_DEFAULT, NO_LAYOUT_0, OMIT_NODE_MICRO_LAYOUT_4, PADDING_6, PADDING_DEFAULT_6, PARTITIONING_ACTIVATE_0, PARTITIONING_ACTIVATE_DEFAULT, PARTITIONING_PARTITION_0, PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0, PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT_0, PORT_ALIGNMENT_EAST_0, PORT_ALIGNMENT_NORTH_0, PORT_ALIGNMENT_SOUTH_0, PORT_ALIGNMENT_WEST_0, PORT_ANCHOR_0, PORT_BORDER_OFFSET_0, PORT_CONSTRAINTS_1, PORT_CONSTRAINTS_DEFAULT, PORT_INDEX_0, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, PORT_LABELS_PLACEMENT_5, PORT_LABELS_PLACEMENT_DEFAULT, PORT_LABELS_TREAT_AS_GROUP_0, PORT_SIDE_0, PORT_SIDE_DEFAULT, POSITION_2, PRIORITY_3, RANDOM_SEED_1, RESOLVED_ALGORITHM, SCALE_FACTOR, SEPARATE_CONNECTED_COMPONENTS_2, SPACING_COMMENT_COMMENT_0, SPACING_COMMENT_NODE_0, SPACING_COMPONENT_COMPONENT_1, SPACING_EDGE_EDGE_0, SPACING_EDGE_LABEL_1, SPACING_EDGE_NODE_1, SPACING_INDIVIDUAL_0, SPACING_LABEL_LABEL_0, SPACING_LABEL_NODE_0, SPACING_LABEL_PORT_HORIZONTAL_0, SPACING_LABEL_PORT_VERTICAL_0, SPACING_NODE_NODE_6, SPACING_NODE_SELF_LOOP_0, SPACING_PORTS_SURROUNDING_0, SPACING_PORTS_SURROUNDING_DEFAULT, SPACING_PORT_PORT_0, TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_2, TOPDOWN_HIERARCHICAL_NODE_WIDTH_2, TOPDOWN_LAYOUT_2, TOPDOWN_NODE_TYPE, TOPDOWN_SCALE_CAP, TOPDOWN_SCALE_CAP_DEP_TOPDOWN_NODE_TYPE_0, TOPDOWN_SCALE_FACTOR_2, TOPDOWN_SCALE_FACTOR_DEP_TOPDOWN_NODE_TYPE_0, TOPDOWN_SIZE_APPROXIMATOR, TOPDOWN_SIZE_APPROXIMATOR_DEP_TOPDOWN_NODE_TYPE_0; +var Lorg_eclipse_elk_core_options_CoreOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'CoreOptions', 699); +function $clinit_Direction_0(){ + $clinit_Direction_0 = emptyMethod; + UNDEFINED_2 = new Direction_0('UNDEFINED', 0); + RIGHT_6 = new Direction_0('RIGHT', 1); + LEFT_6 = new Direction_0('LEFT', 2); + DOWN_1 = new Direction_0('DOWN', 3); + UP_1 = new Direction_0('UP', 4); +} + +function $isHorizontal(this$static){ + return this$static == LEFT_6 || this$static == RIGHT_6; +} + +function $isVertical(this$static){ + return this$static == UP_1 || this$static == DOWN_1; +} + +function $opposite(this$static){ + switch (this$static.ordinal) { + case 2: + return RIGHT_6; + case 1: + return LEFT_6; + case 4: + return DOWN_1; + case 3: + return UP_1; + default:return UNDEFINED_2; + } +} + +function Direction_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_100(name_0){ + $clinit_Direction_0(); + return valueOf(($clinit_Direction$Map_0() , $MAP_90), name_0); +} + +function values_108(){ + $clinit_Direction_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_37, 88, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]); +} + +defineClass(88, 22, {3:1, 34:1, 22:1, 88:1}, Direction_0); +var DOWN_1, LEFT_6, RIGHT_6, UNDEFINED_2, UP_1; +var Lorg_eclipse_elk_core_options_Direction_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Direction', 88, Ljava_lang_Enum_2_classLit, values_108, valueOf_100); +function $clinit_Direction$Map_0(){ + $clinit_Direction$Map_0 = emptyMethod; + $MAP_90 = createValueOfMap(($clinit_Direction_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_37, 88, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]))); +} + +var $MAP_90; +function $clinit_EdgeLabelPlacement(){ + $clinit_EdgeLabelPlacement = emptyMethod; + CENTER_5 = new EdgeLabelPlacement('CENTER', 0); + HEAD = new EdgeLabelPlacement('HEAD', 1); + TAIL = new EdgeLabelPlacement('TAIL', 2); +} + +function EdgeLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_101(name_0){ + $clinit_EdgeLabelPlacement(); + return valueOf(($clinit_EdgeLabelPlacement$Map() , $MAP_91), name_0); +} + +function values_109(){ + $clinit_EdgeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_37, 278, 0, [CENTER_5, HEAD, TAIL]); +} + +defineClass(278, 22, {3:1, 34:1, 22:1, 278:1}, EdgeLabelPlacement); +var CENTER_5, HEAD, TAIL; +var Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeLabelPlacement', 278, Ljava_lang_Enum_2_classLit, values_109, valueOf_101); +function $clinit_EdgeLabelPlacement$Map(){ + $clinit_EdgeLabelPlacement$Map = emptyMethod; + $MAP_91 = createValueOfMap(($clinit_EdgeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_37, 278, 0, [CENTER_5, HEAD, TAIL]))); +} + +var $MAP_91; +function $clinit_EdgeRouting(){ + $clinit_EdgeRouting = emptyMethod; + UNDEFINED_3 = new EdgeRouting('UNDEFINED', 0); + POLYLINE = new EdgeRouting('POLYLINE', 1); + ORTHOGONAL = new EdgeRouting('ORTHOGONAL', 2); + SPLINES = new EdgeRouting('SPLINES', 3); +} + +function EdgeRouting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_102(name_0){ + $clinit_EdgeRouting(); + return valueOf(($clinit_EdgeRouting$Map() , $MAP_92), name_0); +} + +function values_110(){ + $clinit_EdgeRouting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_37, 223, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]); +} + +defineClass(223, 22, {3:1, 34:1, 22:1, 223:1}, EdgeRouting); +var ORTHOGONAL, POLYLINE, SPLINES, UNDEFINED_3; +var Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeRouting', 223, Ljava_lang_Enum_2_classLit, values_110, valueOf_102); +function $clinit_EdgeRouting$Map(){ + $clinit_EdgeRouting$Map = emptyMethod; + $MAP_92 = createValueOfMap(($clinit_EdgeRouting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_37, 223, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]))); +} + +var $MAP_92; +function $clinit_EdgeType(){ + $clinit_EdgeType = emptyMethod; + NONE_16 = new EdgeType('NONE', 0); + DIRECTED = new EdgeType('DIRECTED', 1); + UNDIRECTED = new EdgeType('UNDIRECTED', 2); + ASSOCIATION = new EdgeType('ASSOCIATION', 3); + GENERALIZATION = new EdgeType('GENERALIZATION', 4); + DEPENDENCY = new EdgeType('DEPENDENCY', 5); +} + +function EdgeType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_103(name_0){ + $clinit_EdgeType(); + return valueOf(($clinit_EdgeType$Map() , $MAP_93), name_0); +} + +function values_111(){ + $clinit_EdgeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_37, 321, 0, [NONE_16, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]); +} + +defineClass(321, 22, {3:1, 34:1, 22:1, 321:1}, EdgeType); +var ASSOCIATION, DEPENDENCY, DIRECTED, GENERALIZATION, NONE_16, UNDIRECTED; +var Lorg_eclipse_elk_core_options_EdgeType_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeType', 321, Ljava_lang_Enum_2_classLit, values_111, valueOf_103); +function $clinit_EdgeType$Map(){ + $clinit_EdgeType$Map = emptyMethod; + $MAP_93 = createValueOfMap(($clinit_EdgeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_37, 321, 0, [NONE_16, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]))); +} + +var $MAP_93; +function $clinit_FixedLayouterOptions(){ + $clinit_FixedLayouterOptions = emptyMethod; + PADDING_DEFAULT_7 = new ElkPadding_0(15); + PADDING_7 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_7); + POSITION_3 = POSITION_2; + BEND_POINTS_0 = BEND_POINTS; + NODE_SIZE_CONSTRAINTS_7 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_6 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_FIXED_GRAPH_SIZE_4 = NODE_SIZE_FIXED_GRAPH_SIZE_3; +} + +function $apply_25(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.fixed'), 'ELK Fixed'), 'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'), new FixedLayouterOptions$FixedFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.padding', PADDING_DEFAULT_7); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.position', $getDefault(POSITION_3)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.bendPoints', $getDefault(BEND_POINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_7)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_6)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_4)); +} + +function FixedLayouterOptions(){ + $clinit_FixedLayouterOptions(); +} + +defineClass(989, 1, $intern_90, FixedLayouterOptions); +_.apply_4 = function apply_177(registry){ + $apply_25(registry); +} +; +var BEND_POINTS_0, NODE_SIZE_CONSTRAINTS_7, NODE_SIZE_FIXED_GRAPH_SIZE_4, NODE_SIZE_MINIMUM_6, PADDING_7, PADDING_DEFAULT_7, POSITION_3; +var Lorg_eclipse_elk_core_options_FixedLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions', 989); +function FixedLayouterOptions$FixedFactory(){ +} + +defineClass(990, 1, {}, FixedLayouterOptions$FixedFactory); +_.create_0 = function create_45(){ + var provider; + return provider = new FixedLayoutProvider , provider; +} +; +_.destroy = function destroy_9(obj){ +} +; +var Lorg_eclipse_elk_core_options_FixedLayouterOptions$FixedFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions/FixedFactory', 990); +function $clinit_HierarchyHandling(){ + $clinit_HierarchyHandling = emptyMethod; + INHERIT = new HierarchyHandling('INHERIT', 0); + INCLUDE_CHILDREN = new HierarchyHandling('INCLUDE_CHILDREN', 1); + SEPARATE_CHILDREN = new HierarchyHandling('SEPARATE_CHILDREN', 2); +} + +function HierarchyHandling(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_104(name_0){ + $clinit_HierarchyHandling(); + return valueOf(($clinit_HierarchyHandling$Map() , $MAP_94), name_0); +} + +function values_112(){ + $clinit_HierarchyHandling(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_37, 346, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]); +} + +defineClass(346, 22, {3:1, 34:1, 22:1, 346:1}, HierarchyHandling); +var INCLUDE_CHILDREN, INHERIT, SEPARATE_CHILDREN; +var Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit = createForEnum('org.eclipse.elk.core.options', 'HierarchyHandling', 346, Ljava_lang_Enum_2_classLit, values_112, valueOf_104); +function $clinit_HierarchyHandling$Map(){ + $clinit_HierarchyHandling$Map = emptyMethod; + $MAP_94 = createValueOfMap(($clinit_HierarchyHandling() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_37, 346, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]))); +} + +var $MAP_94; +function $clinit_LabelSide(){ + $clinit_LabelSide = emptyMethod; + UNKNOWN = new LabelSide('UNKNOWN', 0); + ABOVE = new LabelSide('ABOVE', 1); + BELOW = new LabelSide('BELOW', 2); + INLINE = new LabelSide('INLINE', 3); + new Property_0('org.eclipse.elk.labelSide', UNKNOWN); +} + +function $opposite_0(this$static){ + switch (this$static.ordinal) { + case 1: + return BELOW; + case 2: + return ABOVE; + case 3: + return INLINE; + default:return UNKNOWN; + } +} + +function LabelSide(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_105(name_0){ + $clinit_LabelSide(); + return valueOf(($clinit_LabelSide$Map() , $MAP_95), name_0); +} + +function values_113(){ + $clinit_LabelSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_37, 291, 0, [UNKNOWN, ABOVE, BELOW, INLINE]); +} + +defineClass(291, 22, {3:1, 34:1, 22:1, 291:1}, LabelSide); +var ABOVE, BELOW, INLINE, UNKNOWN; +var Lorg_eclipse_elk_core_options_LabelSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'LabelSide', 291, Ljava_lang_Enum_2_classLit, values_113, valueOf_105); +function $clinit_LabelSide$Map(){ + $clinit_LabelSide$Map = emptyMethod; + $MAP_95 = createValueOfMap(($clinit_LabelSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_37, 291, 0, [UNKNOWN, ABOVE, BELOW, INLINE]))); +} + +var $MAP_95; +function $clinit_NodeLabelPlacement(){ + $clinit_NodeLabelPlacement = emptyMethod; + H_LEFT_0 = new NodeLabelPlacement('H_LEFT', 0); + H_CENTER_0 = new NodeLabelPlacement('H_CENTER', 1); + H_RIGHT_0 = new NodeLabelPlacement('H_RIGHT', 2); + V_TOP_0 = new NodeLabelPlacement('V_TOP', 3); + V_CENTER_0 = new NodeLabelPlacement('V_CENTER', 4); + V_BOTTOM_0 = new NodeLabelPlacement('V_BOTTOM', 5); + INSIDE = new NodeLabelPlacement('INSIDE', 6); + OUTSIDE = new NodeLabelPlacement('OUTSIDE', 7); + H_PRIORITY = new NodeLabelPlacement('H_PRIORITY', 8); +} + +function NodeLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isValid_0(placement){ + $clinit_NodeLabelPlacement(); + var validHorizontal, validInsideOutside, validVertical; + validInsideOutside = of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [OUTSIDE])); + if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { + return false; + } + validHorizontal = of_2(H_LEFT_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_CENTER_0, H_RIGHT_0])); + if ($size_1(intersection_0(validHorizontal, placement)) > 1) { + return false; + } + validVertical = of_2(V_TOP_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [V_CENTER_0, V_BOTTOM_0])); + if ($size_1(intersection_0(validVertical, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_106(name_0){ + $clinit_NodeLabelPlacement(); + return valueOf(($clinit_NodeLabelPlacement$Map() , $MAP_96), name_0); +} + +function values_114(){ + $clinit_NodeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]); +} + +defineClass(95, 22, {3:1, 34:1, 22:1, 95:1}, NodeLabelPlacement); +var H_CENTER_0, H_LEFT_0, H_PRIORITY, H_RIGHT_0, INSIDE, OUTSIDE, V_BOTTOM_0, V_CENTER_0, V_TOP_0; +var Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'NodeLabelPlacement', 95, Ljava_lang_Enum_2_classLit, values_114, valueOf_106); +function $clinit_NodeLabelPlacement$Map(){ + $clinit_NodeLabelPlacement$Map = emptyMethod; + $MAP_96 = createValueOfMap(($clinit_NodeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_37, 95, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]))); +} + +var $MAP_96; +function $clinit_PortAlignment(){ + $clinit_PortAlignment = emptyMethod; + DISTRIBUTED = new PortAlignment('DISTRIBUTED', 0); + JUSTIFIED = new PortAlignment('JUSTIFIED', 1); + BEGIN_0 = new PortAlignment('BEGIN', 2); + CENTER_6 = new PortAlignment('CENTER', 3); + END_1 = new PortAlignment('END', 4); +} + +function PortAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_107(name_0){ + $clinit_PortAlignment(); + return valueOf(($clinit_PortAlignment$Map() , $MAP_97), name_0); +} + +function values_115(){ + $clinit_PortAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_37, 256, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]); +} + +defineClass(256, 22, {3:1, 34:1, 22:1, 256:1}, PortAlignment); +var BEGIN_0, CENTER_6, DISTRIBUTED, END_1, JUSTIFIED; +var Lorg_eclipse_elk_core_options_PortAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortAlignment', 256, Ljava_lang_Enum_2_classLit, values_115, valueOf_107); +function $clinit_PortAlignment$Map(){ + $clinit_PortAlignment$Map = emptyMethod; + $MAP_97 = createValueOfMap(($clinit_PortAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_37, 256, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]))); +} + +var $MAP_97; +function $clinit_PortConstraints(){ + $clinit_PortConstraints = emptyMethod; + UNDEFINED_4 = new PortConstraints('UNDEFINED', 0); + FREE = new PortConstraints('FREE', 1); + FIXED_SIDE = new PortConstraints('FIXED_SIDE', 2); + FIXED_ORDER = new PortConstraints('FIXED_ORDER', 3); + FIXED_RATIO = new PortConstraints('FIXED_RATIO', 4); + FIXED_POS = new PortConstraints('FIXED_POS', 5); +} + +function $isOrderFixed(this$static){ + return this$static == FIXED_ORDER || this$static == FIXED_RATIO || this$static == FIXED_POS; +} + +function $isSideFixed(this$static){ + return this$static != FREE && this$static != UNDEFINED_4; +} + +function PortConstraints(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_108(name_0){ + $clinit_PortConstraints(); + return valueOf(($clinit_PortConstraints$Map() , $MAP_98), name_0); +} + +function values_116(){ + $clinit_PortConstraints(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_37, 101, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]); +} + +defineClass(101, 22, {3:1, 34:1, 22:1, 101:1}, PortConstraints); +var FIXED_ORDER, FIXED_POS, FIXED_RATIO, FIXED_SIDE, FREE, UNDEFINED_4; +var Lorg_eclipse_elk_core_options_PortConstraints_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortConstraints', 101, Ljava_lang_Enum_2_classLit, values_116, valueOf_108); +function $clinit_PortConstraints$Map(){ + $clinit_PortConstraints$Map = emptyMethod; + $MAP_98 = createValueOfMap(($clinit_PortConstraints() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_37, 101, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]))); +} + +var $MAP_98; +function $clinit_PortLabelPlacement(){ + $clinit_PortLabelPlacement = emptyMethod; + OUTSIDE_0 = new PortLabelPlacement('OUTSIDE', 0); + INSIDE_0 = new PortLabelPlacement('INSIDE', 1); + NEXT_TO_PORT_IF_POSSIBLE_0 = new PortLabelPlacement('NEXT_TO_PORT_IF_POSSIBLE', 2); + ALWAYS_SAME_SIDE = new PortLabelPlacement('ALWAYS_SAME_SIDE', 3); + ALWAYS_OTHER_SAME_SIDE = new PortLabelPlacement('ALWAYS_OTHER_SAME_SIDE', 4); + SPACE_EFFICIENT_0 = new PortLabelPlacement('SPACE_EFFICIENT', 5); +} + +function PortLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isFixed(placement){ + $clinit_PortLabelPlacement(); + return !placement.contains(INSIDE_0) && !placement.contains(OUTSIDE_0); +} + +function isValid_1(placement){ + $clinit_PortLabelPlacement(); + var validInsideOutside, validPosition; + validInsideOutside = of_2(INSIDE_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_37, 279, 0, [OUTSIDE_0])); + if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { + return false; + } + validPosition = of_2(ALWAYS_SAME_SIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_37, 279, 0, [ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0])); + if ($size_1(intersection_0(validPosition, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_109(name_0){ + $clinit_PortLabelPlacement(); + return valueOf(($clinit_PortLabelPlacement$Map() , $MAP_99), name_0); +} + +function values_117(){ + $clinit_PortLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_37, 279, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]); +} + +defineClass(279, 22, {3:1, 34:1, 22:1, 279:1}, PortLabelPlacement); +var ALWAYS_OTHER_SAME_SIDE, ALWAYS_SAME_SIDE, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, OUTSIDE_0, SPACE_EFFICIENT_0; +var Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortLabelPlacement', 279, Ljava_lang_Enum_2_classLit, values_117, valueOf_109); +function $clinit_PortLabelPlacement$Map(){ + $clinit_PortLabelPlacement$Map = emptyMethod; + $MAP_99 = createValueOfMap(($clinit_PortLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_37, 279, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]))); +} + +var $MAP_99; +function $clinit_PortSide(){ + $clinit_PortSide = emptyMethod; + var all; + UNDEFINED_5 = new PortSide('UNDEFINED', 0); + NORTH_3 = new PortSide('NORTH', 1); + EAST_2 = new PortSide('EAST', 2); + SOUTH_2 = new PortSide('SOUTH', 3); + WEST_2 = new PortSide('WEST', 4); + SIDES_NONE = ($clinit_Collections() , new Collections$UnmodifiableSet((all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)))); + SIDES_NORTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, []))); + SIDES_EAST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, []))); + SIDES_SOUTH = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, []))); + SIDES_WEST = asImmutable(of_2(WEST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, []))); + SIDES_NORTH_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [SOUTH_2]))); + SIDES_EAST_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [WEST_2]))); + SIDES_NORTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [WEST_2]))); + SIDES_NORTH_EAST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [EAST_2]))); + SIDES_SOUTH_WEST = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [WEST_2]))); + SIDES_EAST_SOUTH = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [SOUTH_2]))); + SIDES_NORTH_EAST_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [EAST_2, WEST_2]))); + SIDES_EAST_SOUTH_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [SOUTH_2, WEST_2]))); + SIDES_NORTH_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [SOUTH_2, WEST_2]))); + SIDES_NORTH_EAST_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [EAST_2, SOUTH_2]))); + SIDES_NORTH_EAST_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [EAST_2, SOUTH_2, WEST_2]))); +} + +function $left(this$static){ + switch (this$static.ordinal) { + case 1: + return WEST_2; + case 2: + return NORTH_3; + case 3: + return EAST_2; + case 4: + return SOUTH_2; + default:return UNDEFINED_5; + } +} + +function $opposed(this$static){ + switch (this$static.ordinal) { + case 1: + return SOUTH_2; + case 2: + return WEST_2; + case 3: + return NORTH_3; + case 4: + return EAST_2; + default:return UNDEFINED_5; + } +} + +function $right(this$static){ + switch (this$static.ordinal) { + case 1: + return EAST_2; + case 2: + return SOUTH_2; + case 3: + return WEST_2; + case 4: + return NORTH_3; + default:return UNDEFINED_5; + } +} + +function PortSide(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function fromDirection(direction){ + $clinit_PortSide(); + switch (direction.ordinal) { + case 4: + return NORTH_3; + case 1: + return EAST_2; + case 3: + return SOUTH_2; + case 2: + return WEST_2; + default:return UNDEFINED_5; + } +} + +function valueOf_110(name_0){ + $clinit_PortSide(); + return valueOf(($clinit_PortSide$Map() , $MAP_100), name_0); +} + +function values_118(){ + $clinit_PortSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]); +} + +defineClass(64, 22, {3:1, 34:1, 22:1, 64:1}, PortSide); +var EAST_2, NORTH_3, SIDES_EAST, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST, SIDES_EAST_WEST, SIDES_NONE, SIDES_NORTH, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST, SIDES_SOUTH, SIDES_SOUTH_WEST, SIDES_WEST, SOUTH_2, UNDEFINED_5, WEST_2; +var Lorg_eclipse_elk_core_options_PortSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortSide', 64, Ljava_lang_Enum_2_classLit, values_118, valueOf_110); +function $clinit_PortSide$Map(){ + $clinit_PortSide$Map = emptyMethod; + $MAP_100 = createValueOfMap(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 64, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))); +} + +var $MAP_100; +function $clinit_RandomLayouterOptions(){ + $clinit_RandomLayouterOptions = emptyMethod; + PADDING_DEFAULT_8 = new ElkPadding_0(15); + PADDING_8 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_8); + SPACING_NODE_NODE_7 = new Property_2(SPACING_NODE_NODE_6, 15); + RANDOM_SEED_2 = new Property_2(RANDOM_SEED_1, valueOf_3(0)); + ASPECT_RATIO_6 = new Property_2(ASPECT_RATIO_5, $intern_102); +} + +function $apply_26(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.random'), 'ELK Randomizer'), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new RandomLayouterOptions$RandomFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.padding', PADDING_DEFAULT_8); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.randomSeed', valueOf_3(0)); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.aspectRatio', $intern_102); +} + +function RandomLayouterOptions(){ + $clinit_RandomLayouterOptions(); +} + +defineClass(993, 1, $intern_90, RandomLayouterOptions); +_.apply_4 = function apply_178(registry){ + $apply_26(registry); +} +; +var ASPECT_RATIO_6, PADDING_8, PADDING_DEFAULT_8, RANDOM_SEED_2, SPACING_NODE_NODE_7; +var Lorg_eclipse_elk_core_options_RandomLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions', 993); +function RandomLayouterOptions$RandomFactory(){ +} + +defineClass(994, 1, {}, RandomLayouterOptions$RandomFactory); +_.create_0 = function create_46(){ + var provider; + return provider = new RandomLayoutProvider , provider; +} +; +_.destroy = function destroy_10(obj){ +} +; +var Lorg_eclipse_elk_core_options_RandomLayouterOptions$RandomFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions/RandomFactory', 994); +function $clinit_SizeConstraint(){ + $clinit_SizeConstraint = emptyMethod; + PORTS_0 = new SizeConstraint('PORTS', 0); + PORT_LABELS = new SizeConstraint('PORT_LABELS', 1); + NODE_LABELS = new SizeConstraint('NODE_LABELS', 2); + MINIMUM_SIZE = new SizeConstraint('MINIMUM_SIZE', 3); +} + +function SizeConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_111(name_0){ + $clinit_SizeConstraint(); + return valueOf(($clinit_SizeConstraint$Map() , $MAP_101), name_0); +} + +function values_119(){ + $clinit_SizeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_37, 386, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]); +} + +defineClass(386, 22, {3:1, 34:1, 22:1, 386:1}, SizeConstraint); +var MINIMUM_SIZE, NODE_LABELS, PORTS_0, PORT_LABELS; +var Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeConstraint', 386, Ljava_lang_Enum_2_classLit, values_119, valueOf_111); +function $clinit_SizeConstraint$Map(){ + $clinit_SizeConstraint$Map = emptyMethod; + $MAP_101 = createValueOfMap(($clinit_SizeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_37, 386, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]))); +} + +var $MAP_101; +function $clinit_SizeOptions(){ + $clinit_SizeOptions = emptyMethod; + DEFAULT_MINIMUM_SIZE = new SizeOptions('DEFAULT_MINIMUM_SIZE', 0); + MINIMUM_SIZE_ACCOUNTS_FOR_PADDING = new SizeOptions('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING', 1); + COMPUTE_PADDING = new SizeOptions('COMPUTE_PADDING', 2); + OUTSIDE_NODE_LABELS_OVERHANG = new SizeOptions('OUTSIDE_NODE_LABELS_OVERHANG', 3); + PORTS_OVERHANG = new SizeOptions('PORTS_OVERHANG', 4); + UNIFORM_PORT_SPACING = new SizeOptions('UNIFORM_PORT_SPACING', 5); + SPACE_EFFICIENT_PORT_LABELS = new SizeOptions('SPACE_EFFICIENT_PORT_LABELS', 6); + FORCE_TABULAR_NODE_LABELS = new SizeOptions('FORCE_TABULAR_NODE_LABELS', 7); + ASYMMETRICAL = new SizeOptions('ASYMMETRICAL', 8); +} + +function SizeOptions(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_112(name_0){ + $clinit_SizeOptions(); + return valueOf(($clinit_SizeOptions$Map() , $MAP_102), name_0); +} + +function values_120(){ + $clinit_SizeOptions(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_37, 264, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]); +} + +defineClass(264, 22, {3:1, 34:1, 22:1, 264:1}, SizeOptions); +var ASYMMETRICAL, COMPUTE_PADDING, DEFAULT_MINIMUM_SIZE, FORCE_TABULAR_NODE_LABELS, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, SPACE_EFFICIENT_PORT_LABELS, UNIFORM_PORT_SPACING; +var Lorg_eclipse_elk_core_options_SizeOptions_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeOptions', 264, Ljava_lang_Enum_2_classLit, values_120, valueOf_112); +function $clinit_SizeOptions$Map(){ + $clinit_SizeOptions$Map = emptyMethod; + $MAP_102 = createValueOfMap(($clinit_SizeOptions() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_37, 264, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]))); +} + +var $MAP_102; +function $clinit_TopdownNodeTypes(){ + $clinit_TopdownNodeTypes = emptyMethod; + PARALLEL_NODE = new TopdownNodeTypes('PARALLEL_NODE', 0); + HIERARCHICAL_NODE = new TopdownNodeTypes('HIERARCHICAL_NODE', 1); + ROOT_NODE_0 = new TopdownNodeTypes('ROOT_NODE', 2); +} + +function TopdownNodeTypes(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_113(name_0){ + $clinit_TopdownNodeTypes(); + return valueOf(($clinit_TopdownNodeTypes$Map() , $MAP_103), name_0); +} + +function values_121(){ + $clinit_TopdownNodeTypes(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_TopdownNodeTypes_2_classLit, 1), $intern_37, 280, 0, [PARALLEL_NODE, HIERARCHICAL_NODE, ROOT_NODE_0]); +} + +defineClass(280, 22, {3:1, 34:1, 22:1, 280:1}, TopdownNodeTypes); +var HIERARCHICAL_NODE, PARALLEL_NODE, ROOT_NODE_0; +var Lorg_eclipse_elk_core_options_TopdownNodeTypes_2_classLit = createForEnum('org.eclipse.elk.core.options', 'TopdownNodeTypes', 280, Ljava_lang_Enum_2_classLit, values_121, valueOf_113); +function $clinit_TopdownNodeTypes$Map(){ + $clinit_TopdownNodeTypes$Map = emptyMethod; + $MAP_103 = createValueOfMap(($clinit_TopdownNodeTypes() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_TopdownNodeTypes_2_classLit, 1), $intern_37, 280, 0, [PARALLEL_NODE, HIERARCHICAL_NODE, ROOT_NODE_0]))); +} + +var $MAP_103; +function $clinit_TopdownSizeApproximator(){ + $clinit_TopdownSizeApproximator = emptyMethod; + COUNT_CHILDREN = new TopdownSizeApproximator$1; + LOOKAHEAD_LAYOUT = new TopdownSizeApproximator$2; +} + +function TopdownSizeApproximator(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_114(name_0){ + $clinit_TopdownSizeApproximator(); + return valueOf(($clinit_TopdownSizeApproximator$Map() , $MAP_104), name_0); +} + +function values_122(){ + $clinit_TopdownSizeApproximator(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_TopdownSizeApproximator_2_classLit, 1), $intern_37, 347, 0, [COUNT_CHILDREN, LOOKAHEAD_LAYOUT]); +} + +defineClass(347, 22, $intern_136); +var COUNT_CHILDREN, LOOKAHEAD_LAYOUT; +var Lorg_eclipse_elk_core_options_TopdownSizeApproximator_2_classLit = createForEnum('org.eclipse.elk.core.options', 'TopdownSizeApproximator', 347, Ljava_lang_Enum_2_classLit, values_122, valueOf_114); +function $getSize(node){ + var size_0; + size_0 = $doubleValue(castToDouble($getProperty_0(node, ($clinit_CoreOptions() , TOPDOWN_HIERARCHICAL_NODE_WIDTH_2)))) * $wnd.Math.sqrt((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0); + return new KVector_1(size_0, size_0 / $doubleValue(castToDouble($getProperty_0(node, TOPDOWN_HIERARCHICAL_NODE_ASPECT_RATIO_2)))); +} + +function TopdownSizeApproximator$1(){ + TopdownSizeApproximator.call(this, 'COUNT_CHILDREN', 0); +} + +defineClass(987, 347, $intern_136, TopdownSizeApproximator$1); +_.getSize_0 = function getSize_1(node){ + return $getSize(node); +} +; +var Lorg_eclipse_elk_core_options_TopdownSizeApproximator$1_2_classLit = createForEnum('org.eclipse.elk.core.options', 'TopdownSizeApproximator/1', 987, Lorg_eclipse_elk_core_options_TopdownSizeApproximator_2_classLit, null, null); +function TopdownSizeApproximator$2(){ + TopdownSizeApproximator.call(this, 'LOOKAHEAD_LAYOUT', 1); +} + +defineClass(988, 347, $intern_136, TopdownSizeApproximator$2); +_.getSize_0 = function getSize_2(originalGraph){ + var algorithmData, baseSize, child, child$iterator, child$iterator0, childAreaDesiredAspectRatio, childAreaDesiredHeight, childAreaDesiredWidth, edge, edge$iterator, elkEdge, elkNode, elkNode0, exception, layoutProvider, minHeight, minWidth, newChild, newEdge, newSrc, newTar, node, oldToNewNodeMap, padding, size_0; + algorithmData = castTo($getProperty_0(originalGraph, ($clinit_CoreOptions() , RESOLVED_ALGORITHM)), 143); + node = ($clinit_ElkGraphFactory() , elkNode0 = new ElkNodeImpl , elkNode0); + $copyProperties_0(node, originalGraph); + oldToNewNodeMap = new HashMap; + for (child$iterator0 = new AbstractEList$EIterator((!originalGraph.children && (originalGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, originalGraph, 10, 11)) , originalGraph.children)); child$iterator0.cursor != child$iterator0.this$01_2.size_1();) { + child = castTo($doNext(child$iterator0), 27); + newChild = (elkNode = new ElkNodeImpl , elkNode); + $setParent_2(newChild, node); + $copyProperties_0(newChild, child); + size_0 = $getSize(child); + $setDimensions_0(newChild, $wnd.Math.max(child.width_0, size_0.x_0), $wnd.Math.max(child.height, size_0.y_0)); + $put_9(oldToNewNodeMap.hashCodeMap, child, newChild); + } + for (child$iterator = new AbstractEList$EIterator((!originalGraph.children && (originalGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, originalGraph, 10, 11)) , originalGraph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + for (edge$iterator = new AbstractEList$EIterator((!child.outgoingEdges && (child.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, child, 7, 4)) , child.outgoingEdges)); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 74); + newSrc = castTo(getEntryValueOrNull($getEntry_0(oldToNewNodeMap.hashCodeMap, child)), 27); + newTar = castTo($get_10(oldToNewNodeMap, $get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0)), 27); + newEdge = (elkEdge = new ElkEdgeImpl , elkEdge); + $add_21((!newEdge.sources && (newEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, newEdge, 4, 7)) , newEdge.sources), newSrc); + $add_21((!newEdge.targets && (newEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, newEdge, 5, 8)) , newEdge.targets), newTar); + $setContainingNode(newEdge, $getParent_2(newSrc)); + $copyProperties_0(newEdge, edge); + } + } + layoutProvider = castTo($fetch(algorithmData.providerPool), 205); + try { + layoutProvider.layout(node, new NullElkProgressMonitor); + $release(algorithmData.providerPool, layoutProvider); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + exception = $e0; + throw toJs(exception); + } + else + throw toJs($e0); + } + $hasProperty_0(node, CHILD_AREA_WIDTH) || $hasProperty_0(node, CHILD_AREA_HEIGHT) || computeChildAreaDimensions(node); + childAreaDesiredWidth = $doubleValue(castToDouble($getProperty_0(node, CHILD_AREA_WIDTH))); + childAreaDesiredHeight = $doubleValue(castToDouble($getProperty_0(node, CHILD_AREA_HEIGHT))); + childAreaDesiredAspectRatio = childAreaDesiredWidth / childAreaDesiredHeight; + baseSize = $doubleValue(castToDouble($getProperty_0(node, TOPDOWN_HIERARCHICAL_NODE_WIDTH_2))) * $wnd.Math.sqrt((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0); + padding = castTo($getProperty_0(node, PADDING_6), 107); + minWidth = padding.left + padding.right + 1; + minHeight = padding.top_0 + padding.bottom + 1; + return new KVector_1($wnd.Math.max(minWidth, baseSize), $wnd.Math.max(minHeight, baseSize / childAreaDesiredAspectRatio)); +} +; +var Lorg_eclipse_elk_core_options_TopdownSizeApproximator$2_2_classLit = createForEnum('org.eclipse.elk.core.options', 'TopdownSizeApproximator/2', 988, Lorg_eclipse_elk_core_options_TopdownSizeApproximator_2_classLit, null, null); +function $clinit_TopdownSizeApproximator$Map(){ + $clinit_TopdownSizeApproximator$Map = emptyMethod; + $MAP_104 = createValueOfMap(($clinit_TopdownSizeApproximator() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_TopdownSizeApproximator_2_classLit, 1), $intern_37, 347, 0, [COUNT_CHILDREN, LOOKAHEAD_LAYOUT]))); +} + +var $MAP_104; +function $begin(this$static, name_0, thetotalWork){ + if (this$static.closed_0) { + throw toJs(new IllegalStateException_0('The task is already done.')); + } + else if (this$static.taskName != null) { + return false; + } + else { + this$static.taskName = name_0; + this$static.totalWork = thetotalWork; + this$static.recordExecutionTime && (this$static.startTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_46))); + return true; + } +} + +function $doSubTask(this$static, maxHierarchyLevels){ + var newMaxHierarchyLevels; + newMaxHierarchyLevels = maxHierarchyLevels > 0?maxHierarchyLevels - 1:maxHierarchyLevels; + return $withExecutionTimeMeasurement($withLogPersistence($withLogging($withMaxHierarchyLevels(new BasicProgressMonitor, newMaxHierarchyLevels), this$static.recordLogs), this$static.persistLogs), this$static.recordExecutionTime); +} + +function $done_0(this$static){ + var endTime; + if (this$static.taskName == null) { + throw toJs(new IllegalStateException_0('The task has not begun yet.')); + } + if (!this$static.closed_0) { + if (this$static.recordExecutionTime) { + endTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_46)); + this$static.totalTime = toDouble_0(sub_2(endTime, this$static.startTime)) * 1.0E-9; + } + this$static.completedWork < this$static.totalWork && $internalWorked(this$static, this$static.totalWork - this$static.completedWork); + this$static.closed_0 = true; + } +} + +function $internalWorked(this$static, work){ + if (this$static.totalWork > 0 && this$static.completedWork < this$static.totalWork) { + this$static.completedWork += work; + !!this$static.parentMonitor && this$static.parentMonitor.currentChildWork > 0 && this$static.maxLevels != 0 && $internalWorked(this$static.parentMonitor, work / this$static.totalWork * this$static.parentMonitor.currentChildWork); + } +} + +function $logGraph(this$static, object, graphType){ + var loggedGraph; + if (this$static.recordLogs && !!object && !!graphType) { + loggedGraph = new LoggedGraph; + $add_3(this$static.logGraphs, loggedGraph); + } +} + +function $withExecutionTimeMeasurement(this$static, enabled){ + this$static.recordExecutionTime = enabled; + return this$static; +} + +function $withLogPersistence(this$static, enabled){ + this$static.persistLogs = enabled; + return this$static; +} + +function $withLogging(this$static, enabled){ + this$static.recordLogs = enabled; + if (this$static.recordLogs) { + this$static.logMessages = new ArrayList; + this$static.logGraphs = new ArrayList; + } + else { + this$static.logMessages = null; + this$static.logGraphs = null; + } + return this$static; +} + +function $withMaxHierarchyLevels(this$static, levels){ + levels < 0?(this$static.maxLevels = -1):(this$static.maxLevels = levels); + return this$static; +} + +function BasicProgressMonitor(){ + this.children = new LinkedList; +} + +defineClass(344, 1, {871:1}, BasicProgressMonitor); +_.begin = function begin_0(name_0, thetotalWork){ + return $begin(this, name_0, thetotalWork); +} +; +_.done_1 = function done(){ + $done_0(this); +} +; +_.getExecutionTime = function getExecutionTime(){ + return this.totalTime; +} +; +_.getLogs = function getLogs(){ + return !this.logMessages?null:unmodifiableList(this.logMessages); +} +; +_.getSubMonitors = function getSubMonitors(){ + return unmodifiableList(this.children); +} +; +_.getTaskName = function getTaskName(){ + return this.taskName; +} +; +_.isCanceled = function isCanceled(){ + return false; +} +; +_.isLoggingEnabled = function isLoggingEnabled(){ + return this.recordLogs; +} +; +_.isRunning = function isRunning(){ + return this.taskName != null && !this.closed_0; +} +; +_.log_0 = function log_0(object){ + var logMessage; + if (this.recordLogs) { + logMessage = object; + $add_3(this.logMessages, logMessage); + } +} +; +_.logGraph = function logGraph(graph, tag){ + var copier, result; + this.recordLogs && !!graph && $logGraph(this, (copier = new EcoreUtil$Copier , result = $copy_1(copier, graph) , $copyReferences(copier) , result), ($clinit_LoggedGraph$Type() , ELK)); +} +; +_.subTask = function subTask(work){ + var subMonitor; + if (this.closed_0) { + return null; + } + else { + subMonitor = $doSubTask(this, this.maxLevels); + $add_7(this.children, subMonitor); + subMonitor.parentMonitor = this; + this.currentChildWork = work; + return subMonitor; + } +} +; +_.worked = function worked(work){ + work > 0 && !this.closed_0 && $internalWorked(this, work); +} +; +_.closed_0 = false; +_.completedWork = 0; +_.currentChildWork = -1; +_.logGraphs = null; +_.logMessages = null; +_.maxLevels = -1; +_.persistLogs = false; +_.recordExecutionTime = false; +_.recordLogs = false; +_.startTime = 0; +_.totalTime = 0; +_.totalWork = 0; +var Lorg_eclipse_elk_core_util_BasicProgressMonitor_2_classLit = createForClass('org.eclipse.elk.core.util', 'BasicProgressMonitor', 344); +function $areaStdDev(boxes, mean){ + var box, box$iterator, stddev, variance; + variance = 0; + for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_6(box$iterator), 27); + variance += $wnd.Math.pow(box.width_0 * box.height - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +function $areaStdDev2(boxes, mean){ + var box, box$iterator, stddev, variance; + variance = 0; + for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_6(box$iterator), 163); + variance += $wnd.Math.pow($getWidth(box) * $getHeight(box) - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +function $layout_4(layoutNode, progressMonitor){ + var expandNodes, interactive, objSpacing, padding, sortedBoxes, minSize, aspectRatio, parentSize, sortedBoxes_0; + progressMonitor.begin('Box layout', 2); + objSpacing = $floatValue(castToDouble($getProperty_0(layoutNode, ($clinit_BoxLayouterOptions() , SPACING_NODE_NODE_5)))); + padding = castTo($getProperty_0(layoutNode, PADDING_5), 107); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutNode, EXPAND_NODES))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutNode, INTERACTIVE_7))); + switch (castTo($getProperty_0(layoutNode, BOX_PACKING_MODE), 320).ordinal) { + case 0: + sortedBoxes = (sortedBoxes_0 = new ArrayList_1((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)) , $clinit_Collections() , $sort(sortedBoxes_0, new BoxLayoutProvider$1(interactive)) , sortedBoxes_0); + minSize = effectiveMinSizeConstraintFor(layoutNode); + aspectRatio = castToDouble($getProperty_0(layoutNode, ASPECT_RATIO_4)); + (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); + parentSize = $placeBoxes(sortedBoxes, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); + resizeNode_1(layoutNode, parentSize.x_0, parentSize.y_0, false, true); + break; + default:$placeBoxesGrouping(layoutNode, objSpacing, padding, expandNodes); + } + progressMonitor.done_1(); +} + +function $mergeAndPlaceDec(groups, objSpacing, minWidth, minHeight, expandNodes){ + var box, boxQueue, boxToBeat, collectedArea, groupSize, innerAspectRatio, innerGroup, maybeGroup, toBePlaced; + $clinit_Collections(); + $sort(groups, new BoxLayoutProvider$lambda$0$Type); + boxQueue = newLinkedList(groups); + toBePlaced = new ArrayList; + maybeGroup = new ArrayList; + boxToBeat = null; + collectedArea = 0; + while (boxQueue.size_0 != 0) { + box = castTo(boxQueue.size_0 == 0?null:(checkCriticalElement(boxQueue.size_0 != 0) , $removeNode_0(boxQueue, boxQueue.header.next_0)), 163); + if (!boxToBeat || $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 < $getWidth(box) * $getHeight(box)) { + boxToBeat = box; + push_1(toBePlaced.array, box); + } + else { + collectedArea += $getWidth(box) * $getHeight(box); + push_1(maybeGroup.array, box); + if (maybeGroup.array.length > 1 && (collectedArea > $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 || boxQueue.size_0 == 0)) { + innerGroup = new BoxLayoutProvider$Group(maybeGroup); + innerAspectRatio = $getWidth(boxToBeat) / $getHeight(boxToBeat); + groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(innerGroup.size_0), groupSize); + boxToBeat = innerGroup; + push_1(toBePlaced.array, innerGroup); + collectedArea = 0; + maybeGroup.array.length = 0; + } + } + } + $addAll_2(toBePlaced, maybeGroup); + return toBePlaced; +} + +function $mergeAndPlaceInc(groups, objSpacing, minWidth, minHeight, expandNodes){ + var commonArea, g, groupIterator, groupSize, innerAspectRatio, merged, toBePlaced; + $clinit_Collections(); + $sort(groups, new BoxLayoutProvider$lambda$2$Type); + groupIterator = new AbstractList$ListIteratorImpl(groups, 0); + toBePlaced = new ArrayList; + commonArea = 0; + while (groupIterator.i < groupIterator.this$01_0.size_1()) { + g = (checkCriticalElement(groupIterator.i < groupIterator.this$01_0.size_1()) , castTo(groupIterator.this$01_0.get_0(groupIterator.last = groupIterator.i++), 163)); + if (toBePlaced.array.length != 0 && $getWidth(g) * $getHeight(g) > commonArea * 2) { + merged = new BoxLayoutProvider$Group(toBePlaced); + innerAspectRatio = $getWidth(g) / $getHeight(g); + groupSize = $placeInnerBoxes(merged, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(merged.size_0), groupSize); + toBePlaced.array.length = 0; + commonArea = 0; + push_1(toBePlaced.array, merged); + push_1(toBePlaced.array, g); + commonArea = $getWidth(merged) * $getHeight(merged) + $getWidth(g) * $getHeight(g); + } + else { + push_1(toBePlaced.array, g); + commonArea += $getWidth(g) * $getHeight(g); + } + } + return toBePlaced; +} + +function $mergeAndPlaceMixed(groups, objSpacing, minWidth, minHeight, expandNodes){ + var anIndex, box, cumAreaArray, groupSize, index_0, innerAspectRatio, innerGroup, pq, remain, select, toBePlaced, value_0; + cumAreaArray = initUnidimensionalArray(D_classLit, $intern_66, 28, groups.array.length, 15, 1); + pq = new PriorityQueue(new BoxLayoutProvider$lambda$1$Type); + $addAll_4(pq, groups); + index_0 = 0; + toBePlaced = new ArrayList; + while (pq.heap.array.length != 0) { + box = castTo(pq.heap.array.length == 0?null:$get_11(pq.heap, 0), 163); + if (index_0 > 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[0]) { + anIndex = 0; + while (anIndex < toBePlaced.array.length - 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[anIndex]) { + ++anIndex; + } + select = new AbstractList$SubList(toBePlaced, 0, anIndex + 1); + innerGroup = new BoxLayoutProvider$Group(select); + innerAspectRatio = $getWidth(box) / $getHeight(box); + groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(innerGroup.size_0), groupSize); + checkCriticalState_0($offer(pq, innerGroup), 'Unable to add element to queue'); + remain = new AbstractList$SubList(toBePlaced, anIndex + 1, toBePlaced.array.length); + $addAll_4(pq, remain); + toBePlaced.array.length = 0; + index_0 = 0; + fill0_0(cumAreaArray, cumAreaArray.length, 0); + } + else { + value_0 = pq.heap.array.length == 0?null:$get_11(pq.heap, 0); + value_0 != null && $removeAtIndex_0(pq, 0); + index_0 > 0 && (cumAreaArray[index_0] = cumAreaArray[index_0 - 1]); + cumAreaArray[index_0] += $getWidth(box) * $getHeight(box); + ++index_0; + push_1(toBePlaced.array, box); + } + } + return toBePlaced; +} + +function $placeBoxes(sortedBoxes, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ + var box, box$iterator, boxIter, broadestRow, height, highestBox, maxRowWidth, mean, newHeight, newWidth, nextRowIndex, oldHeight, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; + maxRowWidth = 0; + totalArea = 0; + for (box$iterator = new ArrayList$1(sortedBoxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_6(box$iterator), 27); + resizeNode_0(box); + maxRowWidth = $wnd.Math.max(maxRowWidth, box.width_0); + totalArea += box.width_0 * box.height; + } + mean = totalArea / sortedBoxes.array.length; + stddev = $areaStdDev(sortedBoxes, mean); + totalArea += sortedBoxes.array.length * stddev; + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; + xpos = padding.left; + ypos = padding.top_0; + highestBox = 0; + broadestRow = padding.left + padding.right; + rowIndices = new LinkedList; + $add_7(rowIndices, valueOf_3(0)); + rowHeights = new LinkedList; + boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); + while (boxIter.i < boxIter.this$01_0.size_1()) { + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 27)); + width_0 = box.width_0; + height = box.height; + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_3(boxIter.i - 1)); + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + $setX_2(box, xpos); + $setY_3(box, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); + highestBox = $wnd.Math.max(highestBox, height); + xpos += width_0 + minSpacing; + } + broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); + totalHeight = ypos + highestBox + padding.bottom; + if (totalHeight < minTotalHeight) { + highestBox += minTotalHeight - totalHeight; + totalHeight = minTotalHeight; + } + if (expandNodes) { + xpos = padding.left; + boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); + $addLast_0(rowIndices, valueOf_3(sortedBoxes.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_9(rowIndexIter), 17).value_0; + $addLast_0(rowHeights, highestBox); + rowHeightIter = $listIterator_2(rowHeights, 0); + rowHeight = 0; + while (boxIter.i < boxIter.this$01_0.size_1()) { + if (boxIter.i == nextRowIndex) { + xpos = padding.left; + rowHeight = $doubleValue(castToDouble($next_9(rowHeightIter))); + nextRowIndex = castTo($next_9(rowIndexIter), 17).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 27)); + oldHeight = box.height; + $setHeight_0(box, rowHeight); + newHeight = rowHeight; + if (boxIter.i == nextRowIndex) { + newWidth = broadestRow - xpos - padding.right; + oldWidth = box.width_0; + $setWidth_0(box, newWidth); + translate_1(box, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); + } + xpos += box.width_0 + minSpacing; + } + } + return new KVector_1(broadestRow, totalHeight); +} + +function $placeBoxesGrouping(parentNode, objSpacing, padding, expandNodes){ + var aspectRatio, finalGroup, g, groups, lastArg, lastArg0, lastArg1, minSize, mode, node, node$iterator, parentSize, toBePlaced; + minSize = new KVector_2(castTo($getProperty_0(parentNode, ($clinit_BoxLayouterOptions() , NODE_SIZE_MINIMUM_4)), 8)); + minSize.x_0 = $wnd.Math.max(minSize.x_0 - padding.left - padding.right, 0); + minSize.y_0 = $wnd.Math.max(minSize.y_0 - padding.top_0 - padding.bottom, 0); + aspectRatio = castToDouble($getProperty_0(parentNode, ASPECT_RATIO_4)); + (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); + groups = new ArrayList; + for (node$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + g = new BoxLayoutProvider$Group_0(node); + push_1(groups.array, g); + } + mode = castTo($getProperty_0(parentNode, BOX_PACKING_MODE), 320); + switch (mode.ordinal) { + case 3: + toBePlaced = $mergeAndPlaceInc(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg0 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg0)); + break; + case 1: + toBePlaced = $mergeAndPlaceDec(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg1 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg1)); + break; + default:toBePlaced = $mergeAndPlaceMixed(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg)); + } + finalGroup = new BoxLayoutProvider$Group(toBePlaced); + parentSize = $placeInnerBoxes(finalGroup, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); + resizeNode_1(parentNode, parentSize.x_0, parentSize.y_0, false, true); +} + +function $placeInnerBoxes(group, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ + var bottoms, box, box$iterator, boxIter, broadestRow, height, highestBox, last, maxRowWidth, mean, newWidth, nextRowIndex, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; + maxRowWidth = 0; + totalArea = 0; + for (box$iterator = new ArrayList$1(group.groups); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_6(box$iterator), 163); + !!box.node && resizeNode_0(box.node); + maxRowWidth = $wnd.Math.max(maxRowWidth, $getWidth(box)); + totalArea += $getWidth(box) * $getHeight(box); + } + mean = totalArea / group.groups.array.length; + stddev = $areaStdDev2(group.groups, mean); + totalArea += group.groups.array.length * stddev; + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; + xpos = padding.left; + ypos = padding.top_0; + highestBox = 0; + broadestRow = padding.left + padding.right; + rowIndices = new LinkedList; + $add_7(rowIndices, valueOf_3(0)); + rowHeights = new LinkedList; + boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); + last = null; + bottoms = new ArrayList; + while (boxIter.i < boxIter.this$01_0.size_1()) { + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 163)); + width_0 = $getWidth(box); + height = $getHeight(box); + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_3(boxIter.i - 1)); + $add_3(group.right, last); + bottoms.array.length = 0; + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + push_1(bottoms.array, box); + $translate_1(box, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); + highestBox = $wnd.Math.max(highestBox, height); + xpos += width_0 + minSpacing; + last = box; + } + $addAll_2(group.bottom, bottoms); + $add_3(group.right, castTo($get_11(bottoms, bottoms.array.length - 1), 163)); + broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); + totalHeight = ypos + highestBox + padding.bottom; + if (totalHeight < minTotalHeight) { + highestBox += minTotalHeight - totalHeight; + totalHeight = minTotalHeight; + } + if (expandNodes) { + xpos = padding.left; + boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); + $addLast_0(rowIndices, valueOf_3(group.groups.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_9(rowIndexIter), 17).value_0; + $addLast_0(rowHeights, highestBox); + rowHeightIter = $listIterator_2(rowHeights, 0); + rowHeight = 0; + while (boxIter.i < boxIter.this$01_0.size_1()) { + if (boxIter.i == nextRowIndex) { + xpos = padding.left; + rowHeight = $doubleValue(castToDouble($next_9(rowHeightIter))); + nextRowIndex = castTo($next_9(rowIndexIter), 17).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 163)); + $setHeight(box, rowHeight); + if (boxIter.i == nextRowIndex) { + newWidth = broadestRow - xpos - padding.right; + oldWidth = $getWidth(box); + $setWidth(box, newWidth); + $translateInnerNodes(box, (newWidth - oldWidth) / 2, 0); + } + xpos += $getWidth(box) + minSpacing; + } + } + return new KVector_1(broadestRow, totalHeight); +} + +function BoxLayoutProvider(){ +} + +function lambda$0_42(g1_0, g2_1){ + return -compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$1_21(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$2_14(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +defineClass(717, 205, $intern_96, BoxLayoutProvider); +_.layout = function layout_8(layoutNode, progressMonitor){ + $layout_4(layoutNode, progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider', 717); +function $compare_27(this$static, child1, child2){ + var c, prio1, prio2, size1, size2; + prio1 = castTo($getProperty_0(child1, ($clinit_BoxLayouterOptions() , PRIORITY_2)), 17); + !prio1 && (prio1 = valueOf_3(0)); + prio2 = castTo($getProperty_0(child2, PRIORITY_2), 17); + !prio2 && (prio2 = valueOf_3(0)); + if (prio1.value_0 > prio2.value_0) { + return -1; + } + else if (prio1.value_0 < prio2.value_0) { + return 1; + } + else { + if (this$static.val$interactive2) { + c = compare_4(child1.y_0, child2.y_0); + if (c != 0) { + return c; + } + c = compare_4(child1.x_0, child2.x_0); + if (c != 0) { + return c; + } + } + size1 = child1.width_0 * child1.height; + size2 = child2.width_0 * child2.height; + return compare_4(size1, size2); + } +} + +function BoxLayoutProvider$1(val$interactive){ + this.val$interactive2 = val$interactive; +} + +defineClass(983, 1, $intern_88, BoxLayoutProvider$1); +_.compare_1 = function compare_109(child1, child2){ + return $compare_27(this, castTo(child1, 27), castTo(child2, 27)); +} +; +_.equals_0 = function equals_201(other){ + return this === other; +} +; +_.reversed = function reversed_101(){ + return new Comparators$ReversedComparator(this); +} +; +_.val$interactive2 = false; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/1', 983); +function $getHeight(this$static){ + if (this$static.node) { + return this$static.node.height; + } + return this$static.size_0.y_0; +} + +function $getWidth(this$static){ + if (this$static.node) { + return this$static.node.width_0; + } + return this$static.size_0.x_0; +} + +function $setHeight(this$static, h){ + var delta, g, g$iterator; + if (this$static.node) { + $setHeight_0(this$static.node, h); + } + else { + delta = h - $getHeight(this$static); + for (g$iterator = new ArrayList$1(this$static.bottom); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 163); + $setHeight(g, $getHeight(g) + delta); + } + } +} + +function $setWidth(this$static, w){ + var delta, g, g$iterator; + if (this$static.node) { + $setWidth_0(this$static.node, w); + } + else { + delta = w - $getWidth(this$static); + for (g$iterator = new ArrayList$1(this$static.right); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 163); + $setWidth(g, $getWidth(g) + delta); + } + } +} + +function $translate_1(this$static, x_0, y_0){ + var g, g$iterator; + if (this$static.node) { + $setX_2(this$static.node, this$static.node.x_0 + x_0); + $setY_3(this$static.node, this$static.node.y_0 + y_0); + } + else { + for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 163); + $translate_1(g, x_0, y_0); + } + } +} + +function $translateInnerNodes(this$static, x_0, y_0){ + var g, g$iterator; + if (this$static.node) { + translate_0(this$static.node, x_0, y_0); + } + else { + for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_6(g$iterator), 163); + $translateInnerNodes(g, x_0, y_0); + } + } +} + +function BoxLayoutProvider$Group(groups){ + this.groups = (checkNotNull(groups) , new ArrayList_1(groups)); + this.bottom = new ArrayList; + this.right = new ArrayList; + this.size_0 = new KVector; +} + +function BoxLayoutProvider$Group_0(node){ + this.node = node; + $setX_2(node, 0); + $setY_3(node, 0); +} + +defineClass(163, 1, {163:1}, BoxLayoutProvider$Group, BoxLayoutProvider$Group_0); +_.toString_0 = function toString_117(){ + return this.node?$toString_23(this.node):$toString_2(this.groups); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$Group_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/Group', 163); +function $clinit_BoxLayoutProvider$PackingMode(){ + $clinit_BoxLayoutProvider$PackingMode = emptyMethod; + SIMPLE_1 = new BoxLayoutProvider$PackingMode('SIMPLE', 0); + GROUP_DEC = new BoxLayoutProvider$PackingMode('GROUP_DEC', 1); + GROUP_MIXED = new BoxLayoutProvider$PackingMode('GROUP_MIXED', 2); + GROUP_INC = new BoxLayoutProvider$PackingMode('GROUP_INC', 3); +} + +function BoxLayoutProvider$PackingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_115(name_0){ + $clinit_BoxLayoutProvider$PackingMode(); + return valueOf(($clinit_BoxLayoutProvider$PackingMode$Map() , $MAP_105), name_0); +} + +function values_123(){ + $clinit_BoxLayoutProvider$PackingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_37, 320, 0, [SIMPLE_1, GROUP_DEC, GROUP_MIXED, GROUP_INC]); +} + +defineClass(320, 22, {3:1, 34:1, 22:1, 320:1}, BoxLayoutProvider$PackingMode); +var GROUP_DEC, GROUP_INC, GROUP_MIXED, SIMPLE_1; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit = createForEnum('org.eclipse.elk.core.util', 'BoxLayoutProvider/PackingMode', 320, Ljava_lang_Enum_2_classLit, values_123, valueOf_115); +function $clinit_BoxLayoutProvider$PackingMode$Map(){ + $clinit_BoxLayoutProvider$PackingMode$Map = emptyMethod; + $MAP_105 = createValueOfMap(($clinit_BoxLayoutProvider$PackingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_37, 320, 0, [SIMPLE_1, GROUP_DEC, GROUP_MIXED, GROUP_INC]))); +} + +var $MAP_105; +function BoxLayoutProvider$lambda$0$Type(){ +} + +defineClass(984, 1, $intern_88, BoxLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_110(arg0, arg1){ + return lambda$0_42(castTo(arg0, 163), castTo(arg1, 163)); +} +; +_.equals_0 = function equals_202(other){ + return this === other; +} +; +_.reversed = function reversed_102(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$0$Type', 984); +function BoxLayoutProvider$lambda$1$Type(){ +} + +defineClass(985, 1, $intern_88, BoxLayoutProvider$lambda$1$Type); +_.compare_1 = function compare_111(arg0, arg1){ + return lambda$1_21(castTo(arg0, 163), castTo(arg1, 163)); +} +; +_.equals_0 = function equals_203(other){ + return this === other; +} +; +_.reversed = function reversed_103(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$1$Type', 985); +function BoxLayoutProvider$lambda$2$Type(){ +} + +defineClass(986, 1, $intern_88, BoxLayoutProvider$lambda$2$Type); +_.compare_1 = function compare_112(arg0, arg1){ + return lambda$2_14(castTo(arg0, 163), castTo(arg1, 163)); +} +; +_.equals_0 = function equals_204(other){ + return this === other; +} +; +_.reversed = function reversed_104(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$2$Type', 986); +function ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type(){ +} + +defineClass(1384, 1, {845:1}, ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type); +_.accept_4 = function accept_146(arg0, arg1){ + return $clinit_ElkSpacings$AbstractSpacingsBuilder() , !instanceOf(arg1, 167) || $accept_5(($clinit_LayoutConfigurator() , OPTION_TARGET_FILTER , castTo(arg0, 167)), arg1); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type', 1384); +function ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1385, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type); +_.accept = function accept_147(arg0){ + $lambda$1_2(this.$$outer_0, castTo(arg0, 149)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type', 1385); +function ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type(){ +} + +defineClass(1386, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type); +_.accept = function accept_148(arg0){ + castTo(arg0, 96); + $clinit_ElkSpacings$AbstractSpacingsBuilder(); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type', 1386); +function ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1390, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type); +_.accept = function accept_149(arg0){ + $lambda$3_0(this.$$outer_0, castTo(arg0, 96)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type', 1390); +function ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1388, 1, $intern_40, ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type); +_.test_0 = function test_123(arg0){ + return $lambda$4_1(this.$$outer_0, this.element_1, castTo(arg0, 149)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type', 1388); +function ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_0, p_1){ + this.element_0 = element_0; + this.p_1 = p_1; +} + +defineClass(1387, 1, $intern_40, ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type); +_.test_0 = function test_124(arg0){ + return lambda$5_3(this.element_0, this.p_1, castTo(arg0, 845)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type', 1387); +function ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1389, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type); +_.accept = function accept_150(arg0){ + $lambda$6(this.$$outer_0, this.element_1, castTo(arg0, 149)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type', 1389); +function applyConfiguredNodeScaling(node){ + var anchor, portLabels, scalingFactor, shape_0, shape$iterator; + scalingFactor = $doubleValue(castToDouble($getProperty_0(node, ($clinit_CoreOptions() , SCALE_FACTOR)))); + if (scalingFactor == 1) { + return; + } + $setDimensions_0(node, scalingFactor * node.width_0, scalingFactor * node.height); + portLabels = concat_0(transform_1((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), new ElkUtil$lambda$0$Type)); + for (shape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels), (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), portLabels]))); $hasNext_1(shape$iterator);) { + shape_0 = castTo($next_0(shape$iterator), 422); + shape_0.setLocation(scalingFactor * shape_0.getX(), scalingFactor * shape_0.getY()); + shape_0.setDimensions(scalingFactor * shape_0.getWidth(), scalingFactor * shape_0.getHeight()); + anchor = castTo(shape_0.getProperty(PORT_ANCHOR_0), 8); + if (anchor) { + anchor.x_0 *= scalingFactor; + anchor.y_0 *= scalingFactor; + } + } +} + +function applyVectorChain(vectorChain, section){ + var bendpoint, elkBendPoint, firstPoint, lastPoint, newPointIter, nextPoint, oldPointIter; + if (vectorChain.size_0 < 2) { + throw toJs(new IllegalArgumentException_0('The vector chain must contain at least a source and a target point.')); + } + firstPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.header.next_0.value_0, 8)); + $setStartLocation(section, firstPoint.x_0, firstPoint.y_0); + oldPointIter = new AbstractEList$EListIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); + newPointIter = $listIterator_2(vectorChain, 1); + while (newPointIter.currentIndex < vectorChain.size_0 - 1) { + nextPoint = castTo($next_9(newPointIter), 8); + if (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + bendpoint = castTo($doNext(oldPointIter), 377); + } + else { + bendpoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $doAdd_0(oldPointIter, bendpoint); + } + $set_9(bendpoint, nextPoint.x_0, nextPoint.y_0); + } + while (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + $doNext(oldPointIter); + $remove_36(oldPointIter); + } + lastPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.tail.prev.value_0, 8)); + $setEndLocation(section, lastPoint.x_0, lastPoint.y_0); +} + +function applyVisitors(graph, visitors){ + var allElements, graphElement, i, nextElement; + allElements = new ElkGraphUtil$PropertiesSkippingTreeIterator(graph); + while (allElements.data_0 == null && !allElements.includeRoot?$hasAnyChildren(allElements):allElements.data_0 == null || allElements.size_0 != 0 && castTo(allElements.data_0[allElements.size_0 - 1], 51).hasNext_0()) { + nextElement = castTo($next_13(allElements), 58); + if (instanceOf(nextElement, 167)) { + graphElement = castTo(nextElement, 167); + for (i = 0; i < visitors.length; i++) { + visitors[i].visit(graphElement); + } + } + } +} + +function calcPortOffset_0(port, side){ + var node; + if (!$getParent_3(port)) { + throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); + } + node = $getParent_3(port); + switch (side.ordinal) { + case 1: + return -(port.y_0 + port.height); + case 2: + return port.x_0 - node.width_0; + case 3: + return port.y_0 - node.height; + case 4: + return -(port.x_0 + port.width_0); + } + return 0; +} + +function calcPortSide_0(port, direction){ + var heightPercent, node, nodeHeight, nodeWidth, widthPercent, xpos, ypos; + if (!$getParent_3(port)) { + throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); + } + node = $getParent_3(port); + nodeWidth = node.width_0; + nodeHeight = node.height; + if (nodeWidth <= 0 && nodeHeight <= 0) { + return $clinit_PortSide() , UNDEFINED_5; + } + xpos = port.x_0; + ypos = port.y_0; + switch (direction.ordinal) { + case 2: + case 1: + if (xpos < 0) { + return $clinit_PortSide() , WEST_2; + } + else if (xpos + port.width_0 > nodeWidth) { + return $clinit_PortSide() , EAST_2; + } + + break; + case 4: + case 3: + if (ypos < 0) { + return $clinit_PortSide() , NORTH_3; + } + else if (ypos + port.height > nodeHeight) { + return $clinit_PortSide() , SOUTH_2; + } + + } + widthPercent = (xpos + port.width_0 / 2) / nodeWidth; + heightPercent = (ypos + port.height / 2) / nodeHeight; + return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); +} + +function computeChildAreaDimensions(node){ + var bendpoint, bendpoint$iterator, eX, eY, edge, edge$iterator, edge$iterator0, edgeLabels, margins, maxX, maxY, minX, minY, sX, sY, section, section$iterator, shape_0, shape$iterator; + minX = $intern_60; + minY = $intern_60; + maxX = 0; + maxY = 0; + edgeLabels = new ArrayList; + for (edge$iterator0 = new AbstractEList$EIterator((!node.containedEdges && (node.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 12, 3)) , node.containedEdges)); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator0), 74); + edgeLabels = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [edgeLabels, (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)])); + } + for (shape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels), (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children), edgeLabels]))); $hasNext_1(shape$iterator);) { + shape_0 = castTo($next_0(shape$iterator), 422); + margins = castTo(shape_0.getProperty(($clinit_CoreOptions() , MARGINS_0)), 140); + minX > shape_0.getX() - margins.left && (minX = shape_0.getX() - margins.left); + minY > shape_0.getY() - margins.top_0 && (minY = shape_0.getY() - margins.top_0); + maxX < shape_0.getX() + shape_0.getWidth() + margins.right && (maxX = shape_0.getX() + shape_0.getWidth() + margins.right); + maxY < shape_0.getY() + shape_0.getHeight() + margins.bottom && (maxY = shape_0.getY() + shape_0.getHeight() + margins.bottom); + } + for (edge$iterator = new AbstractEList$EIterator((!node.containedEdges && (node.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 12, 3)) , node.containedEdges)); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 74); + for (section$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); section$iterator.cursor != section$iterator.this$01_2.size_1();) { + section = castTo($doNext(section$iterator), 166); + sX = section.startX; + eX = section.endX; + sY = section.startY; + eY = section.endY; + minX = $wnd.Math.min(minX, sX); + minX = $wnd.Math.min(minX, eX); + maxX = $wnd.Math.max(maxX, sX); + maxX = $wnd.Math.max(maxX, eX); + minY = $wnd.Math.min(minY, sY); + minY = $wnd.Math.min(minY, eY); + maxY = $wnd.Math.max(maxY, sY); + maxY = $wnd.Math.max(maxY, eY); + for (bendpoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendpoint$iterator.cursor != bendpoint$iterator.this$01_2.size_1();) { + bendpoint = castTo($doNext(bendpoint$iterator), 377); + minX = $wnd.Math.min(minX, bendpoint.x_0); + maxX = $wnd.Math.max(maxX, bendpoint.x_0); + minY = $wnd.Math.min(minY, bendpoint.y_0); + maxY = $wnd.Math.max(maxY, bendpoint.y_0); + } + } + } + $setProperty_1(node, ($clinit_CoreOptions() , CHILD_AREA_WIDTH), maxX - minX); + $setProperty_1(node, CHILD_AREA_HEIGHT, maxY - minY); +} + +function computeInsidePart(labelPosition, labelSize, portSize, portBorderOffset, portSide){ + var insidePart; + insidePart = 0; + switch (portSide.ordinal) { + case 1: + insidePart = $wnd.Math.max(0, labelSize.y_0 + labelPosition.y_0 - (portSize.y_0 + portBorderOffset)); + break; + case 3: + insidePart = $wnd.Math.max(0, -labelPosition.y_0 - portBorderOffset); + break; + case 2: + insidePart = $wnd.Math.max(0, -labelPosition.x_0 - portBorderOffset); + break; + case 4: + insidePart = $wnd.Math.max(0, labelSize.x_0 + labelPosition.x_0 - (portSize.x_0 + portBorderOffset)); + } + return insidePart; +} + +function computeInsidePart_0(port, portBorderOffset){ + var labelBounds; + labelBounds = getLabelsBounds(port); + return computeInsidePart(new KVector_1(labelBounds.x_0, labelBounds.y_0), new KVector_1(labelBounds.width_0, labelBounds.height), port.getSize(), portBorderOffset, port.getSide()); +} + +function createVectorChain(edgeSection){ + var bendPoint, bendPoint$iterator, chain; + chain = new KVectorChain; + $add_7(chain, new KVector_1(edgeSection.startX, edgeSection.startY)); + for (bendPoint$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 377); + $add_7(chain, new KVector_1(bendPoint.x_0, bendPoint.y_0)); + } + $add_7(chain, new KVector_1(edgeSection.endX, edgeSection.endY)); + return chain; +} + +function determineJunctionPoints(edge){ + var junctionPoints; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { + throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); + } + junctionPoints = new KVectorChain; + !!connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84)), false)); + !!connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)), true)); + return junctionPoints; +} + +function determineJunctionPoints_0(edge, port, reverse){ + var allConnectedSections, allSectIter, dx2, dx3, dy2, dy3, i, junctionPoints, offset, offsetMap, otherEdge, otherEdge$iterator, otherPoints, otherSection, p1, p2, p3, pointsMap, section, sectionPoints; + section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166); + junctionPoints = new KVectorChain; + pointsMap = new HashMap; + sectionPoints = getPoints(section); + $put_9(pointsMap.hashCodeMap, section, sectionPoints); + offsetMap = new HashMap; + allConnectedSections = new LinkedList; + for (otherEdge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges), (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)]))); $hasNext_1(otherEdge$iterator);) { + otherEdge = castTo($next_0(otherEdge$iterator), 74); + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { + throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); + } + if (otherEdge != edge) { + otherSection = castTo($get_20((!otherEdge.sections && (otherEdge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, otherEdge, 6, 6)) , otherEdge.sections), 0), 166); + $addNode_0(allConnectedSections, otherSection, allConnectedSections.tail.prev, allConnectedSections.tail); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 13); + if (!otherPoints) { + otherPoints = getPoints(otherSection); + $put_9(pointsMap.hashCodeMap, otherSection, otherPoints); + } + offset = reverse?$sub_0(new KVector_2(castTo($get_11(sectionPoints, sectionPoints.array.length - 1), 8)), castTo($get_11(otherPoints, otherPoints.array.length - 1), 8)):$sub_0(new KVector_2((checkCriticalElementIndex(0, sectionPoints.array.length) , castTo(sectionPoints.array[0], 8))), (checkCriticalElementIndex(0, otherPoints.array.length) , castTo(otherPoints.array[0], 8))); + $put_9(offsetMap.hashCodeMap, otherSection, offset); + } + } + if (allConnectedSections.size_0 != 0) { + p1 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1:0), 8); + for (i = 1; i < sectionPoints.array.length; i++) { + p2 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1 - i:i), 8); + allSectIter = $listIterator_2(allConnectedSections, 0); + while (allSectIter.currentNode != allSectIter.this$01.tail) { + otherSection = castTo($next_9(allSectIter), 166); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 13); + if (otherPoints.array.length <= i) { + $remove_24(allSectIter); + } + else { + p3 = $add_19(new KVector_2(castTo($get_11(otherPoints, reverse?otherPoints.array.length - 1 - i:i), 8)), castTo(getEntryValueOrNull($getEntry_0(offsetMap.hashCodeMap, otherSection)), 8)); + if (p2.x_0 != p3.x_0 || p2.y_0 != p3.y_0) { + dx2 = p2.x_0 - p1.x_0; + dy2 = p2.y_0 - p1.y_0; + dx3 = p3.x_0 - p1.x_0; + dy3 = p3.y_0 - p1.y_0; + dx3 * dy2 == dy3 * dx2 && (dx2 == 0 || isNaN(dx2)?dx2:dx2 < 0?-1:1) == (dx3 == 0 || isNaN(dx3)?dx3:dx3 < 0?-1:1) && (dy2 == 0 || isNaN(dy2)?dy2:dy2 < 0?-1:1) == (dy3 == 0 || isNaN(dy3)?dy3:dy3 < 0?-1:1)?($wnd.Math.abs(dx2) < $wnd.Math.abs(dx3) || $wnd.Math.abs(dy2) < $wnd.Math.abs(dy3)) && ($addNode_0(junctionPoints, p2, junctionPoints.tail.prev, junctionPoints.tail) , true):i > 1 && ($addNode_0(junctionPoints, p1, junctionPoints.tail.prev, junctionPoints.tail) , true); + $remove_24(allSectIter); + } + } + } + p1 = p2; + } + } + return junctionPoints; +} + +function effectiveMinSizeConstraintFor(node){ + var minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + sizeOptions = castTo($getProperty_0(node, NODE_SIZE_OPTIONS_6), 21); + minSize = new KVector_2(castTo($getProperty_0(node, NODE_SIZE_MINIMUM_5), 8)); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + return minSize; + } + else { + return new KVector; + } +} + +function getLabelsBounds(port){ + var bounds, currentLabelBounds, label_0, label$iterator; + bounds = null; + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_6(label$iterator), 187); + currentLabelBounds = new ElkRectangle_0(label_0.getPosition().x_0, label_0.getPosition().y_0, label_0.getSize().x_0, label_0.getSize().y_0); + !bounds?(bounds = currentLabelBounds):$union(bounds, currentLabelBounds); + } + !bounds && (bounds = new ElkRectangle); + return bounds; +} + +function getPoints(section){ + var i, n, p1, p2, p3, points; + n = (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints).size_0 + 2; + points = new ArrayList_0(n); + $add_3(points, new KVector_1(section.startX, section.startY)); + $forEach_3(new StreamImpl(null, (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , new Spliterators$IteratorSpliterator(section.bendPoints, 16))), new ElkUtil$lambda$4$Type(points)); + $add_3(points, new KVector_1(section.endX, section.endY)); + i = 1; + while (i < points.array.length - 1) { + p1 = (checkCriticalElementIndex(i - 1, points.array.length) , castTo(points.array[i - 1], 8)); + p2 = (checkCriticalElementIndex(i, points.array.length) , castTo(points.array[i], 8)); + p3 = (checkCriticalElementIndex(i + 1, points.array.length) , castTo(points.array[i + 1], 8)); + p1.x_0 == p2.x_0 && p2.x_0 == p3.x_0 || p1.y_0 == p2.y_0 && p2.y_0 == p3.y_0?$remove_11(points, i):++i; + } + return points; +} + +function lambda$1_22(xoffset_0, yoffset_2, edge_2){ + var junctionPoints; + $forEach_3(new StreamImpl(null, (!edge_2.sections && (edge_2.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge_2, 6, 6)) , new Spliterators$IteratorSpliterator(edge_2.sections, 16))), new ElkUtil$lambda$2$Type(xoffset_0, yoffset_2)); + $forEach_3(new StreamImpl(null, (!edge_2.labels && (edge_2.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge_2, 1, 7)) , new Spliterators$IteratorSpliterator(edge_2.labels, 16))), new ElkUtil$lambda$3$Type(xoffset_0, yoffset_2)); + junctionPoints = castTo($getProperty_0(edge_2, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 75); + !!junctionPoints && $offset_1(junctionPoints, xoffset_0, yoffset_2); +} + +function lambda$2_15(xoffset_0, yoffset_2, s_2){ + translate(s_2, xoffset_0, yoffset_2); +} + +function lambda$3_10(xoffset_0, yoffset_2, label_2){ + $setLocation_1(label_2, label_2.x_0 + xoffset_0, label_2.y_0 + yoffset_2); +} + +function lambda$4_11(points_0, bendPoint_1){ + return $add_3(points_0, new KVector_1(bendPoint_1.x_0, bendPoint_1.y_0)); +} + +function printElementPath(element, builder){ + var className, edge, identifier, label_0, label$iterator, sourceIter, targetIter, text_0; + if (instanceOf(element.eContainer_0(), 167)) { + printElementPath(castTo(element.eContainer_0(), 167), builder); + builder.string += ' > '; + } + else { + builder.string += 'Root '; + } + className = element.eClass_0().name_0; + $equals_5(className.substr(0, 3), 'Elk')?$append_11(builder, (checkCriticalStringElementIndex(3, className.length + 1) , className.substr(3))):(builder.string += '' + className , builder); + identifier = element.getIdentifier(); + if (identifier) { + $append_11((builder.string += ' ' , builder), identifier); + return; + } + if (instanceOf(element, 366)) { + text_0 = castTo(element, 135).text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + for (label$iterator = new AbstractEList$EIterator(element.getLabels_0()); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + text_0 = label_0.text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + if (instanceOf(element, 326)) { + edge = castTo(element, 74); + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0)) { + builder.string += ' ('; + sourceIter = new AbstractEList$EListIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); + while (sourceIter.cursor != sourceIter.this$01_2.size_1()) { + sourceIter.cursor > 0 && (builder.string += ', ' , builder); + printElementPath(castTo($doNext(sourceIter), 167), builder); + } + builder.string += ' -> '; + targetIter = new AbstractEList$EListIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); + while (targetIter.cursor != targetIter.this$01_2.size_1()) { + targetIter.cursor > 0 && (builder.string += ', ' , builder); + printElementPath(castTo($doNext(targetIter), 167), builder); + } + builder.string += ')'; + } + } +} + +function resizeNode_0(node){ + var direction, minEast, minNorth, minSouth, minWest, newHeight, newWidth, port, port$iterator, portConstraints, portSide, sizeConstraint; + sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + if (sizeConstraint.isEmpty()) { + return null; + } + newWidth = 0; + newHeight = 0; + if (sizeConstraint.contains(($clinit_SizeConstraint() , PORTS_0))) { + portConstraints = castTo($getProperty_0(node, PORT_CONSTRAINTS_1), 101); + minNorth = 2; + minEast = 2; + minSouth = 2; + minWest = 2; + direction = !$getParent_2(node)?castTo($getProperty_0(node, DIRECTION_1), 88):castTo($getProperty_0($getParent_2(node), DIRECTION_1), 88); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 64); + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(port, direction); + $setProperty_1(port, PORT_SIDE_0, portSide); + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_POS)) { + switch (portSide.ordinal) { + case 1: + minNorth = $wnd.Math.max(minNorth, port.x_0 + port.width_0); + break; + case 2: + minEast = $wnd.Math.max(minEast, port.y_0 + port.height); + break; + case 3: + minSouth = $wnd.Math.max(minSouth, port.x_0 + port.width_0); + break; + case 4: + minWest = $wnd.Math.max(minWest, port.y_0 + port.height); + } + } + else { + switch (portSide.ordinal) { + case 1: + minNorth += port.width_0 + 2; + break; + case 2: + minEast += port.height + 2; + break; + case 3: + minSouth += port.width_0 + 2; + break; + case 4: + minWest += port.height + 2; + } + } + } + newWidth = $wnd.Math.max(minNorth, minSouth); + newHeight = $wnd.Math.max(minEast, minWest); + } + return resizeNode_1(node, newWidth, newHeight, true, true); +} + +function resizeNode_1(node, newWidth, newHeight, movePorts, moveLabels){ + var all, direction, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, newSize, oldSize, port, port$iterator, portSide, widthDiff, widthPercent, widthRatio; + oldSize = new KVector_1(node.width_0, node.height); + newSize = effectiveMinSizeConstraintFor(node); + newSize.x_0 = $wnd.Math.max(newSize.x_0, newWidth); + newSize.y_0 = $wnd.Math.max(newSize.y_0, newHeight); + widthRatio = newSize.x_0 / oldSize.x_0; + heightRatio = newSize.y_0 / oldSize.y_0; + widthDiff = newSize.x_0 - oldSize.x_0; + heightDiff = newSize.y_0 - oldSize.y_0; + if (movePorts) { + direction = !$getParent_2(node)?castTo($getProperty_0(node, ($clinit_CoreOptions() , DIRECTION_1)), 88):castTo($getProperty_0($getParent_2(node), ($clinit_CoreOptions() , DIRECTION_1)), 88); + fixedPorts = maskUndefined($getProperty_0(node, ($clinit_CoreOptions() , PORT_CONSTRAINTS_1))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 64); + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(port, direction); + $setProperty_1(port, PORT_SIDE_0, portSide); + } + switch (portSide.ordinal) { + case 1: + fixedPorts || $setX_2(port, port.x_0 * widthRatio); + break; + case 2: + $setX_2(port, port.x_0 + widthDiff); + fixedPorts || $setY_3(port, port.y_0 * heightRatio); + break; + case 3: + fixedPorts || $setX_2(port, port.x_0 * widthRatio); + $setY_3(port, port.y_0 + heightDiff); + break; + case 4: + fixedPorts || $setY_3(port, port.y_0 * heightRatio); + } + } + } + $setDimensions_0(node, newSize.x_0, newSize.y_0); + if (moveLabels) { + for (label$iterator = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + midx = label_0.x_0 + label_0.width_0 / 2; + midy = label_0.y_0 + label_0.height / 2; + widthPercent = midx / oldSize.x_0; + heightPercent = midy / oldSize.y_0; + if (widthPercent + heightPercent >= 1) { + if (widthPercent - heightPercent > 0 && midy >= 0) { + $setX_2(label_0, label_0.x_0 + widthDiff); + $setY_3(label_0, label_0.y_0 + heightDiff * heightPercent); + } + else if (widthPercent - heightPercent < 0 && midx >= 0) { + $setX_2(label_0, label_0.x_0 + widthDiff * widthPercent); + $setY_3(label_0, label_0.y_0 + heightDiff); + } + } + } + } + $setProperty_1(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + return new KVector_1(widthRatio, heightRatio); +} + +function toAbsolute(point, parent_0){ + var node; + node = parent_0; + while (node) { + $add_18(point, node.x_0, node.y_0); + node = $getParent_2(node); + } + return point; +} + +function toRelative(point, parent_0){ + var node; + node = parent_0; + while (node) { + $add_18(point, -node.x_0, -node.y_0); + node = $getParent_2(node); + } + return point; +} + +function translate(section, xoffset, yoffset){ + var bendPoint, bendPoint$iterator; + $setStartLocation(section, section.startX + xoffset, section.startY + yoffset); + for (bendPoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 377); + $set_9(bendPoint, bendPoint.x_0 + xoffset, bendPoint.y_0 + yoffset); + } + $setEndLocation(section, section.endX + xoffset, section.endY + yoffset); +} + +function translate_0(parent_0, xoffset, yoffset){ + var child, child$iterator; + for (child$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 27); + $setLocation_1(child, child.x_0 + xoffset, child.y_0 + yoffset); + } + $forEach_0((!parent_0.containedEdges && (parent_0.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, parent_0, 12, 3)) , parent_0.containedEdges), new ElkUtil$lambda$1$Type(xoffset, yoffset)); +} + +function translate_1(parent_0, newSize, oldSize){ + var contentAlignment, xTranslate, yTranslate; + contentAlignment = castTo($getProperty_0(parent_0, ($clinit_CoreOptions() , CONTENT_ALIGNMENT_2)), 21); + xTranslate = 0; + yTranslate = 0; + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(xTranslate = (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (xTranslate = newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(yTranslate = (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (yTranslate = newSize.y_0 - oldSize.y_0)); + translate_0(parent_0, xTranslate, yTranslate); +} + +function $apply_27(arg0){ + return $getLabels_1(castTo(arg0, 123)); +} + +function ElkUtil$lambda$0$Type(){ +} + +defineClass(947, 1, {}, ElkUtil$lambda$0$Type); +_.apply_0 = function apply_179(arg0){ + return $apply_27(arg0); +} +; +_.equals_0 = function equals_205(other){ + return this === other; +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$0$Type', 947); +function ElkUtil$lambda$1$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(948, 1, $intern_19, ElkUtil$lambda$1$Type); +_.accept = function accept_151(arg0){ + lambda$1_22(this.xoffset_0, this.yoffset_2, castTo(arg0, 74)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$1$Type', 948); +function ElkUtil$lambda$2$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(949, 1, $intern_19, ElkUtil$lambda$2$Type); +_.accept = function accept_152(arg0){ + lambda$2_15(this.xoffset_0, this.yoffset_2, castTo(arg0, 166)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$2$Type', 949); +function ElkUtil$lambda$3$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(950, 1, $intern_19, ElkUtil$lambda$3$Type); +_.accept = function accept_153(arg0){ + lambda$3_10(this.xoffset_0, this.yoffset_2, castTo(arg0, 135)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$3$Type', 950); +function ElkUtil$lambda$4$Type(points_0){ + this.points_0 = points_0; +} + +defineClass(951, 1, $intern_19, ElkUtil$lambda$4$Type); +_.accept = function accept_154(arg0){ + lambda$4_11(this.points_0, castTo(arg0, 377)); +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$4$Type', 951); +function $compareTo_20(this$static, x_0){ + return this$static.exclusiveLowerBound < doubleValue__D__devirtual$(x_0)?-1:1; +} + +function ExclusiveBounds$ExclusiveLowerBound(){ + this.exclusiveLowerBound = 0; +} + +defineClass(325, 1, {34:1, 325:1}, ExclusiveBounds$ExclusiveLowerBound); +_.compareTo_0 = function compareTo_21(x_0){ + return $compareTo_20(this, castTo(x_0, 242)); +} +; +_.equals_0 = function equals_206(obj){ + var other; + if (instanceOf(obj, 325)) { + other = castTo(obj, 325); + return this.exclusiveLowerBound == other.exclusiveLowerBound; + } + return false; +} +; +_.hashCode_1 = function hashCode_70(){ + return round_int(this.exclusiveLowerBound); +} +; +_.toString_0 = function toString_118(){ + return this.exclusiveLowerBound + ' (exclusive)'; +} +; +_.exclusiveLowerBound = 0; +var Lorg_eclipse_elk_core_util_ExclusiveBounds$ExclusiveLowerBound_2_classLit = createForClass('org.eclipse.elk.core.util', 'ExclusiveBounds/ExclusiveLowerBound', 325); +function $processEdge(edge){ + var bendPoints, edgeSection, edgeSection$iterator, elkEdgeSection, label_0, label$iterator, maxv, point, point$iterator, pos, sameHierarchy, sections, sourceParent, targetParent; + sourceParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84))); + targetParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84))); + sameHierarchy = sourceParent == targetParent; + maxv = new KVector; + bendPoints = castTo($getProperty_0(edge, ($clinit_FixedLayouterOptions() , BEND_POINTS_0)), 75); + if (!!bendPoints && bendPoints.size_0 >= 2) { + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + edgeSection = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection); + } + else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { + sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + while (sections.cursor != sections.this$01_2.size_1()) { + $remove_36(sections); + } + } + applyVectorChain(bendPoints, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166)); + } + if (sameHierarchy) { + for (edgeSection$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); edgeSection$iterator.cursor != edgeSection$iterator.this$01_2.size_1();) { + edgeSection = castTo($doNext(edgeSection$iterator), 166); + for (point$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); point$iterator.cursor != point$iterator.this$01_2.size_1();) { + point = castTo($doNext(point$iterator), 377); + maxv.x_0 = $wnd.Math.max(maxv.x_0, point.x_0); + maxv.y_0 = $wnd.Math.max(maxv.y_0, point.y_0); + } + } + } + for (label$iterator = new AbstractEList$EIterator((!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + if (sameHierarchy) { + maxv.x_0 = $wnd.Math.max(maxv.x_0, label_0.x_0 + label_0.width_0); + maxv.y_0 = $wnd.Math.max(maxv.y_0, label_0.y_0 + label_0.height); + } + } + return maxv; +} + +function FixedLayoutProvider(){ +} + +defineClass(1119, 205, $intern_96, FixedLayoutProvider); +_.layout = function layout_9(layoutNode, progressMonitor){ + var edge, edge$iterator, edge$iterator0, edgeRouting, junctionPoints, label_0, label$iterator, label$iterator0, maxv, maxx, maxy, minSize, newHeight, newWidth, node, node$iterator, node$iterator0, padding, port, port$iterator, portx, porty, pos; + progressMonitor.begin('Fixed Layout', 1); + edgeRouting = castTo($getProperty_0(layoutNode, ($clinit_CoreOptions() , EDGE_ROUTING_0)), 223); + maxx = 0; + maxy = 0; + for (node$iterator0 = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 27); + pos = castTo($getProperty_0(node, ($clinit_FixedLayouterOptions() , POSITION_3)), 8); + if (pos) { + $setLocation_1(node, pos.x_0, pos.y_0); + if (castTo($getProperty_0(node, NODE_SIZE_CONSTRAINTS_7), 181).contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty_0(node, NODE_SIZE_MINIMUM_6), 8); + minSize.x_0 > 0 && minSize.y_0 > 0 && resizeNode_1(node, minSize.x_0, minSize.y_0, true, true); + } + } + maxx = $wnd.Math.max(maxx, node.x_0 + node.width_0); + maxy = $wnd.Math.max(maxy, node.y_0 + node.height); + for (label$iterator0 = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator0), 135); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + maxx = $wnd.Math.max(maxx, node.x_0 + label_0.x_0 + label_0.width_0); + maxy = $wnd.Math.max(maxy, node.y_0 + label_0.y_0 + label_0.height); + } + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + pos = castTo($getProperty_0(port, POSITION_3), 8); + !!pos && $setLocation_1(port, pos.x_0, pos.y_0); + portx = node.x_0 + port.x_0; + porty = node.y_0 + port.y_0; + maxx = $wnd.Math.max(maxx, portx + port.width_0); + maxy = $wnd.Math.max(maxy, porty + port.height); + for (label$iterator = new AbstractEList$EIterator((!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 135); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + maxx = $wnd.Math.max(maxx, portx + label_0.x_0 + label_0.width_0); + maxy = $wnd.Math.max(maxy, porty + label_0.y_0 + label_0.height); + } + } + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 74); + maxv = $processEdge(edge); + maxx = $wnd.Math.max(maxx, maxv.x_0); + maxy = $wnd.Math.max(maxy, maxv.y_0); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + if ($getParent_2(getSourceNode(edge)) != layoutNode) { + maxv = $processEdge(edge); + maxx = $wnd.Math.max(maxx, maxv.x_0); + maxy = $wnd.Math.max(maxy, maxv.y_0); + } + } + } + if (edgeRouting == ($clinit_EdgeRouting() , ORTHOGONAL)) { + for (node$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + junctionPoints = determineJunctionPoints(edge); + junctionPoints.size_0 == 0?$setProperty_1(edge, JUNCTION_POINTS_0, null):$setProperty_1(edge, JUNCTION_POINTS_0, junctionPoints); + } + } + } + if (!$booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_FixedLayouterOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_4))))) { + padding = castTo($getProperty_0(layoutNode, PADDING_7), 107); + newWidth = maxx + padding.left + padding.right; + newHeight = maxy + padding.top_0 + padding.bottom; + resizeNode_1(layoutNode, newWidth, newHeight, true, true); + } + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_core_util_FixedLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'FixedLayoutProvider', 1119); +function IndividualSpacings(){ +} + +function IndividualSpacings_0(other){ + (!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).putAll(!other.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):other.propertyMap); +} + +function getIndividualOrInherited_0(node, property){ + var individualSpacings, result; + result = null; + if (node.hasProperty(($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { + individualSpacings = castTo(node.getProperty(SPACING_INDIVIDUAL_0), 96); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && !!node.getGraph() && (result = node.getGraph().getProperty(property)); + result == null && (result = $getDefault(property)); + return result; +} + +function lambda$0_43(entry_0){ + return castTo(entry_0.getKey(), 149).getId() + ':' + toString_40(entry_0.getValue()); +} + +defineClass(385, 137, {3:1, 423:1, 385:1, 96:1, 137:1}, IndividualSpacings, IndividualSpacings_0); +_.parse_0 = function parse_3(string){ + var e, option, optionData, optionString, optionString$array, optionString$index, optionString$max, options, value_0; + if (!string) { + return; + } + try { + options = $split_0(string, ';,;'); + for (optionString$array = options , optionString$index = 0 , optionString$max = optionString$array.length; optionString$index < optionString$max; ++optionString$index) { + optionString = optionString$array[optionString$index]; + option = $split_0(optionString, '\\:'); + optionData = $getOptionDataBySuffix(getInstance(), option[0]); + if (!optionData) { + throw toJs(new IllegalArgumentException_0('Invalid option id: ' + option[0])); + } + value_0 = $parseValue(optionData, option[1]); + if (value_0 == null) { + throw toJs(new IllegalArgumentException_0('Invalid option value: ' + option[1])); + } + value_0 == null?(!this.propertyMap && (this.propertyMap = new HashMap) , $remove_6(this.propertyMap, optionData)):(!this.propertyMap && (this.propertyMap = new HashMap) , $put_6(this.propertyMap, optionData, value_0)); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + e = $e0; + throw toJs(new IllegalArgumentException_1(e)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_119(){ + var serialized; + serialized = castToString($collect_1($map((!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).entrySet_0().stream(), new IndividualSpacings$lambda$0$Type), of_3(new Collectors$lambda$15$Type, new Collectors$9methodref$add$Type, new Collectors$10methodref$merge$Type, new Collectors$11methodref$toString$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_37, 108, 0, [])))); + return serialized; +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings', 385); +function IndividualSpacings$lambda$0$Type(){ +} + +defineClass(982, 1, {}, IndividualSpacings$lambda$0$Type); +_.apply_0 = function apply_180(arg0){ + return lambda$0_43(castTo(arg0, 44)); +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings/lambda$0$Type', 982); +function $fetch(this$static){ + if (this$static.instances.size_0 == 0) { + return this$static.factory.create_0(); + } + return $removeFirst_0(this$static.instances); +} + +function $release(this$static, obj){ + this$static.limit < 0 || this$static.instances.size_0 < this$static.limit?$addLast_0(this$static.instances, obj):this$static.factory.destroy(obj); +} + +function InstancePool(thefactory){ + this.instances = new LinkedList; + this.factory = thefactory; + this.limit = -1; +} + +defineClass(718, 1, {}, InstancePool); +_.limit = 0; +var Lorg_eclipse_elk_core_util_InstancePool_2_classLit = createForClass('org.eclipse.elk.core.util', 'InstancePool', 718); +function LoggedGraph(){ +} + +defineClass(1835, 1, {}, LoggedGraph); +var Lorg_eclipse_elk_core_util_LoggedGraph_2_classLit = createForClass('org.eclipse.elk.core.util', 'LoggedGraph', 1835); +function $clinit_LoggedGraph$Type(){ + $clinit_LoggedGraph$Type = emptyMethod; + ELK = new LoggedGraph$Type('ELK', 0); + JSON_0 = new LoggedGraph$Type('JSON', 1); + DOT = new LoggedGraph$Type('DOT', 2); + SVG = new LoggedGraph$Type('SVG', 3); +} + +function LoggedGraph$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_116(name_0){ + $clinit_LoggedGraph$Type(); + return valueOf(($clinit_LoggedGraph$Type$Map() , $MAP_106), name_0); +} + +function values_124(){ + $clinit_LoggedGraph$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_37, 415, 0, [ELK, JSON_0, DOT, SVG]); +} + +defineClass(415, 22, {3:1, 34:1, 22:1, 415:1}, LoggedGraph$Type); +var DOT, ELK, JSON_0, SVG; +var Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit = createForEnum('org.eclipse.elk.core.util', 'LoggedGraph/Type', 415, Ljava_lang_Enum_2_classLit, values_124, valueOf_116); +function $clinit_LoggedGraph$Type$Map(){ + $clinit_LoggedGraph$Type$Map = emptyMethod; + $MAP_106 = createValueOfMap(($clinit_LoggedGraph$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_37, 415, 0, [ELK, JSON_0, DOT, SVG]))); +} + +var $MAP_106; +function NullElkProgressMonitor(){ +} + +defineClass(1063, 1, {871:1}, NullElkProgressMonitor); +_.begin = function begin_1(name_0, totalWork){ + return false; +} +; +_.done_1 = function done_0(){ +} +; +_.getExecutionTime = function getExecutionTime_0(){ + return 0; +} +; +_.getLogs = function getLogs_0(){ + return null; +} +; +_.getSubMonitors = function getSubMonitors_0(){ + return null; +} +; +_.getTaskName = function getTaskName_0(){ + return null; +} +; +_.isCanceled = function isCanceled_0(){ + return false; +} +; +_.isLoggingEnabled = function isLoggingEnabled_0(){ + return false; +} +; +_.isRunning = function isRunning_0(){ + return false; +} +; +_.log_0 = function log_1(object){ +} +; +_.logGraph = function logGraph_0(graph, tag){ +} +; +_.subTask = function subTask_0(work){ + return this; +} +; +_.worked = function worked_0(work){ +} +; +var Lorg_eclipse_elk_core_util_NullElkProgressMonitor_2_classLit = createForClass('org.eclipse.elk.core.util', 'NullElkProgressMonitor', 1063); +function $setFirst(this$static, thefirst){ + this$static.first = thefirst; +} + +function $setSecond(this$static, thesecond){ + this$static.second = thesecond; +} + +function Pair(thefirst, thesecond){ + this.first = thefirst; + this.second = thesecond; +} + +defineClass(42, 1, {20:1, 42:1}, Pair); +_.forEach_0 = function forEach_36(action){ + $forEach_0(this, action); +} +; +_.equals_0 = function equals_207(obj){ + var firstEqual, other, secondEqual; + if (instanceOf(obj, 42)) { + other = castTo(obj, 42); + firstEqual = this.first == null?other.first == null:equals_Ljava_lang_Object__Z__devirtual$(this.first, other.first); + secondEqual = this.second == null?other.second == null:equals_Ljava_lang_Object__Z__devirtual$(this.second, other.second); + return firstEqual && secondEqual; + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_71(){ + var first1, first2, firstCode, second1, second2, secondCode; + firstCode = this.first == null?0:hashCode__I__devirtual$(this.first); + first1 = firstCode & $intern_47; + first2 = firstCode & -65536; + secondCode = this.second == null?0:hashCode__I__devirtual$(this.second); + second1 = secondCode & $intern_47; + second2 = secondCode & -65536; + return first1 ^ second2 >> 16 & $intern_47 | first2 ^ second1 << 16; +} +; +_.iterator_0 = function iterator_78(){ + return new Pair$1(this); +} +; +_.toString_0 = function toString_120(){ + return this.first == null && this.second == null?'pair(null,null)':this.first == null?'pair(null,' + toString_40(this.second) + ')':this.second == null?'pair(' + toString_40(this.first) + ',null)':'pair(' + toString_40(this.first) + ',' + toString_40(this.second) + ')'; +} +; +var Lorg_eclipse_elk_core_util_Pair_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair', 42); +function Pair$1(this$0){ + this.this$01 = this$0; +} + +defineClass(995, 1, $intern_6, Pair$1); +_.forEachRemaining = function forEachRemaining_51(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_40(){ + return !this.visitedSecond && (!this.visitedFirst && this.this$01.first != null || this.this$01.second != null); +} +; +_.next_1 = function next_41(){ + if (!this.visitedSecond && !this.visitedFirst && this.this$01.first != null) { + this.visitedFirst = true; + return this.this$01.first; + } + else if (!this.visitedSecond && this.this$01.second != null) { + this.visitedSecond = true; + return this.this$01.second; + } + throw toJs(new NoSuchElementException); +} +; +_.remove = function remove_97(){ + this.visitedSecond && this.this$01.second != null?(this.this$01.second = null):this.visitedFirst && this.this$01.first != null && (this.this$01.first = null); + throw toJs(new IllegalStateException); +} +; +_.visitedFirst = false; +_.visitedSecond = false; +var Lorg_eclipse_elk_core_util_Pair$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair/1', 995); +function Quadruple(a, b, c, d){ + this.first = a; + this.second = b; + this.third = c; + this.fourth = d; +} + +defineClass(455, 1, {455:1}, Quadruple); +_.equals_0 = function equals_208(obj){ + return equals_57(this.first, castTo(obj, 455).first) && equals_57(this.second, castTo(obj, 455).second) && equals_57(this.third, castTo(obj, 455).third) && equals_57(this.fourth, castTo(obj, 455).fourth); +} +; +_.hashCode_1 = function hashCode_72(){ + return hashCode_47(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.first, this.second, this.third, this.fourth])); +} +; +_.toString_0 = function toString_121(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ', ' + this.fourth + ')'; +} +; +var Lorg_eclipse_elk_core_util_Quadruple_2_classLit = createForClass('org.eclipse.elk.core.util', 'Quadruple', 455); +function $randomize(edge, random, drawWidth, drawHeight){ + var bendPoint, bendsNum, edgeSection, edgeSection0, elkBendPoint, elkEdgeSection, i, maxRand, randx, randy, sections, sourceHeight, sourcePX, sourcePY, sourcePort, sourceShape, sourceWidth, sourceX, sourceY, targetHeight, targetPX, targetPY, targetPort, targetShape, targetWidth, targetX, targetY, totalDist, x_0, xdiff, xincr, y_0, ydiff, yincr; + sourceShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84); + sourceX = sourceShape.getX(); + sourceY = sourceShape.getY(); + sourceWidth = sourceShape.getWidth() / 2; + sourceHeight = sourceShape.getHeight() / 2; + if (instanceOf(sourceShape, 193)) { + sourcePort = castTo(sourceShape, 123); + sourceX += $getParent_3(sourcePort).x_0; + sourceX += $getParent_3(sourcePort).x_0; + } + sourceX += sourceWidth; + sourceY += sourceHeight; + targetShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84); + targetX = targetShape.getX(); + targetY = targetShape.getY(); + targetWidth = targetShape.getWidth() / 2; + targetHeight = targetShape.getHeight() / 2; + if (instanceOf(targetShape, 193)) { + targetPort = castTo(targetShape, 123); + targetX += $getParent_3(targetPort).x_0; + targetX += $getParent_3(targetPort).x_0; + } + targetX += targetWidth; + targetY += targetHeight; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + edgeSection0 = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection0); + } + else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { + sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + while (sections.cursor != sections.this$01_2.size_1()) { + $remove_36(sections); + } + } + edgeSection = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166); + sourcePX = targetX; + targetX > sourceX + sourceWidth?(sourcePX = sourceX + sourceWidth):targetX < sourceX - sourceWidth && (sourcePX = sourceX - sourceWidth); + sourcePY = targetY; + targetY > sourceY + sourceHeight?(sourcePY = sourceY + sourceHeight):targetY < sourceY - sourceHeight && (sourcePY = sourceY - sourceHeight); + sourcePX > sourceX - sourceWidth && sourcePX < sourceX + sourceWidth && sourcePY > sourceY - sourceHeight && sourcePY < sourceY + sourceHeight && (sourcePX = sourceX + sourceWidth); + $setStartX(edgeSection, sourcePX); + $setStartY(edgeSection, sourcePY); + targetPX = sourceX; + sourceX > targetX + targetWidth?(targetPX = targetX + targetWidth):sourceX < targetX - targetWidth && (targetPX = targetX - targetWidth); + targetPY = sourceY; + sourceY > targetY + targetHeight?(targetPY = targetY + targetHeight):sourceY < targetY - targetHeight && (targetPY = targetY - targetHeight); + targetPX > targetX - targetWidth && targetPX < targetX + targetWidth && targetPY > targetY - targetHeight && targetPY < targetY + targetHeight && (targetPY = targetY + targetHeight); + $setEndX(edgeSection, targetPX); + $setEndY(edgeSection, targetPY); + $clear_13((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); + bendsNum = $nextInt(random, 5); + sourceShape == targetShape && ++bendsNum; + xdiff = targetPX - sourcePX; + ydiff = targetPY - sourcePY; + totalDist = $wnd.Math.sqrt(xdiff * xdiff + ydiff * ydiff); + maxRand = totalDist * 0.20000000298023224; + xincr = xdiff / (bendsNum + 1); + yincr = ydiff / (bendsNum + 1); + x_0 = sourcePX; + y_0 = sourcePY; + for (i = 0; i < bendsNum; i++) { + x_0 += xincr; + y_0 += yincr; + randx = x_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; + randx < 0?(randx = 1):randx > drawWidth && (randx = drawWidth - 1); + randy = y_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; + randy < 0?(randy = 1):randy > drawHeight && (randy = drawHeight - 1); + bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $setX_1(bendPoint, randx); + $setY_2(bendPoint, randy); + $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); + } +} + +function $randomize_0(parent_0, random, aspectRatio, spacing, padding){ + var areaSqrt, drawArea, drawHeight, drawWidth, edge, edge$iterator, height, m, maxHeight, maxWidth, n, node, node$iterator, node$iterator0, nodesArea, source, source$iterator, totalHeight, totalWidth, width_0, x_0, y_0; + nodesArea = 0; + maxWidth = 0; + maxHeight = 0; + m = 1; + for (node$iterator0 = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 27); + m += size_24(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + width_0 = node.width_0; + maxWidth = $wnd.Math.max(maxWidth, width_0); + height = node.height; + maxHeight = $wnd.Math.max(maxHeight, height); + nodesArea += width_0 * height; + } + n = (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; + drawArea = nodesArea + 2 * spacing * spacing * m * n; + areaSqrt = $wnd.Math.sqrt(drawArea); + drawWidth = $wnd.Math.max(areaSqrt * aspectRatio, maxWidth); + drawHeight = $wnd.Math.max(areaSqrt / aspectRatio, maxHeight); + for (node$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 27); + x_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawWidth - node.width_0); + y_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawHeight - node.height); + $setX_2(node, x_0); + $setY_3(node, y_0); + } + totalWidth = drawWidth + (padding.left + padding.right); + totalHeight = drawHeight + (padding.top_0 + padding.bottom); + for (source$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { + source = castTo($doNext(source$iterator), 27); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 74); + $isHierarchical(edge) || $randomize(edge, random, totalWidth, totalHeight); + } + } + totalWidth += padding.left + padding.right; + totalHeight += padding.top_0 + padding.bottom; + resizeNode_1(parent_0, totalWidth, totalHeight, false, true); +} + +function RandomLayoutProvider(){ +} + +defineClass(1108, 205, $intern_96, RandomLayoutProvider); +_.layout = function layout_10(parentNode, progressMonitor){ + var aspectRatio, padding, random, randomSeed, spacing; + progressMonitor.begin('Random Layout', 1); + if ((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0 == 0) { + progressMonitor.done_1(); + return; + } + randomSeed = castTo($getProperty_0(parentNode, ($clinit_RandomLayouterOptions() , RANDOM_SEED_2)), 17); + !!randomSeed && randomSeed.value_0 != 0?(random = new Random_0(randomSeed.value_0)):(random = new Random); + aspectRatio = $floatValue(castToDouble($getProperty_0(parentNode, ASPECT_RATIO_6))); + spacing = $floatValue(castToDouble($getProperty_0(parentNode, SPACING_NODE_NODE_7))); + padding = castTo($getProperty_0(parentNode, PADDING_8), 107); + $randomize_0(parentNode, random, aspectRatio, spacing, padding); + progressMonitor.done_1(); +} +; +var Lorg_eclipse_elk_core_util_RandomLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'RandomLayoutProvider', 1108); +function Triple(f, s, t){ + this.first = f; + this.second = s; + this.third = t; +} + +defineClass(240, 1, {240:1}, Triple); +_.equals_0 = function equals_209(obj){ + return equals_57(this.first, castTo(obj, 240).first) && equals_57(this.second, castTo(obj, 240).second) && equals_57(this.third, castTo(obj, 240).third); +} +; +_.hashCode_1 = function hashCode_73(){ + return hashCode_47(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.first, this.second, this.third])); +} +; +_.toString_0 = function toString_122(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; +} +; +var Lorg_eclipse_elk_core_util_Triple_2_classLit = createForClass('org.eclipse.elk.core.util', 'Triple', 240); +function $clinit_ElkGraphAdapters(){ + $clinit_ElkGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER_0 = new ElkGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER_0; +function $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter = emptyMethod; + OFFSET_PROXY = new Property_2(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0), 0); +} + +defineClass(562, 1, {}); +_.getPosition = function getPosition_1(){ + return new KVector_1(this.element.x_0, this.element.y_0); +} +; +_.getProperty = function getProperty_2(prop){ + if ($equals_10(prop, ($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { + return $getProperty_0(this.element, OFFSET_PROXY); + } + return $getProperty_0(this.element, prop); +} +; +_.getSize = function getSize_3(){ + return new KVector_1(this.element.width_0, this.element.height); +} +; +_.getVolatileId = function getVolatileId_1(){ + return this.id_0; +} +; +_.hasProperty = function hasProperty_2(prop){ + return $hasProperty_0(this.element, prop); +} +; +_.setPosition = function setPosition_1(pos){ + $setX_2(this.element, pos.x_0); + $setY_3(this.element, pos.y_0); +} +; +_.setSize = function setSize_1(size_0){ + $setWidth_0(this.element, size_0.x_0); + $setHeight_0(this.element, size_0.y_0); +} +; +_.setVolatileId = function setVolatileId_1(volatileId){ + this.id_0 = volatileId; +} +; +_.id_0 = 0; +var OFFSET_PROXY; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$AbstractElkGraphElementAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/AbstractElkGraphElementAdapter', 562); +function ElkGraphAdapters$ElkEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(563, 1, {853:1}, ElkGraphAdapters$ElkEdgeAdapter); +_.getLabels = function getLabels_2(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithExpectedSize($getLabels_1(this.element).size_0); + for (l$iterator = new AbstractEList$EIterator($getLabels_1(this.element)); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 135); + $add_3(this.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.labelAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkEdgeAdapter', 563); +function $getNodes(this$static){ + var n, n$iterator; + if (!this$static.childNodes) { + this$static.childNodes = newArrayListWithExpectedSize($getChildren(castTo(this$static.element, 27)).size_0); + for (n$iterator = new AbstractEList$EIterator($getChildren(castTo(this$static.element, 27))); n$iterator.cursor != n$iterator.this$01_2.size_1();) { + n = castTo($doNext(n$iterator), 27); + $add_3(this$static.childNodes, new ElkGraphAdapters$ElkNodeAdapter(this$static, n)); + } + } + return this$static.childNodes; +} + +function ElkGraphAdapters$ElkGraphAdapter(node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; +} + +defineClass(289, 562, {}, ElkGraphAdapters$ElkGraphAdapter); +_.getNodes = function getNodes_0(){ + return $getNodes(this); +} +; +_.childNodes = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkGraphAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkGraphAdapter', 289); +function ElkGraphAdapters$ElkLabelAdapter(label_0){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = label_0; +} + +defineClass(640, 562, {187:1}, ElkGraphAdapters$ElkLabelAdapter); +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkLabelAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkLabelAdapter', 640); +function $getLabels(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 27).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 27).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 135); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function $getPorts_2(this$static){ + var p, p$iterator; + if (!this$static.portAdapters) { + this$static.portAdapters = newArrayListWithExpectedSize($getPorts_3(castTo(this$static.element, 27)).size_0); + for (p$iterator = new AbstractEList$EIterator($getPorts_3(castTo(this$static.element, 27))); p$iterator.cursor != p$iterator.this$01_2.size_1();) { + p = castTo($doNext(p$iterator), 123); + $add_3(this$static.portAdapters, new ElkGraphAdapters$ElkPortAdapter(p)); + } + } + return this$static.portAdapters; +} + +function $sortPortList_1(this$static, comparator){ + $isOrderFixed(castTo(castTo(this$static.element, 27).getProperty(($clinit_CoreOptions() , PORT_CONSTRAINTS_1)), 101)) && sort_14($getPorts_3(castTo(this$static.element, 27)), comparator); +} + +function ElkGraphAdapters$ElkNodeAdapter(parent_0, node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; + this.parentGraphAdapter = parent_0; +} + +defineClass(639, 562, {695:1}, ElkGraphAdapters$ElkNodeAdapter); +_.getLabels = function getLabels_3(){ + return $getLabels(this); +} +; +_.getMargin = function getMargin_0(){ + var margins; + return margins = castTo($getProperty_0(this.element, ($clinit_CoreOptions() , MARGINS_0)), 140) , !margins && (margins = new ElkMargin) , margins; +} +; +_.getPorts = function getPorts_0(){ + return $getPorts_2(this); +} +; +_.setMargin = function setMargin_0(margin){ + var newMargin; + newMargin = new ElkMargin_2(margin); + $setProperty_1(this.element, ($clinit_CoreOptions() , MARGINS_0), newMargin); +} +; +_.setPadding = function setPadding_0(padding){ + $setProperty_1(this.element, ($clinit_CoreOptions() , PADDING_6), new ElkPadding_1(padding)); +} +; +_.getGraph = function getGraph_0(){ + return this.parentGraphAdapter; +} +; +_.getIncomingEdges = function getIncomingEdges_1(){ + var e, e$iterator; + if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = new ArrayList; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(castTo(this.element, 27)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 74); + $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.incomingEdgeAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_1(){ + var e, e$iterator; + if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = new ArrayList; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(castTo(this.element, 27)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 74); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.isCompoundNode = function isCompoundNode_0(){ + return $getChildren(castTo(this.element, 27)).size_0 != 0 || $booleanValue(castToBoolean(castTo(this.element, 27).getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); +} +; +_.sortPortList = function sortPortList_0(){ + $sortPortList_1(this, ($clinit_ElkGraphAdapters() , DEFAULT_PORTLIST_SORTER_0)); +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +_.parentGraphAdapter = null; +_.portAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkNodeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkNodeAdapter', 639); +function $getLabels_0(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 123).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 123).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 135); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function ElkGraphAdapters$ElkPortAdapter(port){ + this.element = port; +} + +defineClass(1284, 562, {852:1}, ElkGraphAdapters$ElkPortAdapter); +_.getLabels = function getLabels_4(){ + return $getLabels_0(this); +} +; +_.getIncomingEdges = function getIncomingEdges_2(){ + var e, e$iterator; + if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 123).getIncomingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 123).getIncomingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 74); + $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.incomingEdgeAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_2(){ + var e, e$iterator; + if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 123).getOutgoingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 123).getOutgoingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 74); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide_0(){ + return castTo(castTo(this.element, 123).getProperty(($clinit_CoreOptions() , PORT_SIDE_0)), 64); +} +; +_.hasCompoundConnections = function hasCompoundConnections_0(){ + var edge, edge$iterator, edge$iterator0, node, source, source$iterator, target, target$iterator; + node = $getParent_3(castTo(this.element, 123)); + for (edge$iterator0 = new AbstractEList$EIterator(castTo(this.element, 123).getOutgoingEdges_0()); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator0), 74); + for (target$iterator = new AbstractEList$EIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); target$iterator.cursor != target$iterator.this$01_2.size_1();) { + target = castTo($doNext(target$iterator), 84); + if (isDescendant_0(connectableShapeToNode(target), node)) { + return true; + } + else if (connectableShapeToNode(target) == node && $booleanValue(castToBoolean($getProperty_0(edge, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_YO_0))))) { + return true; + } + } + } + for (edge$iterator = new AbstractEList$EIterator(castTo(this.element, 123).getIncomingEdges_0()); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 74); + for (source$iterator = new AbstractEList$EIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { + source = castTo($doNext(source$iterator), 84); + if (isDescendant_0(connectableShapeToNode(source), node)) { + return true; + } + } + } + return false; +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkPortAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkPortAdapter', 1284); +function $compare_28(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = castTo($getProperty_0(port1, ($clinit_CoreOptions() , PORT_SIDE_0)), 64).ordinal - castTo($getProperty_0(port2, PORT_SIDE_0), 64).ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty_0(port1, PORT_INDEX_0), 17); + index2 = castTo($getProperty_0(port2, PORT_INDEX_0), 17); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (castTo($getProperty_0(port1, PORT_SIDE_0), 64).ordinal) { + case 1: + return compare_4(port1.x_0, port2.x_0); + case 2: + return compare_4(port1.y_0, port2.y_0); + case 3: + return compare_4(port2.x_0, port1.x_0); + case 4: + return compare_4(port2.y_0, port1.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function ElkGraphAdapters$PortComparator(){ +} + +defineClass(1285, 1, $intern_88, ElkGraphAdapters$PortComparator); +_.compare_1 = function compare_113(port1, port2){ + return $compare_28(castTo(port1, 123), castTo(port2, 123)); +} +; +_.equals_0 = function equals_210(other){ + return this === other; +} +; +_.reversed = function reversed_105(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/PortComparator', 1285); +var Lorg_eclipse_emf_ecore_EObject_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EObject'); +var Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph', 'EMapPropertyHolder'); +var Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkBendPoint'); +var Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkGraphElement'); +var Lorg_eclipse_elk_graph_ElkShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkShape'); +var Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkConnectableShape'); +var Lorg_eclipse_elk_graph_ElkEdge_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdge'); +var Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdgeSection'); +var Lorg_eclipse_emf_ecore_EModelElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EModelElement'); +var Lorg_eclipse_emf_ecore_EFactory_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EFactory'); +function $clinit_ElkGraphFactory(){ + $clinit_ElkGraphFactory = emptyMethod; + eINSTANCE = init_1(); +} + +var eINSTANCE; +var Lorg_eclipse_emf_ecore_ENamedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ENamedElement'); +var Lorg_eclipse_emf_ecore_EPackage_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EPackage'); +function $clinit_ElkGraphPackage(){ + $clinit_ElkGraphPackage = emptyMethod; + eINSTANCE_0 = init_2(); +} + +var eINSTANCE_0; +function $clinit_ElkGraphPackage$Literals(){ + $clinit_ElkGraphPackage$Literals = emptyMethod; + $clinit_ElkGraphPackage(); + EMAP_PROPERTY_HOLDER = eINSTANCE_0.eMapPropertyHolderEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.eMapPropertyHolderEClass), 0), 19); + ELK_GRAPH_ELEMENT = eINSTANCE_0.elkGraphElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 1), 35); + ELK_SHAPE = eINSTANCE_0.elkShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 3), 35); + ELK_LABEL = eINSTANCE_0.elkLabelEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 1), 35); + ELK_CONNECTABLE_SHAPE = eINSTANCE_0.elkConnectableShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 1), 19); + ELK_NODE = eINSTANCE_0.elkNodeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 1), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 2), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 4), 35); + ELK_PORT = eINSTANCE_0.elkPortEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPortEClass), 0), 19); + ELK_EDGE = eINSTANCE_0.elkEdgeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 1), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 2), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 4), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 5), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 6), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 7), 35); + ELK_BEND_POINT = eINSTANCE_0.elkBendPointEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 1), 35); + ELK_EDGE_SECTION = eINSTANCE_0.elkEdgeSectionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 3), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 4), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 5), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 6), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 7), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 8), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 9), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 10), 35); + ELK_PROPERTY_TO_VALUE_MAP_ENTRY = eINSTANCE_0.elkPropertyToValueMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 1), 35); +} + +var ELK_BEND_POINT, ELK_CONNECTABLE_SHAPE, ELK_EDGE, ELK_EDGE_SECTION, ELK_GRAPH_ELEMENT, ELK_LABEL, ELK_NODE, ELK_PORT, ELK_PROPERTY_TO_VALUE_MAP_ENTRY, ELK_SHAPE, EMAP_PROPERTY_HOLDER; +var Lorg_eclipse_elk_graph_ElkLabel_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkLabel'); +var Lorg_eclipse_elk_graph_ElkNode_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkNode'); +var Lorg_eclipse_elk_graph_ElkPort_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkPort'); +function $eNotify(this$static, notification){ + var eAdapters, i, size_0; + eAdapters = this$static.eBasicAdapterArray(); + if (eAdapters != null && this$static.eDeliver()) { + for (i = 0 , size_0 = eAdapters.length; i < size_0; ++i) { + eAdapters[i].notifyChanged(notification); + } + } +} + +defineClass(93, 1, $intern_137); +_.eBasicAdapterArray = function eBasicAdapterArray(){ + this.eBasicAdapters(); + return null; +} +; +_.eBasicAdapters = function eBasicAdapters(){ + return null; +} +; +_.eBasicHasAdapters = function eBasicHasAdapters(){ + return this.eBasicAdapters() , false; +} +; +_.eDeliver = function eDeliver(){ + return false; +} +; +_.eNotify = function eNotify(notification){ + $eNotify(this, notification); +} +; +var Lorg_eclipse_emf_common_notify_impl_BasicNotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'BasicNotifierImpl', 93); +function $eAttribute(eClass, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(eClass, name_0); + if (instanceOf(eStructuralFeature, 331)) { + return castTo(eStructuralFeature, 35); + } + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid attribute")); +} + +function $eBasicSetContainer(this$static, newContainer, newContainerFeatureID, msgs){ + var newResource, notification, oldContainer, oldContainerFeatureID, oldResource; + oldContainer = this$static.eInternalContainer(); + oldResource = this$static.eDirectResource(); + newResource = null; + if (oldResource) { + if (!!newContainer && (eContainmentFeature(this$static, newContainer, newContainerFeatureID).eFlags & $intern_64) == 0) { + msgs = $basicRemove_0(oldResource.getContents(), this$static, msgs); + this$static.eSetDirectResource(null); + newResource = newContainer.eInternalResource(); + } + else { + oldResource = null; + } + } + else { + !!oldContainer && (oldResource = oldContainer.eInternalResource()); + !!newContainer && (newResource = newContainer.eInternalResource()); + } + oldResource != newResource && !!oldResource && oldResource.detached(this$static); + oldContainerFeatureID = this$static.eContainerFeatureID_0(); + this$static.eBasicSetContainer(newContainer, newContainerFeatureID); + oldResource != newResource && !!newResource && newResource.attached(this$static); + if (this$static.eBasicHasAdapters() && this$static.eDeliver()) { + if (!!oldContainer && oldContainerFeatureID >= 0 && oldContainerFeatureID != newContainerFeatureID) { + notification = new ENotificationImpl_1(this$static, 1, oldContainerFeatureID, oldContainer, null); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (newContainerFeatureID >= 0) { + notification = new ENotificationImpl_1(this$static, 1, newContainerFeatureID, oldContainerFeatureID == newContainerFeatureID?oldContainer:null, newContainer); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + return msgs; +} + +function $eContainer(this$static){ + var eContainerFeatureID, eContainerFeatureID0, notificationChain, resolved, result; + result = this$static.eInternalContainer(); + if (result) { + if (result.eIsProxy()) { + resolved = $eResolveProxy(this$static, result); + if (resolved != result) { + eContainerFeatureID0 = this$static.eContainerFeatureID_0(); + notificationChain = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(null):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, null)); + this$static.eBasicSetContainer(castTo(resolved, 54), eContainerFeatureID0); + !!notificationChain && notificationChain.dispatch_0(); + this$static.eBasicHasAdapters() && this$static.eDeliver() && eContainerFeatureID0 > -1 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, eContainerFeatureID0, result, resolved)); + return resolved; + } + } + } + return result; +} + +function $eDynamicGet(this$static, dynamicFeatureID, eFeature, resolve, coreType){ + return dynamicFeatureID < 0?$eOpenGet(this$static, eFeature, resolve):castTo(eFeature, 69).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); +} + +function $eDynamicIsSet(this$static, dynamicFeatureID, eFeature){ + return dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 69).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); +} + +function $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue){ + if (dynamicFeatureID < 0) { + $eOpenSet(this$static, eFeature, newValue); + } + else { + if (!eFeature.isChangeable()) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + castTo(eFeature, 69).getSettingDelegate().dynamicSet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, newValue); + } +} + +function $eDynamicUnset(this$static, dynamicFeatureID, eFeature){ + if (dynamicFeatureID < 0) { + $eOpenUnset(this$static, eFeature); + } + else { + if (!eFeature.isChangeable()) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + castTo(eFeature, 69).getSettingDelegate().dynamicUnset_0(this$static, this$static.eSettings_0(), dynamicFeatureID); + } +} + +function $eGet(this$static, featureID0, resolve, coreType){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve)):castTo(eFeature, 69).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); +} + +function $eGet_0(this$static, eFeature){ + var featureID; + return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, eFeature, true); +} + +function $eGet_1(this$static, eFeature, resolve){ + var featureID; + return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve); +} + +function $eGet_2(this$static, eFeature){ + var featureID; + featureID = $getFeatureID(this$static.eClass, eFeature); + return featureID >= 0?$eGet(this$static, featureID, true, true):$eOpenGet(this$static, eFeature, true); +} + +function $eInternalResource(this$static){ + var count, eContainer, result; + result = this$static.eDirectResource(); + if (!result) { + count = 0; + for (eContainer = this$static.eInternalContainer(); eContainer; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_67) { + return eContainer.eInternalResource(); + } + result = eContainer.eDirectResource(); + if (!!result || eContainer == this$static) { + break; + } + } + } + return result; +} + +function $eInverseAdd(this$static, otherEnd, featureID, msgs){ + var eContainerFeatureID; + if (featureID >= 0) { + return this$static.eInverseAdd_0(otherEnd, featureID, msgs); + } + else { + !!this$static.eInternalContainer() && (msgs = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(msgs):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + return this$static.eBasicSetContainer_0(otherEnd, featureID, msgs); + } +} + +function $eInverseRemove(this$static, otherEnd, featureID, msgs){ + return featureID >= 0?this$static.eInverseRemove_0(otherEnd, featureID, msgs):this$static.eBasicSetContainer_0(null, featureID, msgs); +} + +function $eIsSet(this$static, featureID0){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature)):dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 69).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); +} + +function $eIsSet_0(this$static, eFeature){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + return featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature); +} + +function $eNotificationRequired(this$static){ + return this$static.eBasicHasAdapters() && this$static.eDeliver(); +} + +function $eObjectForURIFragmentPredicate(this$static, predicate, eReference){ + var eAttribute, eDataType, eFactory, eReferenceType, end, featureMapEntries, i, index_0, length_0, values; + featureMapEntries = new ArrayList; + length_0 = predicate.length; + eReferenceType = $getEReferenceType(eReference); + for (i = 0; i < length_0; ++i) { + index_0 = $indexOf_2(predicate, fromCodePoint(61), i); + eAttribute = $eAttribute(eReferenceType, (checkCriticalStringBounds(i, index_0, predicate.length) , predicate.substr(i, index_0 - i))); + eDataType = $getEAttributeType(eAttribute); + eFactory = eDataType.getEPackage().getEFactoryInstance(); + switch ($charAt(predicate, ++index_0)) { + case 39: + { + end = $indexOf_0(predicate, 39, ++index_0); + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue((checkCriticalStringBounds(index_0, end, predicate.length) , predicate.substr(index_0, end - index_0)), eFactory, eDataType))); + i = end + 1; + break; + } + + case 34: + { + end = $indexOf_0(predicate, 34, ++index_0); + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue((checkCriticalStringBounds(index_0, end, predicate.length) , predicate.substr(index_0, end - index_0)), eFactory, eDataType))); + i = end + 1; + break; + } + + case 91: + { + values = new ArrayList; + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, values)); + LOOP: for (;;) { + switch ($charAt(predicate, ++index_0)) { + case 39: + { + end = $indexOf_0(predicate, 39, ++index_0); + $add_3(values, eDecodeValue((checkCriticalStringBounds(index_0, end, predicate.length) , predicate.substr(index_0, end - index_0)), eFactory, eDataType)); + index_0 = end + 1; + break; + } + + case 34: + { + end = $indexOf_0(predicate, 34, ++index_0); + $add_3(values, eDecodeValue((checkCriticalStringBounds(index_0, end, predicate.length) , predicate.substr(index_0, end - index_0)), eFactory, eDataType)); + index_0 = end + 1; + break; + } + + case 110: + { + ++index_0; + if (predicate.indexOf('ull', index_0) == index_0) { + values.array.push(null); + } + else { + throw toJs(new RuntimeException_0('Expecting null')); + } + index_0 += 3; + break; + } + + } + if (index_0 < length_0) { + switch (checkCriticalStringElementIndex(index_0, predicate.length) , predicate.charCodeAt(index_0)) { + case 44: + { + break; + } + + case 93: + { + break LOOP; + } + + default:{ + throw toJs(new RuntimeException_0('Expecting , or ]')); + } + + } + } + else { + break; + } + } + i = index_0 + 1; + break; + } + + case 110: + { + ++index_0; + if (predicate.indexOf('ull', index_0) == index_0) { + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, null)); + } + else { + throw toJs(new RuntimeException_0('Expecting null')); + } + i = index_0 + 3; + break; + } + + } + if (i < length_0) { + checkCriticalStringElementIndex(i, predicate.length); + if (predicate.charCodeAt(i) != 44) { + throw toJs(new RuntimeException_0('Expecting ,')); + } + } + else { + break; + } + } + return $eObjectForURIFragmentPredicate_0(this$static, featureMapEntries, eReference); +} + +function $eObjectForURIFragmentPredicate_0(this$static, predicate, eReference){ + var actualValue, eObject, eObject$iterator, entry, entryFeature, entryValue, featureID, i, list, size_0; + size_0 = predicate.array.length; + list = (featureID = this$static.eDerivedStructuralFeatureID_0(eReference) , castTo(featureID >= 0?this$static.eGet(featureID, false, true):$eOpenGet(this$static, eReference, false), 61)); + LOOP: for (eObject$iterator = list.iterator_0(); eObject$iterator.hasNext_0();) { + eObject = castTo(eObject$iterator.next_1(), 58); + for (i = 0; i < size_0; ++i) { + entry = (checkCriticalElementIndex(i, predicate.array.length) , castTo(predicate.array[i], 76)); + entryValue = entry.getValue(); + entryFeature = entry.getEStructuralFeature(); + actualValue = eObject.eGet_1(entryFeature, false); + if (entryValue == null?actualValue != null:!equals_Ljava_lang_Object__Z__devirtual$(entryValue, actualValue)) { + continue LOOP; + } + } + return eObject; + } + return null; +} + +function $eObjectForURIFragmentSegment(this$static, uriFragmentSegment){ + var dotIndex, eList, eReference, exception, index_0, lastChar, lastIndex, position, predicate, result; + lastIndex = uriFragmentSegment.length - 1; + lastChar = (checkCriticalStringElementIndex(lastIndex, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(lastIndex)); + if (lastChar == 93) { + index_0 = $indexOf_1(uriFragmentSegment, fromCodePoint(91)); + if (index_0 >= 0) { + eReference = $eReference(this$static, (checkCriticalStringBounds(1, index_0, uriFragmentSegment.length) , uriFragmentSegment.substr(1, index_0 - 1))); + predicate = (checkCriticalStringBounds(index_0 + 1, lastIndex, uriFragmentSegment.length) , uriFragmentSegment.substr(index_0 + 1, lastIndex - (index_0 + 1))); + return $eObjectForURIFragmentPredicate(this$static, predicate, eReference); + } + } + else { + dotIndex = -1; + digitRegex == null && (digitRegex = new RegExp('\\d')); + if (digitRegex.test(String.fromCharCode(lastChar))) { + dotIndex = $lastIndexOf_0(uriFragmentSegment, fromCodePoint(46), lastIndex - 1); + if (dotIndex >= 0) { + eList = castTo($eGet_1(this$static, $eStructuralFeature(this$static, (checkCriticalStringBounds(1, dotIndex, uriFragmentSegment.length) , uriFragmentSegment.substr(1, dotIndex - 1))), false), 61); + position = 0; + try { + position = __parseAndValidateInt((checkCriticalStringElementIndex(dotIndex + 1, uriFragmentSegment.length + 1) , uriFragmentSegment.substr(dotIndex + 1)), $intern_43, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + if (position < eList.size_1()) { + result = eList.get_0(position); + instanceOf(result, 76) && (result = castTo(result, 76).getValue()); + return castTo(result, 58); + } + } + } + if (dotIndex < 0) { + return castTo($eGet_1(this$static, $eStructuralFeature(this$static, (checkCriticalStringElementIndex(1, uriFragmentSegment.length + 1) , uriFragmentSegment.substr(1))), false), 58); + } + } + return null; +} + +function $eOpenGet(this$static, eFeature, resolve){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 69).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 160)); + return castTo(featureMap, 220).get_7(eFeature, resolve); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } +} + +function $eOpenIsSet(this$static, eFeature){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 69).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 160)); + return castTo(featureMap, 220).isSet_1(eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } +} + +function $eOpenSet(this$static, eFeature, newValue){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + if (!castTo(openFeature, 69).isFeatureMap_0()) { + openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature)); + if (!openFeature) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 160)); + castTo(featureMap, 220).set_3(eFeature, newValue); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } +} + +function $eOpenUnset(this$static, eFeature){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 69).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 160)); + castTo(featureMap, 220).unset_0(eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } +} + +function $eReference(this$static, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); + if (instanceOf(eStructuralFeature, 102)) { + return castTo(eStructuralFeature, 19); + } + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid reference")); +} + +function $eResolveProxy(this$static, proxy){ + var eResource, lastArg, resourceContext, result; + result = (resourceContext = this$static?$eInternalResource(this$static):null , resolve_20((lastArg = proxy , resourceContext?resourceContext.getResourceSet():null , lastArg))); + if (result == proxy) { + eResource = $eInternalResource(this$static); + !!eResource && eResource.getResourceSet(); + } + return result; +} + +function $eSet(this$static, featureID0, newValue){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + if (dynamicFeatureID < 0) { + if (!eFeature) { + throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); + } + else if (eFeature.isChangeable()) { + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + else { + $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue); + } +} + +function $eSet_0(this$static, eFeature, newValue){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); +} + +function $eSettings(this$static){ + var size_0; + if (!this$static.eHasSettings()) { + size_0 = $getFeatureCount(this$static.eClass_0()) - this$static.eStaticFeatureCount(); + this$static.eProperties_0().allocateSettings(size_0); + } + return this$static.eBasicProperties(); +} + +function $eStructuralFeature(this$static, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); + if (!eStructuralFeature) { + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid feature")); + } + return eStructuralFeature; +} + +function $eUnset(this$static, featureID0){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + if (dynamicFeatureID < 0) { + if (!eFeature) { + throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); + } + else if (eFeature.isChangeable()) { + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + else { + $eDynamicUnset(this$static, dynamicFeatureID, eFeature); + } +} + +function $eUnset_0(this$static, eFeature){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); +} + +function $toString_16(this$static){ + var number, result; + result = new StringBuilder_1($getName(this$static.___clazz)); + result.string += '@'; + $append_11(result, (number = hashCode__I__devirtual$(this$static) >>> 0 , number.toString(16))); + if (this$static.eIsProxy()) { + result.string += ' (eProxyURI: '; + $append_10(result, this$static.eProxyURI_0()); + if (this$static.eDynamicClass()) { + result.string += ' eClass: '; + $append_10(result, this$static.eDynamicClass()); + } + result.string += ')'; + } + else if (this$static.eDynamicClass()) { + result.string += ' (eClass: '; + $append_10(result, this$static.eDynamicClass()); + result.string += ')'; + } + return result.string; +} + +function eContainmentFeature(eObject, eContainer, eContainerFeatureID){ + var eFeature, entryFeature, entryReference, featureMap, i, size_0; + if (!eContainer) { + return null; + } + else { + if (eContainerFeatureID <= -1) { + eFeature = $getEStructuralFeature(eContainer.eClass_0(), -1 - eContainerFeatureID); + if (instanceOf(eFeature, 102)) { + return castTo(eFeature, 19); + } + else { + featureMap = castTo(eContainer.eGet_0(eFeature), 160); + for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { + if (maskUndefined(featureMap.getValue_1(i)) === maskUndefined(eObject)) { + entryFeature = featureMap.getEStructuralFeature_0(i); + if (instanceOf(entryFeature, 102)) { + entryReference = castTo(entryFeature, 19); + if ((entryReference.eFlags & $intern_138) != 0) { + return entryReference; + } + } + } + } + throw toJs(new IllegalStateException_0('The containment feature could not be located')); + } + } + else { + return $getEOpposite(castTo($getEStructuralFeature(eObject.eClass_0(), eContainerFeatureID), 19)); + } + } +} + +function eDecodeValue(encodedValue, eFactory, eDataType){ + var literal, value_0; + literal = decode(encodedValue); + value_0 = eFactory.createFromString(eDataType, literal); + return value_0; +} + +defineClass(99, 93, $intern_139); +_.eNotificationRequired = function eNotificationRequired(){ + return $eNotificationRequired(this); +} +; +_.eBaseStructuralFeatureID = function eBaseStructuralFeatureID(derivedFeatureID, baseClass){ + return derivedFeatureID; +} +; +_.eBasicProperties = function eBasicProperties(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature(msgs){ + var inverseFeature; + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature(this.eClass_0(), this.eContainerFeatureID_0()), 19)) , this.eInternalContainer().eInverseRemove(this, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} +; +_.eBasicSetContainer = function eBasicSetContainer(newContainer, newContainerFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicSetContainer_0 = function eBasicSetContainer_0(newContainer, newContainerFeatureID, msgs){ + return $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); +} +; +_.eClass_0 = function eClass_0(){ + var result; + if (this.eBasicProperties()) { + result = this.eBasicProperties().getEClass(); + if (result) { + return result; + } + } + return this.eStaticClass(); +} +; +_.eContainer_0 = function eContainer_0(){ + return $eContainer(this); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eContents_0 = function eContents_0(){ + var eStructuralFeatures, result; + result = this.eProperties_0().getEContents(); + !result && this.eBasicProperties().setEContents(result = ($clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures(this.eClass_0())) , eStructuralFeatures == null?EMPTY_CONTENTS_ELIST:new EContentsEList(this, eStructuralFeatures))); + return result; +} +; +_.eDerivedStructuralFeatureID = function eDerivedStructuralFeatureID(baseFeatureID, baseClass){ + return baseFeatureID; +} +; +_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_0(eStructuralFeature){ + var containerClass; + containerClass = eStructuralFeature.getContainerClass(); + return !containerClass?$getFeatureID(this.eClass_0(), eStructuralFeature):eStructuralFeature.getFeatureID_0(); +} +; +_.eDirectResource = function eDirectResource(){ + var eProperties; + eProperties = this.eBasicProperties(); + return !eProperties?null:eProperties.getEResource(); +} +; +_.eDynamicClass = function eDynamicClass(){ + return !this.eBasicProperties()?null:this.eBasicProperties().getEClass(); +} +; +_.eGet = function eGet(featureID, resolve, coreType){ + return $eGet(this, featureID, resolve, coreType); +} +; +_.eGet_0 = function eGet_0(eFeature){ + return $eGet_0(this, eFeature); +} +; +_.eGet_1 = function eGet_1(eFeature, resolve){ + return $eGet_1(this, eFeature, resolve); +} +; +_.eHasSettings = function eHasSettings(){ + var eProperties; + eProperties = this.eBasicProperties(); + return !!eProperties && eProperties.hasSettings(); +} +; +_.eInternalContainer = function eInternalContainer_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eInternalResource = function eInternalResource(){ + return $eInternalResource(this); +} +; +_.eInverseAdd = function eInverseAdd(otherEnd, featureID, baseClass, msgs){ + return $eInverseAdd(this, otherEnd, featureID, msgs); +} +; +_.eInverseAdd_0 = function eInverseAdd_0(otherEnd, featureID, msgs){ + var feature; + return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); +} +; +_.eInverseRemove = function eInverseRemove(otherEnd, featureID, baseClass, msgs){ + return $eInverseRemove(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_0(otherEnd, featureID, msgs){ + var feature; + return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); +} +; +_.eIsProxy = function eIsProxy(){ + return !!this.eBasicProperties() && !!this.eBasicProperties().getEProxyURI(); +} +; +_.eIsSet = function eIsSet(featureID){ + return $eIsSet(this, featureID); +} +; +_.eIsSet_0 = function eIsSet_0(eFeature){ + return $eIsSet_0(this, eFeature); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment(uriFragmentSegment){ + return $eObjectForURIFragmentSegment(this, uriFragmentSegment); +} +; +_.eProperties_0 = function eProperties_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eProxyURI_0 = function eProxyURI_0(){ + return !this.eBasicProperties()?null:this.eBasicProperties().getEProxyURI(); +} +; +_.eResource_0 = function eResource_0(){ + return $eInternalResource(this); +} +; +_.eSet = function eSet(featureID, newValue){ + $eSet(this, featureID, newValue); +} +; +_.eSetClass = function eSetClass(eClass){ + this.eProperties_0().setEClass(eClass); +} +; +_.eSetDirectResource = function eSetDirectResource(resource){ + this.eProperties_0().setEResource(resource); +} +; +_.eSetProxyURI = function eSetProxyURI(uri_0){ + this.eProperties_0().setEProxyURI(uri_0); +} +; +_.eSetResource = function eSetResource(resource, notifications){ + var eContainerFeatureID, oldContainer, oldContainerResource, oldResource; + oldResource = this.eDirectResource(); + if (!!oldResource && !!resource) { + notifications = $basicRemove_0(oldResource.getContents(), this, notifications); + oldResource.detached(this); + } + oldContainer = this.eInternalContainer(); + if (oldContainer) { + if ((eContainmentFeature(this, this.eInternalContainer(), this.eContainerFeatureID_0()).eFlags & $intern_64) != 0) { + oldContainerResource = oldContainer.eInternalResource(); + !!oldContainerResource && (!resource?oldContainerResource.attached(this):!oldResource && oldContainerResource.detached(this)); + } + else { + notifications = (eContainerFeatureID = this.eContainerFeatureID_0() , eContainerFeatureID >= 0?this.eBasicRemoveFromContainerFeature(notifications):this.eInternalContainer().eInverseRemove(this, -1 - eContainerFeatureID, null, notifications)); + notifications = this.eBasicSetContainer_0(null, -1, notifications); + } + } + this.eSetDirectResource(resource); + return notifications; +} +; +_.eSetting = function eSetting(eFeature){ + var dynamicIndex, eClass, featureID, featureMap, index_0, openFeature, setting, upperBound; + eClass = this.eClass_0(); + index_0 = $getFeatureID(eClass, eFeature); + dynamicIndex = this.eStaticFeatureCount(); + if (index_0 >= dynamicIndex) { + return castTo(eFeature, 69).getSettingDelegate().dynamicSetting(this, this.eSettings_0(), index_0 - dynamicIndex); + } + else if (index_0 <= -1) { + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 69).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this.eGet(featureID, true, true):$eOpenGet(this, openFeature, true), 160)); + upperBound = openFeature.getUpperBound(); + if (upperBound > 1 || upperBound == -1) { + return castTo(castTo(featureMap, 220).get_7(eFeature, false), 79); + } + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } + } + else if (eFeature.isMany()) { + return featureID = this.eDerivedStructuralFeatureID_0(eFeature) , castTo(featureID >= 0?this.eGet(featureID, false, true):$eOpenGet(this, eFeature, false), 79); + } + setting = new BasicEObjectImpl$4(this, eFeature); + return setting; +} +; +_.eSettings_0 = function eSettings(){ + return $eSettings(this); +} +; +_.eStaticClass = function eStaticClass(){ + return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; +} +; +_.eStaticFeatureCount = function eStaticFeatureCount(){ + return $getFeatureCount(this.eStaticClass()); +} +; +_.eUnset = function eUnset(featureID){ + $eUnset(this, featureID); +} +; +_.toString_0 = function toString_123(){ + return $toString_16(this); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl', 99); +function $clinit_EStructuralFeature$Internal$DynamicValueHolder(){ + $clinit_EStructuralFeature$Internal$DynamicValueHolder = emptyMethod; + NIL = new EStructuralFeature$Internal$DynamicValueHolder$1; +} + +var NIL; +function $addField(this$static, field, value_0){ + var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; + fieldCount = bitCount(this$static.eFlags_0 & 254); + if (fieldCount == 0) { + this$static.eStorage = value_0; + } + else { + if (fieldCount == 1) { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 2, 5, 1); + fieldIndex = $fieldIndex(this$static, field); + if (fieldIndex == 0) { + result[0] = value_0; + result[1] = this$static.eStorage; + } + else { + result[0] = this$static.eStorage; + result[1] = value_0; + } + } + else { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount + 1, 5, 1); + oldStorage = castToArray(this$static.eStorage); + for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { + bit == field?(result[targetIndex++] = value_0):(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); + } + } + this$static.eStorage = result; + } + this$static.eFlags_0 |= field; +} + +function $eClass(this$static){ + var eClass; + eClass = castTo($getField(this$static, 16), 29); + return !eClass?this$static.eStaticClass():eClass; +} + +function $eDynamicSettings(this$static){ + var settings; + settings = castToArray($getField(this$static, 32)); + if (settings == null) { + $eSettings_0(this$static); + settings = castToArray($getField(this$static, 32)); + } + return settings; +} + +function $eSettings_0(this$static){ + var eClass, size_0; + if ((this$static.eFlags_0 & 32) == 0) { + size_0 = (eClass = castTo($getField(this$static, 16), 29) , $getFeatureCount(!eClass?this$static.eStaticClass():eClass) - $getFeatureCount(this$static.eStaticClass())); + size_0 != 0 && $setField(this$static, 32, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1)); + } + return this$static; +} + +function $fieldIndex(this$static, field){ + var bit, bit0, result; + result = 0; + for (bit0 = 2; bit0 < field; bit0 <<= 1) { + (this$static.eFlags_0 & bit0) != 0 && ++result; + } + if (result == 0) { + for (bit = field <<= 1; bit <= 128; bit <<= 1) { + if ((this$static.eFlags_0 & bit) != 0) { + return 0; + } + } + return -1; + } + else { + return result; + } +} + +function $getField(this$static, field){ + var fieldIndex; + if ((this$static.eFlags_0 & field) != 0) { + fieldIndex = $fieldIndex(this$static, field); + return fieldIndex == -1?this$static.eStorage:castToArray(this$static.eStorage)[fieldIndex]; + } + else { + return null; + } +} + +function $removeField(this$static, field){ + var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; + fieldCount = bitCount(this$static.eFlags_0 & 254); + if (fieldCount == 1) { + this$static.eStorage = null; + } + else { + oldStorage = castToArray(this$static.eStorage); + if (fieldCount == 2) { + fieldIndex = $fieldIndex(this$static, field); + this$static.eStorage = oldStorage[fieldIndex == 0?1:0]; + } + else { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount - 1, 5, 1); + for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { + bit == field?++sourceIndex:(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); + } + this$static.eStorage = result; + } + } + this$static.eFlags_0 &= ~field; +} + +function $setField(this$static, field, value_0){ + var fieldIndex; + if ((this$static.eFlags_0 & field) != 0) { + if (value_0 == null) { + $removeField(this$static, field); + } + else { + fieldIndex = $fieldIndex(this$static, field); + fieldIndex == -1?(this$static.eStorage = value_0):setCheck(castToArray(this$static.eStorage), fieldIndex, value_0); + } + } + else + value_0 != null && $addField(this$static, field, value_0); +} + +defineClass(119, 99, {110:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1}); +_.dynamicGet = function dynamicGet(dynamicFeatureID){ + var settings; + settings = $eDynamicSettings(this); + return settings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet(dynamicFeatureID, newValue){ + var settings; + settings = $eDynamicSettings(this); + setCheck(settings, dynamicFeatureID, newValue); +} +; +_.dynamicUnset = function dynamicUnset(dynamicFeatureID){ + var settings; + settings = $eDynamicSettings(this); + setCheck(settings, dynamicFeatureID, null); +} +; +_.eBasicAdapterArray = function eBasicAdapterArray_0(){ + return castTo($getField(this, 4), 129); +} +; +_.eBasicAdapters = function eBasicAdapters_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicHasAdapters = function eBasicHasAdapters_0(){ + return (this.eFlags_0 & 4) != 0; +} +; +_.eBasicProperties = function eBasicProperties_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicSetContainer_1 = function eBasicSetContainer_1(newContainer){ + $setField(this, 2, newContainer); +} +; +_.eBasicSetContainer = function eBasicSetContainer_2(newContainer, newContainerFeatureID){ + this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; + this.eBasicSetContainer_1(newContainer); +} +; +_.eClass_0 = function eClass_1(){ + return $eClass(this); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_1(){ + return this.eFlags_0 >> 16; +} +; +_.eContents_0 = function eContents_1(){ + var eClass, eStructuralFeatures; + return $clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass))) , eStructuralFeatures == null?(null , EMPTY_CONTENTS_ELIST):new EContentsEList(this, eStructuralFeatures); +} +; +_.eDeliver = function eDeliver_0(){ + return (this.eFlags_0 & 1) == 0; +} +; +_.eDirectResource = function eDirectResource_0(){ + return castTo($getField(this, 128), 2034); +} +; +_.eDynamicClass = function eDynamicClass_0(){ + return castTo($getField(this, 16), 29); +} +; +_.eHasSettings = function eHasSettings_0(){ + return (this.eFlags_0 & 32) != 0; +} +; +_.eInternalContainer = function eInternalContainer_1(){ + return castTo($getField(this, 2), 54); +} +; +_.eIsProxy = function eIsProxy_0(){ + return (this.eFlags_0 & 64) != 0; +} +; +_.eProperties_0 = function eProperties_1(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eProxyURI_0 = function eProxyURI_1(){ + return castTo($getField(this, 64), 288); +} +; +_.eSetClass = function eSetClass_0(eClass){ + $setField(this, 16, eClass); +} +; +_.eSetDirectResource = function eSetDirectResource_0(resource){ + $setField(this, 128, resource); +} +; +_.eSetProxyURI = function eSetProxyURI_0(uri_0){ + $setField(this, 64, uri_0); +} +; +_.eSettings_0 = function eSettings_0(){ + return $eSettings_0(this); +} +; +_.eFlags_0 = 0; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl', 119); +defineClass(120, 119, {110:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}); +_.eBasicSetContainer_1 = function eBasicSetContainer_3(newContainer){ + this.eContainer = newContainer; +} +; +_.eInternalContainer = function eInternalContainer_2(){ + return this.eContainer; +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$Container_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/Container', 120); +function $copyProperties_0(this$static, source){ + var entry, entry$iterator, other, ourProps, value_0; + if (!source) { + return this$static; + } + if (instanceOf(source, 342)) { + other = castTo(source, 342); + ourProps = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties); + for (entry$iterator = other.getProperties().delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 44); + value_0 = entry.getValue(); + $put_14(ourProps, castTo(entry.getKey(), 149), value_0); + } + } + else { + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + $putAll_1(this$static.properties, source.getAllProperties()); + } + return this$static; +} + +function $eGet_3(this$static, featureID, resolve, coreType){ + if (featureID == 0) { + return coreType?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $map_0(this$static.properties)); + } + return $eGet(this$static, featureID, resolve, coreType); +} + +function $eInverseRemove_0(this$static, otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $basicRemove_1(this$static.properties, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?this$static.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); +} + +function $eIsSet_1(this$static, featureID){ + if (featureID == 0) { + return !!this$static.properties && this$static.properties.size_0 != 0; + } + return $eIsSet(this$static, featureID); +} + +function $eSet_1(this$static, featureID, newValue){ + switch (featureID) { + case 0: + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + $set_13(this$static.properties, newValue); + return; + } + $eSet(this$static, featureID, newValue); +} + +function $eUnset_1(this$static, featureID){ + switch (featureID) { + case 0: + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + this$static.properties.delegateEList.clear_0(); + return; + } + $eUnset(this$static, featureID); +} + +function $getAllProperties_0(this$static){ + var entry, entry$iterator, props; + props = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties); + for (entry$iterator = props.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 44); + entry.getValue(); + } + return $map_0(props); +} + +function $getProperty_0(this$static, property){ + var defaultValue, value_0; + value_0 = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $get_21(this$static.properties, property)); + if (value_0 != null) { + return value_0; + } + defaultValue = property.getDefault(); + instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_14(this$static.properties, property, defaultValue)) , this$static); + return defaultValue; +} + +function $hasProperty_0(this$static, property){ + return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $containsKey_7(this$static.properties, property); +} + +function $setProperty_1(this$static, property, value_0){ + value_0 == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_14(this$static.properties, property, value_0)); + return this$static; +} + +defineClass(2083, 120, {110:1, 342:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}); +_.eGet = function eGet_2(featureID, resolve, coreType){ + return $eGet_3(this, featureID, resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_1(otherEnd, featureID, msgs){ + return $eInverseRemove_0(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_1(featureID){ + return $eIsSet_1(this, featureID); +} +; +_.eSet = function eSet_0(featureID, newValue){ + $eSet_1(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_0(){ + return $clinit_ElkGraphPackage$Literals() , EMAP_PROPERTY_HOLDER; +} +; +_.eUnset = function eUnset_0(featureID){ + $eUnset_1(this, featureID); +} +; +_.getAllProperties = function getAllProperties_0(){ + return $getAllProperties_0(this); +} +; +_.getProperties = function getProperties(){ + return !this.properties && (this.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this, 0)) , this.properties; +} +; +_.getProperty = function getProperty_3(property){ + return $getProperty_0(this, property); +} +; +_.hasProperty = function hasProperty_3(property){ + return $hasProperty_0(this, property); +} +; +_.setProperty = function setProperty_0(property, value_0){ + return $setProperty_1(this, property, value_0); +} +; +var Lorg_eclipse_elk_graph_impl_EMapPropertyHolderImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'EMapPropertyHolderImpl', 2083); +function $set_9(this$static, x_0, y_0){ + $setX_1(this$static, x_0); + $setY_2(this$static, y_0); +} + +function $setX_1(this$static, newX){ + var oldX; + oldX = this$static.x_0; + this$static.x_0 = newX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 0, oldX, this$static.x_0)); +} + +function $setY_2(this$static, newY){ + var oldY; + oldY = this$static.y_0; + this$static.y_0 = newY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldY, this$static.y_0)); +} + +function ElkBendPointImpl(){ +} + +defineClass(572, 120, {110:1, 377:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkBendPointImpl); +_.eGet = function eGet_3(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.x_0; + case 1: + return this.y_0; + } + return $eGet(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_2(featureID){ + switch (featureID) { + case 0: + return this.x_0 != 0; + case 1: + return this.y_0 != 0; + } + return $eIsSet(this, featureID); +} +; +_.eSet = function eSet_1(featureID, newValue){ + switch (featureID) { + case 0: + $setX_1(this, $doubleValue(castToDouble(newValue))); + return; + case 1: + $setY_2(this, $doubleValue(castToDouble(newValue))); + return; + } + $eSet(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_1(){ + return $clinit_ElkGraphPackage$Literals() , ELK_BEND_POINT; +} +; +_.eUnset = function eUnset_1(featureID){ + switch (featureID) { + case 0: + $setX_1(this, 0); + return; + case 1: + $setY_2(this, 0); + return; + } + $eUnset(this, featureID); +} +; +_.toString_0 = function toString_124(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (x: '; + $append_0(result, this.x_0); + result.string += ', y: '; + $append_0(result, this.y_0); + result.string += ')'; + return result.string; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_graph_impl_ElkBendPointImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkBendPointImpl', 572); +function $eGet_4(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 1: + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , this$static.labels; + case 2: + return this$static.identifier; + } + return $eGet_3(this$static, featureID, resolve, coreType); +} + +function $eInverseAdd_0(this$static, otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 1) { + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicAdd_0(this$static.labels, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?this$static.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); +} + +function $eInverseRemove_1(this$static, otherEnd, featureID, msgs){ + if (featureID == 1) { + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicRemove_0(this$static.labels, otherEnd, msgs); + } + return $eInverseRemove_0(this$static, otherEnd, featureID, msgs); +} + +function $eIsSet_2(this$static, featureID){ + switch (featureID) { + case 1: + return !!this$static.labels && this$static.labels.size_0 != 0; + case 2: + return this$static.identifier != null; + } + return $eIsSet_1(this$static, featureID); +} + +function $eSet_2(this$static, featureID, newValue){ + switch (featureID) { + case 1: + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $clear_13(this$static.labels); + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $addAll_9(this$static.labels, castTo(newValue, 16)); + return; + case 2: + $setIdentifier(this$static, castToString(newValue)); + return; + } + $eSet_1(this$static, featureID, newValue); +} + +function $eUnset_2(this$static, featureID){ + switch (featureID) { + case 1: + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $clear_13(this$static.labels); + return; + case 2: + $setIdentifier(this$static, null); + return; + } + $eUnset_1(this$static, featureID); +} + +function $getLabels_1(this$static){ + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + return this$static.labels; +} + +function $setIdentifier(this$static, newIdentifier){ + var oldIdentifier; + oldIdentifier = this$static.identifier; + this$static.identifier = newIdentifier; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldIdentifier, this$static.identifier)); +} + +function $toString_17(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (identifier: '; + $append_3(result, this$static.identifier); + result.string += ')'; + return result.string; +} + +defineClass(739, 2083, {110:1, 342:1, 167:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}); +_.eGet = function eGet_4(featureID, resolve, coreType){ + return $eGet_4(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_1(otherEnd, featureID, msgs){ + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_2(otherEnd, featureID, msgs){ + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_3(featureID){ + return $eIsSet_2(this, featureID); +} +; +_.eSet = function eSet_2(featureID, newValue){ + $eSet_2(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_2(){ + return $clinit_ElkGraphPackage$Literals() , ELK_GRAPH_ELEMENT; +} +; +_.eUnset = function eUnset_2(featureID){ + $eUnset_2(this, featureID); +} +; +_.getIdentifier = function getIdentifier_0(){ + return this.identifier; +} +; +_.getLabels_0 = function getLabels_5(){ + return $getLabels_1(this); +} +; +_.toString_0 = function toString_125(){ + return $toString_17(this); +} +; +_.identifier = null; +var Lorg_eclipse_elk_graph_impl_ElkGraphElementImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphElementImpl', 739); +function $eGet_5(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 3: + return this$static.height; + case 4: + return this$static.width_0; + case 5: + return this$static.x_0; + case 6: + return this$static.y_0; + } + return $eGet_4(this$static, featureID, resolve, coreType); +} + +function $eIsSet_3(this$static, featureID){ + switch (featureID) { + case 3: + return this$static.height != 0; + case 4: + return this$static.width_0 != 0; + case 5: + return this$static.x_0 != 0; + case 6: + return this$static.y_0 != 0; + } + return $eIsSet_2(this$static, featureID); +} + +function $eSet_3(this$static, featureID, newValue){ + switch (featureID) { + case 3: + $setHeight_0(this$static, $doubleValue(castToDouble(newValue))); + return; + case 4: + $setWidth_0(this$static, $doubleValue(castToDouble(newValue))); + return; + case 5: + $setX_2(this$static, $doubleValue(castToDouble(newValue))); + return; + case 6: + $setY_3(this$static, $doubleValue(castToDouble(newValue))); + return; + } + $eSet_2(this$static, featureID, newValue); +} + +function $eUnset_3(this$static, featureID){ + switch (featureID) { + case 3: + $setHeight_0(this$static, 0); + return; + case 4: + $setWidth_0(this$static, 0); + return; + case 5: + $setX_2(this$static, 0); + return; + case 6: + $setY_3(this$static, 0); + return; + } + $eUnset_2(this$static, featureID); +} + +function $setDimensions_0(this$static, width_0, height){ + $setWidth_0(this$static, width_0); + $setHeight_0(this$static, height); +} + +function $setHeight_0(this$static, newHeight){ + var oldHeight; + oldHeight = this$static.height; + this$static.height = newHeight; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldHeight, this$static.height)); +} + +function $setLocation_1(this$static, x_0, y_0){ + $setX_2(this$static, x_0); + $setY_3(this$static, y_0); +} + +function $setWidth_0(this$static, newWidth){ + var oldWidth; + oldWidth = this$static.width_0; + this$static.width_0 = newWidth; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldWidth, this$static.width_0)); +} + +function $setX_2(this$static, newX){ + var oldX; + oldX = this$static.x_0; + this$static.x_0 = newX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 5, oldX, this$static.x_0)); +} + +function $setY_3(this$static, newY){ + var oldY; + oldY = this$static.y_0; + this$static.y_0 = newY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 6, oldY, this$static.y_0)); +} + +function $toString_18(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_17(this$static); + result = new StringBuffer_1($toString_17(this$static)); + result.string += ' (height: '; + $append_0(result, this$static.height); + result.string += ', width: '; + $append_0(result, this$static.width_0); + result.string += ', x: '; + $append_0(result, this$static.x_0); + result.string += ', y: '; + $append_0(result, this$static.y_0); + result.string += ')'; + return result.string; +} + +defineClass(740, 739, {110:1, 342:1, 167:1, 422:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}); +_.eGet = function eGet_5(featureID, resolve, coreType){ + return $eGet_5(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_4(featureID){ + return $eIsSet_3(this, featureID); +} +; +_.eSet = function eSet_3(featureID, newValue){ + $eSet_3(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_3(){ + return $clinit_ElkGraphPackage$Literals() , ELK_SHAPE; +} +; +_.eUnset = function eUnset_3(featureID){ + $eUnset_3(this, featureID); +} +; +_.getHeight = function getHeight(){ + return this.height; +} +; +_.getWidth = function getWidth(){ + return this.width_0; +} +; +_.getX = function getX(){ + return this.x_0; +} +; +_.getY = function getY(){ + return this.y_0; +} +; +_.setDimensions = function setDimensions(width_0, height){ + $setDimensions_0(this, width_0, height); +} +; +_.setLocation = function setLocation(x_0, y_0){ + $setLocation_1(this, x_0, y_0); +} +; +_.setX = function setX(newX){ + $setX_2(this, newX); +} +; +_.setY = function setY(newY){ + $setY_3(this, newY); +} +; +_.toString_0 = function toString_126(){ + return $toString_18(this); +} +; +_.height = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_graph_impl_ElkShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkShapeImpl', 740); +function $eGet_6(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , this$static.outgoingEdges; + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , this$static.incomingEdges; + } + return $eGet_5(this$static, featureID, resolve, coreType); +} + +function $eInverseAdd_1(this$static, otherEnd, featureID, msgs){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicAdd_0(this$static.outgoingEdges, otherEnd, msgs); + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicAdd_0(this$static.incomingEdges, otherEnd, msgs); + } + return $eInverseAdd_0(this$static, otherEnd, featureID, msgs); +} + +function $eInverseRemove_2(this$static, otherEnd, featureID, msgs){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicRemove_0(this$static.outgoingEdges, otherEnd, msgs); + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicRemove_0(this$static.incomingEdges, otherEnd, msgs); + } + return $eInverseRemove_1(this$static, otherEnd, featureID, msgs); +} + +function $eIsSet_4(this$static, featureID){ + switch (featureID) { + case 7: + return !!this$static.outgoingEdges && this$static.outgoingEdges.size_0 != 0; + case 8: + return !!this$static.incomingEdges && this$static.incomingEdges.size_0 != 0; + } + return $eIsSet_3(this$static, featureID); +} + +function $eSet_4(this$static, featureID, newValue){ + switch (featureID) { + case 7: + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $clear_13(this$static.outgoingEdges); + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $addAll_9(this$static.outgoingEdges, castTo(newValue, 16)); + return; + case 8: + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $clear_13(this$static.incomingEdges); + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $addAll_9(this$static.incomingEdges, castTo(newValue, 16)); + return; + } + $eSet_3(this$static, featureID, newValue); +} + +function $eUnset_4(this$static, featureID){ + switch (featureID) { + case 7: + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $clear_13(this$static.outgoingEdges); + return; + case 8: + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $clear_13(this$static.incomingEdges); + return; + } + $eUnset_3(this$static, featureID); +} + +function ElkConnectableShapeImpl(){ +} + +defineClass(741, 740, {110:1, 342:1, 84:1, 167:1, 422:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}); +_.eGet = function eGet_6(featureID, resolve, coreType){ + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_2(otherEnd, featureID, msgs){ + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_3(otherEnd, featureID, msgs){ + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_5(featureID){ + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_4(featureID, newValue){ + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_4(){ + return $clinit_ElkGraphPackage$Literals() , ELK_CONNECTABLE_SHAPE; +} +; +_.eUnset = function eUnset_4(featureID){ + $eUnset_4(this, featureID); +} +; +_.getIncomingEdges_0 = function getIncomingEdges_3(){ + return !this.incomingEdges && (this.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 8, 5)) , this.incomingEdges; +} +; +_.getOutgoingEdges_0 = function getOutgoingEdges_3(){ + return !this.outgoingEdges && (this.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 7, 4)) , this.outgoingEdges; +} +; +var Lorg_eclipse_elk_graph_impl_ElkConnectableShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkConnectableShapeImpl', 741); +function $basicSetContainingNode(this$static, newContainingNode, msgs){ + msgs = $eBasicSetContainer(this$static, newContainingNode, 3, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 3) { + return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getContainingNode(this$static){ + if (this$static.eFlags_0 >> 16 != 3) + return null; + return castTo(this$static.eContainer, 27); +} + +function $getSources(this$static){ + !this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)); + return this$static.sources; +} + +function $getTargets(this$static){ + !this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)); + return this$static.targets; +} + +function $isHierarchical(this$static){ + var commonRepresentingNode, incidentShape, incidentShape$iterator, shapeNode; + commonRepresentingNode = null; + for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { + incidentShape = castTo($next_0(incidentShape$iterator), 84); + shapeNode = connectableShapeToNode(incidentShape); + if (!commonRepresentingNode) { + commonRepresentingNode = $getParent_2(shapeNode); + } + else if (commonRepresentingNode != $getParent_2(shapeNode)) { + return true; + } + } + return false; +} + +function $isSelfloop(this$static){ + var commonNode, incidentShape, incidentShape$iterator, shapeNode; + commonNode = null; + for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { + incidentShape = castTo($next_0(incidentShape$iterator), 84); + shapeNode = connectableShapeToNode(incidentShape); + if (!commonNode) { + commonNode = shapeNode; + } + else if (commonNode != shapeNode) { + return false; + } + } + return true; +} + +function $setContainingNode(this$static, newContainingNode){ + var eContainerFeatureID, msgs; + if (newContainingNode != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newContainingNode) { + if (isAncestor(this$static, newContainingNode)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_19(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newContainingNode && (msgs = $eInverseAdd(newContainingNode, this$static, 12, msgs)); + msgs = $basicSetContainingNode(this$static, newContainingNode, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newContainingNode, newContainingNode)); +} + +function $toString_19(this$static){ + var builder, hyperedge, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_17(this$static); + builder = new StringBuilder_1('ElkEdge'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 135)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + hyperedge = (!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , !(this$static.sources.size_0 <= 1 && (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets.size_0 <= 1))); + hyperedge?(builder.string += ' [' , builder):(builder.string += ' ' , builder); + $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.sources))); + hyperedge && (builder.string += ']' , builder); + builder.string += ' -> '; + hyperedge && (builder.string += '[' , builder); + $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.targets))); + hyperedge && (builder.string += ']' , builder); + return builder.string; +} + +function ElkEdgeImpl(){ +} + +defineClass(326, 739, {110:1, 342:1, 74:1, 167:1, 326:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkEdgeImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_0(msgs){ + return $eBasicRemoveFromContainerFeature(this, msgs); +} +; +_.eGet = function eGet_7(featureID, resolve, coreType){ + switch (featureID) { + case 3: + return $getContainingNode(this); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources; + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets; + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , this.sections; + case 7: + return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)?false:true; + case 8: + return $clinit_Boolean() , $isHierarchical(this)?true:false; + case 9: + return $clinit_Boolean() , $isSelfloop(this)?true:false; + case 10: + return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0)?true:false; + } + return $eGet_4(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_3(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 3: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetContainingNode(this, castTo(otherEnd, 27), msgs); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicAdd_0(this.sources, otherEnd, msgs); + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicAdd_0(this.targets, otherEnd, msgs); + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicAdd_0(this.sections, otherEnd, msgs); + } + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_4(otherEnd, featureID, msgs){ + switch (featureID) { + case 3: + return $basicSetContainingNode(this, null, msgs); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicRemove_0(this.sources, otherEnd, msgs); + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicRemove_0(this.targets, otherEnd, msgs); + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicRemove_0(this.sections, otherEnd, msgs); + } + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_6(featureID){ + switch (featureID) { + case 3: + return !!$getContainingNode(this); + case 4: + return !!this.sources && this.sources.size_0 != 0; + case 5: + return !!this.targets && this.targets.size_0 != 0; + case 6: + return !!this.sections && this.sections.size_0 != 0; + case 7: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , !(this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)); + case 8: + return $isHierarchical(this); + case 9: + return $isSelfloop(this); + case 10: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0); + } + return $eIsSet_2(this, featureID); +} +; +_.eSet = function eSet_5(featureID, newValue){ + switch (featureID) { + case 3: + $setContainingNode(this, castTo(newValue, 27)); + return; + case 4: + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $clear_13(this.sources); + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $addAll_9(this.sources, castTo(newValue, 16)); + return; + case 5: + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $clear_13(this.targets); + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $addAll_9(this.targets, castTo(newValue, 16)); + return; + case 6: + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $clear_13(this.sections); + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $addAll_9(this.sections, castTo(newValue, 16)); + return; + } + $eSet_2(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_5(){ + return $clinit_ElkGraphPackage$Literals() , ELK_EDGE; +} +; +_.eUnset = function eUnset_5(featureID){ + switch (featureID) { + case 3: + $setContainingNode(this, null); + return; + case 4: + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $clear_13(this.sources); + return; + case 5: + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $clear_13(this.targets); + return; + case 6: + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $clear_13(this.sections); + return; + } + $eUnset_2(this, featureID); +} +; +_.toString_0 = function toString_127(){ + return $toString_19(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkEdgeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeImpl', 326); +function $basicSetParent(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 6, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_0(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 6) { + return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getIncomingShape(this$static){ + var oldIncomingShape; + if (!!this$static.incomingShape && this$static.incomingShape.eIsProxy()) { + oldIncomingShape = castTo(this$static.incomingShape, 54); + this$static.incomingShape = castTo($eResolveProxy(this$static, oldIncomingShape), 84); + this$static.incomingShape != oldIncomingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldIncomingShape, this$static.incomingShape)); + } + return this$static.incomingShape; +} + +function $getOutgoingShape(this$static){ + var oldOutgoingShape; + if (!!this$static.outgoingShape && this$static.outgoingShape.eIsProxy()) { + oldOutgoingShape = castTo(this$static.outgoingShape, 54); + this$static.outgoingShape = castTo($eResolveProxy(this$static, oldOutgoingShape), 84); + this$static.outgoingShape != oldOutgoingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 7, oldOutgoingShape, this$static.outgoingShape)); + } + return this$static.outgoingShape; +} + +function $getParent_0(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 74); +} + +function $setEndLocation(this$static, x_0, y_0){ + $setEndX(this$static, x_0); + $setEndY(this$static, y_0); +} + +function $setEndX(this$static, newEndX){ + var oldEndX; + oldEndX = this$static.endX; + this$static.endX = newEndX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldEndX, this$static.endX)); +} + +function $setEndY(this$static, newEndY){ + var oldEndY; + oldEndY = this$static.endY; + this$static.endY = newEndY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldEndY, this$static.endY)); +} + +function $setIdentifier_0(this$static, newIdentifier){ + var oldIdentifier; + oldIdentifier = this$static.identifier; + this$static.identifier = newIdentifier; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, oldIdentifier, this$static.identifier)); +} + +function $setIncomingShape(this$static, newIncomingShape){ + var oldIncomingShape; + oldIncomingShape = this$static.incomingShape; + this$static.incomingShape = newIncomingShape; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldIncomingShape, this$static.incomingShape)); +} + +function $setOutgoingShape(this$static, newOutgoingShape){ + var oldOutgoingShape; + oldOutgoingShape = this$static.outgoingShape; + this$static.outgoingShape = newOutgoingShape; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, oldOutgoingShape, this$static.outgoingShape)); +} + +function $setParent_0(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 6 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_20(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 6, msgs)); + msgs = $basicSetParent(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 6, newParent, newParent)); +} + +function $setStartLocation(this$static, x_0, y_0){ + $setStartX(this$static, x_0); + $setStartY(this$static, y_0); +} + +function $setStartX(this$static, newStartX){ + var oldStartX; + oldStartX = this$static.startX; + this$static.startX = newStartX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldStartX, this$static.startX)); +} + +function $setStartY(this$static, newStartY){ + var oldStartY; + oldStartY = this$static.startY; + this$static.startY = newStartY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 2, oldStartY, this$static.startY)); +} + +function $toString_20(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (startX: '; + $append_0(result, this$static.startX); + result.string += ', startY: '; + $append_0(result, this$static.startY); + result.string += ', endX: '; + $append_0(result, this$static.endX); + result.string += ', endY: '; + $append_0(result, this$static.endY); + result.string += ', identifier: '; + $append_3(result, this$static.identifier); + result.string += ')'; + return result.string; +} + +function ElkEdgeSectionImpl(){ +} + +defineClass(452, 2083, {110:1, 342:1, 166:1, 452:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkEdgeSectionImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_1(msgs){ + return $eBasicRemoveFromContainerFeature_0(this, msgs); +} +; +_.eGet = function eGet_8(featureID, resolve, coreType){ + switch (featureID) { + case 1: + return this.startX; + case 2: + return this.startY; + case 3: + return this.endX; + case 4: + return this.endY; + case 5: + return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , this.bendPoints; + case 6: + return $getParent_0(this); + case 7: + if (resolve) + return $getOutgoingShape(this); + return this.outgoingShape; + case 8: + if (resolve) + return $getIncomingShape(this); + return this.incomingShape; + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , this.outgoingSections; + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , this.incomingSections; + case 11: + return this.identifier; + } + return $eGet_3(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_4(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent(this, castTo(otherEnd, 74), msgs); + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicAdd_0(this.outgoingSections, otherEnd, msgs); + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicAdd_0(this.incomingSections, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_5(otherEnd, featureID, msgs){ + switch (featureID) { + case 5: + return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , $basicRemove_0(this.bendPoints, otherEnd, msgs); + case 6: + return $basicSetParent(this, null, msgs); + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicRemove_0(this.outgoingSections, otherEnd, msgs); + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicRemove_0(this.incomingSections, otherEnd, msgs); + } + return $eInverseRemove_0(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_7(featureID){ + switch (featureID) { + case 1: + return this.startX != 0; + case 2: + return this.startY != 0; + case 3: + return this.endX != 0; + case 4: + return this.endY != 0; + case 5: + return !!this.bendPoints && this.bendPoints.size_0 != 0; + case 6: + return !!$getParent_0(this); + case 7: + return !!this.outgoingShape; + case 8: + return !!this.incomingShape; + case 9: + return !!this.outgoingSections && this.outgoingSections.size_0 != 0; + case 10: + return !!this.incomingSections && this.incomingSections.size_0 != 0; + case 11: + return this.identifier != null; + } + return $eIsSet_1(this, featureID); +} +; +_.eSet = function eSet_6(featureID, newValue){ + switch (featureID) { + case 1: + $setStartX(this, $doubleValue(castToDouble(newValue))); + return; + case 2: + $setStartY(this, $doubleValue(castToDouble(newValue))); + return; + case 3: + $setEndX(this, $doubleValue(castToDouble(newValue))); + return; + case 4: + $setEndY(this, $doubleValue(castToDouble(newValue))); + return; + case 5: + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $clear_13(this.bendPoints); + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $addAll_9(this.bendPoints, castTo(newValue, 16)); + return; + case 6: + $setParent_0(this, castTo(newValue, 74)); + return; + case 7: + $setOutgoingShape(this, castTo(newValue, 84)); + return; + case 8: + $setIncomingShape(this, castTo(newValue, 84)); + return; + case 9: + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $clear_13(this.outgoingSections); + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $addAll_9(this.outgoingSections, castTo(newValue, 16)); + return; + case 10: + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $clear_13(this.incomingSections); + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $addAll_9(this.incomingSections, castTo(newValue, 16)); + return; + case 11: + $setIdentifier_0(this, castToString(newValue)); + return; + } + $eSet_1(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_6(){ + return $clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION; +} +; +_.eUnset = function eUnset_6(featureID){ + switch (featureID) { + case 1: + $setStartX(this, 0); + return; + case 2: + $setStartY(this, 0); + return; + case 3: + $setEndX(this, 0); + return; + case 4: + $setEndY(this, 0); + return; + case 5: + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $clear_13(this.bendPoints); + return; + case 6: + $setParent_0(this, null); + return; + case 7: + $setOutgoingShape(this, null); + return; + case 8: + $setIncomingShape(this, null); + return; + case 9: + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $clear_13(this.outgoingSections); + return; + case 10: + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $clear_13(this.incomingSections); + return; + case 11: + $setIdentifier_0(this, null); + return; + } + $eUnset_1(this, featureID); +} +; +_.toString_0 = function toString_128(){ + return $toString_20(this); +} +; +_.endX = 0; +_.endY = 0; +_.identifier = null; +_.startX = 0; +_.startY = 0; +var Lorg_eclipse_elk_graph_impl_ElkEdgeSectionImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeSectionImpl', 452); +function $eObjectForURIFragmentSegment_0(this$static, uriFragmentSegment){ + var count, count0, eAnnotation, eNamedElement, encodedSource, exception, firstCharacter, hasCount, index_0, index0, length_0, name_0, object, object$iterator, object$iterator0, otherName, otherSource, source; + length_0 = uriFragmentSegment.length; + if (length_0 > 0) { + firstCharacter = (checkCriticalStringElementIndex(0, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(0)); + if (firstCharacter != 64) { + if (firstCharacter == 37) { + index0 = uriFragmentSegment.lastIndexOf('%'); + hasCount = false; + if (index0 != 0 && (index0 == length_0 - 1 || (hasCount = (checkCriticalStringElementIndex(index0 + 1, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(index0 + 1) == 46)))) { + encodedSource = (checkCriticalStringBounds(1, index0, uriFragmentSegment.length) , uriFragmentSegment.substr(1, index0 - 1)); + source = $equals_5('%', encodedSource)?null:decode(encodedSource); + count0 = 0; + if (hasCount) { + try { + count0 = __parseAndValidateInt((checkCriticalStringElementIndex(index0 + 2, uriFragmentSegment.length + 1) , uriFragmentSegment.substr(index0 + 2)), $intern_43, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + } + for (object$iterator0 = $iterator_1(this$static.eContents_0()); object$iterator0.hasNext_0();) { + object = $next_14(object$iterator0); + if (instanceOf(object, 519)) { + eAnnotation = castTo(object, 598); + otherSource = eAnnotation.source; + if ((source == null?otherSource == null:$equals_5(source, otherSource)) && count0-- == 0) { + return eAnnotation; + } + } + } + return null; + } + } + index_0 = uriFragmentSegment.lastIndexOf('.'); + name_0 = index_0 == -1?uriFragmentSegment:(checkCriticalStringBounds(0, index_0, uriFragmentSegment.length) , uriFragmentSegment.substr(0, index_0)); + count = 0; + if (index_0 != -1) { + try { + count = __parseAndValidateInt((checkCriticalStringElementIndex(index_0 + 1, uriFragmentSegment.length + 1) , uriFragmentSegment.substr(index_0 + 1)), $intern_43, $intern_0); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 130)) { + name_0 = uriFragmentSegment; + } + else + throw toJs($e1); + } + } + name_0 = $equals_5('%', name_0)?null:decode(name_0); + for (object$iterator = $iterator_1(this$static.eContents_0()); object$iterator.hasNext_0();) { + object = $next_14(object$iterator); + if (instanceOf(object, 197)) { + eNamedElement = castTo(object, 197); + otherName = eNamedElement.getName(); + if ((name_0 == null?otherName == null:$equals_5(name_0, otherName)) && count-- == 0) { + return eNamedElement; + } + } + } + return null; + } + } + return $eObjectForURIFragmentSegment(this$static, uriFragmentSegment); +} + +function $freeze(eModelElement){ + instanceOf(eModelElement, 158) && castTo(eModelElement, 158).freeze(); +} + +function $getEAnnotation(this$static, source){ + var eAnnotation, eAnnotation$iterator, eAnnotationArray, i, size_0; + if (this$static.eAnnotations) { + if (this$static.eAnnotations) { + size_0 = this$static.eAnnotations.size_0; + if (size_0 > 0) { + eAnnotationArray = castTo(this$static.eAnnotations.data_0, 2033); + if (source == null) { + for (i = 0; i < size_0; ++i) { + eAnnotation = eAnnotationArray[i]; + if (eAnnotation.source == null) { + return eAnnotation; + } + } + } + else { + for (i = 0; i < size_0; ++i) { + eAnnotation = eAnnotationArray[i]; + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + else { + if (source == null) { + for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { + eAnnotation = castTo($doNext(eAnnotation$iterator), 598); + if (eAnnotation.source == null) { + return eAnnotation; + } + } + } + else { + for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { + eAnnotation = castTo($doNext(eAnnotation$iterator), 598); + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + return null; +} + +defineClass(158, 120, {110:1, 94:1, 93:1, 155:1, 58:1, 114:1, 54:1, 99:1, 158:1, 119:1, 120:1}); +_.eGet = function eGet_9(featureID, resolve, coreType){ + var eClass; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_5(otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_6(otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_8(featureID){ + var eClass; + if (featureID == 0) { + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_0(uriFragmentSegment){ + return $eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_7(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eSetDirectResource = function eSetDirectResource_1(resource){ + $setField(this, 128, resource); +} +; +_.eStaticClass = function eStaticClass_7(){ + return $clinit_EcorePackage$Literals() , EMODEL_ELEMENT; +} +; +_.eUnset = function eUnset_7(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze(){ + this.eFlags |= 1; +} +; +_.getEAnnotation = function getEAnnotation(source){ + return $getEAnnotation(this, source); +} +; +_.eFlags = 0; +var Lorg_eclipse_emf_ecore_impl_EModelElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EModelElementImpl', 158); +function $clinit_EFactoryImpl(){ + $clinit_EFactoryImpl = emptyMethod; + HEX_DIGITS = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_45, 28, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); + WHITE_SPACE = new RegExp('[ \t\n\r\f]+'); + try { + EDATE_FORMATS = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit, 1), $intern_2, 2114, 0, [new EFactoryImpl$1ClientInternalEDateTimeFormat(($clinit_DateTimeFormat_0() , getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0))))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat('yyyy-MM-dd', $getDateTimeFormatInfo((null , instance_0))))]); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 82)) + throw toJs($e0); + } +} + +function $basicSetEPackage(this$static, newEPackage, msgs){ + var notification, oldEPackage; + oldEPackage = this$static.ePackage; + this$static.ePackage = newEPackage; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 1, oldEPackage, newEPackage); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $bytesToHexString(bytes, count){ + var high, i, j, low, result; + if (bytes == null) { + return null; + } + else { + result = initUnidimensionalArray(C_classLit, $intern_45, 28, 2 * count, 15, 1); + for (i = 0 , j = 0; i < count; ++i) { + high = bytes[i] >> 4 & 15; + low = bytes[i] & 15; + result[j++] = HEX_DIGITS[high]; + result[j++] = HEX_DIGITS[low]; + } + return valueOf_8(result, 0, result.length); + } +} + +function $convertToString(this$static, eDataType, objectValue){ + var baseType, item_0, item$iterator, itemType, list, memberType, memberType$iterator, memberTypes, result; + if (this$static.ePackage != eDataType.getEPackage()) { + throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } + baseType = $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getBaseType(); + if (baseType) { + return baseType.getEPackage().getEFactoryInstance().convertToString(baseType, objectValue); + } + itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); + if (itemType) { + if (objectValue == null) { + return null; + } + list = castTo(objectValue, 15); + if (list.isEmpty()) { + return ''; + } + result = new StringBuffer; + for (item$iterator = list.iterator_0(); item$iterator.hasNext_0();) { + item_0 = item$iterator.next_1(); + $append_3(result, itemType.getEPackage().getEFactoryInstance().convertToString(itemType, item_0)); + result.string += ' '; + } + return $substring(result, result.string.length - 1); + } + memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); + if (!memberTypes.isEmpty()) { + for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { + memberType = castTo(memberType$iterator.next_1(), 156); + if (memberType.isInstance(objectValue)) { + try { + result = memberType.getEPackage().getEFactoryInstance().convertToString(memberType, objectValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 103)) + throw toJs($e0); + } + } + } + throw toJs(new IllegalArgumentException_0("Invalid value: '" + objectValue + "' for datatype :" + eDataType.getName())); + } + castTo(eDataType, 847).getConversionDelegate(); + return objectValue == null?null:instanceOf(objectValue, 180)?'' + castTo(objectValue, 180).value_0:getClass__Ljava_lang_Class___devirtual$(objectValue) == Ljava_util_Date_2_classLit?$format_0(EDATE_FORMATS[0], castTo(objectValue, 206)):toString_40(objectValue); +} + +function $createFromString(this$static, eDataType, stringValue){ + var baseType, c, carray, charValue, i, item_0, item$array, item$index, item$max, itemType, memberType, memberType$iterator, memberTypes, result; + if (stringValue == null) { + return null; + } + if (this$static.ePackage != eDataType.getEPackage()) { + throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } + if (instanceOf(eDataType, 469)) { + result = $getEEnumLiteralByLiteral(castTo(eDataType, 685), stringValue); + if (!result) { + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a valid enumerator of '" + eDataType.getName() + "'")); + } + return result; + } + switch ($getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getWhiteSpaceFacet()) { + case 2: + { + stringValue = normalize(stringValue, false); + break; + } + + case 3: + { + stringValue = normalize(stringValue, true); + break; + } + + } + baseType = $getExtendedMetaData(INSTANCE_11, eDataType).getBaseType(); + if (baseType) { + return baseType.getEPackage().getEFactoryInstance().createFromString(baseType, stringValue); + } + itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); + if (itemType) { + result = new ArrayList; + for (item$array = $split_5(stringValue) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, itemType.getEPackage().getEFactoryInstance().createFromString(itemType, item_0)); + } + return result; + } + memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); + if (!memberTypes.isEmpty()) { + for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { + memberType = castTo(memberType$iterator.next_1(), 156); + try { + result = memberType.getEPackage().getEFactoryInstance().createFromString(memberType, stringValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 63)) + throw toJs($e0); + } + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' does not match any member types of the union datatype '" + eDataType.getName() + "'")); + } + castTo(eDataType, 847).getConversionDelegate(); + c = wrapperClassFor(eDataType.getInstanceClass()); + if (!c) + return null; + if (c == Ljava_lang_Character_2_classLit) { + charValue = 0; + try { + charValue = __parseAndValidateInt(stringValue, $intern_43, $intern_0) & $intern_47; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 130)) { + carray = $toCharArray(stringValue); + charValue = carray[0]; + } + else + throw toJs($e1); + } + return valueOf_2(charValue); + } + if (c == Ljava_util_Date_2_classLit) { + for (i = 0; i < EDATE_FORMATS.length; ++i) { + try { + return $parse_2(EDATE_FORMATS[i], stringValue); + } + catch ($e2) { + $e2 = toJava($e2); + if (!instanceOf($e2, 33)) + throw toJs($e2); + } + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is invalid. ")); +} + +function $hexStringToBytes(initialValue){ + var high, i, j, limit, low, result, size_0; + if (initialValue == null) { + return null; + } + size_0 = initialValue.length; + limit = (size_0 + 1) / 2 | 0; + result = initUnidimensionalArray(B_classLit, $intern_140, 28, limit, 15, 1); + size_0 % 2 != 0 && (result[--limit] = hexCharToByte((checkCriticalStringElementIndex(size_0 - 1, initialValue.length) , initialValue.charCodeAt(size_0 - 1)))); + for (i = 0 , j = 0; i < limit; ++i) { + high = hexCharToByte($charAt(initialValue, j++)); + low = hexCharToByte($charAt(initialValue, j++)); + result[i] = (high << 4 | low) << 24 >> 24; + } + return result; +} + +function $setEPackage(this$static, newEPackage){ + var msgs; + if (newEPackage != this$static.ePackage) { + msgs = null; + !!this$static.ePackage && (msgs = castTo(this$static.ePackage, 54).eInverseRemove(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + !!newEPackage && (msgs = castTo(newEPackage, 54).eInverseAdd(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + msgs = $basicSetEPackage(this$static, newEPackage, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, newEPackage, newEPackage)); +} + +function $split_5(value_0){ + var i, length_0, result, split_0; + split_0 = $split(WHITE_SPACE, value_0); + length_0 = split_0.length; + result = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, length_0, 6, 1); + for (i = 0; i < length_0; ++i) { + result[i] = split_0[i]; + } + return result; +} + +function EFactoryImpl(){ + $clinit_EFactoryImpl(); +} + +function hexCharToByte(character){ + switch (character) { + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + { + return character - 48 << 24 >> 24; + } + + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + { + return character - 97 + 10 << 24 >> 24; + } + + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + { + return character - 65 + 10 << 24 >> 24; + } + + default:{ + throw toJs(new NumberFormatException('Invalid hexadecimal')); + } + + } +} + +defineClass(720, 158, {110:1, 94:1, 93:1, 480:1, 155:1, 58:1, 114:1, 54:1, 99:1, 158:1, 119:1, 120:1}, EFactoryImpl); +_.convertToString = function convertToString(eDataType, objectValue){ + return $convertToString(this, eDataType, objectValue); +} +; +_.create_3 = function create_47(eClass){ + var eGenericType, eSuperType, eSuperTypes, result, result0; + if (this.ePackage != $getEPackage(eClass) || (eClass.eFlags & 256) != 0) { + throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } + for (eSuperTypes = $getESuperTypes(eClass); $getEGenericSuperTypes(eSuperTypes.this$01).size_0 != 0;) { + eSuperType = castTo($resolve_1(eSuperTypes, 0, (eGenericType = castTo($get_20($getEGenericSuperTypes(eSuperTypes.this$01), 0), 89) , result0 = eGenericType.eRawType , instanceOf(result0, 90)?castTo(result0, 29):($clinit_EcorePackage$Literals() , EOBJECT))), 29); + if ($getInstanceClass(eSuperType)) { + result = $getEPackage(eSuperType).getEFactoryInstance().create_3(eSuperType); + castTo(result, 54).eSetClass(eClass); + return result; + } + eSuperTypes = $getESuperTypes(eSuperType); + } + return (eClass.instanceClassName != null?eClass.instanceClassName:eClass.generatedInstanceClassName) == 'java.util.Map$Entry'?new DynamicEObjectImpl$BasicEMapEntry(eClass):new DynamicEObjectImpl(eClass); +} +; +_.createFromString = function createFromString(eDataType, stringValue){ + return $createFromString(this, eDataType, stringValue); +} +; +_.eGet = function eGet_10(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.ePackage; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EFACTORY:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_6(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 1: + !!this.ePackage && (msgs = castTo(this.ePackage, 54).eInverseRemove(this, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + return $basicSetEPackage(this, castTo(otherEnd, 241), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_7(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 1: + return $basicSetEPackage(this, null, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_9(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return !!this.ePackage; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EFACTORY:eClass), featureID)); +} +; +_.eSet = function eSet_8(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setEPackage(this, castTo(newValue, 241)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EFACTORY:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_8(){ + return $clinit_EcorePackage$Literals() , EFACTORY; +} +; +_.eUnset = function eUnset_8(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setEPackage(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EFACTORY:eClass), featureID)); +} +; +var EDATE_FORMATS, HEX_DIGITS, WHITE_SPACE; +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl', 720); +function ElkGraphFactoryImpl(){ +} + +function init_1(){ + $clinit_EFactoryImpl(); + var exception, theElkGraphFactory; + try { + theElkGraphFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2113); + if (theElkGraphFactory) { + return theElkGraphFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + exception = $e0; + $log_2(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new ElkGraphFactoryImpl; +} + +defineClass(1037, 720, {110:1, 2113:1, 94:1, 93:1, 480:1, 155:1, 58:1, 114:1, 54:1, 99:1, 158:1, 119:1, 120:1}, ElkGraphFactoryImpl); +_.convertToString = function convertToString_0(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 12: + return castTo(instanceValue, 149).getId(); + case 13: + return toString_40(instanceValue); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_48(eClass){ + var ePackage, elkBendPoint, elkEdge, elkEdgeSection, elkLabel, elkNode, elkPort, elkPropertyToValueMapEntry; + switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { + case 4: + return elkLabel = new ElkLabelImpl , elkLabel; + case 6: + return elkNode = new ElkNodeImpl , elkNode; + case 7: + return elkPort = new ElkPortImpl , elkPort; + case 8: + return elkEdge = new ElkEdgeImpl , elkEdge; + case 9: + return elkBendPoint = new ElkBendPointImpl , elkBendPoint; + case 10: + return elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection; + case 11: + return elkPropertyToValueMapEntry = new ElkPropertyToValueMapEntryImpl , elkPropertyToValueMapEntry; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_0(eDataType, initialValue){ + switch (eDataType.getClassifierID()) { + case 13: + case 12: + return null; + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var Lorg_eclipse_elk_graph_impl_ElkGraphFactoryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphFactoryImpl', 1037); +function $setName(this$static, newName){ + var oldName; + oldName = this$static.name_0; + this$static.name_0 = newName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldName, this$static.name_0)); +} + +function $toString_21(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (name: '; + $append_3(result, this$static.name_0); + result.string += ')'; + return result.string; +} + +defineClass(448, 158, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 114:1, 54:1, 99:1, 158:1, 119:1, 120:1}); +_.eContents_0 = function eContents_2(){ + var eClass, eStructuralFeatures; + eStructuralFeatures = (eClass = castTo($getField(this, 16), 29) , $containments($getEAllStructuralFeatures(!eClass?this.eStaticClass():eClass))); + return eStructuralFeatures == null?($clinit_EContentsEList() , $clinit_EContentsEList() , EMPTY_CONTENTS_ELIST):new ENamedElementImpl$1(this, eStructuralFeatures); +} +; +_.eGet = function eGet_11(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.getName(); + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_10(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_9(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + this.setName(castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_9(){ + return $clinit_EcorePackage$Literals() , ENAMED_ELEMENT; +} +; +_.eUnset = function eUnset_9(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + this.setName(null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getName = function getName_5(){ + return this.name_0; +} +; +_.setName = function setName(newName){ + $setName(this, newName); +} +; +_.toString_0 = function toString_129(){ + return $toString_21(this); +} +; +_.name_0 = null; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl', 448); +function $addAnnotation(eNamedElement, source, details){ + var annotations, childAnnotations, eAnnotation, eAnnotation0, i, i0, theDetails; + eAnnotation0 = (eAnnotation = new EAnnotationImpl , eAnnotation); + $setSourceGen(eAnnotation0, (checkCriticalNotNull(source) , source)); + theDetails = (!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details); + for (i0 = 1; i0 < details.length; i0 += 2) { + $put_14(theDetails, details[i0 - 1], details[i0]); + } + annotations = (!eNamedElement.eAnnotations && (eNamedElement.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, eNamedElement, 0, 3)) , eNamedElement.eAnnotations); + for (i = 0; i < 0; ++i) { + childAnnotations = $getContents(castTo($get_20(annotations, annotations.size_0 - 1), 598)); + annotations = childAnnotations; + } + $add_21(annotations, eAnnotation0); +} + +function $addEException(owner, exception){ + $add_21((!owner.eExceptions && (owner.eExceptions = new EOperationImpl$1(owner, owner)) , owner.eExceptions), exception); +} + +function $addEOperation(owner, type_0, name_0){ + var eOperation, o; + o = (eOperation = new EOperationImpl , eOperation); + $initEOperation(o, type_0, name_0); + $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); + return o; +} + +function $addEParameter(owner, type_0, name_0){ + var p, p_0; + p = (p_0 = new EParameterImpl , $setEType(p_0, type_0) , $setName(p_0, name_0) , $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p_0) , p_0); + $setLowerBound(p, 0); + $setUpperBound(p, 1); + $setUnique_2(p, true); + $setOrdered(p, true); + return p; +} + +function $addEParameter_0(owner, type_0, name_0){ + var eParameter, msgs, p; + p = (eParameter = new EParameterImpl , eParameter); + msgs = $setEGenericType(p, type_0, null); + !!msgs && msgs.dispatch_0(); + $setName(p, name_0); + $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p); + $setLowerBound(p, 0); + $setUpperBound(p, 1); + $setUnique_2(p, true); + $setOrdered(p, true); +} + +function $addETypeParameter(owner, name_0){ + var eTypeParameter, eTypeParameter0; + eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); + $setName(eTypeParameter0, name_0); + $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 7)) , owner.eTypeParameters), eTypeParameter0); + return eTypeParameter0; +} + +function $addETypeParameter_0(owner){ + var eTypeParameter, eTypeParameter0; + eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); + $setName(eTypeParameter0, 'T'); + $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 11)) , owner.eTypeParameters), eTypeParameter0); + return eTypeParameter0; +} + +function $basicGetESuperPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 7) + return null; + return castTo(this$static.eContainer, 241); +} + +function $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs){ + var notification, oldEFactoryInstance; + oldEFactoryInstance = this$static.eFactoryInstance; + this$static.eFactoryInstance = newEFactoryInstance; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 4, oldEFactoryInstance, newEFactoryInstance); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $createEAttribute(owner, id_0){ + var a, eAttribute; + a = (eAttribute = new EAttributeImpl , eAttribute); + a.featureID = id_0; + $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), a); +} + +function $createEClass(this$static, id_0){ + var c, eClass; + c = (eClass = new EClassImpl , eClass); + c.metaObjectID = id_0; + !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); + $add_21(this$static.eClassifiers, c); + return c; +} + +function $createEDataType(this$static, id_0){ + var d, eDataType; + d = (eDataType = new EDataTypeImpl , eDataType); + d.metaObjectID = id_0; + !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); + $add_21(this$static.eClassifiers, d); + return d; +} + +function $createEGenericType(eClassifier){ + var eGenericType, eGenericType0; + eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClassifier); + return eGenericType0; +} + +function $createEGenericType_0(eTypeParameter){ + var eGenericType, eGenericType0; + eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); + $setETypeParameter(eGenericType0, eTypeParameter); + return eGenericType0; +} + +function $createEOperation(owner){ + var eOperation, o; + o = (eOperation = new EOperationImpl , eOperation); + $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); +} + +function $createEReference(owner, id_0){ + var eReference, r; + r = (eReference = new EReferenceImpl , eReference); + r.featureID = id_0; + $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), r); +} + +function $createResource(this$static, uri_0){ + var actualURI, resource; + resource = $eInternalResource(this$static); + if (!resource) { + !resourceFactory && (resourceFactory = new EPackageImpl$3); + actualURI = ($clinit_URI() , createURIWithCache(uri_0)); + resource = new BinaryResourceImpl(actualURI); + $add_21(resource.getContents(), this$static); + } + return resource; +} + +function $eBasicRemoveFromContainerFeature_1(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 7) { + return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $freeze_0(this$static){ + var i, size_0; + if (this$static.eClassifiers) { + for (i = 0 , size_0 = this$static.eClassifiers.size_0; i < size_0; ++i) { + $freeze($get_20(this$static.eClassifiers, i)); + } + } + if (this$static.eSubpackages) { + for (i = 0 , size_0 = this$static.eSubpackages.size_0; i < size_0; ++i) { + $freeze($get_20(this$static.eSubpackages, i)); + } + } + $getNamespace(($clinit_ExtendedMetaData() , INSTANCE_11), this$static); + this$static.eFlags |= 1; +} + +function $getEClassifierGen(this$static, name_0){ + var duplicate, eClassifier, eClassifier$iterator, eClassifiers, key, result; + if (!this$static.eNameToEClassifierMap) { + eClassifiers = (!this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)) , this$static.eClassifiers); + result = new HashMap_0(eClassifiers.size_0); + for (eClassifier$iterator = new AbstractEList$EIterator(eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = castTo($doNext(eClassifier$iterator), 142); + key = eClassifier.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eClassifier):$put_10(result.stringMap, key, eClassifier), 142); + !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); + } + this$static.eNameToEClassifierMap = result; + } + return castTo($getStringValue(this$static.eNameToEClassifierMap, name_0), 142); +} + +function $initEAttribute(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ + $initEStructuralFeature(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived); + $setID(a, false); + return a; +} + +function $initEAttribute_0(a, type_0, name_0, containerClass, isTransient, isVolatile, isChangeable, isDerived){ + var msgs; + instanceOf(a.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(a.eContainer, 90)), 4); + $setName(a, name_0); + a.containerClass = containerClass; + $setTransient(a, isTransient); + $setVolatile(a, isVolatile); + $setChangeable(a, isChangeable); + $setUnsettable(a, false); + $setUnique_2(a, true); + $setDerived(a, isDerived); + $setOrdered(a, true); + $setLowerBound(a, 0); + a.effectiveIsMany = 0; + $setUpperBound(a, 1); + msgs = $setEGenericType(a, type_0, null); + !!msgs && msgs.dispatch_0(); + $setID(a, false); + return a; +} + +function $initEClass(c, instanceClass, name_0, isAbstract, isInterface, isGenerated){ + $initEClassifier(c, instanceClass, name_0, isGenerated); + $setAbstract(c, isAbstract); + $setInterface(c, isInterface); + return c; +} + +function $initEClassifier(o, instanceClass, name_0, isGenerated){ + instanceOf(o.eContainer, 184) && (castTo(o.eContainer, 184).eNameToEClassifierMap = null); + $setName(o, name_0); + !!instanceClass && $setInstanceClass(o, instanceClass); + isGenerated && o.setGeneratedInstanceClass(true); +} + +function $initEDataType(d, instanceClass, name_0, isSerializable){ + $initEClassifier(d, instanceClass, name_0, false); + $setSerializable(d, isSerializable); + return d; +} + +function $initEOperation(eOperation, type_0, name_0){ + $setEType(eOperation, type_0); + $setName(eOperation, name_0); + $setLowerBound(eOperation, 0); + $setUpperBound(eOperation, 1); + $setUnique_2(eOperation, true); + $setOrdered(eOperation, true); + return eOperation; +} + +function $initEReference(r, type_0, otherEnd, name_0, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isContainment, isResolveProxies, isUnsettable, isDerived){ + $initEStructuralFeature(r, type_0, name_0, null, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, true, isDerived); + $setContainmentGen(r, isContainment); + instanceOf(r.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(r.eContainer, 90)), 2); + !!otherEnd && $setEOpposite(r, otherEnd); + $setResolveProxies(r, isResolveProxies); + return r; +} + +function $initEStructuralFeature(s, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ + instanceOf(s.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(s.eContainer, 90)), 4); + $setName(s, name_0); + s.containerClass = containerClass; + $setTransient(s, isTransient); + $setVolatile(s, isVolatile); + $setChangeable(s, isChangeable); + $setUnsettable(s, isUnsettable); + $setUnique_2(s, isUnique); + $setDerived(s, isDerived); + $setOrdered(s, true); + $setLowerBound(s, lowerBound); + s.setUpperBound(upperBound); + $setEType(s, type_0); + defaultValue != null && (s.defaultValueFactory = null , $setDefaultValueLiteralGen(s, defaultValue)); +} + +function $setEFactoryInstance(this$static, newEFactoryInstance){ + var msgs; + if (newEFactoryInstance != this$static.eFactoryInstance) { + msgs = null; + !!this$static.eFactoryInstance && (msgs = castTo(this$static.eFactoryInstance, 54).eInverseRemove(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + !!newEFactoryInstance && (msgs = castTo(newEFactoryInstance, 54).eInverseAdd(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + msgs = $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newEFactoryInstance, newEFactoryInstance)); +} + +function $setNsPrefix(this$static, newNsPrefix){ + var oldNsPrefix; + oldNsPrefix = this$static.nsPrefix; + this$static.nsPrefix = newNsPrefix; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldNsPrefix, this$static.nsPrefix)); +} + +function $setNsURI(this$static, newNsURI){ + var oldNsURI; + oldNsURI = this$static.nsURI; + this$static.nsURI = newNsURI; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldNsURI, this$static.nsURI)); +} + +function EPackageImpl(){ + $setEFactoryInstance(this, new EFactoryImpl); + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + $clinit_EcoreFactory(); +} + +function EPackageImpl_0(packageURI, factory){ + var registration; + registration = $getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), packageURI); + instanceOf(registration, 507)?$putStringValue(INSTANCE_6, packageURI, new EPackageImpl$1(this, factory)):$putStringValue(INSTANCE_6, packageURI, this); + $setEFactoryInstance(this, factory); + if (factory == ($clinit_EcoreFactory() , eINSTANCE_1)) { + this.ecorePackage = castTo(this, 2038); + castTo(factory, 2040); + } + else { + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + } +} + +defineClass(184, 448, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 241:1, 114:1, 54:1, 99:1, 158:1, 184:1, 119:1, 120:1, 690:1}, EPackageImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_2(msgs){ + return $eBasicRemoveFromContainerFeature_1(this, msgs); +} +; +_.eGet = function eGet_12(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.nsURI; + case 3: + return this.nsPrefix; + case 4: + return this.eFactoryInstance; + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , this.eSubpackages; + case 7: + if (resolve) + return this.eFlags_0 >> 16 == 7?castTo(this.eContainer, 241):null; + return $basicGetESuperPackage(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EPACKAGE:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_7(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 4: + !!this.eFactoryInstance && (msgs = castTo(this.eFactoryInstance, 54).eInverseRemove(this, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + return $basicSetEFactoryInstance(this, castTo(otherEnd, 480), msgs); + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicAdd_0(this.eClassifiers, otherEnd, msgs); + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicAdd_0(this.eSubpackages, otherEnd, msgs); + case 7: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_1(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 7, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_8(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 4: + return $basicSetEFactoryInstance(this, null, msgs); + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicRemove_0(this.eClassifiers, otherEnd, msgs); + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicRemove_0(this.eSubpackages, otherEnd, msgs); + case 7: + return $eBasicSetContainer(this, null, 7, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_11(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.nsURI != null; + case 3: + return this.nsPrefix != null; + case 4: + return !!this.eFactoryInstance; + case 5: + return !!this.eClassifiers && this.eClassifiers.size_0 != 0; + case 6: + return !!this.eSubpackages && this.eSubpackages.size_0 != 0; + case 7: + return !!$basicGetESuperPackage(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EPACKAGE:eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_1(uriFragmentSegment){ + var result; + result = $getEClassifierGen(this, uriFragmentSegment); + return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_10(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setNsURI(this, castToString(newValue)); + return; + case 3: + $setNsPrefix(this, castToString(newValue)); + return; + case 4: + $setEFactoryInstance(this, castTo(newValue, 480)); + return; + case 5: + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $clear_13(this.eClassifiers); + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $addAll_9(this.eClassifiers, castTo(newValue, 16)); + return; + case 6: + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $clear_13(this.eSubpackages); + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $addAll_9(this.eSubpackages, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EPACKAGE:eClass), featureID), newValue); +} +; +_.eSetProxyURI = function eSetProxyURI_1(uri_0){ + var eClassifier, eClassifier$iterator; + if (!!uri_0 && !!this.eClassifiers) { + for (eClassifier$iterator = new AbstractEList$EIterator(this.eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = $doNext(eClassifier$iterator); + instanceOf(eClassifier, 364) && (castTo(eClassifier, 364).ePackage = null); + } + } + $setField(this, 64, uri_0); +} +; +_.eStaticClass = function eStaticClass_10(){ + return $clinit_EcorePackage$Literals() , EPACKAGE; +} +; +_.eUnset = function eUnset_10(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setNsURI(this, null); + return; + case 3: + $setNsPrefix(this, null); + return; + case 4: + $setEFactoryInstance(this, null); + return; + case 5: + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $clear_13(this.eClassifiers); + return; + case 6: + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $clear_13(this.eSubpackages); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EPACKAGE:eClass), featureID)); +} +; +_.freeze = function freeze_0(){ + $freeze_0(this); +} +; +_.getEClassifiers = function getEClassifiers(){ + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; +} +; +_.getEFactoryInstance = function getEFactoryInstance(){ + return this.eFactoryInstance; +} +; +_.getExtendedMetaData = function getExtendedMetaData(){ + return this.ePackageExtendedMetaData; +} +; +_.getNsPrefix = function getNsPrefix(){ + return this.nsPrefix; +} +; +_.getNsURI = function getNsURI(){ + return this.nsURI; +} +; +_.setExtendedMetaData = function setExtendedMetaData(ePackageExtendedMetaData){ + this.ePackageExtendedMetaData = ePackageExtendedMetaData; +} +; +_.toString_0 = function toString_130(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_21(this); + result = new StringBuffer_1($toString_21(this)); + result.string += ' (nsURI: '; + $append_3(result, this.nsURI); + result.string += ', nsPrefix: '; + $append_3(result, this.nsPrefix); + result.string += ')'; + return result.string; +} +; +_.nsPrefix = null; +_.nsURI = null; +var resourceFactory; +var Lorg_eclipse_emf_ecore_impl_EPackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl', 184); +function $createPackageContents(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.iPropertyHolderEClass = $createEClass(this$static, 0); + this$static.eMapPropertyHolderEClass = $createEClass(this$static, 1); + $createEReference(this$static.eMapPropertyHolderEClass, 0); + this$static.elkGraphElementEClass = $createEClass(this$static, 2); + $createEReference(this$static.elkGraphElementEClass, 1); + $createEAttribute(this$static.elkGraphElementEClass, 2); + this$static.elkShapeEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.elkShapeEClass, 3); + $createEAttribute(this$static.elkShapeEClass, 4); + $createEAttribute(this$static.elkShapeEClass, 5); + $createEAttribute(this$static.elkShapeEClass, 6); + this$static.elkLabelEClass = $createEClass(this$static, 4); + $createEReference(this$static.elkLabelEClass, 7); + $createEAttribute(this$static.elkLabelEClass, 8); + this$static.elkConnectableShapeEClass = $createEClass(this$static, 5); + $createEReference(this$static.elkConnectableShapeEClass, 7); + $createEReference(this$static.elkConnectableShapeEClass, 8); + this$static.elkNodeEClass = $createEClass(this$static, 6); + $createEReference(this$static.elkNodeEClass, 9); + $createEReference(this$static.elkNodeEClass, 10); + $createEReference(this$static.elkNodeEClass, 11); + $createEReference(this$static.elkNodeEClass, 12); + $createEAttribute(this$static.elkNodeEClass, 13); + this$static.elkPortEClass = $createEClass(this$static, 7); + $createEReference(this$static.elkPortEClass, 9); + this$static.elkEdgeEClass = $createEClass(this$static, 8); + $createEReference(this$static.elkEdgeEClass, 3); + $createEReference(this$static.elkEdgeEClass, 4); + $createEReference(this$static.elkEdgeEClass, 5); + $createEReference(this$static.elkEdgeEClass, 6); + $createEAttribute(this$static.elkEdgeEClass, 7); + $createEAttribute(this$static.elkEdgeEClass, 8); + $createEAttribute(this$static.elkEdgeEClass, 9); + $createEAttribute(this$static.elkEdgeEClass, 10); + this$static.elkBendPointEClass = $createEClass(this$static, 9); + $createEAttribute(this$static.elkBendPointEClass, 0); + $createEAttribute(this$static.elkBendPointEClass, 1); + this$static.elkEdgeSectionEClass = $createEClass(this$static, 10); + $createEAttribute(this$static.elkEdgeSectionEClass, 1); + $createEAttribute(this$static.elkEdgeSectionEClass, 2); + $createEAttribute(this$static.elkEdgeSectionEClass, 3); + $createEAttribute(this$static.elkEdgeSectionEClass, 4); + $createEReference(this$static.elkEdgeSectionEClass, 5); + $createEReference(this$static.elkEdgeSectionEClass, 6); + $createEReference(this$static.elkEdgeSectionEClass, 7); + $createEReference(this$static.elkEdgeSectionEClass, 8); + $createEReference(this$static.elkEdgeSectionEClass, 9); + $createEReference(this$static.elkEdgeSectionEClass, 10); + $createEAttribute(this$static.elkEdgeSectionEClass, 11); + this$static.elkPropertyToValueMapEntryEClass = $createEClass(this$static, 11); + $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 0); + $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 1); + this$static.iPropertyEDataType = $createEDataType(this$static, 12); + this$static.propertyValueEDataType = $createEDataType(this$static, 13); +} + +function $initializePackageContents(this$static){ + var eGenericType, eGenericType0, eGenericType1, eGenericType2, eGenericType3, eGenericType4, eGenericType5, eGenericType6, g1, g2, g3, msgs, msgs0, op, t1; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'graph'); + $setNsPrefix(this$static, 'graph'); + $setNsURI(this$static, 'http://www.eclipse.org/elk/ElkGraph'); + $addETypeParameter(this$static.iPropertyEDataType, 'T'); + $add_21($getESuperTypes(this$static.eMapPropertyHolderEClass), this$static.iPropertyHolderEClass); + $add_21($getESuperTypes(this$static.elkGraphElementEClass), this$static.eMapPropertyHolderEClass); + $add_21($getESuperTypes(this$static.elkShapeEClass), this$static.elkGraphElementEClass); + $add_21($getESuperTypes(this$static.elkLabelEClass), this$static.elkShapeEClass); + $add_21($getESuperTypes(this$static.elkConnectableShapeEClass), this$static.elkShapeEClass); + $add_21($getESuperTypes(this$static.elkNodeEClass), this$static.elkConnectableShapeEClass); + $add_21($getESuperTypes(this$static.elkPortEClass), this$static.elkConnectableShapeEClass); + $add_21($getESuperTypes(this$static.elkEdgeEClass), this$static.elkGraphElementEClass); + $add_21($getESuperTypes(this$static.elkEdgeSectionEClass), this$static.eMapPropertyHolderEClass); + $initEClass(this$static.iPropertyHolderEClass, Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit, 'IPropertyHolder', true, true, false); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'setProperty'); + t1 = $addETypeParameter_0(op); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType0 = (eGenericType1 = new EGenericTypeImpl , eGenericType1) , eGenericType0); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + g3 = $createEGenericType_0(t1); + $setELowerBound(g2, g3); + $addEParameter_0(op, g1, 'property'); + g1 = $createEGenericType_0(t1); + $addEParameter_0(op, g1, 'value'); + op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getProperty'); + t1 = $addETypeParameter_0(op); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = $createEGenericType_0(t1); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'property'); + g1 = $createEGenericType_0(t1); + msgs0 = $setEGenericType(op, g1, null); + !!msgs0 && msgs0.dispatch_0(); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.ecorePackage.eBooleanEDataType, 'hasProperty'); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType2 = (eGenericType3 = new EGenericTypeImpl , eGenericType3) , eGenericType2); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'property'); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'copyProperties'); + $addEParameter(op, this$static.iPropertyHolderEClass, 'source'); + op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getAllProperties'); + g1 = $createEGenericType(this$static.ecorePackage.eMapEDataType); + g2 = $createEGenericType(this$static.iPropertyEDataType); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + g3 = (eGenericType4 = (eGenericType5 = new EGenericTypeImpl , eGenericType5) , eGenericType4); + $add_21((!g2.eTypeArguments && (g2.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g2, 1)) , g2.eTypeArguments), g3); + g2 = $createEGenericType(this$static.ecorePackage.eJavaObjectEDataType); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs = $setEGenericType(op, g1, null); + !!msgs && msgs.dispatch_0(); + $initEClass(this$static.eMapPropertyHolderEClass, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, 'EMapPropertyHolder', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eMapPropertyHolderEClass), 0), 19), this$static.elkPropertyToValueMapEntryEClass, null, 'properties', 0, -1, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, false, false, true, true, false, false, false); + $initEClass(this$static.elkGraphElementEClass, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, 'ElkGraphElement', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 19), this$static.elkLabelEClass, castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 19), 'labels', 0, -1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 1), 35), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.elkShapeEClass, Lorg_eclipse_elk_graph_ElkShape_2_classLit, 'ElkShape', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 0), 35), this$static.ecorePackage.eDoubleEDataType, 'height', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 1), 35), this$static.ecorePackage.eDoubleEDataType, 'width', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 2), 35), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 3), 35), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkShapeEClass, null, 'setDimensions'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'width'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'height'); + op = $addEOperation(this$static.elkShapeEClass, null, 'setLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkLabelEClass, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, 'ElkLabel', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 19), this$static.elkGraphElementEClass, castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 19), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 1), 35), this$static.ecorePackage.eStringEDataType, 'text', '', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.elkConnectableShapeEClass, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, 'ElkConnectableShape', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 19), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 19), 'outgoingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 19), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 19), 'incomingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.elkNodeEClass, Lorg_eclipse_elk_graph_ElkNode_2_classLit, 'ElkNode', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 19), this$static.elkPortEClass, castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 19), 'ports', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 19), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 19), 'children', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 19), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 19), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 19), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 19), 'containedEdges', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 4), 35), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, true, true, false, false, true, true); + $initEClass(this$static.elkPortEClass, Lorg_eclipse_elk_graph_ElkPort_2_classLit, 'ElkPort', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 19), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 19), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkPort_2_classLit, false, false, true, false, false, false, false); + $initEClass(this$static.elkEdgeEClass, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, 'ElkEdge', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 19), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 19), 'containingNode', 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 19), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 19), 'sources', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 19), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 19), 'targets', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 19), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 19), 'sections', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 4), 35), this$static.ecorePackage.eBooleanEDataType, 'hyperedge', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 5), 35), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 6), 35), this$static.ecorePackage.eBooleanEDataType, 'selfloop', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 7), 35), this$static.ecorePackage.eBooleanEDataType, 'connected', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEClass(this$static.elkBendPointEClass, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, 'ElkBendPoint', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 0), 35), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 1), 35), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkBendPointEClass, null, 'set'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkEdgeSectionEClass, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, 'ElkEdgeSection', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 0), 35), this$static.ecorePackage.eDoubleEDataType, 'startX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 1), 35), this$static.ecorePackage.eDoubleEDataType, 'startY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 2), 35), this$static.ecorePackage.eDoubleEDataType, 'endX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 3), 35), this$static.ecorePackage.eDoubleEDataType, 'endY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 4), 19), this$static.elkBendPointEClass, null, 'bendPoints', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 19), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 19), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 6), 19), this$static.elkConnectableShapeEClass, null, 'outgoingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 7), 19), this$static.elkConnectableShapeEClass, null, 'incomingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 19), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 19), 'outgoingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 19), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 19), 'incomingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 10), 35), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setStartLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setEndLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkPropertyToValueMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'ElkPropertyToValueMapEntry', false, false, false); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType6 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType6); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 0), 35), g1, 'key', Ljava_util_Map$Entry_2_classLit, false, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 1), 35), this$static.propertyValueEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEDataType(this$static.iPropertyEDataType, Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 'IProperty', true); + $initEDataType(this$static.propertyValueEDataType, Ljava_lang_Object_2_classLit, 'PropertyValue', true); + $createResource(this$static, 'http://www.eclipse.org/elk/ElkGraph'); +} + +function ElkGraphPackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/elk/ElkGraph', ($clinit_ElkGraphFactory() , eINSTANCE)); + this.iPropertyHolderEClass = null; + this.eMapPropertyHolderEClass = null; + this.elkGraphElementEClass = null; + this.elkShapeEClass = null; + this.elkLabelEClass = null; + this.elkConnectableShapeEClass = null; + this.elkNodeEClass = null; + this.elkPortEClass = null; + this.elkEdgeEClass = null; + this.elkBendPointEClass = null; + this.elkEdgeSectionEClass = null; + this.elkPropertyToValueMapEntryEClass = null; + this.iPropertyEDataType = null; + this.propertyValueEDataType = null; + this.isCreated = false; + this.isInitialized = false; +} + +function init_2(){ + var theElkGraphPackage; + if (isInited) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2115); + theElkGraphPackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 569)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph'):new ElkGraphPackageImpl, 569); + isInited = true; + $createPackageContents(theElkGraphPackage); + $initializePackageContents(theElkGraphPackage); + $freeze_0(theElkGraphPackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph', theElkGraphPackage); + return theElkGraphPackage; +} + +defineClass(569, 184, {110:1, 2115:1, 569:1, 94:1, 93:1, 155:1, 197:1, 58:1, 241:1, 114:1, 54:1, 99:1, 158:1, 184:1, 119:1, 120:1, 690:1}, ElkGraphPackageImpl); +_.isCreated = false; +_.isInitialized = false; +var isInited = false; +var Lorg_eclipse_elk_graph_impl_ElkGraphPackageImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphPackageImpl', 569); +function $basicSetParent_0(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newParent, 54), 7, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_2(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 7) { + return this$static.eContainer.eInverseRemove(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_LABEL):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getParent_1(this$static){ + if (this$static.eFlags_0 >> 16 != 7) + return null; + return castTo(this$static.eContainer, 167); +} + +function $setParent_1(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 7 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_22(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = castTo(newParent, 54).eInverseAdd(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs)); + msgs = $basicSetParent_0(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, newParent, newParent)); +} + +function $setText(this$static, newText){ + var oldText; + oldText = this$static.text_0; + this$static.text_0 = newText; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldText, this$static.text_0)); +} + +function $toString_22(this$static){ + var builder; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkLabel'); + !this$static.text_0 || $append_11($append_11((builder.string += ' "' , builder), this$static.text_0), '"'); + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkLabelImpl(){ +} + +defineClass(366, 740, {110:1, 342:1, 167:1, 135:1, 422:1, 366:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkLabelImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_3(msgs){ + return $eBasicRemoveFromContainerFeature_2(this, msgs); +} +; +_.eGet = function eGet_13(featureID, resolve, coreType){ + switch (featureID) { + case 7: + return $getParent_1(this); + case 8: + return this.text_0; + } + return $eGet_5(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_8(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 7: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_0(this, castTo(otherEnd, 167), msgs); + } + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_9(otherEnd, featureID, msgs){ + if (featureID == 7) { + return $basicSetParent_0(this, null, msgs); + } + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_12(featureID){ + switch (featureID) { + case 7: + return !!$getParent_1(this); + case 8: + return !$equals_5('', this.text_0); + } + return $eIsSet_3(this, featureID); +} +; +_.eSet = function eSet_11(featureID, newValue){ + switch (featureID) { + case 7: + $setParent_1(this, castTo(newValue, 167)); + return; + case 8: + $setText(this, castToString(newValue)); + return; + } + $eSet_3(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_11(){ + return $clinit_ElkGraphPackage$Literals() , ELK_LABEL; +} +; +_.eUnset = function eUnset_11(featureID){ + switch (featureID) { + case 7: + $setParent_1(this, null); + return; + case 8: + $setText(this, ''); + return; + } + $eUnset_3(this, featureID); +} +; +_.toString_0 = function toString_131(){ + return $toString_22(this); +} +; +_.text_0 = ''; +var Lorg_eclipse_elk_graph_impl_ElkLabelImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkLabelImpl', 366); +function $basicSetParent_1(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 11, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_3(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 11) { + return this$static.eContainer.eInverseRemove(this$static, 10, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_NODE):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getChildren(this$static){ + !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)); + return this$static.children; +} + +function $getContainedEdges(this$static){ + !this$static.containedEdges && (this$static.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 12, 3)); + return this$static.containedEdges; +} + +function $getParent_2(this$static){ + if (this$static.eFlags_0 >> 16 != 11) + return null; + return castTo(this$static.eContainer, 27); +} + +function $getPorts_3(this$static){ + !this$static.ports && (this$static.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this$static, 9, 9)); + return this$static.ports; +} + +function $isHierarchical_0(this$static){ + return !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)) , this$static.children.size_0 > 0; +} + +function $setParent_2(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 11 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_23(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 10, msgs)); + msgs = $basicSetParent_1(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, newParent, newParent)); +} + +function $toString_23(this$static){ + var builder, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkNode'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 135)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkNodeImpl(){ + ElkConnectableShapeImpl.call(this); +} + +defineClass(207, 741, {110:1, 342:1, 84:1, 167:1, 27:1, 422:1, 207:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkNodeImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_4(msgs){ + return $eBasicRemoveFromContainerFeature_3(this, msgs); +} +; +_.eGet = function eGet_14(featureID, resolve, coreType){ + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , this.ports; + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children; + case 11: + return $getParent_2(this); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , this.containedEdges; + case 13: + return $clinit_Boolean() , !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0?true:false; + } + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_9(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicAdd_0(this.ports, otherEnd, msgs); + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicAdd_0(this.children, otherEnd, msgs); + case 11: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_1(this, castTo(otherEnd, 27), msgs); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicAdd_0(this.containedEdges, otherEnd, msgs); + } + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_10(otherEnd, featureID, msgs){ + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicRemove_0(this.ports, otherEnd, msgs); + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicRemove_0(this.children, otherEnd, msgs); + case 11: + return $basicSetParent_1(this, null, msgs); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicRemove_0(this.containedEdges, otherEnd, msgs); + } + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_13(featureID){ + switch (featureID) { + case 9: + return !!this.ports && this.ports.size_0 != 0; + case 10: + return !!this.children && this.children.size_0 != 0; + case 11: + return !!$getParent_2(this); + case 12: + return !!this.containedEdges && this.containedEdges.size_0 != 0; + case 13: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0; + } + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_12(featureID, newValue){ + switch (featureID) { + case 9: + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $clear_13(this.ports); + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $addAll_9(this.ports, castTo(newValue, 16)); + return; + case 10: + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $clear_13(this.children); + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $addAll_9(this.children, castTo(newValue, 16)); + return; + case 11: + $setParent_2(this, castTo(newValue, 27)); + return; + case 12: + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $clear_13(this.containedEdges); + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $addAll_9(this.containedEdges, castTo(newValue, 16)); + return; + } + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_12(){ + return $clinit_ElkGraphPackage$Literals() , ELK_NODE; +} +; +_.eUnset = function eUnset_12(featureID){ + switch (featureID) { + case 9: + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $clear_13(this.ports); + return; + case 10: + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $clear_13(this.children); + return; + case 11: + $setParent_2(this, null); + return; + case 12: + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $clear_13(this.containedEdges); + return; + } + $eUnset_4(this, featureID); +} +; +_.toString_0 = function toString_132(){ + return $toString_23(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkNodeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkNodeImpl', 207); +function $basicSetParent_2(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 9, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_4(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 9) { + return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_PORT):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getParent_3(this$static){ + if (this$static.eFlags_0 >> 16 != 9) + return null; + return castTo(this$static.eContainer, 27); +} + +function $setParent_3(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 9 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_24(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 9, msgs)); + msgs = $basicSetParent_2(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 9, newParent, newParent)); +} + +function $toString_24(this$static){ + var builder, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkPort'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 135)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkPortImpl(){ + ElkConnectableShapeImpl.call(this); +} + +defineClass(193, 741, {110:1, 342:1, 84:1, 167:1, 123:1, 422:1, 193:1, 96:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkPortImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_5(msgs){ + return $eBasicRemoveFromContainerFeature_4(this, msgs); +} +; +_.eGet = function eGet_15(featureID, resolve, coreType){ + if (featureID == 9) { + return $getParent_3(this); + } + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_10(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 9: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_2(this, castTo(otherEnd, 27), msgs); + } + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_11(otherEnd, featureID, msgs){ + if (featureID == 9) { + return $basicSetParent_2(this, null, msgs); + } + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_14(featureID){ + if (featureID == 9) { + return !!$getParent_3(this); + } + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_13(featureID, newValue){ + switch (featureID) { + case 9: + $setParent_3(this, castTo(newValue, 27)); + return; + } + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_13(){ + return $clinit_ElkGraphPackage$Literals() , ELK_PORT; +} +; +_.eUnset = function eUnset_13(featureID){ + switch (featureID) { + case 9: + $setParent_3(this, null); + return; + } + $eUnset_4(this, featureID); +} +; +_.toString_0 = function toString_133(){ + return $toString_24(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkPortImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPortImpl', 193); +var Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit = createForInterface('org.eclipse.emf.common.util', 'BasicEMap/Entry'); +function $setTypedKey(this$static, newKey){ + var oldKey; + oldKey = this$static.key; + this$static.key = newKey; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); +} + +function $setTypedValue(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); +} + +function ElkPropertyToValueMapEntryImpl(){ +} + +defineClass(1122, 120, {110:1, 44:1, 94:1, 93:1, 136:1, 58:1, 114:1, 54:1, 99:1, 119:1, 120:1}, ElkPropertyToValueMapEntryImpl); +_.equals_0 = function equals_211(other){ + return this === other; +} +; +_.getKey = function getKey_8(){ + return this.key; +} +; +_.hashCode_1 = function hashCode_74(){ + return getObjectIdentityHashCode(this); +} +; +_.setKey = function setKey(key){ + $setTypedKey(this, castTo(key, 149)); +} +; +_.eGet = function eGet_16(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.key; + case 1: + return this.value_0; + } + return $eGet(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_15(featureID){ + switch (featureID) { + case 0: + return !!this.key; + case 1: + return this.value_0 != null; + } + return $eIsSet(this, featureID); +} +; +_.eSet = function eSet_14(featureID, newValue){ + switch (featureID) { + case 0: + $setTypedKey(this, castTo(newValue, 149)); + return; + case 1: + $setTypedValue(this, newValue); + return; + } + $eSet(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_14(){ + return $clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY; +} +; +_.eUnset = function eUnset_14(featureID){ + switch (featureID) { + case 0: + $setTypedKey(this, null); + return; + case 1: + $setTypedValue(this, null); + return; + } + $eUnset(this, featureID); +} +; +_.getHash = function getHash(){ + var theKey; + if (this.hash == -1) { + theKey = this.key; + this.hash = !theKey?0:hashCode__I__devirtual$(theKey); + } + return this.hash; +} +; +_.getValue = function getValue_10(){ + return this.value_0; +} +; +_.setHash = function setHash(hash){ + this.hash = hash; +} +; +_.setValue = function setValue_11(value_0){ + var oldValue; + oldValue = this.value_0; + $setTypedValue(this, value_0); + return oldValue; +} +; +_.toString_0 = function toString_134(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuilder; + $append_11($append_11($append_11(result, this.key?this.key.getId():'null'), ' -> '), valueOf_6(this.value_0)); + return result.string; +} +; +_.hash = -1; +_.value_0 = null; +var Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPropertyToValueMapEntryImpl', 1122); +function $addJsonArr(arr, jv){ + var size_0; + size_0 = arr.jsArray.length; + $get_8(arr, size_0); + $set0(arr, size_0, jv); +} + +function $addJsonArr_0(arr, o){ + var _doubleValue, _matched; + _matched = false; + if (instanceOfString(o)) { + _matched = true; + $addJsonArr(arr, new JSONString(castToString(o))); + } + if (!_matched) { + if (instanceOf(o, 242)) { + _matched = true; + $addJsonArr(arr, (_doubleValue = doubleValue__D__devirtual$(castTo(o, 242)) , new JSONNumber(_doubleValue))); + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } +} + +function $addJsonObj(o, element, n){ + var _doubleValue, _jSONNumber; + _doubleValue = doubleValue__D__devirtual$(n); + _jSONNumber = new JSONNumber(_doubleValue); + $put_5(o, element, _jSONNumber); +} + +function $addJsonObj_0(this$static, o, element, obj){ + var _matched; + _matched = false; + if (instanceOfString(obj)) { + _matched = true; + $addJsonObj_1(o, element, castToString(obj)); + } + if (!_matched) { + if (instanceOfBoolean(obj)) { + _matched = true; + $addJsonObj_0(this$static, o, element, obj); + } + } + if (!_matched) { + if (instanceOf(obj, 242)) { + _matched = true; + $addJsonObj(o, element, castTo(obj, 242)); + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } +} + +function $addJsonObj_1(o, element, s){ + var _jSONString; + _jSONString = new JSONString(s); + $put_5(o, element, _jSONString); +} + +function $asId(id_0){ + var _isInt, _matched; + _matched = false; + if (instanceOf(id_0, 211)) { + _matched = true; + return castTo(id_0, 211).value_0; + } + if (!_matched) { + if (instanceOf(id_0, 263)) { + _isInt = castTo(id_0, 263).value_0 % 1 == 0; + if (_isInt) { + _matched = true; + return valueOf_3($intValue(castTo(id_0, 263).value_0)); + } + } + } + throw toJs(new JsonImportException("Id must be a string or an integer: '" + id_0 + "'.")); +} + +function $getId(o){ + var _containsKey, _not, _xblockexpression; + _xblockexpression = null; + _containsKey = 'id' in o.jsObject; + _not = !_containsKey; + if (_not) { + throw toJs(new JsonImportException('Every element must have an id.')); + } + _xblockexpression = $asId($get_9(o, 'id')); + return _xblockexpression; +} + +function $optDouble(o, element){ + var _containsKey, num; + _containsKey = element in o.jsObject; + if (_containsKey) { + num = $get_9(o, element).isNumber(); + if (num) { + return num.value_0; + } + } + return null; +} + +function $optJSONArray(arr, element){ + var _get, _isArray; + _get = $get_9(arr, element); + _isArray = null; + !!_get && (_isArray = _get.isArray_0()); + return _isArray; +} + +function $optJSONObject(arr, i){ + var _get, _isObject; + _get = $get_8(arr, i); + _isObject = null; + !!_get && (_isObject = _get.isObject()); + return _isObject; +} + +function $optJSONObject_0(o, element){ + var _get, _isObject; + _get = $get_9(o, element); + _isObject = null; + !!_get && (_isObject = _get.isObject()); + return _isObject; +} + +function $optString(o, element){ + var _get, _stringVal; + _get = $get_9(o, element); + _stringVal = null; + !!_get && (_stringVal = $stringVal(_get)); + return _stringVal; +} + +function $stringVal(v){ + var _matched, _switchResult; + _switchResult = null; + _matched = false; + if (instanceOf(v, 211)) { + _matched = true; + _switchResult = castTo(v, 211).value_0; + } + if (!_matched) { + if (instanceOf(v, 263)) { + _matched = true; + _switchResult = '' + castTo(v, 263).value_0; + } + } + if (!_matched) { + if (instanceOf(v, 493)) { + _matched = true; + _switchResult = '' + castTo(v, 493).value_0; + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } + return _switchResult; +} + +function JsonAdapter(){ +} + +defineClass(996, 1, {}, JsonAdapter); +var Lorg_eclipse_elk_graph_json_JsonAdapter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonAdapter', 996); +function JsonImportException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(216, 63, $intern_44, JsonImportException); +var Lorg_eclipse_elk_graph_json_JsonImportException_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImportException', 216); +function $_idByElement(this$static, section){ + return $get_5($inverse(this$static.edgeSectionIdMap), section); +} + +function $_idByElement_0(this$static, node){ + return $get_5($inverse(this$static.nodeIdMap), node); +} + +function $_idByElement_1(this$static, port){ + return $get_5($inverse(this$static.portIdMap), port); +} + +function $_transferLayoutInt(this$static, edge){ + var _function, _function_1, _hasProperty, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, edgeId, jps, jsonJPs, jsonObj, sections; + jsonObj = castTo($get_10(this$static.edgeJsonMap, edge), 190); + if (!jsonObj) { + throw toJs(new JsonImportException('Edge did not exist in input.')); + } + edgeId = $getId(jsonObj); + _isNullOrEmpty = isNullOrEmpty((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + _not = !_isNullOrEmpty; + if (_not) { + sections = new JSONArray; + _function = new JsonImporter$lambda$36$Type(this$static, edgeId, sections); + forEach_42((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), _function); + $put_5(jsonObj, 'sections', sections); + } + _hasProperty = $hasProperty_0(edge, ($clinit_CoreOptions() , JUNCTION_POINTS_0)); + if (_hasProperty) { + jps = castTo($getProperty_0(edge, JUNCTION_POINTS_0), 75); + _isNullOrEmpty_1 = !jps || isEmpty_35(jps); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + jsonJPs = new JSONArray; + _function_1 = new JsonImporter$lambda$40$Type(jsonJPs); + $forEach_0(jps, _function_1); + $put_5(jsonObj, 'junctionPoints', jsonJPs); + } + } + $addJsonObj_1(jsonObj, 'container', $getContainingNode(edge).identifier); + return null; +} + +function $_transferLayoutInt_0(this$static, label_0){ + var jsonObj; + jsonObj = $get_10(this$static.labelJsonMap, label_0); + $transferShapeLayout(label_0, jsonObj); + return null; +} + +function $_transferLayoutInt_1(this$static, node){ + var jsonObj; + jsonObj = $get_4(this$static.nodeJsonMap, node); + if (jsonObj == null) { + throw toJs(new JsonImportException('Node did not exist in input.')); + } + $transferShapeLayout(node, jsonObj); + return null; +} + +function $_transferLayoutInt_2(this$static, port){ + var jsonObj; + jsonObj = $get_10(this$static.portJsonMap, port); + if (jsonObj == null) { + throw toJs(new JsonImportException('Port did not exist in input.')); + } + $transferShapeLayout(port, jsonObj); + return null; +} + +function $idByElement(this$static, node){ + if (instanceOf(node, 207)) { + return $_idByElement_0(this$static, castTo(node, 27)); + } + else if (instanceOf(node, 193)) { + return $_idByElement_1(this$static, castTo(node, 123)); + } + else if (instanceOf(node, 452)) { + return $_idByElement(this$static, castTo(node, 166)); + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); + } +} + +function $lambda$0_13(this$static, parent_1, children_1){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (children_1) { + _sizeJsonArr = children_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + _optJSONObject = $optJSONObject(children_1, i.value_0); + !!_optJSONObject && $transformNode_0(this$static, _optJSONObject, parent_1); + } + } +} + +function $lambda$1_8(this$static, node_1, edges_1){ + var _doubleDotLessThan, _sizeJsonArr, edge, i, i$iterator; + if (edges_1) { + _sizeJsonArr = edges_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + edge = $optJSONObject(edges_1, i.value_0); + 'sources' in edge.jsObject || 'targets' in edge.jsObject?$transformEdge_1(this$static, edge, node_1):$transformPrimitiveEdge(this$static, edge, node_1); + updateContainment(castTo($get_10(this$static.edgeIdMap, $getId(edge)), 74)); + } + } +} + +function $lambda$10_0(section_1, bendPoint_1){ + createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); +} + +function $lambda$11(this$static, edge_1, sources_1){ + var _doubleDotLessThan, _sizeJsonArr, _sources, i, i$iterator, sourceElement; + if (sources_1) { + _sizeJsonArr = sources_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + sourceElement = $shapeById(this$static, $asId($get_8(sources_1, i.value_0))); + if (sourceElement) { + _sources = (!edge_1.sources && (edge_1.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 4, 7)) , edge_1.sources); + $add_21(_sources, sourceElement); + } + } + } +} + +function $lambda$12_0(this$static, edge_1, targets_1){ + var _doubleDotLessThan, _sizeJsonArr, _targets, i, i$iterator, targetElement; + if (targets_1) { + _sizeJsonArr = targets_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + targetElement = $shapeById(this$static, $asId($get_8(targets_1, i.value_0))); + if (targetElement) { + _targets = (!edge_1.targets && (edge_1.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 5, 8)) , edge_1.targets); + $add_21(_targets, targetElement); + } + } + } +} + +function $lambda$13(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, sections_3){ + var _doubleDotLessThan, _function_1, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (sections_3) { + _sizeJsonArr = sections_3.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + _optJSONObject = $optJSONObject(sections_3, i.value_0); + _function_1 = new JsonImporter$lambda$14$Type(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3); + $lambda$14_0(_function_1.$$outer_0, _function_1.edge_1, _function_1.incomingSectionIdentifiers_2, _function_1.outgoingSectionIdentifiers_3, _optJSONObject); + } + } +} + +function $lambda$14_0(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, jsonSection_3){ + var _function_2, _function_3, _function_4, _function_5, _optJSONArray_1, _optJSONArray_2, _optString, _optString_1, elkSection, jsonObj, _optJSONObject, _function, _optJSONObject_1, _function_1, _optJSONArray, _function_2_0; + elkSection = $register_3(this$static, createEdgeSection(edge_1), jsonSection_3); + $setIdentifier_0(elkSection, $optString(jsonSection_3, 'id')); + _xblockexpression = null; + jsonObj = jsonSection_3; + _optJSONObject = $optJSONObject_0(jsonObj, 'startPoint'); + _function = new JsonImporter$lambda$19$Type(elkSection); + $lambda$19_0(_function.section_1, _optJSONObject); + _optJSONObject_1 = $optJSONObject_0(jsonObj, 'endPoint'); + _function_1 = new JsonImporter$lambda$22$Type(elkSection); + $lambda$22_0(_function_1.section_1, _optJSONObject_1); + _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); + _function_2_0 = new JsonImporter$lambda$25$Type(elkSection); + $lambda$25_0(_function_2_0.section_1, _optJSONArray); + _optString = $optString(jsonSection_3, 'incomingShape'); + _function_2 = new JsonImporter$lambda$15$Type(this$static, elkSection); + $lambda$15(_function_2.$$outer_0, _function_2.elkSection_1, _optString); + _optString_1 = $optString(jsonSection_3, 'outgoingShape'); + _function_3 = new JsonImporter$lambda$16$Type(this$static, elkSection); + $lambda$16(_function_3.$$outer_0, _function_3.elkSection_1, _optString_1); + _optJSONArray_1 = $optJSONArray(jsonSection_3, 'incomingSections'); + _function_4 = new JsonImporter$lambda$17$Type(incomingSectionIdentifiers_2, elkSection); + $lambda$17(_function_4.incomingSectionIdentifiers_1, _function_4.elkSection_2, _optJSONArray_1); + _optJSONArray_2 = $optJSONArray(jsonSection_3, 'outgoingSections'); + _function_5 = new JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_3, elkSection); + $lambda$18_0(_function_5.outgoingSectionIdentifiers_1, _function_5.elkSection_2, _optJSONArray_2); +} + +function $lambda$15(this$static, elkSection_1, jsonShapeId_1){ + jsonShapeId_1 != null && $setIncomingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); +} + +function $lambda$16(this$static, elkSection_1, jsonShapeId_1){ + jsonShapeId_1 != null && $setOutgoingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); +} + +function $lambda$17(incomingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ + var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; + if (jsonSectionIds_2) { + _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; + _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); + for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { + j = castTo(j$iterator.next_1(), 17); + $put(incomingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); + } + } +} + +function $lambda$18_0(outgoingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ + var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; + if (jsonSectionIds_2) { + _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; + _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); + for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { + j = castTo(j$iterator.next_1(), 17); + $put(outgoingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); + } + } +} + +function $lambda$19_0(section_1, startPoint_1){ + var _function_1, _function_2, _optDouble, _optDouble_1; + if (startPoint_1) { + _optDouble = $optDouble(startPoint_1, 'x'); + _function_1 = new JsonImporter$lambda$20$Type(section_1); + $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(startPoint_1, 'y'); + _function_2 = new JsonImporter$lambda$21$Type(section_1); + $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } + else { + throw toJs(new JsonImportException('All edge sections need a start point.')); + } +} + +function $lambda$2_5(this$static, children_0){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (children_0) { + _sizeJsonArr = children_0.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + _optJSONObject = $optJSONObject(children_0, i.value_0); + !!_optJSONObject && $transformEdges_2(this$static, _optJSONObject); + } + } +} + +function $lambda$22_0(section_1, endPoint_1){ + var _function_2, _function_3, _optDouble, _optDouble_1; + if (endPoint_1) { + _optDouble = $optDouble(endPoint_1, 'x'); + _function_2 = new JsonImporter$lambda$23$Type(section_1); + $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(endPoint_1, 'y'); + _function_3 = new JsonImporter$lambda$24$Type(section_1); + $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } + else { + throw toJs(new JsonImportException('All edge sections need an end point.')); + } +} + +function $lambda$25_0(section_1, bendPoints_1){ + var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; + if (bendPoints_1) { + _sizeJsonArr = bendPoints_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); + _function_3 = new JsonImporter$lambda$26$Type(section_1); + $lambda$26_0(_function_3.section_1, _optJSONObject_2); + } + } +} + +function $lambda$26_0(section_1, bendPoint_1){ + createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); +} + +function $lambda$27(opts_1, layoutData_2, k_2){ + var _jsonObj, _stringVal, value_0; + _jsonObj = $get_9(opts_1, k_2); + _stringVal = null; + !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); + value_0 = _stringVal; + $setOption(layoutData_2, k_2, value_0); +} + +function $lambda$28(opts_1, individualSpacings_2, k_2){ + var _jsonObj, _stringVal, value_0; + _jsonObj = $get_9(opts_1, k_2); + _stringVal = null; + !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); + value_0 = _stringVal; + $setOption(individualSpacings_2, k_2, value_0); +} + +function $lambda$29_0(this$static, element_1, labels_1){ + var _doubleDotLessThan, _hasJsonObj, _sizeJsonArr, i, i$iterator, jsonLabel, label_0; + if (labels_1) { + _sizeJsonArr = labels_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + jsonLabel = $optJSONObject(labels_1, i.value_0); + if (jsonLabel) { + label_0 = createLabel($optString(jsonLabel, 'text'), element_1); + $put_6(this$static.labelJsonMap, label_0, jsonLabel); + _hasJsonObj = 'id' in jsonLabel.jsObject; + _hasJsonObj && $setIdentifier(label_0, $optString(jsonLabel, 'id')); + $transformProperties(jsonLabel, label_0); + $transformShapeLayout(jsonLabel, label_0); + } + } + } +} + +function $lambda$3_4(section_1, srcPnt_1){ + var _function_1, _function_2, _optDouble, _optDouble_1; + if (srcPnt_1) { + _optDouble = $optDouble(srcPnt_1, 'x'); + _function_1 = new JsonImporter$lambda$4$Type(section_1); + $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(srcPnt_1, 'y'); + _function_2 = new JsonImporter$lambda$5$Type(section_1); + $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } +} + +function $lambda$30(this$static, parent_1, ports_1){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator, port, port_0, elkPort; + if (ports_1) { + _sizeJsonArr = ports_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + _optJSONObject = $optJSONObject(ports_1, i.value_0); + !!_optJSONObject && (_xblockexpression = null , port = $register_5(this$static, (port_0 = ($clinit_ElkGraphFactory() , elkPort = new ElkPortImpl , elkPort) , !!parent_1 && $setParent_3(port_0, parent_1) , port_0), _optJSONObject) , $setIdentifier(port, $optString(_optJSONObject, 'id')) , $transformProperties(_optJSONObject, port) , $transformShapeLayout(_optJSONObject, port) , $transformLabels(this$static, _optJSONObject, port)); + } + } +} + +function $lambda$31(shape_1, it_1){ + $setX_2(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$32(shape_1, it_1){ + $setY_3(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$33(shape_1, it_1){ + $setWidth_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$34(shape_1, it_1){ + $setHeight_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$36(this$static, edgeId_1, sections_2, elkSection_2, i_3){ + var _function_1, _function_2, _function_3, _incomingShape, _isEmpty, _isEmpty_1, _isNullOrEmpty_1, _jSONString, _jsonObject, _not_1, _not_2, _not_3, _outgoingShape, _plus, _plus_1, _tripleNotEquals, _tripleNotEquals_1, bendPoints, endPoint, incomingSections, jsonSection, maybeSection, outgoingSections, startPoint; + maybeSection = $get_10(this$static.edgeSectionJsonMap, elkSection_2); + if (maybeSection == null) { + maybeSection = new JSONObject; + _jsonObject = castTo(maybeSection, 190); + _plus = edgeId_1 + '_s'; + _plus_1 = _plus + i_3; + _jSONString = new JSONString(_plus_1); + $put_5(_jsonObject, 'id', _jSONString); + } + jsonSection = castTo(maybeSection, 190); + $addJsonArr(sections_2, jsonSection); + startPoint = new JSONObject; + $addJsonObj(startPoint, 'x', elkSection_2.startX); + $addJsonObj(startPoint, 'y', elkSection_2.startY); + $put_5(jsonSection, 'startPoint', startPoint); + endPoint = new JSONObject; + $addJsonObj(endPoint, 'x', elkSection_2.endX); + $addJsonObj(endPoint, 'y', elkSection_2.endY); + $put_5(jsonSection, 'endPoint', endPoint); + _isNullOrEmpty_1 = isNullOrEmpty((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints)); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + bendPoints = new JSONArray; + _function_1 = new JsonImporter$lambda$37$Type(bendPoints); + $forEach_0((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints), _function_1); + $put_5(jsonSection, 'bendPoints', bendPoints); + } + _incomingShape = $getIncomingShape(elkSection_2); + _tripleNotEquals = !!_incomingShape; + _tripleNotEquals && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'incomingShape', $idByElement(this$static, $getIncomingShape(elkSection_2))); + _outgoingShape = $getOutgoingShape(elkSection_2); + _tripleNotEquals_1 = !!_outgoingShape; + _tripleNotEquals_1 && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'outgoingShape', $idByElement(this$static, $getOutgoingShape(elkSection_2))); + _isEmpty = (!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections).size_0 == 0; + _not_2 = !_isEmpty; + if (_not_2) { + incomingSections = new JSONArray; + _function_2 = new JsonImporter$lambda$38$Type(this$static, incomingSections); + $forEach_0((!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections), _function_2); + $put_5(jsonSection, 'incomingSections', incomingSections); + } + _isEmpty_1 = (!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections).size_0 == 0; + _not_3 = !_isEmpty_1; + if (_not_3) { + outgoingSections = new JSONArray; + _function_3 = new JsonImporter$lambda$39$Type(this$static, outgoingSections); + $forEach_0((!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections), _function_3); + $put_5(jsonSection, 'outgoingSections', outgoingSections); + } +} + +function $lambda$37(bendPoints_1, pnt_1){ + var jsonPnt; + jsonPnt = new JSONObject; + $addJsonObj(jsonPnt, 'x', pnt_1.x_0); + $addJsonObj(jsonPnt, 'y', pnt_1.y_0); + $addJsonArr(bendPoints_1, jsonPnt); +} + +function $lambda$38(this$static, incomingSections_1, sec_1){ + $addJsonArr_0(incomingSections_1, $idByElement(this$static, sec_1)); +} + +function $lambda$39(this$static, outgoingSections_1, sec_1){ + $addJsonArr_0(outgoingSections_1, $idByElement(this$static, sec_1)); +} + +function $lambda$40(jsonJPs_1, jp_1){ + var jsonPnt; + jsonPnt = new JSONObject; + $addJsonObj(jsonPnt, 'x', jp_1.x_0); + $addJsonObj(jsonPnt, 'y', jp_1.y_0); + $addJsonArr(jsonJPs_1, jsonPnt); +} + +function $lambda$6_0(section_1, tgtPnt_1){ + var _function_2, _function_3, _optDouble, _optDouble_1; + if (tgtPnt_1) { + _optDouble = $optDouble(tgtPnt_1, 'x'); + _function_2 = new JsonImporter$lambda$7$Type(section_1); + $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(tgtPnt_1, 'y'); + _function_3 = new JsonImporter$lambda$8$Type(section_1); + $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } +} + +function $lambda$9_1(section_1, bendPoints_1){ + var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; + if (bendPoints_1) { + _sizeJsonArr = bendPoints_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 17); + _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); + _function_3 = new JsonImporter$lambda$10$Type(section_1); + $lambda$10_0(_function_3.section_1, _optJSONObject_2); + } + } +} + +function $register_2(this$static, edge, obj){ + var id_0; + id_0 = $getId(obj); + $put_6(this$static.edgeIdMap, id_0, edge); + $put_6(this$static.edgeJsonMap, edge, obj); + return edge; +} + +function $register_3(this$static, edgeSection, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.edgeSectionIdMap, id_0, edgeSection); + $put_6(this$static.edgeSectionJsonMap, edgeSection, obj); + return edgeSection; +} + +function $register_4(this$static, node, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.nodeIdMap, id_0, node); + $put_3(this$static.nodeJsonMap, node, obj); + return node; +} + +function $register_5(this$static, port, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.portIdMap, id_0, port); + $put_6(this$static.portJsonMap, port, obj); + return port; +} + +function $setOption(e, id_0, value_0){ + var _xblockexpression, _xblockexpression_1, _xifexpression, _xifexpression_1, optionData, parsed; + _xblockexpression = null; + optionData = $getOptionDataBySuffix(getInstance(), id_0); + _xifexpression = null; + if (optionData) { + _xblockexpression_1 = null; + parsed = $parseValue(optionData, value_0); + _xifexpression_1 = null; + parsed != null && (_xifexpression_1 = e.setProperty(optionData, parsed)); + _xblockexpression_1 = _xifexpression_1; + _xifexpression = _xblockexpression_1; + } + _xblockexpression = _xifexpression; + return _xblockexpression; +} + +function $shapeById(this$static, id_0){ + var node, port; + node = castTo($get_4(this$static.nodeIdMap, id_0), 27); + if (node) { + return node; + } + port = castTo($get_4(this$static.portIdMap, id_0), 123); + if (port) { + return port; + } + throw toJs(new JsonImportException('Referenced shape does not exist: ' + id_0)); +} + +function $transferLayoutInt(this$static, node){ + if (instanceOf(node, 207)) { + return $_transferLayoutInt_1(this$static, castTo(node, 27)); + } + else if (instanceOf(node, 193)) { + return $_transferLayoutInt_2(this$static, castTo(node, 123)); + } + else if (instanceOf(node, 366)) { + return $_transferLayoutInt_0(this$static, castTo(node, 135)); + } + else if (instanceOf(node, 326)) { + return $_transferLayoutInt(this$static, castTo(node, 74)); + } + else if (node) { + return null; + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); + } +} + +function $transferShapeLayout(shape_0, jsonObjA){ + var jsonObj; + jsonObj = castTo(jsonObjA, 190); + $addJsonObj(jsonObj, 'x', shape_0.x_0); + $addJsonObj(jsonObj, 'y', shape_0.y_0); + $addJsonObj(jsonObj, 'width', shape_0.width_0); + $addJsonObj(jsonObj, 'height', shape_0.height); +} + +function $transformChildNodes(this$static, jsonNodeA, parent_0){ + var _function, _optJSONArray, _xblockexpression, jsonNode; + _xblockexpression = null; + jsonNode = jsonNodeA; + _optJSONArray = $optJSONArray(jsonNode, 'children'); + _function = new JsonImporter$lambda$0$Type(this$static, parent_0); + _xblockexpression = ($lambda$0_13(_function.$$outer_0, _function.parent_1, _optJSONArray) , _optJSONArray); + return _xblockexpression; +} + +function $transformEdge_1(this$static, jsonObjA, parent_0){ + var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, _xblockexpression, edge, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + edge = $register_2(this$static, createEdge(parent_0), jsonObj); + $setIdentifier(edge, $optString(jsonObj, 'id')); + _optJSONArray = $optJSONArray(jsonObj, 'sources'); + _function = new JsonImporter$lambda$11$Type(this$static, edge); + $lambda$11(_function.$$outer_0, _function.edge_1, _optJSONArray); + _optJSONArray_1 = $optJSONArray(jsonObj, 'targets'); + _function_1 = new JsonImporter$lambda$12$Type(this$static, edge); + $lambda$12_0(_function_1.$$outer_0, _function_1.edge_1, _optJSONArray_1); + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + _idSave = $optString(jsonObj, 'id'); + _plus = "An edge must have at least one source and one target (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + $transformProperties(jsonObj, edge); + $transformEdgeSections(this$static, jsonObj, edge); + _xblockexpression = $transformLabels(this$static, jsonObj, edge); + return _xblockexpression; +} + +function $transformEdgeSections(this$static, jsonObjA, edge){ + var _function, _get, _get_1, _idSave, _incomingSections, _keySet, _keySet_1, _optJSONArray, _outgoingSections, _plus, _plus_1, id_0, id$iterator, id_1, id_1$iterator, incomingSectionIdentifiers, jsonObj, outgoingSectionIdentifiers, referencedSection, result, result0, section, section$iterator, section_1, section_1$iterator, section_2; + jsonObj = jsonObjA; + incomingSectionIdentifiers = new HashMultimap; + outgoingSectionIdentifiers = new HashMultimap; + _optJSONArray = $optJSONArray(jsonObj, 'sections'); + _function = new JsonImporter$lambda$13$Type(this$static, edge, incomingSectionIdentifiers, outgoingSectionIdentifiers); + $lambda$13(_function.$$outer_0, _function.edge_1, _function.incomingSectionIdentifiers_2, _function.outgoingSectionIdentifiers_3, _optJSONArray); + _keySet = (result0 = incomingSectionIdentifiers.keySet , !result0?(incomingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(incomingSectionIdentifiers, incomingSectionIdentifiers.map_0)):result0); + for (section$iterator = _keySet.iterator_0(); section$iterator.hasNext_0();) { + section = castTo(section$iterator.next_1(), 166); + _get = castTo($get(incomingSectionIdentifiers, section), 21); + for (id$iterator = _get.iterator_0(); id$iterator.hasNext_0();) { + id_0 = id$iterator.next_1(); + referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_0), 166); + if (referencedSection) { + _incomingSections = (!section.incomingSections && (section.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section, 10, 9)) , section.incomingSections); + $add_21(_incomingSections, referencedSection); + } + else { + _idSave = $optString(jsonObj, 'id'); + _plus = 'Referenced edge section does not exist: ' + id_0 + " (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + } + } + _keySet_1 = (result = outgoingSectionIdentifiers.keySet , !result?(outgoingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(outgoingSectionIdentifiers, outgoingSectionIdentifiers.map_0)):result); + for (section_1$iterator = _keySet_1.iterator_0(); section_1$iterator.hasNext_0();) { + section_1 = castTo(section_1$iterator.next_1(), 166); + _get_1 = castTo($get(outgoingSectionIdentifiers, section_1), 21); + for (id_1$iterator = _get_1.iterator_0(); id_1$iterator.hasNext_0();) { + id_1 = id_1$iterator.next_1(); + referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_1), 166); + if (referencedSection) { + _outgoingSections = (!section_1.outgoingSections && (section_1.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section_1, 9, 10)) , section_1.outgoingSections); + $add_21(_outgoingSections, referencedSection); + } + else { + _idSave = $optString(jsonObj, 'id'); + _plus = 'Referenced edge section does not exist: ' + id_1 + " (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + } + } + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0) && (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1)) && (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 1) { + section_2 = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166); + if (!$getIncomingShape(section_2) && !$getOutgoingShape(section_2)) { + $setIncomingShape(section_2, castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84)); + $setOutgoingShape(section_2, castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)); + } + } +} + +function $transformEdges_2(this$static, jsonObjA){ + var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, jsonObj, node; + jsonObj = jsonObjA; + node = castTo($get_5($inverse(this$static.nodeJsonMap), jsonObj), 27); + if (!node) { + _idSave = $optString(jsonObj, 'id'); + _plus = "Unable to find elk node for json object '" + _idSave; + _plus_1 = _plus + "' Panic!"; + throw toJs(new JsonImportException(_plus_1)); + } + _optJSONArray = $optJSONArray(jsonObj, 'edges'); + _function = new JsonImporter$lambda$1$Type(this$static, node); + $lambda$1_8(_function.$$outer_0, _function.node_1, _optJSONArray); + _optJSONArray_1 = $optJSONArray(jsonObj, 'children'); + _function_1 = new JsonImporter$lambda$2$Type(this$static); + $lambda$2_5(_function_1.$$outer_0, _optJSONArray_1); +} + +function $transformIndividualSpacings(jsonObjA, layoutData){ + var _function, _hasProperty, _individualSpacings, _keysJsonObj, _not, individualSpacings, jsonIndividualSpacings, jsonObj, keys_0, opts; + jsonObj = jsonObjA; + jsonIndividualSpacings = $optJSONObject_0(jsonObj, 'individualSpacings'); + if (jsonIndividualSpacings) { + _hasProperty = $hasProperty_0(layoutData, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0)); + _not = !_hasProperty; + if (_not) { + _individualSpacings = new IndividualSpacings; + $setProperty_1(layoutData, SPACING_INDIVIDUAL_0, _individualSpacings); + } + individualSpacings = castTo($getProperty_0(layoutData, SPACING_INDIVIDUAL_0), 385); + opts = jsonIndividualSpacings; + _keysJsonObj = null; + !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); + if (_keysJsonObj) { + _function = new JsonImporter$lambda$28$Type(opts, individualSpacings); + $forEach_0(_keysJsonObj, _function); + } + } +} + +function $transformLabels(this$static, jsonObjA, element){ + var _function, _optJSONArray, _xblockexpression, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + _optJSONArray = $optJSONArray(jsonObj, 'labels'); + _function = new JsonImporter$lambda$29$Type(this$static, element); + _xblockexpression = ($lambda$29_0(_function.$$outer_0, _function.element_1, _optJSONArray) , _optJSONArray); + return _xblockexpression; +} + +function $transformNode_0(this$static, jsonNode, parent_0){ + var node, node_0, elkNode, jsonObj, _optJSONArray, _function; + node = $register_4(this$static, (node_0 = ($clinit_ElkGraphFactory() , elkNode = new ElkNodeImpl , elkNode) , !!parent_0 && $setParent_2(node_0, parent_0) , node_0), jsonNode); + $setIdentifier(node, $optString(jsonNode, 'id')); + $transformProperties(jsonNode, node); + $transformIndividualSpacings(jsonNode, node); + $transformShapeLayout(jsonNode, node); + _xblockexpression = null; + jsonObj = jsonNode; + _optJSONArray = $optJSONArray(jsonObj, 'ports'); + _function = new JsonImporter$lambda$30$Type(this$static, node); + $lambda$30(_function.$$outer_0, _function.parent_1, _optJSONArray); + $transformLabels(this$static, jsonNode, node); + $transformChildNodes(this$static, jsonNode, node); + return node; +} + +function $transformPrimitiveEdge(this$static, jsonObjA, parent_0){ + var _asId, _asId_1, _elvis, _elvis_1, _id, _idSave, _idSave_1, _idSave_2, _id_1, _jsonObj, _jsonObj_1, _plus, _plus_1, _plus_2, _plus_3, _plus_4, _plus_5, _plus_6, _plus_7, _plus_8, _plus_9, _sources, _targets, _xblockexpression, edge, jsonObj, srcNode, srcPort, tgtNode, tgtPort; + _xblockexpression = null; + jsonObj = jsonObjA; + edge = $register_2(this$static, createEdge(parent_0), jsonObj); + $setIdentifier(edge, $optString(jsonObj, 'id')); + srcNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'source'))), 27); + _jsonObj = $get_9(jsonObj, 'sourcePort'); + _asId = null; + !!_jsonObj && (_asId = $asId(_jsonObj)); + srcPort = castTo($get_4(this$static.portIdMap, _asId), 123); + if (!srcNode) { + _id = $getId(jsonObj); + _plus = "An edge must have a source node (edge id: '" + _id; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + if (!!srcPort && !equal($getParent_3(srcPort), srcNode)) { + _idSave = $optString(jsonObj, 'id'); + _plus_2 = "The source port of an edge must be a port of the edge's source node (edge id: '" + _idSave; + _plus_3 = _plus_2 + "')."; + throw toJs(new JsonImportException(_plus_3)); + } + _sources = (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources); + _elvis = null; + srcPort?(_elvis = srcPort):(_elvis = srcNode); + $add_21(_sources, _elvis); + tgtNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'target'))), 27); + _jsonObj_1 = $get_9(jsonObj, 'targetPort'); + _asId_1 = null; + !!_jsonObj_1 && (_asId_1 = $asId(_jsonObj_1)); + tgtPort = castTo($get_4(this$static.portIdMap, _asId_1), 123); + if (!tgtNode) { + _id_1 = $getId(jsonObj); + _plus_4 = "An edge must have a target node (edge id: '" + _id_1; + _plus_5 = _plus_4 + "')."; + throw toJs(new JsonImportException(_plus_5)); + } + if (!!tgtPort && !equal($getParent_3(tgtPort), tgtNode)) { + _idSave_1 = $optString(jsonObj, 'id'); + _plus_6 = "The target port of an edge must be a port of the edge's target node (edge id: '" + _idSave_1; + _plus_7 = _plus_6 + "')."; + throw toJs(new JsonImportException(_plus_7)); + } + _targets = (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets); + _elvis_1 = null; + tgtPort?(_elvis_1 = tgtPort):(_elvis_1 = tgtNode); + $add_21(_targets, _elvis_1); + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + _idSave_2 = $optString(jsonObj, 'id'); + _plus_8 = "An edge must have at least one source and one target (edge id: '" + _idSave_2; + _plus_9 = _plus_8 + "')."; + throw toJs(new JsonImportException(_plus_9)); + } + $transformProperties(jsonObj, edge); + $transformPrimitiveEdgeLayout(jsonObj, edge); + _xblockexpression = $transformLabels(this$static, jsonObj, edge); + return _xblockexpression; +} + +function $transformPrimitiveEdgeLayout(jsonObjA, edge){ + var _function, _function_1, _function_2, _optJSONArray, _optJSONObject, _optJSONObject_1, _xblockexpression, _xblockexpression_1, _xifexpression, jsonObj, section; + _xblockexpression = null; + jsonObj = jsonObjA; + _xifexpression = null; + if ('sourcePoint' in jsonObj.jsObject || 'targetPoint' in jsonObj.jsObject || 'bendPoints' in jsonObj.jsObject) { + _xblockexpression_1 = null; + section = createEdgeSection(edge); + _optJSONObject = $optJSONObject_0(jsonObj, 'sourcePoint'); + _function = new JsonImporter$lambda$3$Type(section); + $lambda$3_4(_function.section_1, _optJSONObject); + _optJSONObject_1 = $optJSONObject_0(jsonObj, 'targetPoint'); + _function_1 = new JsonImporter$lambda$6$Type(section); + $lambda$6_0(_function_1.section_1, _optJSONObject_1); + _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); + _function_2 = new JsonImporter$lambda$9$Type(section); + _xblockexpression_1 = ($lambda$9_1(_function_2.section_1, _optJSONArray) , _optJSONArray); + _xifexpression = _xblockexpression_1; + } + _xblockexpression = _xifexpression; + return _xblockexpression; +} + +function $transformProperties(jsonObjA, layoutData){ + var _function, _keysJsonObj, jsonObj, keys_0, layoutOptions, opts; + jsonObj = jsonObjA; + layoutOptions = $optJSONObject_0(jsonObj, 'layoutOptions'); + !layoutOptions && (layoutOptions = $optJSONObject_0(jsonObj, 'properties')); + if (layoutOptions) { + opts = layoutOptions; + _keysJsonObj = null; + !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); + if (_keysJsonObj) { + _function = new JsonImporter$lambda$27$Type(opts, layoutData); + $forEach_0(_keysJsonObj, _function); + } + } +} + +function $transformShapeLayout(jsonObjA, shape_0){ + var _function, _function_1, _function_2, _function_3, _optDouble, _optDouble_1, _optDouble_2, _optDouble_3, _xblockexpression, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + _optDouble = $optDouble(jsonObj, 'x'); + _function = new JsonImporter$lambda$31$Type(shape_0); + $lambda$31(_function.shape_1, _optDouble); + _optDouble_1 = $optDouble(jsonObj, 'y'); + _function_1 = new JsonImporter$lambda$32$Type(shape_0); + $lambda$32(_function_1.shape_1, _optDouble_1); + _optDouble_2 = $optDouble(jsonObj, 'width'); + _function_2 = new JsonImporter$lambda$33$Type(shape_0); + $lambda$33(_function_2.shape_1, _optDouble_2); + _optDouble_3 = $optDouble(jsonObj, 'height'); + _function_3 = new JsonImporter$lambda$34$Type(shape_0); + _xblockexpression = ($lambda$34(_function_3.shape_1, _optDouble_3) , _optDouble_3); + return _xblockexpression; +} + +function JsonImporter(){ + this._jsonAdapter = new JsonAdapter; + this.nodeIdMap = new HashBiMap; + this.portIdMap = new HashBiMap; + this.edgeIdMap = new HashMap; + this.edgeSectionIdMap = new HashBiMap; + this.nodeJsonMap = new HashBiMap; + this.portJsonMap = new HashMap; + this.edgeJsonMap = new HashMap; + this.edgeSectionJsonMap = new HashMap; + this.labelJsonMap = new HashMap; +} + +defineClass(868, 1, {}, JsonImporter); +var Lorg_eclipse_elk_graph_json_JsonImporter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter', 868); +function JsonImporter$lambda$0$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(903, 1, {}, JsonImporter$lambda$0$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$0$Type', 903); +function JsonImporter$lambda$1$Type($$outer_0, node_1){ + this.$$outer_0 = $$outer_0; + this.node_1 = node_1; +} + +defineClass(904, 1, {}, JsonImporter$lambda$1$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$1$Type', 904); +function JsonImporter$lambda$10$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(912, 1, {}, JsonImporter$lambda$10$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$10$Type', 912); +function JsonImporter$lambda$11$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(914, 1, {}, JsonImporter$lambda$11$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$11$Type', 914); +function JsonImporter$lambda$12$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(915, 1, {}, JsonImporter$lambda$12$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$12$Type', 915); +function JsonImporter$lambda$13$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; + this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; + this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; +} + +defineClass(921, 1, {}, JsonImporter$lambda$13$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$13$Type', 921); +function JsonImporter$lambda$14$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; + this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; + this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; +} + +defineClass(920, 1, {}, JsonImporter$lambda$14$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$14$Type', 920); +function JsonImporter$lambda$15$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(916, 1, {}, JsonImporter$lambda$15$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$15$Type', 916); +function JsonImporter$lambda$16$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(917, 1, {}, JsonImporter$lambda$16$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$16$Type', 917); +function JsonImporter$lambda$17$Type(incomingSectionIdentifiers_1, elkSection_2){ + this.incomingSectionIdentifiers_1 = incomingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(918, 1, {}, JsonImporter$lambda$17$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$17$Type', 918); +function JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_1, elkSection_2){ + this.outgoingSectionIdentifiers_1 = outgoingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(919, 1, {}, JsonImporter$lambda$18$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$18$Type', 919); +function JsonImporter$lambda$19$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(924, 1, {}, JsonImporter$lambda$19$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$19$Type', 924); +function JsonImporter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(905, 1, {}, JsonImporter$lambda$2$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$2$Type', 905); +function JsonImporter$lambda$20$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(922, 1, {}, JsonImporter$lambda$20$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$20$Type', 922); +function JsonImporter$lambda$21$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(923, 1, {}, JsonImporter$lambda$21$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$21$Type', 923); +function JsonImporter$lambda$22$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(927, 1, {}, JsonImporter$lambda$22$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$22$Type', 927); +function JsonImporter$lambda$23$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(925, 1, {}, JsonImporter$lambda$23$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$23$Type', 925); +function JsonImporter$lambda$24$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(926, 1, {}, JsonImporter$lambda$24$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$24$Type', 926); +function JsonImporter$lambda$25$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(929, 1, {}, JsonImporter$lambda$25$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$25$Type', 929); +function JsonImporter$lambda$26$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(928, 1, {}, JsonImporter$lambda$26$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$26$Type', 928); +function JsonImporter$lambda$27$Type(opts_1, layoutData_2){ + this.opts_1 = opts_1; + this.layoutData_2 = layoutData_2; +} + +defineClass(930, 1, $intern_19, JsonImporter$lambda$27$Type); +_.accept = function accept_155(arg0){ + $lambda$27(this.opts_1, this.layoutData_2, castToString(arg0)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$27$Type', 930); +function JsonImporter$lambda$28$Type(opts_1, individualSpacings_2){ + this.opts_1 = opts_1; + this.individualSpacings_2 = individualSpacings_2; +} + +defineClass(931, 1, $intern_19, JsonImporter$lambda$28$Type); +_.accept = function accept_156(arg0){ + $lambda$28(this.opts_1, this.individualSpacings_2, castToString(arg0)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$28$Type', 931); +function JsonImporter$lambda$29$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(932, 1, {}, JsonImporter$lambda$29$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$29$Type', 932); +function JsonImporter$lambda$3$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(908, 1, {}, JsonImporter$lambda$3$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$3$Type', 908); +function JsonImporter$lambda$30$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(933, 1, {}, JsonImporter$lambda$30$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$30$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$30$Type', 933); +function JsonImporter$lambda$31$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(934, 1, {}, JsonImporter$lambda$31$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$31$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$31$Type', 934); +function JsonImporter$lambda$32$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(935, 1, {}, JsonImporter$lambda$32$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$32$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$32$Type', 935); +function JsonImporter$lambda$33$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(936, 1, {}, JsonImporter$lambda$33$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$33$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$33$Type', 936); +function JsonImporter$lambda$34$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(937, 1, {}, JsonImporter$lambda$34$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$34$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$34$Type', 937); +function $apply_28(this$static, arg0){ + $transferLayoutInt(this$static.$$outer_0, castTo(arg0, 58)); +} + +function JsonImporter$lambda$35$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(870, 1, {}, JsonImporter$lambda$35$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$35$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$35$Type', 870); +function $apply_29(this$static, arg0, arg1){ + $lambda$36(this$static.$$outer_0, this$static.edgeId_1, this$static.sections_2, castTo(arg0, 166), arg1); +} + +function JsonImporter$lambda$36$Type($$outer_0, edgeId_1, sections_2){ + this.$$outer_0 = $$outer_0; + this.edgeId_1 = edgeId_1; + this.sections_2 = sections_2; +} + +defineClass(941, 1, {}, JsonImporter$lambda$36$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$36$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$36$Type', 941); +function JsonImporter$lambda$37$Type(bendPoints_1){ + this.bendPoints_1 = bendPoints_1; +} + +defineClass(938, 1, $intern_19, JsonImporter$lambda$37$Type); +_.accept = function accept_157(arg0){ + $lambda$37(this.bendPoints_1, castTo(arg0, 377)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$37$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$37$Type', 938); +function JsonImporter$lambda$38$Type($$outer_0, incomingSections_1){ + this.$$outer_0 = $$outer_0; + this.incomingSections_1 = incomingSections_1; +} + +defineClass(939, 1, $intern_19, JsonImporter$lambda$38$Type); +_.accept = function accept_158(arg0){ + $lambda$38(this.$$outer_0, this.incomingSections_1, castTo(arg0, 166)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$38$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$38$Type', 939); +function JsonImporter$lambda$39$Type($$outer_0, outgoingSections_1){ + this.$$outer_0 = $$outer_0; + this.outgoingSections_1 = outgoingSections_1; +} + +defineClass(940, 1, $intern_19, JsonImporter$lambda$39$Type); +_.accept = function accept_159(arg0){ + $lambda$39(this.$$outer_0, this.outgoingSections_1, castTo(arg0, 166)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$39$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$39$Type', 940); +function JsonImporter$lambda$4$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(906, 1, {}, JsonImporter$lambda$4$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$4$Type', 906); +function JsonImporter$lambda$40$Type(jsonJPs_1){ + this.jsonJPs_1 = jsonJPs_1; +} + +defineClass(942, 1, $intern_19, JsonImporter$lambda$40$Type); +_.accept = function accept_160(arg0){ + $lambda$40(this.jsonJPs_1, castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$40$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$40$Type', 942); +function JsonImporter$lambda$5$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(907, 1, {}, JsonImporter$lambda$5$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$5$Type', 907); +function JsonImporter$lambda$6$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(911, 1, {}, JsonImporter$lambda$6$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$6$Type', 911); +function JsonImporter$lambda$7$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(909, 1, {}, JsonImporter$lambda$7$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$7$Type', 909); +function JsonImporter$lambda$8$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(910, 1, {}, JsonImporter$lambda$8$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$8$Type', 910); +function JsonImporter$lambda$9$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(913, 1, {}, JsonImporter$lambda$9$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$9$Type', 913); +function _toJson(lad){ + var _categoryId, _function, _function_1, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, _tripleNotEquals, jsonArr, jsonArr_1, jsonObj; + jsonObj = createCommon(lad); + _categoryId = lad.category; + _tripleNotEquals = _categoryId != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'category', lad.category); + _isNullOrEmpty = isNullOrEmpty(new AbstractMap$1(lad.knownOptions)); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'knownOptions', jsonArr); + _function = new JsonMetaDataConverter$lambda$0$Type(jsonArr); + $forEach_0(new AbstractMap$1(lad.knownOptions), _function); + } + _isNullOrEmpty_1 = isNullOrEmpty(lad.supportedFeatures); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + jsonArr_1 = new JSONArray; + $put_5(jsonObj, 'supportedFeatures', jsonArr_1); + _function_1 = new JsonMetaDataConverter$lambda$1$Type(jsonArr_1); + $forEach_0(lad.supportedFeatures, _function_1); + } + return jsonObj; +} + +function _toJson_0(lcd){ + var _function, _isNullOrEmpty, _not, jsonArr, jsonObj; + jsonObj = createCommon(lcd); + _isNullOrEmpty = isNullOrEmpty(lcd.layouters); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'knownLayouters', jsonArr); + _function = new JsonMetaDataConverter$lambda$2$Type(jsonArr); + $forEach_0(lcd.layouters, _function); + } + return jsonObj; +} + +function _toJson_1(lod){ + var _function, _group, _isNullOrEmpty, _not, _tripleNotEquals, _tripleNotEquals_1, _type, jsonArr, jsonObj; + jsonObj = createCommon(lod); + _group = lod.group_0; + _tripleNotEquals = _group != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'group', lod.group_0); + _type = lod.type_0; + _tripleNotEquals_1 = !!_type; + _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'type', $toString_3(lod.type_0)); + _isNullOrEmpty = isNullOrEmpty(lod.targets); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'targets', jsonArr); + _function = new JsonMetaDataConverter$lambda$3$Type(jsonArr); + $forEach_0(lod.targets, _function); + } + return jsonObj; +} + +function createCommon(data_0){ + var _description, _id, _name, _tripleNotEquals, _tripleNotEquals_1, _tripleNotEquals_2, jsonObj; + jsonObj = new JSONObject; + _id = data_0.getId(); + _tripleNotEquals = _id != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'id', data_0.getId()); + _name = data_0.getName(); + _tripleNotEquals_1 = _name != null; + _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'name', data_0.getName()); + _description = data_0.getDescription(); + _tripleNotEquals_2 = _description != null; + _tripleNotEquals_2 && $addJsonObj_1(jsonObj, 'description', data_0.getDescription()); + return jsonObj; +} + +function lambda$1_23(jsonArr_1_0, f_1){ + $addJsonArr(jsonArr_1_0, new JSONString(f_1.name_0 != null?f_1.name_0:'' + f_1.ordinal)); +} + +function lambda$2_16(jsonArr_0, l_1){ + var _id, _tripleNotEquals; + _id = l_1.id_0; + _tripleNotEquals = _id != null; + _tripleNotEquals && $addJsonArr(jsonArr_0, new JSONString(l_1.id_0)); +} + +function lambda$3_11(jsonArr_0, t_1){ + $addJsonArr(jsonArr_0, new JSONString(t_1.name_0 != null?t_1.name_0:'' + t_1.ordinal)); +} + +function toJson(lad){ + if (instanceOf(lad, 143)) { + return _toJson(castTo(lad, 143)); + } + else if (instanceOf(lad, 233)) { + return _toJson_0(castTo(lad, 233)); + } + else if (instanceOf(lad, 23)) { + return _toJson_1(castTo(lad, 23)); + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [lad]))))); + } +} + +function JsonMetaDataConverter$lambda$0$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(961, 1, $intern_19, JsonMetaDataConverter$lambda$0$Type); +_.accept = function accept_161(arg0){ + $addJsonArr(this.jsonArr_0, new JSONString(castToString(arg0))); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$0$Type', 961); +function JsonMetaDataConverter$lambda$1$Type(jsonArr_1_0){ + this.jsonArr_1_0 = jsonArr_1_0; +} + +defineClass(962, 1, $intern_19, JsonMetaDataConverter$lambda$1$Type); +_.accept = function accept_162(arg0){ + lambda$1_23(this.jsonArr_1_0, castTo(arg0, 245)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$1$Type', 962); +function JsonMetaDataConverter$lambda$2$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(963, 1, $intern_19, JsonMetaDataConverter$lambda$2$Type); +_.accept = function accept_163(arg0){ + lambda$2_16(this.jsonArr_0, castTo(arg0, 143)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$2$Type', 963); +function JsonMetaDataConverter$lambda$3$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(964, 1, $intern_19, JsonMetaDataConverter$lambda$3$Type); +_.accept = function accept_164(arg0){ + lambda$3_11(this.jsonArr_0, castTo(arg0, 170)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$3$Type', 964); +function $clinit_GraphFeature(){ + $clinit_GraphFeature = emptyMethod; + SELF_LOOPS_0 = new GraphFeature('SELF_LOOPS', 0); + INSIDE_SELF_LOOPS = new GraphFeature('INSIDE_SELF_LOOPS', 1); + MULTI_EDGES = new GraphFeature('MULTI_EDGES', 2); + EDGE_LABELS = new GraphFeature('EDGE_LABELS', 3); + PORTS_1 = new GraphFeature('PORTS', 4); + COMPOUND = new GraphFeature('COMPOUND', 5); + CLUSTERS = new GraphFeature('CLUSTERS', 6); + DISCONNECTED = new GraphFeature('DISCONNECTED', 7); +} + +function GraphFeature(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_117(name_0){ + $clinit_GraphFeature(); + return valueOf(($clinit_GraphFeature$Map() , $MAP_107), name_0); +} + +function values_125(){ + $clinit_GraphFeature(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_37, 245, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]); +} + +defineClass(245, 22, {3:1, 34:1, 22:1, 245:1}, GraphFeature); +var CLUSTERS, COMPOUND, DISCONNECTED, EDGE_LABELS, INSIDE_SELF_LOOPS, MULTI_EDGES, PORTS_1, SELF_LOOPS_0; +var Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit = createForEnum('org.eclipse.elk.graph.properties', 'GraphFeature', 245, Ljava_lang_Enum_2_classLit, values_125, valueOf_117); +function $clinit_GraphFeature$Map(){ + $clinit_GraphFeature$Map = emptyMethod; + $MAP_107 = createValueOfMap(($clinit_GraphFeature() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_37, 245, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]))); +} + +var $MAP_107; +function $compareTo_21(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $equals_10(this$static, obj){ + return instanceOf(obj, 149) && $equals_5(this$static.id_0, castTo(obj, 149).getId()); +} + +function $getDefault(this$static){ + var clone; + if (instanceOf(this$static.defaultValue, 4)) { + clone = clone_11(this$static.defaultValue); + if (clone == null) { + throw toJs(new IllegalStateException_0("Couldn't clone property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return clone; + } + else { + return this$static.defaultValue; + } +} + +function Property(theid){ + this.id_0 = theid; +} + +function Property_0(theid, thedefaultValue){ + Property.call(this, theid); + this.defaultValue = thedefaultValue; +} + +function Property_1(theid, thedefaultValue){ + Property_0.call(this, theid, thedefaultValue); +} + +function Property_2(other, thedefaultValue){ + Property_0.call(this, other.id_0, thedefaultValue); +} + +defineClass(11, 1, {34:1, 149:1}, Property, Property_0, Property_1, Property_2); +_.compareTo_0 = function compareTo_22(other){ + return $compareTo_21(this, castTo(other, 149)); +} +; +_.equals_0 = function equals_212(obj){ + return $equals_10(this, obj); +} +; +_.getDefault = function getDefault_0(){ + return $getDefault(this); +} +; +_.getId = function getId_2(){ + return this.id_0; +} +; +_.hashCode_1 = function hashCode_75(){ + return $hashCode_2(this.id_0); +} +; +_.toString_0 = function toString_135(){ + return this.id_0; +} +; +var Lorg_eclipse_elk_graph_properties_Property_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'Property', 11); +function $compare_29(this$static, ph1, ph2){ + var p1, p2; + p1 = castTo(ph1.getProperty(this$static.property), 34); + p2 = castTo(ph2.getProperty(this$static.property), 34); + return p1 != null && p2 != null?compareTo_Ljava_lang_Object__I__devirtual$(p1, p2):p1 != null?-1:p2 != null?1:0; +} + +function PropertyHolderComparator(property){ + this.property = property; +} + +defineClass(671, 1, $intern_88, PropertyHolderComparator); +_.compare_1 = function compare_114(ph1, ph2){ + return $compare_29(this, castTo(ph1, 96), castTo(ph2, 96)); +} +; +_.equals_0 = function equals_213(other){ + return this === other; +} +; +_.reversed = function reversed_106(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_graph_properties_PropertyHolderComparator_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'PropertyHolderComparator', 671); +function allIncomingEdges(node){ + var incomingEdgeIterables, port, port$iterator; + incomingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); + $add_3(incomingEdgeIterables, (!node.incomingEdges && (node.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 8, 5)) , node.incomingEdges)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + $add_3(incomingEdgeIterables, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); + } + return checkNotNull(incomingEdgeIterables) , new FluentIterable$2(incomingEdgeIterables); +} + +function allOutgoingEdges(node){ + var outgoingEdgeIterables, port, port$iterator; + outgoingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); + $add_3(outgoingEdgeIterables, (!node.outgoingEdges && (node.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 7, 4)) , node.outgoingEdges)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 123); + $add_3(outgoingEdgeIterables, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); + } + return checkNotNull(outgoingEdgeIterables) , new FluentIterable$2(outgoingEdgeIterables); +} + +function connectableShapeToNode(connectableShape){ + if (instanceOf(connectableShape, 207)) { + return castTo(connectableShape, 27); + } + else if (instanceOf(connectableShape, 193)) { + return $getParent_3(castTo(connectableShape, 123)); + } + else if (!connectableShape) { + throw toJs(new NullPointerException_0('connectableShape cannot be null')); + } + else { + throw toJs(new UnsupportedOperationException_0('Only support nodes and ports.')); + } +} + +function connectableShapeToPort(connectableShape){ + if (instanceOf(connectableShape, 193)) { + return castTo(connectableShape, 123); + } + else if (!connectableShape) { + throw toJs(new NullPointerException_0('connectableShape cannot be null')); + } + else { + return null; + } +} + +function createBendPoint(edgeSection, x_0, y_0){ + var bendPoint, elkBendPoint; + bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $setX_1(bendPoint, x_0); + $setY_2(bendPoint, y_0); + !!edgeSection && $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); + return bendPoint; +} + +function createEdge(containingNode){ + var edge, elkEdge; + edge = ($clinit_ElkGraphFactory() , elkEdge = new ElkEdgeImpl , elkEdge); + !!containingNode && $setContainingNode(edge, containingNode); + return edge; +} + +function createEdgeSection(edge){ + var elkEdgeSection, section; + section = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + !!edge && $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), section); + return section; +} + +function createLabel(text_0, parent_0){ + var label_0, label_1, elkLabel; + label_0 = (label_1 = ($clinit_ElkGraphFactory() , elkLabel = new ElkLabelImpl , elkLabel) , !!parent_0 && $setParent_1(label_1, parent_0) , label_1); + $setText(label_0, text_0); + return label_0; +} + +function findBestEdgeContainment(edge){ + var commonAncestor, incidentNode, incidentShapes, sourceNode, targetNode; + requireNonNull_0(edge, 'edge cannot be null'); + switch ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 + (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0) { + case 0: + throw toJs(new IllegalArgumentException_0('The edge must have at least one source or target.')); + case 1: + return (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0?$getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84))):$getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84))); + } + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 1) { + sourceNode = connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 84)); + targetNode = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 84)); + if ($getParent_2(sourceNode) == $getParent_2(targetNode)) { + return $getParent_2(sourceNode); + } + else if (sourceNode == $getParent_2(targetNode)) { + return sourceNode; + } + else if (targetNode == $getParent_2(sourceNode)) { + return targetNode; + } + } + incidentShapes = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)]))); + commonAncestor = connectableShapeToNode(castTo($next_0(incidentShapes), 84)); + while ($hasNext_1(incidentShapes)) { + incidentNode = connectableShapeToNode(castTo($next_0(incidentShapes), 84)); + if (incidentNode != commonAncestor && !isDescendant_0(incidentNode, commonAncestor)) { + if ($getParent_2(incidentNode) == $getParent_2(commonAncestor)) { + commonAncestor = $getParent_2(incidentNode); + } + else { + commonAncestor = findLowestCommonAncestor(commonAncestor, incidentNode); + if (!commonAncestor) { + return null; + } + } + } + } + return commonAncestor; +} + +function findLowestCommonAncestor(node1, node2){ + var ancestor1, ancestor2, ancestors1, ancestors2, commonAncestor, iterator1, iterator2; + ancestors1 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node1)); + iterator1 = new AbstractList$ListIteratorImpl(ancestors1, ancestors1.array.length); + ancestors2 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node2)); + iterator2 = new AbstractList$ListIteratorImpl(ancestors2, ancestors2.array.length); + commonAncestor = null; + while (iterator1.i > 0 && iterator2.i > 0) { + ancestor1 = (checkCriticalElement(iterator1.i > 0) , castTo(iterator1.this$01.get_0(iterator1.last = --iterator1.i), 27)); + ancestor2 = (checkCriticalElement(iterator2.i > 0) , castTo(iterator2.this$01.get_0(iterator2.last = --iterator2.i), 27)); + if (ancestor1 == ancestor2) { + commonAncestor = ancestor1; + } + else { + break; + } + } + return commonAncestor; +} + +function firstEdgeSection(edge, resetSection, removeOtherSections){ + var section, sections; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + return createEdgeSection(edge); + } + else { + section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 166); + if (resetSection) { + $clear_13((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); + $setStartX(section, 0); + $setStartY(section, 0); + $setEndX(section, 0); + $setEndY(section, 0); + } + if (removeOtherSections) { + sections = (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections); + while (sections.size_0 > 1) { + $remove_35(sections, sections.size_0 - 1); + } + } + return section; + } +} + +function getSourceNode(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToNode(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 84)); +} + +function getSourcePort(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToPort(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 84)); +} + +function getTargetNode_0(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToNode(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 84)); +} + +function getTargetPort(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToPort(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 84)); +} + +function isDescendant_0(child, ancestor){ + var current; + current = child; + while ($getParent_2(current)) { + current = $getParent_2(current); + if (current == ancestor) { + return true; + } + } + return false; +} + +function updateContainment(edge){ + requireNonNull_0(edge, 'edge cannot be null'); + $setContainingNode(edge, findBestEdgeContainment(edge)); +} + +function $next_12(this$static){ + var next; + if (!this$static.nextNode) { + throw toJs(new NoSuchElementException_0); + } + next = this$static.nextNode; + this$static.nextNode = $getParent_2(this$static.nextNode); + return next; +} + +function ElkGraphUtil$AncestorIterator(startNode){ + this.nextNode = startNode; +} + +defineClass(709, 1, $intern_6, ElkGraphUtil$AncestorIterator); +_.forEachRemaining = function forEachRemaining_52(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_42(){ + return $next_12(this); +} +; +_.remove = function remove_98(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_41(){ + return !!this.nextNode; +} +; +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$AncestorIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/AncestorIterator', 709); +var Lorg_eclipse_emf_common_util_EList_2_classLit = createForInterface('org.eclipse.emf.common.util', 'EList'); +function $add_20(this$static, index_0, object){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + if (this$static.isUnique() && this$static.contains(object)) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + this$static.addUnique(index_0, object); +} + +function $add_21(this$static, object){ + if (this$static.isUnique() && this$static.contains(object)) { + return false; + } + else { + this$static.addUnique_0(object); + return true; + } +} + +function $addAll_8(this$static, index_0, collection){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); + return this$static.addAllUnique(index_0, collection); +} + +function $addAll_9(this$static, collection){ + this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); + return this$static.addAllUnique_0(collection); +} + +function $basicListIterator(this$static, index_0){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new AbstractEList$NonResolvingEListIterator_0(this$static, index_0); +} + +function $didClear(this$static, size_0, oldObjects){ + var i, object; + if (oldObjects != null) { + for (i = 0; i < size_0; ++i) { + object = oldObjects[i]; + this$static.didRemove(i, object); + } + } +} + +function $equals_11(this$static, object){ + var i, list, o1, o2, objects, size_0; + if (maskUndefined(object) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(object, 15)) { + return false; + } + list = castTo(object, 15); + size_0 = this$static.size_1(); + if (list.size_1() != size_0) { + return false; + } + objects = list.iterator_0(); + if (this$static.useEquals()) { + for (i = 0; i < size_0; ++i) { + o1 = this$static.primitiveGet(i); + o2 = objects.next_1(); + if (o1 == null?o2 != null:!equals_Ljava_lang_Object__Z__devirtual$(o1, o2)) { + return false; + } + } + } + else { + for (i = 0; i < size_0; ++i) { + o1 = this$static.primitiveGet(i); + o2 = objects.next_1(); + if (maskUndefined(o1) !== maskUndefined(o2)) { + return false; + } + } + } + return true; +} + +function $getDuplicates(this$static, collection){ + var filteredResult, object, object$iterator; + if (collection.isEmpty()) { + return $clinit_ECollections() , $clinit_ECollections() , EMPTY_ELIST; + } + else { + filteredResult = new AbstractEList$1(this$static, collection.size_1()); + for (object$iterator = new AbstractEList$EIterator(this$static); object$iterator.cursor != object$iterator.this$01_2.size_1();) { + object = $doNext(object$iterator); + collection.contains(object) && $add_21(filteredResult, object); + } + return filteredResult; + } +} + +function $getNonDuplicates(this$static, collection){ + var result; + result = new LinkedHashSet_1(collection); + $removeAll_1(result, this$static); + return new ArrayList_1(result); +} + +function $hashCode_4(this$static){ + var hashCode, i, object, size_0; + hashCode = 1; + for (i = 0 , size_0 = this$static.size_1(); i < size_0; ++i) { + object = this$static.primitiveGet(i); + hashCode = 31 * hashCode + (object == null?0:hashCode__I__devirtual$(object)); + } + return hashCode; +} + +function $remove_32(this$static, object){ + var index_0; + index_0 = this$static.indexOf_0(object); + if (index_0 >= 0) { + this$static.remove_2(index_0); + return true; + } + else { + return false; + } +} + +function $set_10(this$static, index_0, object){ + var currentIndex, size_0; + size_0 = this$static.size_1(); + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + if (this$static.isUnique()) { + currentIndex = this$static.indexOf_0(object); + if (currentIndex >= 0 && currentIndex != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + return this$static.setUnique(index_0, object); +} + +function $toString_25(this$static){ + var i, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = 0 , size_0 = this$static.size_1(); i < size_0;) { + $append_3(stringBuffer, valueOf_6(this$static.primitiveGet(i))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} + +function $validate(this$static, object){ + if (!this$static.canContainNull() && object == null) { + throw toJs(new IllegalArgumentException_0("The 'no null' constraint is violated")); + } + return object; +} + +defineClass(70, 56, {20:1, 31:1, 56:1, 16:1, 15:1, 70:1, 61:1}); +_.add_3 = function add_46(index_0, object){ + $add_20(this, index_0, object); +} +; +_.add_2 = function add_47(object){ + return $add_21(this, object); +} +; +_.addAll_0 = function addAll_24(index_0, collection){ + return $addAll_8(this, index_0, collection); +} +; +_.addAll = function addAll_25(collection){ + return $addAll_9(this, collection); +} +; +_.basicIterator = function basicIterator(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_0(index_0){ + return $basicListIterator(this, index_0); +} +; +_.canContainNull = function canContainNull(){ + return true; +} +; +_.didAdd = function didAdd(index_0, newObject){ +} +; +_.didChange = function didChange(){ +} +; +_.didClear = function didClear(size_0, oldObjects){ + $didClear(this, size_0, oldObjects); +} +; +_.didMove = function didMove(index_0, movedObject, oldIndex){ +} +; +_.didRemove = function didRemove(index_0, oldObject){ +} +; +_.didSet = function didSet(index_0, newObject, oldObject){ +} +; +_.equals_0 = function equals_214(object){ + return $equals_11(this, object); +} +; +_.hashCode_1 = function hashCode_76(){ + return $hashCode_4(this); +} +; +_.isUnique = function isUnique_0(){ + return false; +} +; +_.iterator_0 = function iterator_79(){ + return new AbstractEList$EIterator(this); +} +; +_.listIterator_0 = function listIterator_17(){ + return new AbstractEList$EListIterator(this); +} +; +_.listIterator_1 = function listIterator_18(index_0){ + var size_0; + size_0 = this.size_1(); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new AbstractEList$EListIterator_0(this, index_0); +} +; +_.move_0 = function move_0(index_0, object){ + this.move(index_0, this.indexOf_0(object)); +} +; +_.remove_1 = function remove_99(object){ + return $remove_32(this, object); +} +; +_.resolve = function resolve_0(index_0, object){ + return object; +} +; +_.set_2 = function set_21(index_0, object){ + return $set_10(this, index_0, object); +} +; +_.toString_0 = function toString_136(){ + return $toString_25(this); +} +; +_.useEquals = function useEquals(){ + return true; +} +; +_.validate = function validate(index_0, object){ + return $validate(this, object); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList', 70); +function $addAllUnique(this$static, index_0, collection){ + var growth, i, object, objects, shifted; + growth = collection.size_1(); + this$static.grow(this$static.size_0 + growth); + shifted = this$static.size_0 - index_0; + shifted > 0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + growth, shifted); + objects = collection.iterator_0(); + this$static.size_0 += growth; + for (i = 0; i < growth; ++i) { + object = objects.next_1(); + $assign(this$static, index_0, this$static.validate(index_0, object)); + this$static.didAdd(index_0, object); + this$static.didChange(); + ++index_0; + } + return growth != 0; +} + +function $addAllUnique_0(this$static, collection){ + var growth, i, object, objects, oldSize; + growth = collection.size_1(); + this$static.grow(this$static.size_0 + growth); + objects = collection.iterator_0(); + oldSize = this$static.size_0; + this$static.size_0 += growth; + for (i = oldSize; i < this$static.size_0; ++i) { + object = objects.next_1(); + $assign(this$static, i, this$static.validate(i, object)); + this$static.didAdd(i, object); + this$static.didChange(); + } + return growth != 0; +} + +function $addUnique(this$static, index_0, object){ + var validatedObject; + this$static.grow(this$static.size_0 + 1); + validatedObject = this$static.validate(index_0, object); + index_0 != this$static.size_0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + 1, this$static.size_0 - index_0); + setCheck(this$static.data_0, index_0, validatedObject); + ++this$static.size_0; + this$static.didAdd(index_0, object); + this$static.didChange(); +} + +function $addUnique_0(this$static, object){ + this$static.grow(this$static.size_0 + 1); + $assign(this$static, this$static.size_0, this$static.validate(this$static.size_0, object)); + this$static.didAdd(this$static.size_0++, object); + this$static.didChange(); +} + +function $assign(this$static, index_0, object){ + setCheck(this$static.data_0, index_0, object); + return object; +} + +function $basicGet(this$static, index_0){ + if (this$static.data_0 == null || index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + return this$static.data_0[index_0]; +} + +function $clear_11(this$static){ + var oldData, oldSize; + ++this$static.modCount; + oldData = this$static.data_0; + oldSize = this$static.size_0; + this$static.data_0 = null; + this$static.size_0 = 0; + this$static.didClear(oldSize, oldData); + this$static.didChange(); +} + +function $contains_10(this$static, object){ + var i; + if (this$static.useEquals() && object != null) { + for (i = 0; i < this$static.size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { + return true; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { + return true; + } + } + } + return false; +} + +function $get_20(this$static, index_0){ + if (this$static.data_0 == null || index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + return this$static.resolve(index_0, this$static.data_0[index_0]); +} + +function $indexOf_4(this$static, object){ + var i; + if (this$static.useEquals() && object != null) { + for (i = 0; i < this$static.size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { + return i; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} + +function $move(this$static, targetIndex, sourceIndex){ + var object; + ++this$static.modCount; + if (targetIndex >= this$static.size_0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + this$static.size_0)); + if (sourceIndex >= this$static.size_0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + this$static.size_0)); + object = this$static.data_0[sourceIndex]; + if (targetIndex != sourceIndex) { + targetIndex < sourceIndex?arraycopy(this$static.data_0, targetIndex, this$static.data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(this$static.data_0, sourceIndex + 1, this$static.data_0, sourceIndex, targetIndex - sourceIndex); + setCheck(this$static.data_0, targetIndex, object); + this$static.didMove(targetIndex, object, sourceIndex); + this$static.didChange(); + } + return object; +} + +function $remove_33(this$static, index_0){ + var oldObject, shifted; + if (index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + ++this$static.modCount; + oldObject = this$static.data_0[index_0]; + shifted = this$static.size_0 - index_0 - 1; + shifted > 0 && arraycopy(this$static.data_0, index_0 + 1, this$static.data_0, index_0, shifted); + setCheck(this$static.data_0, --this$static.size_0, null); + this$static.didRemove(index_0, oldObject); + this$static.didChange(); + return oldObject; +} + +function $setUnique(this$static, index_0, object){ + var oldObject; + oldObject = this$static.data_0[index_0]; + $assign(this$static, index_0, this$static.validate(index_0, object)); + this$static.didSet(index_0, object, oldObject); + this$static.didChange(); + return oldObject; +} + +function $shrink_0(this$static){ + var oldData; + ++this$static.modCount; + if (this$static.size_0 == 0) { + this$static.data_0 = null; + } + else if (this$static.size_0 < this$static.data_0.length) { + oldData = this$static.data_0; + this$static.data_0 = this$static.newData(this$static.size_0); + arraycopy(oldData, 0, this$static.data_0, 0, this$static.size_0); + } +} + +function $toArray_8(this$static){ + var result; + result = this$static.newData(this$static.size_0); + this$static.size_0 > 0 && arraycopy(this$static.data_0, 0, result, 0, this$static.size_0); + return result; +} + +function $toArray_9(this$static, array){ + var newArray; + if (this$static.size_0 > 0) { + if (array.length < this$static.size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, this$static.size_0); + array = newArray; + } + arraycopy(this$static.data_0, 0, array, 0, this$static.size_0); + } + array.length > this$static.size_0 && setCheck(array, this$static.size_0, null); + return array; +} + +function BasicEList(){ +} + +function BasicEList_0(initialCapacity){ + if (initialCapacity < 0) { + throw toJs(new IllegalArgumentException_0('Illegal Capacity: ' + initialCapacity)); + } + this.data_0 = this.newData(initialCapacity); +} + +function BasicEList_1(collection){ + this.size_0 = collection.size_1(); + if (this.size_0 > 0) { + this.data_0 = this.newData(this.size_0 + (this.size_0 / 8 | 0) + 1); + collection.toArray_0(this.data_0); + } +} + +defineClass(66, 70, $intern_141, BasicEList, BasicEList_0, BasicEList_1); +_.addAllUnique = function addAllUnique(index_0, collection){ + return $addAllUnique(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_0(collection){ + return $addAllUnique_0(this, collection); +} +; +_.addUnique = function addUnique(index_0, object){ + $addUnique(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_0(object){ + $addUnique_0(this, object); +} +; +_.basicGet = function basicGet(index_0){ + return $basicGet(this, index_0); +} +; +_.clear_0 = function clear_52(){ + $clear_11(this); +} +; +_.contains = function contains_52(object){ + return $contains_10(this, object); +} +; +_.get_0 = function get_52(index_0){ + return $get_20(this, index_0); +} +; +_.grow = function grow(minimumCapacity){ + var newCapacity, oldCapacity, oldData; + ++this.modCount; + oldCapacity = this.data_0 == null?0:this.data_0.length; + if (minimumCapacity > oldCapacity) { + oldData = this.data_0; + newCapacity = oldCapacity + (oldCapacity / 2 | 0) + 4; + newCapacity < minimumCapacity && (newCapacity = minimumCapacity); + this.data_0 = this.newData(newCapacity); + oldData != null && arraycopy(oldData, 0, this.data_0, 0, this.size_0); + } +} +; +_.indexOf_0 = function indexOf_8(object){ + return $indexOf_4(this, object); +} +; +_.isEmpty = function isEmpty_26(){ + return this.size_0 == 0; +} +; +_.move = function move_1(targetIndex, sourceIndex){ + return $move(this, targetIndex, sourceIndex); +} +; +_.newData = function newData_0(capacity){ + return initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, capacity, 5, 1); +} +; +_.primitiveGet = function primitiveGet(index_0){ + return this.data_0[index_0]; +} +; +_.remove_2 = function remove_100(index_0){ + return $remove_33(this, index_0); +} +; +_.setUnique = function setUnique(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.size_1 = function size_66(){ + return this.size_0; +} +; +_.toArray = function toArray_26(){ + return $toArray_8(this); +} +; +_.toArray_0 = function toArray_27(array){ + return $toArray_9(this, array); +} +; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList', 66); +var Lorg_eclipse_emf_common_util_TreeIterator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'TreeIterator'); +function $hasAnyChildren(this$static){ + var nextPruneIterator; + nextPruneIterator = this$static.nextPruneIterator; + nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, nextPruneIterator); + return nextPruneIterator.hasNext_0(); +} + +function $next_13(this$static){ + var currentIterator, iterator, nextIterator, result, result0; + if (this$static.data_0 == null) { + this$static.nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, this$static.nextPruneIterator); + if (this$static.includeRoot) { + result0 = this$static.object; + return result0; + } + } + currentIterator = castTo(this$static.data_0[this$static.size_0 - 1], 51); + result = currentIterator.next_1(); + this$static.nextRemoveIterator = currentIterator; + iterator = this$static.getChildren(result); + if (iterator.hasNext_0()) { + this$static.nextPruneIterator = iterator; + $add_21(this$static, iterator); + } + else { + this$static.nextPruneIterator = null; + while (!currentIterator.hasNext_0()) { + setCheck(this$static.data_0, --this$static.size_0, null); + if (this$static.size_0 == 0) { + break; + } + nextIterator = castTo(this$static.data_0[this$static.size_0 - 1], 51); + currentIterator = nextIterator; + } + } + return result; +} + +function AbstractTreeIterator(object, includeRoot){ + this.object = object; + this.includeRoot = includeRoot; +} + +defineClass(708, 66, $intern_142); +_.forEachRemaining = function forEachRemaining_53(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_42(){ + return this.data_0 == null && !this.includeRoot?$hasAnyChildren(this):this.data_0 == null || this.size_0 != 0 && castTo(this.data_0[this.size_0 - 1], 51).hasNext_0(); +} +; +_.next_1 = function next_43(){ + return $next_13(this); +} +; +_.remove = function remove_101(){ + if (!this.nextRemoveIterator) { + throw toJs(new IllegalStateException_0('There is no valid object to remove.')); + } + this.nextRemoveIterator.remove(); +} +; +_.includeRoot = false; +var Lorg_eclipse_emf_common_util_AbstractTreeIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractTreeIterator', 708); +function ElkGraphUtil$PropertiesSkippingTreeIterator(object){ + AbstractTreeIterator.call(this, object, true); +} + +defineClass(700, 708, $intern_142, ElkGraphUtil$PropertiesSkippingTreeIterator); +_.getChildren = function getChildren(object){ + var iterator; + iterator = castTo(object, 58).eContents_0().iterator_0(); + instanceOf(iterator, 287) && castTo(iterator, 287).filter_0(new ElkGraphUtil$PropertiesSkippingTreeIterator$1); + return iterator; +} +; +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator', 700); +function ElkGraphUtil$PropertiesSkippingTreeIterator$1(){ +} + +defineClass(965, 1, {}, ElkGraphUtil$PropertiesSkippingTreeIterator$1); +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator$1_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator/1', 965); +function $clinit_ElkReflect(){ + $clinit_ElkReflect = emptyMethod; + REGISTRY_NEW = new HashMap; + REGISTRY_CLONE = new HashMap; + registerClone(Ljava_util_EnumSet_2_classLit, new ElkReflect$lambda$0$Type); +} + +function clone_11(clonee){ + $clinit_ElkReflect(); + if (instanceOf(clonee, 162)) { + return castTo($get_10(REGISTRY_CLONE, Ljava_util_EnumSet_2_classLit), 295).clone(clonee); + } + if ($containsKey_3(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee))) { + return castTo($get_10(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee)), 295).clone(clonee); + } + return null; +} + +function newInstance_10(clazz){ + $clinit_ElkReflect(); + return $containsKey_3(REGISTRY_NEW, clazz)?castTo($get_10(REGISTRY_NEW, clazz), 341).newInstance():null; +} + +function register(clazz, newFun, cloneFun){ + $clinit_ElkReflect(); + !!clazz && $put_6(REGISTRY_NEW, clazz, newFun); + !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); +} + +function registerClone(clazz, cloneFun){ + !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); +} + +var REGISTRY_CLONE, REGISTRY_NEW; +var Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect', null); +function ElkReflect$lambda$0$Type(){ +} + +defineClass(901, 1, $intern_133, ElkReflect$lambda$0$Type); +_.clone = function clone_12(o){ + return $clinit_ElkReflect() , $clone(castTo(o, 181)); +} +; +var Lorg_eclipse_elk_graph_util_ElkReflect$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect/lambda$0$Type', 901); +function $clinit_ElkJs(){ + $clinit_ElkJs = emptyMethod; + SERVICE = getInstance(); +} + +function collectLogs(currentPM, logObject, recordLogs, recordExecutionTime){ + var child, child$iterator, children, i, jsonChild, jsonExecTime, jsonLogs, jsonString, jsonTaskName, s, s$iterator; + jsonTaskName = new JSONString(currentPM.getTaskName()); + $put_5(logObject, 'name', jsonTaskName); + if (recordLogs && !currentPM.getLogs().list.isEmpty()) { + jsonLogs = new JSONArray; + $put_5(logObject, 'logs', jsonLogs); + i = 0; + for (s$iterator = new Collections$UnmodifiableCollectionIterator(currentPM.getLogs().coll.iterator_0()); s$iterator.it.hasNext_0();) { + s = castToString(s$iterator.it.next_1()); + jsonString = new JSONString(s); + $get_8(jsonLogs, i); + $set0(jsonLogs, i, jsonString); + ++i; + } + } + if (recordExecutionTime) { + jsonExecTime = new JSONNumber(currentPM.getExecutionTime()); + $put_5(logObject, 'executionTime', jsonExecTime); + } + if (!currentPM.getSubMonitors().list.isEmpty()) { + children = new JSONArray; + $put_5(logObject, 'children', children); + i = 0; + for (child$iterator = new Collections$UnmodifiableCollectionIterator(currentPM.getSubMonitors().coll.iterator_0()); child$iterator.it.hasNext_0();) { + child = castTo(child$iterator.it.next_1(), 871); + jsonChild = new JSONObject; + $get_8(children, i); + $set0(children, i, jsonChild); + collectLogs(child, jsonChild, recordLogs, recordExecutionTime); + ++i; + } + } +} + +function exportLayout(){ + $clinit_ElkJs(); + function Dispatcher(worker){ + var _this = this; + this.dispatch = function(event_0){ + var data_0 = event_0.data; + switch (data_0.cmd) { + case 'algorithms': + var algs = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutAlgorithmMap)))); + worker.postMessage({id:data_0.id, data:algs}); + break; + case 'categories': + var cats = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutCategoryMap)))); + worker.postMessage({id:data_0.id, data:cats}); + break; + case 'options': + var opts = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutOptionMap)))); + worker.postMessage({id:data_0.id, data:opts}); + break; + case 'register': + registerLayoutAlgorithms(data_0.algorithms); + worker.postMessage({id:data_0.id}); + break; + case 'layout': + layout_11(data_0.graph, data_0.layoutOptions || {}, data_0.options || {}); + worker.postMessage({id:data_0.id, data:data_0.graph}); + break; + } + } + ; + this.saveDispatch = function(event_0){ + try { + _this.dispatch(event_0); + } + catch (err) { + worker.postMessage({id:event_0.data.id, error:err}); + } + } + ; + } + + function FakeWorker(url_0){ + var _this = this; + this.dispatcher = new Dispatcher({postMessage:function(msg){ + _this.onmessage({data:msg}); + } + }); + this.postMessage = function(msg){ + setTimeout(function(){ + _this.dispatcher.saveDispatch({data:msg}); + } + , 0); + } + ; + } + + if (typeof document === 'undefined' && typeof self !== 'undefined') { + var dispatcher = new Dispatcher(self); + self.onmessage = dispatcher.saveDispatch; + } + else if (typeof module !== 'undefined' && module.exports) { + Object.defineProperty(exports, '__esModule', {value:true}); + module.exports = {'default':FakeWorker, Worker:FakeWorker}; + } +} + +function getLayoutData(data_0){ + var arr, json, ld, ld$iterator; + arr = new JSONArray; + for (ld$iterator = new Collections$UnmodifiableCollectionIterator(data_0.coll.iterator_0()); ld$iterator.it.hasNext_0();) { + ld = castTo(ld$iterator.it.next_1(), 701); + json = toJson(ld); + $set_0(arr, arr.jsArray.length, json); + } + return arr.jsArray; +} + +function layout_11(graphObj, layoutOptionsObj, optionsObj){ + var _function, elkGraph, graph, importer, lc, logs, options, pm, recordExecutionTime, recordLogs, root; + graph = new JSONObject_0(graphObj); + importer = new JsonImporter; + elkGraph = ($clear_2(importer.nodeIdMap) , $clear_2(importer.portIdMap) , $reset(importer.edgeIdMap) , $clear_2(importer.edgeSectionIdMap) , $clear_2(importer.nodeJsonMap) , $reset(importer.portJsonMap) , $reset(importer.edgeJsonMap) , $reset(importer.edgeSectionJsonMap) , root = $transformNode_0(importer, graph, null) , $transformEdges_2(importer, graph) , root); + if (layoutOptionsObj) { + options = new JSONObject_0(layoutOptionsObj); + lc = optsToCfg(options); + applyVisitors(elkGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 536, 0, [lc])); + } + recordLogs = false; + recordExecutionTime = false; + if (optionsObj) { + options = new JSONObject_0(optionsObj); + 'logging' in options.jsObject && (recordLogs = $get_9(options, 'logging').isBoolean().value_0); + 'measureExecutionTime' in options.jsObject && (recordExecutionTime = $get_9(options, 'measureExecutionTime').isBoolean().value_0); + } + pm = $withExecutionTimeMeasurement($withLogging(new BasicProgressMonitor, recordLogs), recordExecutionTime); + $layout_3(new RecursiveGraphLayoutEngine, elkGraph, pm); + 'logging' in graph.jsObject && $put_5(graph, 'logging', null); + if (recordLogs || recordExecutionTime) { + logs = new JSONObject; + collectLogs(pm, logs, recordLogs, recordExecutionTime); + $put_5(graph, 'logging', logs); + } + _function = new JsonImporter$lambda$35$Type(importer); + forEach_43(new ElkGraphUtil$PropertiesSkippingTreeIterator(elkGraph), _function); +} + +function optsToCfg(opts){ + var jsonVal, key, key$iterator, keys_0, lc, option, serialized, value_0; + lc = new LayoutConfigurator; + $addFilter(lc, ($clinit_LayoutConfigurator() , NO_OVERWRITE)); + for (key$iterator = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new AbstractList$IteratorImpl(new Arrays$ArrayList((new JSONObject$1(opts, keys_0)).val$keys2))); key$iterator.i < key$iterator.this$01_0.size_1();) { + key = (checkCriticalElement(key$iterator.i < key$iterator.this$01_0.size_1()) , castToString(key$iterator.this$01_0.get_0(key$iterator.last = key$iterator.i++))); + option = $getOptionDataBySuffix(SERVICE, key); + if (option) { + jsonVal = $get_9(opts, key); + jsonVal.isString()?(serialized = jsonVal.isString().value_0):jsonVal.isBoolean()?(serialized = '' + jsonVal.isBoolean().value_0):jsonVal.isNumber()?(serialized = '' + jsonVal.isNumber().value_0):(serialized = jsonVal.toString_0()); + value_0 = $parseValue(option, serialized); + if (value_0 != null) { + ($containsEnum(option.targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(option.targets, PARENTS)) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkNode_2_classLit), option, value_0); + $containsEnum(option.targets, EDGES) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), option, value_0); + $containsEnum(option.targets, PORTS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkPort_2_classLit), option, value_0); + $containsEnum(option.targets, LABELS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), option, value_0); + } + } + } + return lc; +} + +function registerLayoutAlgorithms(arrayObj){ + var alg, arr, i; + $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new CoreOptions])); + arr = new JSONArray_0(arrayObj); + for (i = 0; i < arr.jsArray.length; ++i) { + alg = $get_8(arr, i).isString().value_0; + $equals_5(alg, 'layered')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new LayeredMetaDataProvider])):$equals_5(alg, 'force')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new ForceMetaDataProvider])):$equals_5(alg, 'stress')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new StressMetaDataProvider])):$equals_5(alg, 'mrtree')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new MrTreeMetaDataProvider])):$equals_5(alg, 'radial')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new RadialMetaDataProvider])):$equals_5(alg, 'disco')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new PolyominoOptions, new DisCoMetaDataProvider])):$equals_5(alg, 'sporeOverlap') || $equals_5(alg, 'sporeCompaction')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new SporeMetaDataProvider])):$equals_5(alg, 'rectpacking') && $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 134, 0, [new RectPackingMetaDataProvider])); + } +} + +var SERVICE; +var Lorg_eclipse_emf_common_util_ResourceLocator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'ResourceLocator'); +function $getString(key){ + return $equals_5('_UI_EMFDiagnostic_marker', key)?'EMF Problem':$equals_5('_UI_CircularContainment_diagnostic', key)?'An object may not circularly contain itself':$equals_5('parser.parse.1', key)?'Wrong character.':$equals_5('parser.parse.2', key)?'Invalid reference number.':$equals_5('parser.next.1', key)?'A character is required after \\.':$equals_5('parser.next.2', key)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":$equals_5('parser.next.3', key)?"'(?<' or '(?= size_0 || targetIndex < 0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); + if (sourceIndex >= size_0 || sourceIndex < 0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); + targetIndex != sourceIndex?(object = (result = this$static.delegateRemove(sourceIndex) , this$static.delegateAdd(targetIndex, result) , result)):(object = this$static.delegateGet(sourceIndex)); + return object; +} + +function $remove_34(this$static, index_0){ + var oldObject; + ++this$static.modCount; + oldObject = this$static.delegateRemove(index_0); + return oldObject; +} + +defineClass(2093, 70, $intern_144); +_.addAllUnique = function addAllUnique_1(index_0, collection){ + return $addAllUnique_1(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_2(collection){ + var i, object, object$iterator; + ++this.modCount; + if (collection.isEmpty()) { + return false; + } + else { + i = this.delegateSize(); + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + this.delegateAdd_0(this.validate(i, object)); + ++i; + } + return true; + } +} +; +_.addUnique = function addUnique_1(index_0, object){ + $addUnique_1(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_2(object){ + $addUnique_2(this, object); +} +; +_.basicList = function basicList(){ + return this.delegateBasicList(); +} +; +_.clear_0 = function clear_53(){ + $doClear(this, this.delegateSize(), this.delegateToArray()); +} +; +_.contains = function contains_53(object){ + return this.delegateContains(object); +} +; +_.containsAll = function containsAll_11(collection){ + return this.delegateContainsAll(collection); +} +; +_.delegateAdd = function delegateAdd(index_0, object){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateAdd_0 = function delegateAdd_0(object){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateBasicList = function delegateBasicList(){ + return this.delegateList_1(); +} +; +_.delegateClear = function delegateClear(){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateContains = function delegateContains(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateContainsAll = function delegateContainsAll(collection){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateEquals = function delegateEquals(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateGet = function delegateGet(index_0){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateHashCode = function delegateHashCode(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateIndexOf = function delegateIndexOf(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateIsEmpty = function delegateIsEmpty(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateRemove = function delegateRemove(index_0){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateSet = function delegateSet(index_0, object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateSize = function delegateSize(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToArray = function delegateToArray(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToArray_0 = function delegateToArray_0(array){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToString = function delegateToString(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.equals_0 = function equals_215(object){ + return this.delegateEquals(object); +} +; +_.get_0 = function get_53(index_0){ + return this.resolve(index_0, this.delegateGet(index_0)); +} +; +_.hashCode_1 = function hashCode_77(){ + return this.delegateHashCode(); +} +; +_.indexOf_0 = function indexOf_9(object){ + return this.delegateIndexOf(object); +} +; +_.isEmpty = function isEmpty_27(){ + return this.delegateIsEmpty(); +} +; +_.move = function move_2(targetIndex, sourceIndex){ + return $move_0(this, targetIndex, sourceIndex); +} +; +_.primitiveGet = function primitiveGet_0(index_0){ + return this.delegateGet(index_0); +} +; +_.remove_2 = function remove_102(index_0){ + return $remove_34(this, index_0); +} +; +_.remove_1 = function remove_103(object){ + var index_0; + index_0 = this.indexOf_0(object); + if (index_0 >= 0) { + this.remove_2(index_0); + return true; + } + else { + return false; + } +} +; +_.setUnique = function setUnique_0(index_0, object){ + return this.delegateSet(index_0, this.validate(index_0, object)); +} +; +_.size_1 = function size_67(){ + return this.delegateSize(); +} +; +_.toArray = function toArray_28(){ + return this.delegateToArray(); +} +; +_.toArray_0 = function toArray_29(array){ + return this.delegateToArray_0(array); +} +; +_.toString_0 = function toString_137(){ + return this.delegateToString(); +} +; +var Lorg_eclipse_emf_common_util_DelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'DelegatingEList', 2093); +function $addAllUnique_2(this$static, index_0, collection){ + var collectionSize, i, lastIndex, notification, notifications, oldIsSet, value_0; + collectionSize = collection.size_1(); + if (collectionSize == 0) { + return false; + } + else { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addAllUnique_1(this$static, index_0, collection); + notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + value_0 = this$static.delegateGet(i); + notifications = this$static.inverseAdd(value_0, notifications); + notifications = notifications; + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addAllUnique_1(this$static, index_0, collection); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + notifications = this$static.inverseAdd(this$static.delegateGet(i), notifications); + } + !!notifications && notifications.dispatch_0(); + } + } + return true; + } +} + +function $addUnique_3(this$static, index_0, object){ + var notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $addUnique_4(this$static, object){ + var index_0, notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique_2(this$static, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $basicAdd(this$static, object, notifications){ + var index_0, notification, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $addUnique_1(this$static, this$static.delegateSize(), object); + } + return notifications; +} + +function $basicRemove(this$static, object, notifications){ + var index_0, notification, oldIsSet, oldObject; + index_0 = this$static.indexOf_0(object); + if (index_0 != -1) { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + oldObject = $remove_34(this$static, index_0); + notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $remove_34(this$static, index_0); + } + } + return notifications; +} + +function $clear_12(this$static){ + var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize, size_0; + if (this$static.isNotificationRequired()) { + size_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + if (size_0 > 0) { + collection = new BasicEList_1(this$static.basicList()); + collectionSize = size_0; + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + $doClear(this$static, collectionSize, collection.data_0); + notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); + if (this$static.hasInverse()) { + for (i = new AbstractEList$EIterator(collection); i.cursor != i.this$01_2.size_1();) { + notifications = this$static.inverseRemove($doNext(i), notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); + } + } + else if (this$static.hasInverse()) { + size_0 = this$static.delegateSize(); + if (size_0 > 0) { + oldData = this$static.delegateToArray(); + oldSize = size_0; + $doClear(this$static, size_0, oldData); + notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); + for (i = 0; i < oldSize; ++i) { + object = oldData[i]; + notifications = this$static.inverseRemove(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + } + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + } +} + +function $setUnique_0(this$static, index_0, object){ + var notification, notifications, oldIsSet, oldObject, oldObject0; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + notification = this$static.createNotification(1, oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject), object, index_0, oldIsSet); + if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { + !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, notifications)); + notifications = this$static.inverseAdd(object, notifications); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject0; + } + else { + oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject); + if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { + notifications = null; + !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, null)); + notifications = this$static.inverseAdd(object, notifications); + !!notifications && notifications.dispatch_0(); + } + return oldObject0; + } +} + +defineClass(2094, 2093, $intern_144); +_.addAllUnique = function addAllUnique_3(index_0, collection){ + return $addAllUnique_2(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_4(collection){ + return this.addAllUnique(this.delegateSize(), collection); +} +; +_.addUnique = function addUnique_3(index_0, object){ + $addUnique_3(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_4(object){ + $addUnique_4(this, object); +} +; +_.canContainNull = function canContainNull_0(){ + return !this.hasInverse(); +} +; +_.clear_0 = function clear_54(){ + $clear_12(this); +} +; +_.createNotification = function createNotification(eventType, oldObject, newObject, index_0, wasSet){ + return new DelegatingNotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification(notification){ + $eNotify(this.getNotifier(), notification); +} +; +_.getFeature = function getFeature(){ + return null; +} +; +_.getFeatureID_0 = function getFeatureID(){ + return -1; +} +; +_.getNotifier = function getNotifier(){ + return null; +} +; +_.hasInverse = function hasInverse(){ + return false; +} +; +_.inverseAdd = function inverseAdd(object, notifications){ + return notifications; +} +; +_.inverseRemove = function inverseRemove(object, notifications){ + return notifications; +} +; +_.isNotificationRequired = function isNotificationRequired(){ + return false; +} +; +_.isSet_0 = function isSet(){ + return !this.delegateIsEmpty(); +} +; +_.move = function move_3(targetIndex, sourceIndex){ + var object, oldIsSet; + if (this.isNotificationRequired()) { + oldIsSet = this.isSet_0(); + object = $move_0(this, targetIndex, sourceIndex); + this.dispatchNotification(this.createNotification(7, valueOf_3(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move_0(this, targetIndex, sourceIndex); + } +} +; +_.remove_2 = function remove_104(index_0){ + var notification, notifications, oldIsSet, oldObject; + if (this.isNotificationRequired()) { + notifications = null; + oldIsSet = this.isSet_0(); + notification = this.createNotification(4, oldObject = $remove_34(this, index_0), null, index_0, oldIsSet); + if (this.hasInverse() && !!oldObject) { + notifications = this.inverseRemove(oldObject, notifications); + if (!notifications) { + this.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $remove_34(this, index_0); + if (this.hasInverse() && !!oldObject) { + notifications = this.inverseRemove(oldObject, null); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} +; +_.setUnique = function setUnique_1(index_0, object){ + return $setUnique_0(this, index_0, object); +} +; +var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl', 2094); +function $add_22(this$static, newNotification){ + if (!newNotification) { + return false; + } + else { + if (this$static.merge_0(newNotification)) { + return false; + } + if (!this$static.next_0) { + if (instanceOf(newNotification, 152)) { + this$static.next_0 = castTo(newNotification, 152); + return true; + } + else { + this$static.next_0 = new NotificationChainImpl; + return this$static.next_0.add_5(newNotification); + } + } + else { + return this$static.next_0.add_5(newNotification); + } + } +} + +function $dispatch(this$static){ + var notifier; + notifier = this$static.getNotifier(); + notifier != null && this$static.eventType != -1 && castTo(notifier, 94).eNotify(this$static); + !!this$static.next_0 && this$static.next_0.dispatch_0(); +} + +function $getNewBooleanValue(this$static){ + if (this$static.primitiveType != 0) + throw toJs(new IllegalStateException); + return neq(this$static.newSimplePrimitiveValue, 0); +} + +function $getNewByteValue(this$static){ + if (this$static.primitiveType != 1) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) << 24 >> 24; +} + +function $getNewCharValue(this$static){ + if (this$static.primitiveType != 2) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) & $intern_47; +} + +function $getNewDoubleValue(this$static){ + if (this$static.primitiveType != 3) + throw toJs(new IllegalStateException); + return this$static.newIEEEPrimitiveValue; +} + +function $getNewFloatValue(this$static){ + if (this$static.primitiveType != 4) + throw toJs(new IllegalStateException); + return this$static.newIEEEPrimitiveValue; +} + +function $getNewIntValue(this$static){ + if (this$static.primitiveType != 5) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue); +} + +function $getNewLongValue(this$static){ + if (this$static.primitiveType != 6) + throw toJs(new IllegalStateException); + return this$static.newSimplePrimitiveValue; +} + +function $getNewShortValue(this$static){ + if (this$static.primitiveType != 7) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) << 16 >> 16; +} + +function $getNewValue(this$static){ + if (this$static.newValue == null) { + switch (this$static.primitiveType) { + case 0: + this$static.newValue = $getNewBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); + break; + case 1: + this$static.newValue = get_32($getNewByteValue(this$static)); + break; + case 2: + this$static.newValue = valueOf_2($getNewCharValue(this$static)); + break; + case 3: + this$static.newValue = $getNewDoubleValue(this$static); + break; + case 4: + this$static.newValue = new Float($getNewFloatValue(this$static)); + break; + case 6: + this$static.newValue = valueOf_4($getNewLongValue(this$static)); + break; + case 5: + this$static.newValue = valueOf_3($getNewIntValue(this$static)); + break; + case 7: + this$static.newValue = valueOf_5($getNewShortValue(this$static)); + } + } + return this$static.newValue; +} + +function $getOldBooleanValue(this$static){ + if (this$static.primitiveType != 0) + throw toJs(new IllegalStateException); + return neq(this$static.oldSimplePrimitiveValue, 0); +} + +function $getOldByteValue(this$static){ + if (this$static.primitiveType != 1) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; +} + +function $getOldCharValue(this$static){ + if (this$static.primitiveType != 2) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) & $intern_47; +} + +function $getOldDoubleValue(this$static){ + if (this$static.primitiveType != 3) + throw toJs(new IllegalStateException); + return this$static.oldIEEEPrimitiveValue; +} + +function $getOldFloatValue(this$static){ + if (this$static.primitiveType != 4) + throw toJs(new IllegalStateException); + return this$static.oldIEEEPrimitiveValue; +} + +function $getOldIntValue(this$static){ + if (this$static.primitiveType != 5) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue); +} + +function $getOldLongValue(this$static){ + if (this$static.primitiveType != 6) + throw toJs(new IllegalStateException); + return this$static.oldSimplePrimitiveValue; +} + +function $getOldShortValue(this$static){ + if (this$static.primitiveType != 7) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; +} + +function $getOldValue(this$static){ + if (this$static.oldValue == null) { + switch (this$static.primitiveType) { + case 0: + this$static.oldValue = $getOldBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); + break; + case 1: + this$static.oldValue = get_32($getOldByteValue(this$static)); + break; + case 2: + this$static.oldValue = valueOf_2($getOldCharValue(this$static)); + break; + case 3: + this$static.oldValue = $getOldDoubleValue(this$static); + break; + case 4: + this$static.oldValue = new Float($getOldFloatValue(this$static)); + break; + case 6: + this$static.oldValue = valueOf_4($getOldLongValue(this$static)); + break; + case 5: + this$static.oldValue = valueOf_3($getOldIntValue(this$static)); + break; + case 7: + this$static.oldValue = valueOf_5($getOldShortValue(this$static)); + } + } + return this$static.oldValue; +} + +function $isTouch(this$static){ + switch (this$static.eventType) { + case 9: + case 8: + { + return true; + } + + case 3: + case 5: + case 4: + case 6: + { + return false; + } + + case 7: + { + return castTo($getOldValue(this$static), 17).value_0 == this$static.position; + } + + case 1: + case 2: + { + if (this$static.position == -2) { + return false; + } + else { + switch (this$static.primitiveType) { + case 0: + case 1: + case 2: + case 6: + case 5: + case 7: + { + return eq(this$static.oldSimplePrimitiveValue, this$static.newSimplePrimitiveValue); + } + + case 3: + case 4: + { + return this$static.oldIEEEPrimitiveValue == this$static.newIEEEPrimitiveValue; + } + + default:{ + return this$static.oldValue == null?this$static.newValue == null:equals_Ljava_lang_Object__Z__devirtual$(this$static.oldValue, this$static.newValue); + } + + } + } + } + + default:{ + return false; + } + + } +} + +function $wasSet(this$static){ + var defaultValue; + switch (this$static.eventType) { + case 1: + { + if (this$static.isFeatureUnsettable()) { + return this$static.position != -2; + } + break; + } + + case 2: + { + if (this$static.isFeatureUnsettable()) { + return this$static.position == -2; + } + break; + } + + case 3: + case 5: + case 4: + case 6: + case 7: + { + return this$static.position > -2; + } + + default:{ + return false; + } + + } + defaultValue = this$static.getFeatureDefaultValue(); + switch (this$static.primitiveType) { + case 0: + return defaultValue != null && $booleanValue(castToBoolean(defaultValue)) != neq(this$static.oldSimplePrimitiveValue, 0); + case 1: + return defaultValue != null && castTo(defaultValue, 222).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; + case 2: + return defaultValue != null && castTo(defaultValue, 180).value_0 != (toInt_0(this$static.oldSimplePrimitiveValue) & $intern_47); + case 6: + return defaultValue != null && neq(castTo(defaultValue, 168).value_0, this$static.oldSimplePrimitiveValue); + case 5: + return defaultValue != null && castTo(defaultValue, 17).value_0 != toInt_0(this$static.oldSimplePrimitiveValue); + case 7: + return defaultValue != null && castTo(defaultValue, 191).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; + case 3: + return defaultValue != null && $doubleValue(castToDouble(defaultValue)) != this$static.oldIEEEPrimitiveValue; + case 4: + return defaultValue != null && castTo(defaultValue, 161).value_0 != this$static.oldIEEEPrimitiveValue; + default:return defaultValue == null?this$static.oldValue != null:!equals_Ljava_lang_Object__Z__devirtual$(defaultValue, this$static.oldValue); + } +} + +function NotificationImpl(eventType, oldDoubleValue, newDoubleValue){ + this.eventType = eventType; + this.oldIEEEPrimitiveValue = oldDoubleValue; + this.newIEEEPrimitiveValue = newDoubleValue; + this.position = -1; + this.primitiveType = 3; +} + +function NotificationImpl_0(eventType, oldIntValue, newIntValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldIntValue; + this.newSimplePrimitiveValue = newIntValue; + this.position = -1; + this.primitiveType = 5; +} + +function NotificationImpl_1(eventType, oldValue, newValue, position){ + this.eventType = eventType; + this.oldValue = oldValue; + this.newValue = newValue; + this.position = position; + this.primitiveType = -1; +} + +function NotificationImpl_2(eventType, oldValue, newValue, position, wasSet){ + this.eventType = eventType; + this.oldValue = oldValue; + this.newValue = newValue; + this.position = position; + this.primitiveType = -1; + wasSet || (this.position = -2 - position - 1); +} + +function NotificationImpl_3(eventType, oldBooleanValue, newBooleanValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldBooleanValue?1:0; + this.newSimplePrimitiveValue = newBooleanValue?1:0; + this.position = -1; + this.primitiveType = 0; +} + +defineClass(152, 1, $intern_145); +_.add_5 = function add_48(newNotification){ + return $add_22(this, newNotification); +} +; +_.dispatch_0 = function dispatch(){ + $dispatch(this); +} +; +_.getEventType = function getEventType(){ + return this.eventType; +} +; +_.getFeature = function getFeature_0(){ + return null; +} +; +_.getFeatureDefaultValue = function getFeatureDefaultValue(){ + return null; +} +; +_.getFeatureID = function getFeatureID_0(expectedClass){ + return -1; +} +; +_.getNewValue = function getNewValue(){ + return $getNewValue(this); +} +; +_.getNotifier = function getNotifier_0(){ + return null; +} +; +_.getOldValue = function getOldValue(){ + return $getOldValue(this); +} +; +_.getPosition_0 = function getPosition_2(){ + return this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; +} +; +_.isFeatureUnsettable = function isFeatureUnsettable(){ + return false; +} +; +_.merge_0 = function merge_3(notification){ + var index_0, list, newPositions, notificationEventType, notificationNotifier, notificationPosition, oldPosition, originalPosition, originalWasSet, positions, removedValues; + switch (this.eventType) { + case 1: + case 2: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 1: + case 2: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + this.newValue = notification.getNewValue(); + notification.getEventType() == 1 && (this.eventType = 1); + return true; + } + } + + } + } + + case 4: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + originalWasSet = $wasSet(this); + originalPosition = this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; + notificationPosition = notification.getPosition_0(); + this.eventType = 6; + removedValues = new BasicEList_0(2); + if (originalPosition <= notificationPosition) { + $add_21(removedValues, this.oldValue); + $add_21(removedValues, notification.getOldValue()); + this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [this.position = originalPosition, notificationPosition + 1]); + } + else { + $add_21(removedValues, notification.getOldValue()); + $add_21(removedValues, this.oldValue); + this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [this.position = notificationPosition, originalPosition]); + } + this.oldValue = removedValues; + originalWasSet || (this.position = -2 - this.position - 1); + return true; + } + break; + } + + } + break; + } + + case 6: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + originalWasSet = $wasSet(this); + notificationPosition = notification.getPosition_0(); + positions = castTo(this.newValue, 53); + newPositions = initUnidimensionalArray(I_classLit, $intern_49, 28, positions.length + 1, 15, 1); + index_0 = 0; + while (index_0 < positions.length) { + oldPosition = positions[index_0]; + if (oldPosition <= notificationPosition) { + newPositions[index_0++] = oldPosition; + ++notificationPosition; + } + else { + break; + } + } + list = castTo(this.oldValue, 15); + list.add_3(index_0, notification.getOldValue()); + newPositions[index_0] = notificationPosition; + while (++index_0 < newPositions.length) { + newPositions[index_0] = positions[index_0 - 1]; + } + this.newValue = newPositions; + originalWasSet || (this.position = -2 - newPositions[0]); + return true; + } + break; + } + + } + break; + } + + } + return false; +} +; +_.toString_0 = function toString_138(){ + var i, number, positions, result; + result = new StringBuffer_1($getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16))); + result.string += ' (eventType: '; + switch (this.eventType) { + case 1: + { + result.string += 'SET'; + break; + } + + case 2: + { + result.string += 'UNSET'; + break; + } + + case 3: + { + result.string += 'ADD'; + break; + } + + case 5: + { + result.string += 'ADD_MANY'; + break; + } + + case 4: + { + result.string += 'REMOVE'; + break; + } + + case 6: + { + result.string += 'REMOVE_MANY'; + break; + } + + case 7: + { + result.string += 'MOVE'; + break; + } + + case 8: + { + result.string += 'REMOVING_ADAPTER'; + break; + } + + case 9: + { + result.string += 'RESOLVE'; + break; + } + + default:{ + $append_1(result, this.eventType); + break; + } + + } + $isTouch(this) && (result.string += ', touch: true' , result); + result.string += ', position: '; + $append_1(result, this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position); + result.string += ', notifier: '; + $append_2(result, this.getNotifier()); + result.string += ', feature: '; + $append_2(result, this.getFeature()); + result.string += ', oldValue: '; + $append_2(result, $getOldValue(this)); + result.string += ', newValue: '; + if (this.eventType == 6 && instanceOf(this.newValue, 53)) { + positions = castTo(this.newValue, 53); + result.string += '['; + for (i = 0; i < positions.length;) { + result.string += positions[i]; + ++i < positions.length && (result.string += ', ' , result); + } + result.string += ']'; + } + else { + $append_2(result, $getNewValue(this)); + } + result.string += ', isTouch: '; + $append_4(result, $isTouch(this)); + result.string += ', wasSet: '; + $append_4(result, $wasSet(this)); + result.string += ')'; + return result.string; +} +; +_.eventType = 0; +_.newIEEEPrimitiveValue = 0; +_.newSimplePrimitiveValue = 0; +_.oldIEEEPrimitiveValue = 0; +_.oldSimplePrimitiveValue = 0; +_.position = 0; +_.primitiveType = 0; +var Lorg_eclipse_emf_common_notify_impl_NotificationImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationImpl', 152); +function DelegatingNotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ + this.this$01 = this$0; + NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); +} + +defineClass(1188, 152, $intern_145, DelegatingNotifyingListImpl$1); +_.getFeature = function getFeature_1(){ + return this.this$01.getFeature(); +} +; +_.getFeatureID = function getFeatureID_1(expectedClass){ + return this.this$01.getFeatureID_0(); +} +; +_.getNotifier = function getNotifier_1(){ + return this.this$01.getNotifier(); +} +; +var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl/1', 1188); +function $add_23(this$static, newNotification){ + var i, notification; + if (!newNotification) { + return false; + } + else { + for (i = 0; i < this$static.size_0; ++i) { + notification = castTo(this$static.data_0[i], 378); + if (notification.merge_0(newNotification)) { + return false; + } + } + return $add_21(this$static, newNotification); + } +} + +function NotificationChainImpl(){ +} + +function NotificationChainImpl_0(initialCapacity){ + BasicEList_0.call(this, initialCapacity); +} + +defineClass(251, 66, $intern_141, NotificationChainImpl, NotificationChainImpl_0); +_.add_2 = function add_49(newNotification){ + return $add_23(this, castTo(newNotification, 378)); +} +; +_.add_5 = function add_50(newNotification){ + return $add_23(this, newNotification); +} +; +_.dispatch_0 = function dispatch_0(){ + var i, notification, notifier; + for (i = 0; i < this.size_0; ++i) { + notification = castTo(this.data_0[i], 378); + notifier = notification.getNotifier(); + notifier != null && notification.getEventType() != -1 && castTo(notifier, 94).eNotify(notification); + } +} +; +_.newData = function newData_1(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Notification_2_classLit, $intern_2, 378, capacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotificationChainImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationChainImpl', 251); +defineClass(1524, 93, $intern_137); +_.eBasicAdapters = function eBasicAdapters_1(){ + return this.eAdapters; +} +; +_.eDeliver = function eDeliver_1(){ + return (this.eFlags & 1) != 0; +} +; +_.eFlags = 1; +var Lorg_eclipse_emf_common_notify_impl_NotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifierImpl', 1524); +function $addAllUnique_3(this$static, index_0, collection){ + var collectionSize, i, lastIndex, notification, notifications, object, oldIsSet, value_0; + collectionSize = collection.size_1(); + if (collectionSize == 0) { + return false; + } + else { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addAllUnique(this$static, index_0, collection); + notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + value_0 = this$static.data_0[i]; + notifications = this$static.inverseAdd(value_0, notifications); + notifications = this$static.shadowAdd(value_0, notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addAllUnique(this$static, index_0, collection); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + object = this$static.data_0[i]; + notifications = this$static.inverseAdd(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + } + return true; + } +} + +function $addUnique_5(this$static, index_0, object){ + var notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addUnique(this$static, index_0, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique(this$static, index_0, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $addUnique_6(this$static, object){ + var index_0, notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.size_0; + oldIsSet = this$static.isSet_0(); + $addUnique_0(this$static, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique_0(this$static, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $basicAdd_0(this$static, object, notifications){ + var index_0, notification, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.size_0; + oldIsSet = this$static.isSet_0(); + $addUnique(this$static, index_0, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $addUnique(this$static, this$static.size_0, object); + } + return notifications; +} + +function $basicRemove_0(this$static, object, notifications){ + var index_0, notification, oldIsSet, oldObject; + index_0 = this$static.indexOf_0(object); + if (index_0 != -1) { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + oldObject = $remove_33(this$static, index_0); + notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $remove_33(this$static, index_0); + } + } + return notifications; +} + +function $clear_13(this$static){ + var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + if (this$static.size_0 > 0) { + collection = new BasicEList$UnmodifiableEList(this$static.size_0, this$static.data_0); + collectionSize = this$static.size_0; + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + if (this$static.hasShadow()) { + for (i = 0; i < this$static.size_0; ++i) { + object = this$static.data_0[i]; + notifications = this$static.shadowRemove(object, notifications); + } + } + $clear_11(this$static); + notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); + if (this$static.hasInverse()) { + for (i = new AbstractEList$NonResolvingEIterator(collection); i.cursor != i.this$01_2.size_1();) { + notifications = this$static.inverseRemove($doNext_0(i), notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + } + else { + $clear_11(this$static); + this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); + } + } + else if (this$static.hasInverse()) { + if (this$static.size_0 > 0) { + oldData = this$static.data_0; + oldSize = this$static.size_0; + $clear_11(this$static); + notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); + for (i = 0; i < oldSize; ++i) { + object = oldData[i]; + notifications = this$static.inverseRemove(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + else { + $clear_11(this$static); + } + } + else { + $clear_11(this$static); + } +} + +function $createNotificationChain(capacity){ + return capacity < 100?null:new NotificationChainImpl_0(capacity); +} + +function $move_1(this$static, targetIndex, sourceIndex){ + var object, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + object = $move(this$static, targetIndex, sourceIndex); + this$static.dispatchNotification(this$static.createNotification(7, valueOf_3(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move(this$static, targetIndex, sourceIndex); + } +} + +function $remove_35(this$static, index_0){ + var notification, notifications, oldIsSet, oldObject; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + this$static.hasShadow() && (notifications = this$static.shadowRemove(this$static.basicGet(index_0), null)); + notification = this$static.createNotification(4, oldObject = $remove_33(this$static, index_0), null, index_0, oldIsSet); + if (this$static.hasInverse() && oldObject != null) { + notifications = this$static.inverseRemove(oldObject, notifications); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $remove_33(this$static, index_0); + if (this$static.hasInverse() && oldObject != null) { + notifications = this$static.inverseRemove(oldObject, null); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} + +function $removeAll_4(this$static, collection){ + var collectionSize, count, i, i0, i1, initialObject, j, list, listSize, notification, notifications, object, objects, oldIsSet, oldPositions, positions, repeat, result, resultList; + oldIsSet = this$static.size_0 != 0; + result = false; + positions = null; + if ($eNotificationRequired(this$static.owner)) { + listSize = collection.size_1(); + if (listSize > 0) { + notifications = listSize < 100?null:new NotificationChainImpl_0(listSize); + list = new BasicEList_1(collection); + objects = list.data_0; + positions = initUnidimensionalArray(I_classLit, $intern_49, 28, listSize, 15, 1); + count = 0; + resultList = new BasicEList_0(listSize); + for (i = 0; i < this$static.size_0; ++i) { + initialObject = this$static.data_0[i]; + object = initialObject; + LOOP: for (repeat = 0; repeat < 2; ++repeat) { + for (j = listSize; --j >= 0;) { + if (object != null?equals_Ljava_lang_Object__Z__devirtual$(object, objects[j]):maskUndefined(object) === maskUndefined(objects[j])) { + if (positions.length <= count) { + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_49, 28, 2 * positions.length, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + positions[count++] = i; + $add_21(resultList, objects[j]); + break LOOP; + } + } + object = object; + if (maskUndefined(object) === maskUndefined(initialObject)) { + break; + } + } + } + list = resultList; + objects = resultList.data_0; + listSize = count; + if (count > positions.length) { + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_49, 28, count, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + if (count > 0) { + result = true; + for (i0 = 0; i0 < count; ++i0) { + object = objects[i0]; + notifications = $shadowRemove_2(this$static, castTo(object, 76), notifications); + } + for (i1 = count; --i1 >= 0;) { + $remove_33(this$static, positions[i1]); + } + if (count != listSize) { + for (i = listSize; --i >= count;) { + $remove_33(list, i); + } + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_49, 28, count, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + collection = list; + } + } + } + else { + collection = $getDuplicates(this$static, collection); + for (i = this$static.size_0; --i >= 0;) { + if (collection.contains(this$static.data_0[i])) { + $remove_33(this$static, i); + result = true; + } + } + } + if (result) { + if (positions != null) { + collectionSize = collection.size_1(); + notification = collectionSize == 1?$createNotification(this$static, 4, collection.iterator_0().next_1(), null, positions[0], oldIsSet):$createNotification(this$static, 6, collection, positions, positions[0], oldIsSet); + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + for (i = collection.iterator_0(); i.hasNext_0();) { + object = i.next_1(); + notifications = $inverseRemove_3(this$static, castTo(object, 76), notifications); + } + if (!notifications) { + $eNotify(this$static.owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + notifications = $createNotificationChain(collection.size_1()); + for (i = collection.iterator_0(); i.hasNext_0();) { + object = i.next_1(); + notifications = $inverseRemove_3(this$static, castTo(object, 76), notifications); + } + !!notifications && notifications.dispatch_0(); + } + return true; + } + else { + return false; + } +} + +function $setUnique_1(this$static, index_0, object){ + var notification, notifications, oldIsSet, oldObject; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + notification = this$static.createNotification(1, oldObject = $setUnique(this$static, index_0, object), object, index_0, oldIsSet); + if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { + oldObject != null && (notifications = this$static.inverseRemove(oldObject, notifications)); + notifications = this$static.inverseAdd(object, notifications); + this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $setUnique(this$static, index_0, object); + if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { + notifications = null; + oldObject != null && (notifications = this$static.inverseRemove(oldObject, null)); + notifications = this$static.inverseAdd(object, notifications); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} + +defineClass(2091, 66, $intern_141); +_.addAllUnique = function addAllUnique_5(index_0, collection){ + return $addAllUnique_3(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_6(collection){ + return this.addAllUnique(this.size_0, collection); +} +; +_.addUnique = function addUnique_5(index_0, object){ + $addUnique_5(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_6(object){ + $addUnique_6(this, object); +} +; +_.canContainNull = function canContainNull_1(){ + return !this.hasInverse(); +} +; +_.clear_0 = function clear_55(){ + $clear_13(this); +} +; +_.createNotification = function createNotification_0(eventType, oldObject, newObject, index_0, wasSet){ + return new NotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_0(notification){ + $eNotify(this.getNotifier(), notification); +} +; +_.getFeature = function getFeature_2(){ + return null; +} +; +_.getFeatureID_0 = function getFeatureID_2(){ + return -1; +} +; +_.getNotifier = function getNotifier_2(){ + return null; +} +; +_.hasInverse = function hasInverse_0(){ + return false; +} +; +_.hasShadow = function hasShadow(){ + return false; +} +; +_.inverseAdd = function inverseAdd_0(object, notifications){ + return notifications; +} +; +_.inverseRemove = function inverseRemove_0(object, notifications){ + return notifications; +} +; +_.isNotificationRequired = function isNotificationRequired_0(){ + return false; +} +; +_.isSet_0 = function isSet_0(){ + return this.size_0 != 0; +} +; +_.move = function move_4(targetIndex, sourceIndex){ + return $move_1(this, targetIndex, sourceIndex); +} +; +_.remove_2 = function remove_105(index_0){ + return $remove_35(this, index_0); +} +; +_.setUnique = function setUnique_2(index_0, object){ + return $setUnique_1(this, index_0, object); +} +; +_.shadowAdd = function shadowAdd(object, notifications){ + return notifications; +} +; +_.shadowRemove = function shadowRemove(object, notifications){ + return notifications; +} +; +_.shadowSet = function shadowSet(oldObject, newObject, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl', 2091); +function NotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ + this.this$01 = this$0; + NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); +} + +defineClass(1187, 152, $intern_145, NotifyingListImpl$1); +_.getFeature = function getFeature_3(){ + return this.this$01.getFeature(); +} +; +_.getFeatureID = function getFeatureID_3(expectedClass){ + return this.this$01.getFeatureID_0(); +} +; +_.getNotifier = function getNotifier_3(){ + return this.this$01.getNotifier(); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl/1', 1187); +function AbstractEList$1(this$0, $anonymous0){ + this.this$01 = this$0; + BasicEList_0.call(this, $anonymous0); +} + +defineClass(966, 66, $intern_141, AbstractEList$1); +_.contains = function contains_54(object){ + if (this.size_0 > 10) { + if (!this.set_0 || this.this$01.modCount != this.expectedModCount) { + this.set_0 = new HashSet_1(this); + this.expectedModCount = this.modCount; + } + return $contains_6(this.set_0, object); + } + else { + return $contains_10(this, object); + } +} +; +_.useEquals = function useEquals_0(){ + return true; +} +; +_.expectedModCount = 0; +var Lorg_eclipse_emf_common_util_AbstractEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/1', 966); +function AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0){ + IndexOutOfBoundsException_0.call(this, 'index=' + index_0 + ', size=' + size_0); +} + +defineClass(302, 77, $intern_58, AbstractEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_AbstractEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/BasicIndexOutOfBoundsException', 302); +function $doNext(this$static){ + var next; + try { + next = this$static.this$01_2.get_0(this$static.cursor); + this$static.checkModCount(); + this$static.lastCursor = this$static.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + this$static.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} + +function $remove_36(this$static){ + if (this$static.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + this$static.checkModCount(); + try { + this$static.this$01_2.remove_2(this$static.lastCursor); + this$static.expectedModCount = this$static.this$01_2.modCount; + this$static.lastCursor < this$static.cursor && --this$static.cursor; + this$static.lastCursor = -1; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$EIterator(this$0){ + this.this$01_2 = this$0; + this.expectedModCount = this.this$01_2.modCount; +} + +defineClass(37, 1, $intern_6, AbstractEList$EIterator); +_.forEachRemaining = function forEachRemaining_54(consumer){ + $forEachRemaining(this, consumer); +} +; +_.checkModCount = function checkModCount(){ + if (this.this$01_2.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.doNext = function doNext(){ + return $doNext(this); +} +; +_.hasNext_0 = function hasNext_43(){ + return this.cursor != this.this$01_2.size_1(); +} +; +_.next_1 = function next_44(){ + return this.doNext(); +} +; +_.remove = function remove_106(){ + $remove_36(this); +} +; +_.cursor = 0; +_.expectedModCount = 0; +_.lastCursor = -1; +var Lorg_eclipse_emf_common_util_AbstractEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EIterator', 37); +function $doAdd_0(this$static, object){ + this$static.checkModCount(); + try { + this$static.this$01_1.add_3(this$static.cursor++, object); + this$static.expectedModCount = this$static.this$01_1.modCount; + this$static.lastCursor = -1; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function $doSet(this$static, object){ + if (this$static.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + this$static.checkModCount(); + try { + this$static.this$01_1.set_2(this$static.lastCursor, object); + this$static.expectedModCount = this$static.this$01_1.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$EListIterator(this$0){ + this.this$01_1 = this$0; + AbstractEList$EIterator.call(this, this$0); +} + +function AbstractEList$EListIterator_0(this$0, index_0){ + this.this$01_1 = this$0; + AbstractEList$EIterator.call(this, this$0); + this.cursor = index_0; +} + +defineClass(286, 37, $intern_14, AbstractEList$EListIterator, AbstractEList$EListIterator_0); +_.remove = function remove_107(){ + $remove_36(this); +} +; +_.add_1 = function add_51(object){ + $doAdd_0(this, object); +} +; +_.doPrevious = function doPrevious(){ + var previous; + try { + previous = this.this$01_1.get_0(--this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor; + return previous; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.doSet = function doSet(object){ + $doSet(this, object); +} +; +_.hasPrevious = function hasPrevious_7(){ + return this.cursor != 0; +} +; +_.nextIndex_0 = function nextIndex_8(){ + return this.cursor; +} +; +_.previous_0 = function previous_8(){ + return this.doPrevious(); +} +; +_.previousIndex = function previousIndex_7(){ + return this.cursor - 1; +} +; +_.set_1 = function set_22(object){ + this.doSet(object); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EListIterator', 286); +function $doNext_0(this$static){ + var next; + try { + next = this$static.this$01_0.primitiveGet(this$static.cursor); + this$static.checkModCount(); + this$static.lastCursor = this$static.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + this$static.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$NonResolvingEIterator(this$0){ + this.this$01_0 = this$0; + AbstractEList$EIterator.call(this, this$0); +} + +defineClass(355, 37, $intern_6, AbstractEList$NonResolvingEIterator); +_.doNext = function doNext_0(){ + return $doNext_0(this); +} +; +_.remove = function remove_108(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEIterator', 355); +function AbstractEList$NonResolvingEListIterator(this$0){ + this.this$01_0 = this$0; + AbstractEList$EListIterator.call(this, this$0); +} + +function AbstractEList$NonResolvingEListIterator_0(this$0, index_0){ + this.this$01_0 = this$0; + AbstractEList$EListIterator_0.call(this, this$0, index_0); +} + +defineClass(398, 286, $intern_14, AbstractEList$NonResolvingEListIterator, AbstractEList$NonResolvingEListIterator_0); +_.add_1 = function add_52(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.doNext = function doNext_1(){ + var next; + try { + next = this.this$01_0.primitiveGet(this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.doPrevious = function doPrevious_0(){ + var previous; + try { + previous = this.this$01_0.primitiveGet(--this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor; + return previous; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.remove = function remove_109(){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_23(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEListIterator', 398); +function newInstance_11(componentType, size_0){ + var helper; + helper = castTo($get_10(($clinit_Reflect() , HELPER_REGISTRY), componentType), 57); + return helper?helper.newArrayInstance(size_0):initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); +} + +function $clinit_ArrayDelegatingEList(){ + $clinit_ArrayDelegatingEList = emptyMethod; + EMPTY_ARRAY = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $assign_0(data_0, index_0, object){ + setCheck(data_0, index_0, object); + return object; +} + +function $copy_0(this$static){ + var data_0, newData; + data_0 = castTo($getField(this$static.this$01, 4), 129); + if (data_0 != null) { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_146, 424, data_0.length, 0, 1); + arraycopy(data_0, 0, newData, 0, data_0.length); + return newData; + } + else { + return EMPTY_ARRAY; + } +} + +function $grow(this$static, size_0){ + var data_0, oldData; + oldData = castTo($getField(this$static.this$01, 4), 129); + data_0 = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_146, 424, size_0, 0, 1); + oldData != null && arraycopy(oldData, 0, data_0, 0, oldData.length); + return data_0; +} + +function $remove_37(this$static, index_0){ + var data_0, newData, oldObject, shifted, size_0; + data_0 = castTo($getField(this$static.this$01, 4), 129); + size_0 = data_0 == null?0:data_0.length; + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + oldObject = data_0[index_0]; + if (size_0 == 1) { + newData = null; + } + else { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_146, 424, size_0 - 1, 0, 1); + arraycopy(data_0, 0, newData, 0, index_0); + shifted = size_0 - index_0 - 1; + shifted > 0 && arraycopy(data_0, index_0 + 1, newData, index_0, shifted); + } + $setData(this$static, newData); + $didRemove_0(this$static, index_0, oldObject); + return oldObject; +} + +defineClass(2080, 70, $intern_147); +_.addAllUnique = function addAllUnique_7(index_0, collection){ + var currentIndex, data_0, growth, i, i0, object, objects, oldData, oldSize, shifted, size_0; + growth = collection.size_1(); + if (growth != 0) { + oldData = castTo($getField(this.this$01, 4), 129); + oldSize = oldData == null?0:oldData.length; + size_0 = oldSize + growth; + data_0 = $grow(this, size_0); + shifted = oldSize - index_0; + shifted > 0 && arraycopy(oldData, index_0, data_0, index_0 + growth, shifted); + objects = collection.iterator_0(); + for (i0 = 0; i0 < growth; ++i0) { + object = objects.next_1(); + currentIndex = index_0 + i0; + $assign_0(data_0, currentIndex, $validate(this, object)); + } + $setData(this, data_0); + for (i = 0; i < growth; ++i) { + object = data_0[index_0]; + this.didAdd(index_0, object); + ++index_0; + } + return true; + } + else { + ++this.modCount; + return false; + } +} +; +_.addAllUnique_0 = function addAllUnique_8(collection){ + var data_0, data0, growth, i, i0, object, objects, oldSize, size_0; + growth = collection.size_1(); + if (growth != 0) { + oldSize = (data0 = castTo($getField(this.this$01, 4), 129) , data0 == null?0:data0.length); + size_0 = oldSize + growth; + data_0 = $grow(this, size_0); + objects = collection.iterator_0(); + for (i0 = oldSize; i0 < size_0; ++i0) { + object = objects.next_1(); + $assign_0(data_0, i0, $validate(this, object)); + } + $setData(this, data_0); + for (i = oldSize; i < size_0; ++i) { + object = data_0[i]; + this.didAdd(i, object); + } + return true; + } + else { + ++this.modCount; + return false; + } +} +; +_.addUnique = function addUnique_7(index_0, object){ + var data_0, oldData, size_0, validatedObject; + oldData = castTo($getField(this.this$01, 4), 129); + size_0 = oldData == null?0:oldData.length; + data_0 = $grow(this, size_0 + 1); + validatedObject = $validate(this, object); + index_0 != size_0 && arraycopy(oldData, index_0, data_0, index_0 + 1, size_0 - index_0); + setCheck(data_0, index_0, validatedObject); + $setData(this, data_0); + this.didAdd(index_0, object); +} +; +_.addUnique_0 = function addUnique_8(object){ + var data_0, data0, size_0; + size_0 = (data0 = castTo($getField(this.this$01, 4), 129) , data0 == null?0:data0.length); + data_0 = $grow(this, size_0 + 1); + $assign_0(data_0, size_0, $validate(this, object)); + $setData(this, data_0); + this.didAdd(size_0, object); +} +; +_.basicIterator = function basicIterator_0(){ + return new ArrayDelegatingEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_1(){ + return new ArrayDelegatingEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_2(index_0){ + var data_0, size_0; + size_0 = (data_0 = castTo($getField(this.this$01, 4), 129) , data_0 == null?0:data_0.length); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new ArrayDelegatingEList$NonResolvingEListIterator_0(this, index_0); +} +; +_.clear_0 = function clear_56(){ + var oldData, oldSize; + ++this.modCount; + oldData = castTo($getField(this.this$01, 4), 129); + oldSize = oldData == null?0:oldData.length; + $setData(this, null); + $didClear(this, oldSize, oldData); +} +; +_.contains = function contains_55(object){ + var data_0, datum, datum$array, datum$index, datum$max; + data_0 = castTo($getField(this.this$01, 4), 129); + if (data_0 != null) { + if (object != null) { + for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { + datum = datum$array[datum$index]; + if (equals_Ljava_lang_Object__Z__devirtual$(object, datum)) { + return true; + } + } + } + else { + for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { + datum = datum$array[datum$index]; + if (maskUndefined(datum) === maskUndefined(object)) { + return true; + } + } + } + } + return false; +} +; +_.get_0 = function get_54(index_0){ + var data_0, size_0; + data_0 = castTo($getField(this.this$01, 4), 129); + size_0 = data_0 == null?0:data_0.length; + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return data_0[index_0]; +} +; +_.indexOf_0 = function indexOf_10(object){ + var data_0, i, size_0; + data_0 = castTo($getField(this.this$01, 4), 129); + if (data_0 != null) { + if (object != null) { + for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, data_0[i])) { + return i; + } + } + } + else { + for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { + if (maskUndefined(data_0[i]) === maskUndefined(object)) { + return i; + } + } + } + } + return -1; +} +; +_.isEmpty = function isEmpty_28(){ + return castTo($getField(this.this$01, 4), 129) == null; +} +; +_.iterator_0 = function iterator_80(){ + return new ArrayDelegatingEList$EIterator(this); +} +; +_.listIterator_0 = function listIterator_19(){ + return new ArrayDelegatingEList$EListIterator(this); +} +; +_.listIterator_1 = function listIterator_20(index_0){ + var data_0, size_0; + size_0 = (data_0 = castTo($getField(this.this$01, 4), 129) , data_0 == null?0:data_0.length); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new ArrayDelegatingEList$EListIterator_0(this, index_0); +} +; +_.move = function move_5(targetIndex, sourceIndex){ + var data_0, object, size_0; + data_0 = $copy_0(this); + size_0 = data_0 == null?0:data_0.length; + if (targetIndex >= size_0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); + if (sourceIndex >= size_0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); + object = data_0[sourceIndex]; + if (targetIndex != sourceIndex) { + targetIndex < sourceIndex?arraycopy(data_0, targetIndex, data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(data_0, sourceIndex + 1, data_0, sourceIndex, targetIndex - sourceIndex); + setCheck(data_0, targetIndex, object); + $setData(this, data_0); + } + return object; +} +; +_.primitiveGet = function primitiveGet_1(index_0){ + return castTo($getField(this.this$01, 4), 129)[index_0]; +} +; +_.remove_2 = function remove_110(index_0){ + return $remove_37(this, index_0); +} +; +_.setUnique = function setUnique_3(index_0, object){ + var data_0, oldObject; + data_0 = $copy_0(this); + oldObject = data_0[index_0]; + $assign_0(data_0, index_0, $validate(this, object)); + $setData(this, data_0); + return oldObject; +} +; +_.size_1 = function size_68(){ + var data_0; + return data_0 = castTo($getField(this.this$01, 4), 129) , data_0 == null?0:data_0.length; +} +; +_.toArray = function toArray_30(){ + var data_0, result, size_0; + data_0 = castTo($getField(this.this$01, 4), 129); + size_0 = data_0 == null?0:data_0.length; + result = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_146, 424, size_0, 0, 1); + size_0 > 0 && arraycopy(data_0, 0, result, 0, size_0); + return result; +} +; +_.toArray_0 = function toArray_31(array){ + var data_0, newArray, size_0; + data_0 = castTo($getField(this.this$01, 4), 129); + size_0 = data_0 == null?0:data_0.length; + if (size_0 > 0) { + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + arraycopy(data_0, 0, array, 0, size_0); + } + array.length > size_0 && setCheck(array, size_0, null); + return array; +} +; +var EMPTY_ARRAY; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList', 2080); +function ArrayDelegatingEList$EIterator(this$0){ + this.this$01 = this$0; + AbstractEList$EIterator.call(this, this$0); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 129); +} + +defineClass(1051, 37, $intern_6, ArrayDelegatingEList$EIterator); +_.checkModCount = function checkModCount_0(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 129)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.remove = function remove_111(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 129); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EIterator', 1051); +function $$init_9(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 129); +} + +function ArrayDelegatingEList$EListIterator(this$0){ + this.this$01 = this$0; + AbstractEList$EListIterator.call(this, this$0); + $$init_9(this); +} + +function ArrayDelegatingEList$EListIterator_0(this$0, index_0){ + this.this$01 = this$0; + AbstractEList$EListIterator_0.call(this, this$0, index_0); + $$init_9(this); +} + +defineClass(722, 286, $intern_14, ArrayDelegatingEList$EListIterator, ArrayDelegatingEList$EListIterator_0); +_.checkModCount = function checkModCount_1(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 129)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.doSet = function doSet_0(object){ + $doSet(this, object); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 129); +} +; +_.remove = function remove_112(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 129); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EListIterator', 722); +function ArrayDelegatingEList$NonResolvingEIterator(this$0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEIterator.call(this, this$0); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 129); +} + +defineClass(1052, 355, $intern_6, ArrayDelegatingEList$NonResolvingEIterator); +_.checkModCount = function checkModCount_2(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 129)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEIterator', 1052); +function $$init_10(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 129); +} + +function ArrayDelegatingEList$NonResolvingEListIterator(this$0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEListIterator.call(this, this$0); + $$init_10(this); +} + +function ArrayDelegatingEList$NonResolvingEListIterator_0(this$0, index_0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEListIterator_0.call(this, this$0, index_0); + $$init_10(this); +} + +defineClass(723, 398, $intern_14, ArrayDelegatingEList$NonResolvingEListIterator, ArrayDelegatingEList$NonResolvingEListIterator_0); +_.checkModCount = function checkModCount_3(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 129)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEListIterator', 723); +function BasicEList$BasicIndexOutOfBoundsException(index_0, size_0){ + AbstractEList$BasicIndexOutOfBoundsException.call(this, index_0, size_0); +} + +defineClass(615, 302, $intern_58, BasicEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_BasicEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/BasicIndexOutOfBoundsException', 615); +function BasicEList$UnmodifiableEList(size_0, data_0){ + this.size_0 = size_0; + this.data_0 = data_0; +} + +defineClass(710, 66, $intern_141, BasicEList$UnmodifiableEList); +_.add_3 = function add_53(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +_.add_2 = function add_54(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_26(index_0, collection){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_27(collection){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_57(){ + throw toJs(new UnsupportedOperationException); +} +; +_.grow = function grow_0(minimumCapacity){ + throw toJs(new UnsupportedOperationException); +} +; +_.iterator_0 = function iterator_81(){ + return this.basicIterator(); +} +; +_.listIterator_0 = function listIterator_21(){ + return this.basicListIterator(); +} +; +_.listIterator_1 = function listIterator_22(index_0){ + return this.basicListIterator_0(index_0); +} +; +_.move = function move_6(targetIndex, sourceIndex){ + throw toJs(new UnsupportedOperationException); +} +; +_.move_0 = function move_7(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_2 = function remove_113(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_114(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_24(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_BasicEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/UnmodifiableEList', 710); +function $add_24(this$static, index_0, object){ + this$static.delegateEList.add_3(index_0, castTo(object, 136)); +} + +function $add_25(this$static, object){ + return this$static.delegateEList.add_2(castTo(object, 136)); +} + +function $containsKey_7(this$static, key){ + var entryIndex, hash, index_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entryIndex = $entryIndexForKey(this$static, index_0, hash, key); + return entryIndex != -1; + } + else { + return false; + } +} + +function $containsValue_4(this$static, value_0){ + var eList, entries, entry, i, j, size_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + if (value_0 != null) { + for (i = 0; i < this$static.entryData.length; ++i) { + eList = this$static.entryData[i]; + if (eList) { + entries = castTo(eList.data_0, 379); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue())) { + return true; + } + } + } + } + } + else { + for (i = 0; i < this$static.entryData.length; ++i) { + eList = this$static.entryData[i]; + if (eList) { + entries = castTo(eList.data_0, 379); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (maskUndefined(value_0) === maskUndefined(entry.getValue())) { + return true; + } + } + } + } + } + } + return false; +} + +function $didClear_0(oldEntryData){ + var eList, i, j, size_0; + if (oldEntryData != null) { + for (i = 0; i < oldEntryData.length; ++i) { + eList = oldEntryData[i]; + if (eList) { + castTo(eList.data_0, 379); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) + ; + } + } + } +} + +function $doClear_0(this$static){ + var oldEntryData; + if (this$static.entryData == null) { + ++this$static.modCount; + this$static.size_0 = 0; + $didClear_0(null); + } + else { + ++this$static.modCount; + oldEntryData = this$static.entryData; + this$static.entryData = null; + this$static.size_0 = 0; + $didClear_0(oldEntryData); + } +} + +function $doPut(this$static, entry){ + var eList, hash, index_0; + if (this$static.entryData == null) { + ++this$static.modCount; + ++this$static.size_0; + } + else { + hash = entry.getHash(); + $grow_0(this$static, this$static.size_0 + 1); + index_0 = (hash & $intern_0) % this$static.entryData.length; + eList = this$static.entryData[index_0]; + !eList && (eList = this$static.entryData[index_0] = this$static.newList()); + eList.add_2(entry); + ++this$static.size_0; + } +} + +function $doRemove(this$static, entry){ + var hash, index_0, key; + if (this$static.entryData == null) { + ++this$static.modCount; + --this$static.size_0; + } + else { + key = entry.getKey(); + hash = entry.getHash(); + index_0 = (hash & $intern_0) % this$static.entryData.length; + $removeEntry_0(this$static, index_0, $entryIndexForKey(this$static, index_0, hash, key)); + } +} + +function $entryForKey(this$static, index_0, hash, key){ + var eList, entries, entry, j, size_0; + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + if (key != null) { + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 136); + if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { + return entry; + } + } + } + else { + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 136); + if (maskUndefined(entry.getKey()) === maskUndefined(key)) { + return entry; + } + } + } + } + return null; +} + +function $entryIndexForKey(this$static, index_0, hash, key){ + var eList, entries, entry, j, size_0; + if (key != null) { + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 136); + if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { + return j; + } + } + } + } + else { + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 136); + if (maskUndefined(entry.getKey()) === maskUndefined(key)) { + return j; + } + } + } + } + return -1; +} + +function $entrySet_3(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.entrySet && (this$static.view.entrySet = new BasicEMap$5(this$static)); + return this$static.view.entrySet; +} + +function $equals_12(this$static, object){ + return instanceOf(object, 15) && $equals_11(this$static.delegateEList, object); +} + +function $get_21(this$static, key){ + var entry, hash, index_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry = $entryForKey(this$static, index_0, hash, key); + if (entry) { + return entry.getValue(); + } + } + return null; +} + +function $grow_0(this$static, minimumCapacity){ + var eList, entries, entry, i, index_0, j, oldCapacity, oldEList, oldEntryData, size_0; + ++this$static.modCount; + oldCapacity = this$static.entryData == null?0:this$static.entryData.length; + if (minimumCapacity > oldCapacity) { + oldEntryData = this$static.entryData; + this$static.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_148, 66, 2 * oldCapacity + 4, 0, 1); + for (i = 0; i < oldCapacity; ++i) { + oldEList = oldEntryData[i]; + if (oldEList) { + entries = oldEList.data_0; + size_0 = oldEList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 136); + index_0 = $indexOf_5(this$static, entry.getHash()); + eList = this$static.entryData[index_0]; + !eList && (eList = this$static.entryData[index_0] = this$static.newList()); + eList.add_2(entry); + } + } + } + return true; + } + else { + return false; + } +} + +function $hashOf(key){ + return key == null?0:hashCode__I__devirtual$(key); +} + +function $indexOf_5(this$static, hash){ + return (hash & $intern_0) % this$static.entryData.length; +} + +function $keySet_2(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.keySet && (this$static.view.keySet = new BasicEMap$3(this$static)); + return this$static.view.keySet; +} + +function $map_0(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.map_0 && (this$static.view.map_0 = new BasicEMap$DelegatingMap(this$static)); + return this$static.view.map_0; +} + +function $move_2(this$static, index_0, object){ + this$static.delegateEList.move_0(index_0, castTo(object, 136)); +} + +function $put_14(this$static, key, value_0){ + var entry, entry0, hash, index_0, result; + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + if (this$static.size_0 > 0) { + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry0 = $entryForKey(this$static, index_0, hash, key); + if (entry0) { + result = entry0.setValue(value_0); + return result; + } + } + entry = this$static.newEntry(hash, key, value_0); + this$static.delegateEList.add_2(entry); + return null; +} + +function $putAll_1(this$static, map_0){ + var entry, entry$iterator; + for (entry$iterator = map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 44); + $put_14(this$static, entry.getKey(), entry.getValue()); + } +} + +function $remove_38(this$static, object){ + var result; + if (instanceOf(object, 44)) { + return this$static.delegateEList.remove_1(object); + } + else { + result = $containsKey_7(this$static, object); + $removeKey(this$static, object); + return result; + } +} + +function $removeEntry_0(this$static, index_0, entryIndex){ + var entry; + ++this$static.modCount; + --this$static.size_0; + entry = castTo(this$static.entryData[index_0].remove_2(entryIndex), 136); + return entry.getValue(); +} + +function $removeKey(this$static, key){ + var entry, hash, index_0; + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry = $entryForKey(this$static, index_0, hash, key); + if (entry) { + $remove_38(this$static, entry); + return entry.getValue(); + } + else { + return null; + } +} + +function $set_11(this$static, index_0, object){ + return castTo(this$static.delegateEList.set_2(index_0, castTo(object, 136)), 44); +} + +function $values_3(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.values && (this$static.view.values = new BasicEMap$4(this$static)); + return this$static.view.values; +} + +defineClass(721, 1, {3:1, 20:1, 16:1, 15:1, 61:1, 597:1}); +_.add_3 = function add_55(index_0, object){ + $add_24(this, index_0, castTo(object, 44)); +} +; +_.add_2 = function add_56(object){ + return $add_25(this, castTo(object, 44)); +} +; +_.forEach_0 = function forEach_37(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_55(index_0){ + return castTo($get_20(this.delegateEList, index_0), 136); +} +; +_.move = function move_8(targetIndex, sourceIndex){ + return castTo(this.delegateEList.move(targetIndex, sourceIndex), 44); +} +; +_.move_0 = function move_9(index_0, object){ + $move_2(this, index_0, castTo(object, 44)); +} +; +_.parallelStream = function parallelStream_5(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_115(index_0){ + return castTo(this.delegateEList.remove_2(index_0), 44); +} +; +_.set_2 = function set_25(index_0, object){ + return $set_11(this, index_0, castTo(object, 44)); +} +; +_.sort_0 = function sort_13(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_38(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_7(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.addAll_0 = function addAll_28(index_0, collection){ + return this.delegateEList.addAll_0(index_0, collection); +} +; +_.addAll = function addAll_29(collection){ + return this.delegateEList.addAll(collection); +} +; +_.clear_0 = function clear_58(){ + this.delegateEList.clear_0(); +} +; +_.contains = function contains_56(object){ + return this.delegateEList.contains(object); +} +; +_.containsAll = function containsAll_12(collection){ + return $containsAll(this.delegateEList, collection); +} +; +_.ensureEntryDataExists = function ensureEntryDataExists(){ + var entry, entry$iterator, oldModCount; + if (this.entryData == null) { + this.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_148, 66, 2 * this.size_0 + 1, 0, 1); + oldModCount = this.modCount; + this.size_0 = 0; + for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 136); + $doPut(this, entry); + } + this.modCount = oldModCount; + } +} +; +_.equals_0 = function equals_216(object){ + return $equals_12(this, object); +} +; +_.hashCode_1 = function hashCode_78(){ + return $hashCode_4(this.delegateEList); +} +; +_.indexOf_0 = function indexOf_11(object){ + return this.delegateEList.indexOf_0(object); +} +; +_.initializeDelegateEList = function initializeDelegateEList(){ + this.delegateEList = new BasicEMap$1(this); +} +; +_.isEmpty = function isEmpty_29(){ + return this.size_0 == 0; +} +; +_.iterator_0 = function iterator_82(){ + return this.delegateEList.iterator_0(); +} +; +_.listIterator_0 = function listIterator_23(){ + return this.delegateEList.listIterator_0(); +} +; +_.listIterator_1 = function listIterator_24(index_0){ + return this.delegateEList.listIterator_1(index_0); +} +; +_.map_2 = function map_5(){ + return $map_0(this); +} +; +_.newEntry = function newEntry_0(hash, key, value_0){ + return new BasicEMap$EntryImpl(hash, key, value_0); +} +; +_.newList = function newList(){ + return new BasicEMap$2; +} +; +_.remove_1 = function remove_116(object){ + return $remove_38(this, object); +} +; +_.size_1 = function size_69(){ + return this.size_0; +} +; +_.subList = function subList_10(start_0, end){ + return new AbstractList$SubList(this.delegateEList, start_0, end); +} +; +_.toArray = function toArray_32(){ + return this.delegateEList.toArray(); +} +; +_.toArray_0 = function toArray_33(array){ + return this.delegateEList.toArray_0(array); +} +; +_.toString_0 = function toString_139(){ + return $toString_25(this.delegateEList); +} +; +_.modCount = 0; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap', 721); +function $didAdd(this$static, newObject){ + $doPut(this$static.this$01, newObject); +} + +function $didRemove(this$static, oldObject){ + $doRemove(this$static.this$01, oldObject); +} + +function $didSet(this$static, newObject, oldObject){ + $doRemove(this$static.this$01, oldObject); + $doPut(this$static.this$01, newObject); +} + +function BasicEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1046, 66, $intern_141, BasicEMap$1); +_.didAdd = function didAdd_0(index_0, newObject){ + $didAdd(this, castTo(newObject, 136)); +} +; +_.didMove = function didMove_0(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this , castTo(movedObject, 136) , lastArg).this$01.modCount; +} +; +_.didRemove = function didRemove_0(index_0, oldObject){ + $didRemove(this, castTo(oldObject, 136)); +} +; +_.didSet = function didSet_0(index_0, newObject, oldObject){ + $didSet(this, castTo(newObject, 136), castTo(oldObject, 136)); +} +; +_.didClear = function didClear_0(size_0, oldObjects){ + $doClear_0(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/1', 1046); +function BasicEMap$2(){ +} + +defineClass(1047, 66, $intern_141, BasicEMap$2); +_.newData = function newData_2(listCapacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit, $intern_149, 621, listCapacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$2_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/2', 1047); +function BasicEMap$3(this$0){ + this.this$01 = this$0; +} + +defineClass(1048, $intern_9, $intern_10, BasicEMap$3); +_.clear_0 = function clear_59(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_57(key){ + return $containsKey_7(this.this$01, key); +} +; +_.iterator_0 = function iterator_83(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapKeyIterator(this.this$01); +} +; +_.remove_1 = function remove_117(key){ + var oldSize; + oldSize = this.this$01.size_0; + $removeKey(this.this$01, key); + return this.this$01.size_0 != oldSize; +} +; +_.size_1 = function size_70(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$3_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/3', 1048); +function BasicEMap$4(this$0){ + this.this$01 = this$0; +} + +defineClass(1049, 31, $intern_8, BasicEMap$4); +_.clear_0 = function clear_60(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_58(value_0){ + return $containsValue_4(this.this$01, value_0); +} +; +_.iterator_0 = function iterator_84(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapValueIterator(this.this$01); +} +; +_.size_1 = function size_71(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$4_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/4', 1049); +function $remove_39(this$static, object){ + var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; + if (this$static.this$01.size_0 > 0 && instanceOf(object, 44)) { + this$static.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 44); + key = otherEntry.getKey(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = $indexOf_5(this$static.this$01, hash); + eList = this$static.this$01.entryData[index_0]; + if (eList) { + entries = castTo(eList.data_0, 379); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (entry.getHash() == hash && entry.equals_0(otherEntry)) { + $remove_39(this$static, otherEntry); + return true; + } + } + } + } + return false; +} + +function BasicEMap$5(this$0){ + this.this$01 = this$0; +} + +defineClass(1050, $intern_9, $intern_10, BasicEMap$5); +_.clear_0 = function clear_61(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_59(object){ + var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; + if (this.this$01.size_0 > 0 && instanceOf(object, 44)) { + this.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 44); + key = otherEntry.getKey(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = $indexOf_5(this.this$01, hash); + eList = this.this$01.entryData[index_0]; + if (eList) { + entries = castTo(eList.data_0, 379); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (entry.getHash() == hash && entry.equals_0(otherEntry)) { + return true; + } + } + } + } + return false; +} +; +_.iterator_0 = function iterator_85(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapIterator(this.this$01); +} +; +_.remove_1 = function remove_118(object){ + return $remove_39(this, object); +} +; +_.size_1 = function size_72(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$5_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/5', 1050); +function $scan(this$static){ + var eList; + this$static.this$01.ensureEntryDataExists(); + if (this$static.entryCursor != -1) { + ++this$static.entryCursor; + eList = this$static.this$01.entryData[this$static.cursor]; + if (this$static.entryCursor < eList.size_0) { + return; + } + ++this$static.cursor; + } + for (; this$static.cursor < this$static.this$01.entryData.length; ++this$static.cursor) { + eList = this$static.this$01.entryData[this$static.cursor]; + if (!!eList && eList.size_0 != 0) { + this$static.entryCursor = 0; + return; + } + } + this$static.entryCursor = -1; +} + +function BasicEMap$BasicEMapIterator(this$0){ + this.this$01 = this$0; + this.expectedModCount = this.this$01.modCount; + this$0.size_0 > 0 && $scan(this); +} + +defineClass(622, 1, $intern_6, BasicEMap$BasicEMapIterator); +_.forEachRemaining = function forEachRemaining_55(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_44(){ + return this.entryCursor != -1; +} +; +_.next_1 = function next_45(){ + var result; + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (this.entryCursor == -1) { + throw toJs(new NoSuchElementException); + } + this.lastCursor = this.cursor; + this.lastEntryCursor = this.entryCursor; + $scan(this); + result = castTo(this.this$01.entryData[this.lastCursor].data_0[this.lastEntryCursor], 136); + return this.yield_0(result); +} +; +_.remove = function remove_119(){ + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (this.lastEntryCursor == -1) { + throw toJs(new IllegalStateException); + } + this.this$01.delegateEList.remove_1($get_20(this.this$01.entryData[this.lastCursor], this.lastEntryCursor)); + this.expectedModCount = this.this$01.modCount; + this.lastEntryCursor = -1; + this.cursor == this.lastCursor && this.entryCursor != -1 && --this.entryCursor; +} +; +_.yield_0 = function yield_0(entry){ + return entry; +} +; +_.cursor = 0; +_.entryCursor = -1; +_.expectedModCount = 0; +_.lastCursor = 0; +_.lastEntryCursor = 0; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapIterator', 622); +function BasicEMap$BasicEMapKeyIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1044, 622, $intern_6, BasicEMap$BasicEMapKeyIterator); +_.yield_0 = function yield_1(entry){ + return entry.getKey(); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapKeyIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapKeyIterator', 1044); +function BasicEMap$BasicEMapValueIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1045, 622, $intern_6, BasicEMap$BasicEMapValueIterator); +_.yield_0 = function yield_2(entry){ + return entry.getValue(); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapValueIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapValueIterator', 1045); +function $containsKey_8(this$static, key){ + return $containsKey_7(this$static.this$01, key); +} + +function BasicEMap$DelegatingMap(this$0){ + this.this$01 = this$0; +} + +defineClass(1043, 1, $intern_7, BasicEMap$DelegatingMap); +_.forEach = function forEach_38(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge_4(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_62(){ + this.this$01.delegateEList.clear_0(); +} +; +_.containsKey = function containsKey_15(key){ + return $containsKey_8(this, key); +} +; +_.containsValue = function containsValue_8(value_0){ + return $containsValue_4(this.this$01, value_0); +} +; +_.entrySet_0 = function entrySet_10(){ + return $entrySet_3(this.this$01); +} +; +_.equals_0 = function equals_217(object){ + return $equals_12(this.this$01, object); +} +; +_.get_3 = function get_56(key){ + return $get_21(this.this$01, key); +} +; +_.hashCode_1 = function hashCode_79(){ + return $hashCode_4(this.this$01.delegateEList); +} +; +_.isEmpty = function isEmpty_30(){ + return this.this$01.size_0 == 0; +} +; +_.keySet_0 = function keySet_19(){ + return $keySet_2(this.this$01); +} +; +_.put = function put_11(key, value_0){ + return $put_14(this.this$01, key, value_0); +} +; +_.remove_0 = function remove_120(key){ + return $removeKey(this.this$01, key); +} +; +_.size_1 = function size_73(){ + return this.this$01.size_0; +} +; +_.toString_0 = function toString_140(){ + return $toString_25(this.this$01.delegateEList); +} +; +_.values_0 = function values_126(){ + return $values_3(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$DelegatingMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/DelegatingMap', 1043); +function BasicEMap$EntryImpl(hash, key, value_0){ + this.hash = hash; + this.key = key; + this.value_0 = value_0; +} + +defineClass(621, 1, {44:1, 136:1, 621:1}, BasicEMap$EntryImpl); +_.equals_0 = function equals_218(object){ + var entry; + if (instanceOf(object, 44)) { + entry = castTo(object, 44); + return (this.key != null?equals_Ljava_lang_Object__Z__devirtual$(this.key, entry.getKey()):maskUndefined(this.key) === maskUndefined(entry.getKey())) && (this.value_0 != null?equals_Ljava_lang_Object__Z__devirtual$(this.value_0, entry.getValue()):maskUndefined(this.value_0) === maskUndefined(entry.getValue())); + } + else { + return false; + } +} +; +_.getHash = function getHash_0(){ + return this.hash; +} +; +_.getKey = function getKey_9(){ + return this.key; +} +; +_.getValue = function getValue_11(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_80(){ + return this.hash ^ (this.value_0 == null?0:hashCode__I__devirtual$(this.value_0)); +} +; +_.setHash = function setHash_0(hash){ + this.hash = hash; +} +; +_.setKey = function setKey_0(key){ + throw toJs(new RuntimeException); +} +; +_.setValue = function setValue_12(value_0){ + var oldValue; + oldValue = this.value_0; + this.value_0 = value_0; + return oldValue; +} +; +_.toString_0 = function toString_141(){ + return this.key + '->' + this.value_0; +} +; +_.hash = 0; +var Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/EntryImpl', 621); +function BasicEMap$View(){ +} + +defineClass(546, 1, {}, BasicEMap$View); +var Lorg_eclipse_emf_common_util_BasicEMap$View_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/View', 546); +function $clinit_ECollections(){ + $clinit_ECollections = emptyMethod; + EMPTY_ELIST = new ECollections$EmptyUnmodifiableEList; + new ECollections$EmptyUnmodifiableEMap; +} + +function indexOf_12(list, o, fromIndex){ + var element, i, size_0; + fromIndex < 0 && (fromIndex = 0); + size_0 = list.size_0; + for (i = fromIndex; i < size_0; i++) { + element = $get_20(list, i); + if (o == null) { + if (element == null) { + return i; + } + } + else if (maskUndefined(o) === maskUndefined(element) || equals_Ljava_lang_Object__Z__devirtual$(o, element)) { + return i; + } + } + return -1; +} + +function sort_14(list, comparator){ + $clinit_ECollections(); + var i, listAsArray, objectComparator, oldIndex; + listAsArray = $toArray_10(list); + objectComparator = comparator; + mergeSort(listAsArray, 0, listAsArray.length, objectComparator); + for (i = 0; i < listAsArray.length; i++) { + oldIndex = indexOf_12(list, listAsArray[i], i); + i != oldIndex && $move_1(list, i, oldIndex); + } +} + +var EMPTY_ELIST; +function $add_26(){ + throw toJs(new UnsupportedOperationException); +} + +function $add_27(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_10(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_11(){ + throw toJs(new UnsupportedOperationException); +} + +function $clear_14(){ + throw toJs(new UnsupportedOperationException); +} + +function $move_3(){ + throw toJs(new UnsupportedOperationException); +} + +function $move_4(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove_40(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove_41(){ + throw toJs(new UnsupportedOperationException); +} + +function $set_12(){ + throw toJs(new UnsupportedOperationException); +} + +function ECollections$BasicEmptyUnmodifiableEList(){ + this.listIterator = new ECollections$BasicEmptyUnmodifiableEList$1; +} + +defineClass(783, 1, {}); +_.equals_0 = function equals_219(o){ + return $equals_2(($clinit_Collections() , EMPTY_LIST), o); +} +; +_.hashCode_1 = function hashCode_81(){ + return hashCode_49(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toString_0 = function toString_142(){ + return $toString_2(($clinit_Collections() , EMPTY_LIST)); +} +; +var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList', 783); +function ECollections$BasicEmptyUnmodifiableEList$1(){ +} + +defineClass(1348, 1, $intern_14, ECollections$BasicEmptyUnmodifiableEList$1); +_.forEachRemaining = function forEachRemaining_56(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_57(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasNext_0 = function hasNext_45(){ + return false; +} +; +_.hasPrevious = function hasPrevious_8(){ + return false; +} +; +_.next_1 = function next_46(){ + throw toJs(new NoSuchElementException); +} +; +_.nextIndex_0 = function nextIndex_9(){ + return 0; +} +; +_.previous_0 = function previous_9(){ + throw toJs(new NoSuchElementException); +} +; +_.previousIndex = function previousIndex_8(){ + return -1; +} +; +_.remove = function remove_121(){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_26(o){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList/1', 1348); +function ECollections$EmptyUnmodifiableEList(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1346, 783, {20:1, 16:1, 15:1, 61:1}, ECollections$EmptyUnmodifiableEList); +_.add_3 = function add_58(index_0, element){ + $add_26(); +} +; +_.add_2 = function add_59(o){ + return $add_27(); +} +; +_.addAll_0 = function addAll_30(index_0, collection){ + return $addAll_10(); +} +; +_.addAll = function addAll_31(coll){ + return $addAll_11(); +} +; +_.clear_0 = function clear_63(){ + $clear_14(); +} +; +_.contains = function contains_60(o){ + return false; +} +; +_.containsAll = function containsAll_13(coll){ + return false; +} +; +_.forEach_0 = function forEach_39(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_57(index_0){ + return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; +} +; +_.indexOf_0 = function indexOf_13(o){ + return -1; +} +; +_.isEmpty = function isEmpty_31(){ + return true; +} +; +_.iterator_0 = function iterator_86(){ + return this.listIterator; +} +; +_.listIterator_0 = function listIterator_25(){ + return this.listIterator; +} +; +_.listIterator_1 = function listIterator_26(index_0){ + return this.listIterator; +} +; +_.move = function move_10(newPosition, oldPosition){ + return $move_3(); +} +; +_.move_0 = function move_11(newPosition, o){ + $move_4(); +} +; +_.parallelStream = function parallelStream_6(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_122(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_123(o){ + return $remove_41(); +} +; +_.set_2 = function set_27(index_0, element){ + return $set_12(); +} +; +_.size_1 = function size_74(){ + return 0; +} +; +_.sort_0 = function sort_15(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_39(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_8(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.subList = function subList_11(fromIndex, toIndex){ + return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); +} +; +_.toArray = function toArray_34(){ + return $toArray(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toArray_0 = function toArray_35(a){ + return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); +} +; +var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEList', 1346); +function ECollections$EmptyUnmodifiableEMap(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1347, 783, {20:1, 16:1, 15:1, 61:1, 597:1}, ECollections$EmptyUnmodifiableEMap); +_.add_3 = function add_60(index_0, element){ + $add_26(); +} +; +_.add_2 = function add_61(o){ + return $add_27(); +} +; +_.addAll_0 = function addAll_32(index_0, collection){ + return $addAll_10(); +} +; +_.addAll = function addAll_33(coll){ + return $addAll_11(); +} +; +_.clear_0 = function clear_64(){ + $clear_14(); +} +; +_.contains = function contains_61(o){ + return false; +} +; +_.containsAll = function containsAll_14(coll){ + return false; +} +; +_.forEach_0 = function forEach_40(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_58(index_0){ + return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; +} +; +_.indexOf_0 = function indexOf_14(o){ + return -1; +} +; +_.isEmpty = function isEmpty_32(){ + return true; +} +; +_.iterator_0 = function iterator_87(){ + return this.listIterator; +} +; +_.listIterator_0 = function listIterator_27(){ + return this.listIterator; +} +; +_.listIterator_1 = function listIterator_28(index_0){ + return this.listIterator; +} +; +_.move = function move_12(newPosition, oldPosition){ + return $move_3(); +} +; +_.move_0 = function move_13(newPosition, o){ + $move_4(); +} +; +_.parallelStream = function parallelStream_7(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_124(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_125(o){ + return $remove_41(); +} +; +_.set_2 = function set_28(index_0, element){ + return $set_12(); +} +; +_.size_1 = function size_75(){ + return 0; +} +; +_.sort_0 = function sort_16(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_40(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_9(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.subList = function subList_12(fromIndex, toIndex){ + return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); +} +; +_.toArray = function toArray_36(){ + return $toArray(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toArray_0 = function toArray_37(a){ + return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); +} +; +_.map_2 = function map_6(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_MAP; +} +; +var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEMap', 1347); +var Lorg_eclipse_emf_common_util_Enumerator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'Enumerator'); +function $clinit_Reflect(){ + $clinit_Reflect = emptyMethod; + HELPER_REGISTRY = new HashMap; +} + +function isInstance(class_, instance){ + $clinit_Reflect(); + var helper; + helper = castTo($get_10(HELPER_REGISTRY, class_), 57); + return !helper || helper.isInstance(instance); +} + +function register_0(class_, helper){ + $clinit_Reflect(); + $put_6(HELPER_REGISTRY, class_, helper); +} + +var HELPER_REGISTRY; +function $clinit_URI(){ + $clinit_URI = emptyMethod; + var set_0; + uriCache = new URI$URICache; + NO_SEGMENTS = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); + ALPHA_HI = or_0(lowBitmask_0(33, 58), lowBitmask_0(1, 26)); + ALPHA_LO = or_0(lowBitmask_0(97, 122), lowBitmask_0(65, 90)); + DIGIT_LO = lowBitmask_0(48, 57); + ALPHANUM_HI = or_0(ALPHA_HI, 0); + ALPHANUM_LO = or_0(ALPHA_LO, DIGIT_LO); + HEX_HI = or_0(or_0(0, lowBitmask_0(1, 6)), lowBitmask_0(33, 38)); + HEX_LO = or_0(or_0(DIGIT_LO, lowBitmask_0(65, 70)), lowBitmask_0(97, 102)); + UNRESERVED_HI = or_0(ALPHANUM_HI, highBitmask_0("-_.!~*'()")); + UNRESERVED_LO = or_0(ALPHANUM_LO, lowBitmask_1("-_.!~*'()")); + highBitmask_0(';/?:@&=+$,'); + lowBitmask_1(';/?:@&=+$,'); + or_0(UNRESERVED_HI, highBitmask_0(';:@&=+$,')); + or_0(UNRESERVED_LO, lowBitmask_1(';:@&=+$,')); + MAJOR_SEPARATOR_HI = highBitmask_0(':/?#'); + MAJOR_SEPARATOR_LO = lowBitmask_1(':/?#'); + SEGMENT_END_HI = highBitmask_0('/?#'); + SEGMENT_END_LO = lowBitmask_1('/?#'); + set_0 = new HashSet; + set_0.map_0.put('jar', set_0); + set_0.map_0.put('zip', set_0); + set_0.map_0.put('archive', set_0); + archiveSchemes = ($clinit_Collections() , new Collections$UnmodifiableSet(set_0)); +} + +function $appendFragment(this$static, fragment){ + var result; + result = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, fragment); + this$static.fragment != null || (result.cachedTrimFragment = this$static); + return result; +} + +function $segmentsEqual(this$static, uri_0){ + var i, len; + if (this$static.segments.length != uri_0.segments.length) + return false; + for (i = 0 , len = this$static.segments.length; i < len; i++) { + if (!$equals_5(this$static.segments[i], uri_0.segments[i])) + return false; + } + return true; +} + +function $toString_26(this$static){ + var i, len, result; + if (this$static.cachedToString == null) { + result = new StringBuffer; + if (this$static.scheme != null) { + $append_3(result, this$static.scheme); + result.string += ':'; + } + if ((this$static.hashCode_0 & 256) != 0) { + if ((this$static.hashCode_0 & 256) != 0 && this$static.authority != null) { + isArchiveScheme(this$static.scheme) || (result.string += '//' , result); + $append_3(result, this$static.authority); + } + if (this$static.device != null) { + result.string += '/'; + $append_3(result, this$static.device); + } + (this$static.hashCode_0 & 16) != 0 && (result.string += '/' , result); + for (i = 0 , len = this$static.segments.length; i < len; i++) { + i != 0 && (result.string += '/' , result); + $append_3(result, this$static.segments[i]); + } + if (this$static.query != null) { + result.string += '?'; + $append_3(result, this$static.query); + } + } + else { + $append_3(result, this$static.authority); + } + if (this$static.fragment != null) { + result.string += '#'; + $append_3(result, this$static.fragment); + } + this$static.cachedToString = result.string; + } + return this$static.cachedToString; +} + +function $trimFragment(this$static){ + if (this$static.fragment == null) { + return this$static; + } + else + !this$static.cachedTrimFragment && (this$static.cachedTrimFragment = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, null)); + return this$static.cachedTrimFragment; +} + +function URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment){ + var hashCode, i, len; + hashCode = 0; + scheme != null && (hashCode ^= $hashCode_2(scheme.toLowerCase())); + authority != null && (hashCode ^= $hashCode_2(authority)); + device != null && (hashCode ^= $hashCode_2(device)); + query != null && (hashCode ^= $hashCode_2(query)); + fragment != null && (hashCode ^= $hashCode_2(fragment)); + for (i = 0 , len = segments.length; i < len; i++) { + hashCode ^= $hashCode_2(segments[i]); + } + hierarchical?(hashCode |= 256):(hashCode &= -257); + absolutePath?(hashCode |= 16):(hashCode &= -17); + this.hashCode_0 = hashCode; + this.scheme = scheme == null?null:(checkCriticalNotNull(scheme) , scheme); + this.authority = authority; + this.device = device; + this.segments = segments; + this.query = query; + this.fragment = fragment; +} + +function contains_62(s, highBitmask, lowBitmask){ + var i, len; + for (i = 0 , len = s.length; i < len; i++) { + if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) + return true; + } + return false; +} + +function createURIWithCache(uri_0){ + $clinit_URI(); + var base, fragment, i, result; + i = $indexOf_1(uri_0, fromCodePoint(35)); + base = i == -1?uri_0:(checkCriticalStringBounds(0, i, uri_0.length) , uri_0.substr(0, i)); + fragment = i == -1?null:(checkCriticalStringElementIndex(i + 1, uri_0.length + 1) , uri_0.substr(i + 1)); + result = $get_22(uriCache, base); + if (!result) { + result = parseIntoURI(base); + $put_15(uriCache, base, result); + fragment != null && (result = $appendFragment(result, fragment)); + } + else + fragment != null && (result = $appendFragment(result, (checkCriticalNotNull(fragment) , fragment))); + return result; +} + +function decode(value_0){ + $clinit_URI(); + var bytes, character, expectedBytes, i, j, len, receivedBytes, result; + if (value_0 == null) + return null; + i = $indexOf_1(value_0, fromCodePoint(37)); + if (i < 0) { + return value_0; + } + else { + result = new StringBuilder_1((checkCriticalStringBounds(0, i, value_0.length) , value_0.substr(0, i))); + bytes = initUnidimensionalArray(B_classLit, $intern_140, 28, 4, 15, 1); + receivedBytes = 0; + expectedBytes = 0; + for (len = value_0.length; i < len; i++) { + checkCriticalStringElementIndex(i, value_0.length); + if (value_0.charCodeAt(i) == 37 && value_0.length > i + 2 && matches((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), HEX_HI, HEX_LO) && matches((checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2)), HEX_HI, HEX_LO)) { + character = unescape_0((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), (checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2))); + i += 2; + if (expectedBytes > 0) { + (character & 192) == 128?(bytes[receivedBytes++] = character << 24 >> 24):(expectedBytes = 0); + } + else if (character >= 128) { + if ((character & 224) == 192) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 2; + } + else if ((character & 240) == 224) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 3; + } + else if ((character & 248) == 240) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 4; + } + } + if (expectedBytes > 0) { + if (receivedBytes == expectedBytes) { + switch (receivedBytes) { + case 2: + { + $append_5(result, ((bytes[0] & 31) << 6 | bytes[1] & 63) & $intern_47); + break; + } + + case 3: + { + $append_5(result, ((bytes[0] & 15) << 12 | (bytes[1] & 63) << 6 | bytes[2] & 63) & $intern_47); + break; + } + + } + receivedBytes = 0; + expectedBytes = 0; + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_47); + } + receivedBytes = 0; + result.string += String.fromCharCode(character); + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_47); + } + receivedBytes = 0; + $append_5(result, (checkCriticalStringElementIndex(i, value_0.length) , value_0.charCodeAt(i))); + } + } + return result.string; + } +} + +function equals_221(o1, o2){ + return o1 == null?o2 == null:$equals_5(o1, o2); +} + +function equals_222(s1, s2){ + return s1 == null?s2 == null:$equalsIgnoreCase(s1, s2); +} + +function find_0(s, i, highBitmask, lowBitmask){ + var len; + len = s.length; + if (i >= len) + return len; + for (i = i > 0?i:0; i < len; i++) { + if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) + break; + } + return i; +} + +function firstInvalidSegment(value_0){ + var i, len; + if (value_0 == null) + return null; + for (i = 0 , len = value_0.length; i < len; i++) { + if (!validSegment(value_0[i])) + return value_0[i]; + } + return null; +} + +function highBitmask_0(chars){ + var c, i, len, result; + result = 0; + for (i = 0 , len = chars.length; i < len; i++) { + c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); + c >= 64 && c < 128 && (result = or_0(result, shl_0(1, c - 64))); + } + return result; +} + +function isArchiveScheme(value_0){ + return value_0 != null && $contains_2(archiveSchemes, value_0.toLowerCase()); +} + +function lowBitmask_0(from, to){ + var c, result; + result = 0; + if (from < 64 && from <= to) { + to = to < 64?to:63; + for (c = from; c <= to; c++) { + result = or_0(result, shl_0(1, c)); + } + } + return result; +} + +function lowBitmask_1(chars){ + var c, i, len, result; + result = 0; + for (i = 0 , len = chars.length; i < len; i++) { + c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); + c < 64 && (result = or_0(result, shl_0(1, c))); + } + return result; +} + +function matches(c, highBitmask, lowBitmask){ + if (c >= 128) + return false; + return c < 64?neq(and_0(shl_0(1, c), lowBitmask), 0):neq(and_0(shl_0(1, c - 64), highBitmask), 0); +} + +function parseIntoURI(uri_0){ + var absolutePath, archiveScheme, authority, device, fragment, hierarchical, i, j, query, s, scheme, segmentList, segments; + hierarchical = true; + scheme = null; + authority = null; + device = null; + absolutePath = false; + segments = NO_SEGMENTS; + query = null; + fragment = null; + i = 0; + j = find_0(uri_0, i, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO); + if (j < uri_0.length && (checkCriticalStringElementIndex(j, uri_0.length) , uri_0.charCodeAt(j) == 58)) { + scheme = (checkCriticalStringBounds(i, j, uri_0.length) , uri_0.substr(i, j - i)); + i = j + 1; + } + archiveScheme = scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()); + if (archiveScheme) { + j = uri_0.lastIndexOf('!/'); + if (j == -1) { + throw toJs(new IllegalArgumentException_0('no archive separator')); + } + hierarchical = true; + authority = $substring_1(uri_0, i, ++j); + i = j; + } + else if (i >= 0 && $equals_5(uri_0.substr(i, '//'.length), '//')) { + i += 2; + j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); + authority = (checkCriticalStringBounds(i, j, uri_0.length) , uri_0.substr(i, j - i)); + i = j; + } + else if (scheme != null && (i == uri_0.length || (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 47))) { + hierarchical = false; + j = $indexOf_2(uri_0, fromCodePoint(35), i); + j == -1 && (j = uri_0.length); + authority = (checkCriticalStringBounds(i, j, uri_0.length) , uri_0.substr(i, j - i)); + i = j; + } + if (!archiveScheme && i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { + j = find_0(uri_0, i + 1, SEGMENT_END_HI, SEGMENT_END_LO); + s = (checkCriticalStringBounds(i + 1, j, uri_0.length) , uri_0.substr(i + 1, j - (i + 1))); + if (s.length > 0 && $charAt(s, s.length - 1) == 58) { + device = s; + i = j; + } + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { + ++i; + absolutePath = true; + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { + segmentList = new ArrayList; + while (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { + j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); + $add_3(segmentList, (checkCriticalStringBounds(i, j, uri_0.length) , uri_0.substr(i, j - i))); + i = j; + i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47) && (segmentsRemain(uri_0, ++i) || (segmentList.array.push('') , undefined , true)); + } + segments = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, segmentList.array.length, 6, 1); + $toArray_1(segmentList, segments); + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 63)) { + j = $indexOf_0(uri_0, 35, ++i); + j == -1 && (j = uri_0.length); + query = (checkCriticalStringBounds(i, j, uri_0.length) , uri_0.substr(i, j - i)); + i = j; + } + i < uri_0.length && (fragment = $substring_0(uri_0, ++i)); + validateURI(hierarchical, scheme, authority, device, segments, query); + return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); +} + +function segmentsRemain(uri_0, i){ + return i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35); +} + +function unescape_0(highHexDigit, lowHexDigit){ + return (valueOf_118(highHexDigit) << 4 | valueOf_118(lowHexDigit)) & $intern_47; +} + +function validArchiveAuthority(value_0){ + var archiveURI; + if (value_0 != null && value_0.length > 0 && $charAt(value_0, value_0.length - 1) == 33) { + try { + archiveURI = createURIWithCache($substring_1(value_0, 0, value_0.length - 1)); + return archiveURI.fragment == null; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 33)) + throw toJs($e0); + } + } + return false; +} + +function validDevice(value_0){ + var len; + if (value_0 == null) + return true; + len = value_0.length; + return len > 0 && (checkCriticalStringElementIndex(len - 1, value_0.length) , value_0.charCodeAt(len - 1) == 58) && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); +} + +function validSegment(value_0){ + return value_0 != null && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); +} + +function validSegments(value_0){ + var i, len; + if (value_0 == null) + return false; + for (i = 0 , len = value_0.length; i < len; i++) { + if (!validSegment(value_0[i])) + return false; + } + return true; +} + +function validateURI(hierarchical, scheme, authority, device, segments, query){ + var s; + if (!(scheme == null || !contains_62(scheme, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO))) { + throw toJs(new IllegalArgumentException_0('invalid scheme: ' + scheme)); + } + if (!hierarchical && !(authority != null && $indexOf_1(authority, fromCodePoint(35)) == -1 && authority.length > 0 && (checkCriticalStringElementIndex(0, authority.length) , authority.charCodeAt(0) != 47))) { + throw toJs(new IllegalArgumentException_0('invalid opaquePart: ' + authority)); + } + if (hierarchical && !(scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase())) && !(authority == null || !contains_62(authority, SEGMENT_END_HI, SEGMENT_END_LO))) { + throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); + } + if (hierarchical && scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()) && !validArchiveAuthority(authority)) { + throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); + } + if (!validDevice(device)) { + throw toJs(new IllegalArgumentException_0('invalid device: ' + device)); + } + if (!validSegments(segments)) { + s = segments == null?'invalid segments: null':'invalid segment: ' + firstInvalidSegment(segments); + throw toJs(new IllegalArgumentException_0(s)); + } + if (!(query == null || $indexOf_1(query, fromCodePoint(35)) == -1)) { + throw toJs(new IllegalArgumentException_0('invalid query: ' + query)); + } +} + +function valueOf_118(hexDigit){ + if (hexDigit >= 65 && hexDigit <= 70) { + return hexDigit - 65 + 10; + } + if (hexDigit >= 97 && hexDigit <= 102) { + return hexDigit - 97 + 10; + } + if (hexDigit >= 48 && hexDigit <= 57) { + return hexDigit - 48; + } + return 0; +} + +defineClass(288, 1, {288:1}, URI); +_.equals_0 = function equals_220(object){ + var uri_0; + if (this === object) + return true; + if (!instanceOf(object, 288)) + return false; + uri_0 = castTo(object, 288); + return this.hashCode_0 == uri_0.hashCode_0 && equals_222(this.scheme, uri_0.scheme) && equals_221(this.authority, (this.hashCode_0 & 256) != 0?(uri_0.hashCode_0 & 256) != 0?uri_0.authority:null:(uri_0.hashCode_0 & 256) != 0?null:uri_0.authority) && equals_221(this.device, uri_0.device) && equals_221(this.query, uri_0.query) && equals_221(this.fragment, uri_0.fragment) && $segmentsEqual(this, uri_0); +} +; +_.hashCode_1 = function hashCode_82(){ + return this.hashCode_0; +} +; +_.toString_0 = function toString_143(){ + return $toString_26(this); +} +; +_.hashCode_0 = 0; +var ALPHANUM_HI = 0, ALPHANUM_LO = 0, ALPHA_HI = 0, ALPHA_LO = 0, DIGIT_LO = 0, HEX_HI = 0, HEX_LO = 0, MAJOR_SEPARATOR_HI = 0, MAJOR_SEPARATOR_LO = 0, NO_SEGMENTS, SEGMENT_END_HI = 0, SEGMENT_END_LO = 0, UNRESERVED_HI = 0, UNRESERVED_LO = 0, archiveSchemes, uriCache; +var Lorg_eclipse_emf_common_util_URI_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI', 288); +function $get_22(this$static, key){ + return castTo(key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key), 288); +} + +function $put_15(this$static, key, value_0){ + return castTo(key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0), 288); +} + +function URI$URICache(){ + HashMap.call(this); +} + +defineClass(1121, 45, $intern_76, URI$URICache); +_.put = function put_12(key, value_0){ + return castTo($putStringValue(this, castToString(key), castTo(value_0, 288)), 288); +} +; +var Lorg_eclipse_emf_common_util_URI$URICache_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI/URICache', 1121); +function UniqueEList(){ +} + +function UniqueEList_0(collection){ + BasicEList_0.call(this, collection.size_1()); + $addAll_9(this, collection); +} + +defineClass(506, 66, $intern_141, UniqueEList, UniqueEList_0); +_.isUnique = function isUnique_1(){ + return true; +} +; +var Lorg_eclipse_emf_common_util_UniqueEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'UniqueEList', 506); +function WrappedException(exception){ + $$init_0(this); + this.detailMessage = !exception?null:$toString_4(exception, exception.getMessage()); + this.cause_0 = exception; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +defineClass(590, 63, $intern_44, WrappedException); +var Lorg_eclipse_emf_common_util_WrappedException_2_classLit = createForClass('org.eclipse.emf.common.util', 'WrappedException', 590); +var Lorg_eclipse_emf_ecore_EAnnotation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAnnotation'); +var Lorg_eclipse_emf_ecore_ETypedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypedElement'); +var Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EStructuralFeature'); +var Lorg_eclipse_emf_ecore_EAttribute_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAttribute'); +var Lorg_eclipse_emf_ecore_EClassifier_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClassifier'); +var Lorg_eclipse_emf_ecore_EClass_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClass'); +var Lorg_eclipse_emf_ecore_EDataType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EDataType'); +function $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry(){ + $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry = emptyMethod; + INSTANCE_5 = new EDataType$Internal$ConversionDelegate$Factory$Registry$Impl; +} + +var INSTANCE_5; +function $getFactory(this$static, uri_0){ + var factory; + return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); +} + +function EDataType$Internal$ConversionDelegate$Factory$Registry$Impl(){ + HashMap.call(this); +} + +defineClass(1233, 45, $intern_76, EDataType$Internal$ConversionDelegate$Factory$Registry$Impl); +_.get_3 = function get_59(key){ + return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); +} +; +var Lorg_eclipse_emf_ecore_EDataType$Internal$ConversionDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl', 1233); +var Lorg_eclipse_emf_ecore_EEnum_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnum'); +var Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnumLiteral'); +var Lorg_eclipse_emf_ecore_EGenericType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EGenericType'); +var Lorg_eclipse_emf_ecore_EOperation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EOperation'); +function $clinit_EPackage$Registry(){ + $clinit_EPackage$Registry = emptyMethod; + INSTANCE_6 = new EPackageRegistryImpl; +} + +var INSTANCE_6; +var Lorg_eclipse_emf_ecore_EParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EParameter'); +var Lorg_eclipse_emf_ecore_EReference_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EReference'); +function EStructuralFeature$Internal$DynamicValueHolder$1(){ +} + +defineClass(1042, 1, {}, EStructuralFeature$Internal$DynamicValueHolder$1); +_.toString_0 = function toString_144(){ + return 'NIL'; +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$DynamicValueHolder$1_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/DynamicValueHolder/1', 1042); +function $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry(){ + $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry = emptyMethod; + INSTANCE_7 = new EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl; +} + +var INSTANCE_7; +function $getFactory_0(this$static, uri_0){ + var factory; + return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); +} + +function EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl(){ + HashMap.call(this); +} + +defineClass(1041, 45, $intern_76, EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl); +_.get_3 = function get_60(key){ + return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl', 1041); +var Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypeParameter'); +var Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EValidator/PatternMatcher'); +function $clinit_EValidator$Registry(){ + $clinit_EValidator$Registry = emptyMethod; + INSTANCE_8 = new EValidatorRegistryImpl; +} + +var INSTANCE_8; +function $clinit_EcoreFactory(){ + $clinit_EcoreFactory = emptyMethod; + eINSTANCE_1 = init_3(); +} + +var eINSTANCE_1; +function $clinit_EcorePackage(){ + $clinit_EcorePackage = emptyMethod; + eINSTANCE_2 = init_4(); + !!($clinit_EcorePackage$Literals() , EATTRIBUTE) && internalBootstrap(); +} + +var eINSTANCE_2; +function $clinit_EcorePackage$Literals(){ + $clinit_EcorePackage$Literals = emptyMethod; + EATTRIBUTE = ($clinit_EcorePackage() , eINSTANCE_2).eAttributeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 1), 19); + EANNOTATION = eINSTANCE_2.eAnnotationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 1), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 2), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 4), 19); + ECLASS = eINSTANCE_2.eClassEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 1), 35); + ECLASS__ESUPER_TYPES = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 2), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 6), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 7), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 8), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 9), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 10), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 11), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 12), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 13), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 14), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 15), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 1), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 2), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 3), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 4), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 5), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 6), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 7), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 8), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 9), 62); + ECLASSIFIER = eINSTANCE_2.eClassifierEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 3), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 4), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 5), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 1), 62); + EDATA_TYPE = eINSTANCE_2.eDataTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eDataTypeEClass), 0), 35); + EENUM = eINSTANCE_2.eEnumEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumEClass), 0), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 1), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 2), 62); + EENUM_LITERAL = eINSTANCE_2.eEnumLiteralEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 3), 19); + EFACTORY = eINSTANCE_2.eFactoryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eFactoryEClass), 0), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 1), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 2), 62); + EMODEL_ELEMENT = eINSTANCE_2.eModelElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eModelElementEClass), 0), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eModelElementEClass), 0), 62); + ENAMED_ELEMENT = eINSTANCE_2.eNamedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eNamedElementEClass), 0), 35); + EOBJECT = eINSTANCE_2.eObjectEClass; + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 1), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 2), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 3), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 4), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 5), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 6), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 7), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 8), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 9), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 10), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 11), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 12), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 13), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 14), 62); + EOPERATION = eINSTANCE_2.eOperationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 2), 19); + EOPERATION__EEXCEPTIONS = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 4), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 1), 62); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 1), 19); + EPACKAGE = eINSTANCE_2.ePackageEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 2), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 4), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 5), 19); + castTo($get_20($getEOperations(eINSTANCE_2.ePackageEClass), 0), 62); + EPARAMETER = eINSTANCE_2.eParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eParameterEClass), 0), 19); + EREFERENCE = eINSTANCE_2.eReferenceEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 4), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 5), 19); + ESTRUCTURAL_FEATURE = eINSTANCE_2.eStructuralFeatureEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 3), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 4), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 5), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 6), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 7), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 0), 62); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 1), 62); + ETYPED_ELEMENT = eINSTANCE_2.eTypedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 2), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 3), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 4), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 5), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 6), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 7), 19); + ESTRING_TO_STRING_MAP_ENTRY = eINSTANCE_2.eStringToStringMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 1), 35); + EGENERIC_TYPE = eINSTANCE_2.eGenericTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 0), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 1), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 2), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 3), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 4), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 5), 19); + castTo($get_20($getEOperations(eINSTANCE_2.eGenericTypeEClass), 0), 62); + ETYPE_PARAMETER = eINSTANCE_2.eTypeParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypeParameterEClass), 0), 19); + EJAVA_OBJECT = eINSTANCE_2.eJavaObjectEDataType; +} + +var EANNOTATION, EATTRIBUTE, ECLASS, ECLASSIFIER, ECLASS__ESUPER_TYPES, EDATA_TYPE, EENUM, EENUM_LITERAL, EFACTORY, EGENERIC_TYPE, EJAVA_OBJECT, EMODEL_ELEMENT, ENAMED_ELEMENT, EOBJECT, EOPERATION, EOPERATION__EEXCEPTIONS, EPACKAGE, EPARAMETER, EREFERENCE, ESTRING_TO_STRING_MAP_ENTRY, ESTRUCTURAL_FEATURE, ETYPED_ELEMENT, ETYPE_PARAMETER; +var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry'); +function BasicEObjectImpl$1(val$eAttribute, val$value){ + this.val$eAttribute1 = val$eAttribute; + this.val$value2 = val$value; +} + +defineClass(545, 1, {76:1}, BasicEObjectImpl$1); +_.getEStructuralFeature = function getEStructuralFeature(){ + return this.val$eAttribute1; +} +; +_.getValue = function getValue_12(){ + return this.val$value2; +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/1', 545); +function BasicEObjectImpl$4(this$0, val$eFeature){ + this.this$01 = this$0; + this.val$eFeature2 = val$eFeature; +} + +defineClass(1040, 1, $intern_150, BasicEObjectImpl$4); +_.get_6 = function get_61(resolve){ + return $eGet_1(this.this$01, this.val$eFeature2, resolve); +} +; +_.isSet_0 = function isSet_1(){ + return $eIsSet_0(this.this$01, this.val$eFeature2); +} +; +_.set_1 = function set_29(newValue){ + $eSet_0(this.this$01, this.val$eFeature2, newValue); +} +; +_.unset = function unset(){ + $eUnset_0(this.this$01, this.val$eFeature2); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/4', 1040); +function $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl = emptyMethod; + NO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +defineClass(2081, 1, {114:1}); +_.allocateSettings = function allocateSettings(dynamicFeatureCount){ + this.eSettings = dynamicFeatureCount == 0?NO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, dynamicFeatureCount, 5, 1); +} +; +_.dynamicGet = function dynamicGet_0(dynamicFeatureID){ + return this.eSettings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet_0(dynamicFeatureID, value_0){ + this.eSettings[dynamicFeatureID] = value_0; +} +; +_.dynamicUnset = function dynamicUnset_0(dynamicFeatureID){ + this.eSettings[dynamicFeatureID] = null; +} +; +_.getEClass = function getEClass(){ + return this.eClass; +} +; +_.getEContents = function getEContents(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEProxyURI = function getEProxyURI(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEResource = function getEResource(){ + return this.eResource; +} +; +_.hasSettings = function hasSettings(){ + return this.eSettings != null; +} +; +_.setEClass = function setEClass(eClass){ + this.eClass = eClass; +} +; +_.setEContents = function setEContents(eContents){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEProxyURI = function setEProxyURI(eProxyURI){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEResource = function setEResource(eResource){ + this.eResource = eResource; +} +; +var NO_SETTINGS; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderBaseImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderBaseImpl', 2081); +function BasicEObjectImpl$EPropertiesHolderImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(); +} + +defineClass(192, 2081, {114:1}, BasicEObjectImpl$EPropertiesHolderImpl); +_.getEContents = function getEContents_0(){ + return this.eContents; +} +; +_.getEProxyURI = function getEProxyURI_0(){ + return this.eProxyURI; +} +; +_.setEContents = function setEContents_0(eContents){ + this.eContents = eContents; +} +; +_.setEProxyURI = function setEProxyURI_0(eProxyURI){ + this.eProxyURI = eProxyURI; +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderImpl', 192); +function EObjectImpl(){ +} + +defineClass(516, 99, $intern_139, EObjectImpl); +_.eBasicAdapters = function eBasicAdapters_2(){ + return this.eAdapters; +} +; +_.eBasicProperties = function eBasicProperties_1(){ + return this.eProperties; +} +; +_.eBasicSetContainer = function eBasicSetContainer_4(newContainer, newContainerFeatureID){ + this.eContainer = newContainer; + this.eContainerFeatureID = newContainerFeatureID; +} +; +_.eClass_0 = function eClass_2(){ + return (this.eFlags & 2) == 0?this.eStaticClass():this.eProperties_0().getEClass(); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_2(){ + return this.eContainerFeatureID; +} +; +_.eDeliver = function eDeliver_2(){ + return (this.eFlags & 1) != 0; +} +; +_.eInternalContainer = function eInternalContainer_3(){ + return this.eContainer; +} +; +_.eIsProxy = function eIsProxy_1(){ + return (this.eFlags & 4) != 0; +} +; +_.eProperties_0 = function eProperties_2(){ + return !this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties; +} +; +_.eSetClass = function eSetClass_1(eClass){ + this.eProperties_0().setEClass(eClass); + eClass?(this.eFlags |= 2):(this.eFlags &= -3); +} +; +_.eSetProxyURI = function eSetProxyURI_2(uri_0){ + this.eProperties_0().setEProxyURI(uri_0); + uri_0?(this.eFlags |= 4):(this.eFlags &= -5); +} +; +_.eStaticClass = function eStaticClass_15(){ + return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; +} +; +_.eContainerFeatureID = 0; +_.eFlags = 1; +var Lorg_eclipse_emf_ecore_impl_EObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EObjectImpl', 516); +function $clinit_DynamicEObjectImpl(){ + $clinit_DynamicEObjectImpl = emptyMethod; + ENO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function DynamicEObjectImpl(eClass){ + $clinit_DynamicEObjectImpl(); + EObjectImpl.call(this); + this.eSetClass(eClass); +} + +defineClass(798, 516, {110:1, 94:1, 93:1, 58:1, 114:1, 54:1, 99:1}, DynamicEObjectImpl); +_.dynamicGet = function dynamicGet_1(dynamicFeatureID){ + return this.eSettings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet_1(dynamicFeatureID, value_0){ + this.eSettings[dynamicFeatureID] = value_0; +} +; +_.dynamicUnset = function dynamicUnset_1(dynamicFeatureID){ + this.eSettings[dynamicFeatureID] = null; +} +; +_.eClass_0 = function eClass_3(){ + return this.eClass; +} +; +_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_1(eStructuralFeature){ + return $getFeatureID(this.eClass, eStructuralFeature); +} +; +_.eDynamicClass = function eDynamicClass_1(){ + return this.eClass; +} +; +_.eHasSettings = function eHasSettings_1(){ + return this.eSettings != null; +} +; +_.eProperties_0 = function eProperties_3(){ + !this.eProperties && (this.eProperties = new DynamicEObjectImpl$DynamicEPropertiesHolderImpl); + return this.eProperties; +} +; +_.eSetClass = function eSetClass_2(eClass){ + this.eClass = eClass; +} +; +_.eSettings_0 = function eSettings_1(){ + var size_0; + if (this.eSettings == null) { + size_0 = $getFeatureCount(this.eClass); + this.eSettings = size_0 == 0?ENO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + } + return this; +} +; +_.eStaticFeatureCount = function eStaticFeatureCount_0(){ + return 0; +} +; +var ENO_SETTINGS; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl', 798); +function DynamicEObjectImpl$BasicEMapEntry(eClass){ + $clinit_DynamicEObjectImpl(); + DynamicEObjectImpl.call(this, eClass); + this.hash = -1; +} + +defineClass(1522, 798, {110:1, 44:1, 94:1, 93:1, 136:1, 58:1, 114:1, 54:1, 99:1}, DynamicEObjectImpl$BasicEMapEntry); +_.equals_0 = function equals_223(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_83(){ + return getObjectIdentityHashCode(this); +} +; +_.eSetClass = function eSetClass_3(eClass){ + this.eClass = eClass; + this.keyFeature = $getEStructuralFeature_0(eClass, 'key'); + this.valueFeature = $getEStructuralFeature_0(eClass, 'value'); +} +; +_.getHash = function getHash_1(){ + var theKey; + if (this.hash == -1) { + theKey = $eGet_2(this, this.keyFeature); + this.hash = theKey == null?0:hashCode__I__devirtual$(theKey); + } + return this.hash; +} +; +_.getKey = function getKey_10(){ + return $eGet_2(this, this.keyFeature); +} +; +_.getValue = function getValue_13(){ + return $eGet_2(this, this.valueFeature); +} +; +_.setHash = function setHash_1(hash){ + this.hash = hash; +} +; +_.setKey = function setKey_1(key){ + $eSet_0(this, this.keyFeature, key); +} +; +_.setValue = function setValue_13(value_0){ + var result; + result = $eGet_2(this, this.valueFeature); + $eSet_0(this, this.valueFeature, value_0); + return result; +} +; +_.hash = 0; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$BasicEMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/BasicEMapEntry', 1522); +function DynamicEObjectImpl$DynamicEPropertiesHolderImpl(){ +} + +defineClass(1523, 1, {114:1}, DynamicEObjectImpl$DynamicEPropertiesHolderImpl); +_.allocateSettings = function allocateSettings_0(maximumDynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicGet = function dynamicGet_2(dynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicSet = function dynamicSet_2(dynamicFeatureID, value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicUnset = function dynamicUnset_2(dynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEClass = function getEClass_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEContents = function getEContents_1(){ + return this.eContents; +} +; +_.getEProxyURI = function getEProxyURI_1(){ + return this.eProxyURI; +} +; +_.getEResource = function getEResource_0(){ + return this.eResource; +} +; +_.hasSettings = function hasSettings_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEClass = function setEClass_0(eClass){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEContents = function setEContents_1(eContents){ + this.eContents = eContents; +} +; +_.setEProxyURI = function setEProxyURI_1(eProxyURI){ + this.eProxyURI = eProxyURI; +} +; +_.setEResource = function setEResource_0(eResource){ + this.eResource = eResource; +} +; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$DynamicEPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/DynamicEPropertiesHolderImpl', 1523); +function $basicSetEModelElement(this$static, newEModelElement, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newEModelElement, 54), 3, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_5(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 3) { + return this$static.eContainer.eInverseRemove(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getContents(this$static){ + !this$static.contents && (this$static.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this$static, 4)); + return this$static.contents; +} + +function $getEModelElement(this$static){ + if (this$static.eFlags_0 >> 16 != 3) + return null; + return castTo(this$static.eContainer, 155); +} + +function $setEModelElement(this$static, newEModelElement){ + var eContainerFeatureID, msgs; + if (newEModelElement != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newEModelElement) { + if (isAncestor(this$static, newEModelElement)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_27(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newEModelElement && (msgs = castTo(newEModelElement, 54).eInverseAdd(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs)); + msgs = $basicSetEModelElement(this$static, newEModelElement, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newEModelElement, newEModelElement)); +} + +function $setSource_2(this$static, newSource){ + $setSourceGen(this$static, newSource == null?null:(checkCriticalNotNull(newSource) , newSource)); +} + +function $setSourceGen(this$static, newSource){ + var oldSource; + oldSource = this$static.source; + this$static.source = newSource; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldSource, this$static.source)); +} + +function $toString_27(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (source: '; + $append_3(result, this$static.source); + result.string += ')'; + return result.string; +} + +function EAnnotationImpl(){ +} + +defineClass(519, 158, {110:1, 94:1, 93:1, 598:1, 155:1, 58:1, 114:1, 54:1, 99:1, 519:1, 158:1, 119:1, 120:1}, EAnnotationImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_6(msgs){ + return $eBasicRemoveFromContainerFeature_5(this, msgs); +} +; +_.eGet = function eGet_17(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.source; + case 2: + return coreType?(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , this.details):(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $map_0(this.details)); + case 3: + return $getEModelElement(this); + case 4: + return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , this.contents; + case 5: + return !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)) , this.references; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EANNOTATION:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_11(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 3: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetEModelElement(this, castTo(otherEnd, 155), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_12(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 2: + return !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $basicRemove_1(this.details, otherEnd, msgs); + case 3: + return $basicSetEModelElement(this, null, msgs); + case 4: + return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , $basicRemove_0(this.contents, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_16(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.source != null; + case 2: + return !!this.details && this.details.size_0 != 0; + case 3: + return !!$getEModelElement(this); + case 4: + return !!this.contents && this.contents.size_0 != 0; + case 5: + return !!this.references && this.references.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.eSet = function eSet_15(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setSource_2(this, castToString(newValue)); + return; + case 2: + !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); + $set_13(this.details, newValue); + return; + case 3: + $setEModelElement(this, castTo(newValue, 155)); + return; + case 4: + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $clear_13(this.contents); + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $addAll_9(this.contents, castTo(newValue, 16)); + return; + case 5: + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $clear_13(this.references); + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $addAll_9(this.references, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EANNOTATION:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_16(){ + return $clinit_EcorePackage$Literals() , EANNOTATION; +} +; +_.eUnset = function eUnset_15(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setSourceGen(this, null); + return; + case 2: + !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); + this.details.delegateEList.clear_0(); + return; + case 3: + $setEModelElement(this, null); + return; + case 4: + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $clear_13(this.contents); + return; + case 5: + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $clear_13(this.references); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.toString_0 = function toString_145(){ + return $toString_27(this); +} +; +_.source = null; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl', 519); +function $addUnique_7(this$static, index_0, object){ + castTo(this$static.delegateEList, 71).addUnique(index_0, object); +} + +function $basicAdd_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 71).basicAdd(object, notifications); +} + +function $basicRemove_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 71).basicRemove(object, notifications); +} + +function $set_13(this$static, value_0){ + var mapValue; + if (instanceOf(value_0, 85)) { + castTo(this$static.delegateEList, 79).unset(); + mapValue = castTo(value_0, 85); + $putAll_1(this$static, mapValue); + } + else { + castTo(this$static.delegateEList, 79).set_1(value_0); + } +} + +function EcoreEMap(entryEClass, entryClass, owner, featureID){ + this.initializeDelegateEList(); + this.entryClass = entryClass; + this.entryEClass = entryEClass; + this.delegateEList = new EcoreEMap$DelegateEObjectContainmentEList(this, entryClass, owner, featureID); +} + +defineClass(141, 721, $intern_151, EcoreEMap); +_.addUnique = function addUnique_9(index_0, object){ + $addUnique_7(this, index_0, castTo(object, 44)); +} +; +_.basicAdd = function basicAdd(object, notifications){ + return $basicAdd_1(this, castTo(object, 44), notifications); +} +; +_.basicGet = function basicGet_0(index_0){ + return castTo(castTo(this.delegateEList, 71).basicGet(index_0), 136); +} +; +_.basicIterator = function basicIterator_1(){ + return castTo(this.delegateEList, 71).basicIterator(); +} +; +_.basicListIterator = function basicListIterator_3(){ + return castTo(this.delegateEList, 71).basicListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_4(index_0){ + return castTo(this.delegateEList, 71).basicListIterator_0(index_0); +} +; +_.basicRemove = function basicRemove(object, notifications){ + return $basicRemove_1(this, object, notifications); +} +; +_.get_6 = function get_62(resolve){ + return castTo(this.delegateEList, 79).get_6(resolve); +} +; +_.initializeDelegateEList = function initializeDelegateEList_0(){ +} +; +_.isSet_0 = function isSet_2(){ + return castTo(this.delegateEList, 79).isSet_0(); +} +; +_.newEntry = function newEntry_1(hash, key, value_0){ + var entry; + entry = castTo($getEPackage(this.entryEClass).getEFactoryInstance().create_3(this.entryEClass), 136); + entry.setHash(hash); + entry.setKey(key); + entry.setValue(value_0); + return entry; +} +; +_.newList = function newList_0(){ + return new EcoreEMap$1(this); +} +; +_.set_1 = function set_30(value_0){ + $set_13(this, value_0); +} +; +_.unset = function unset_0(){ + castTo(this.delegateEList, 79).unset(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap', 141); +function EAnnotationImpl$1($anonymous0, $anonymous1, $anonymous2){ + EcoreEMap.call(this, $anonymous0, $anonymous1, $anonymous2, 2); +} + +defineClass(165, 141, $intern_151, EAnnotationImpl$1); +_.ensureEntryDataExists = function ensureEntryDataExists_0(){ + var eList, entry, entry$iterator, hash, index_0, result; + if (this.entryData == null) { + result = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_148, 66, 2 * this.size_0 + 1, 0, 1); + for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 136); + hash = entry.getHash(); + index_0 = (hash & $intern_0) % result.length; + eList = result[index_0]; + !eList && (eList = result[index_0] = new EcoreEMap$1(this)); + eList.add_2(entry); + } + this.entryData = result; + } +} +; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl/1', 165); +function $basicSetEGenericType(this$static, newEGenericType, msgs){ + var newEType, notification, oldEGenericType; + oldEGenericType = this$static.eGenericType; + this$static.eGenericType = newEGenericType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 9, oldEGenericType, newEGenericType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (!newEGenericType) { + !!this$static.eType && (msgs = this$static.setEType(null, msgs)); + } + else { + newEType = newEGenericType.eRawType; + newEType != this$static.eType && (msgs = this$static.setEType(newEType, msgs)); + } + return msgs; +} + +function $basicUnsetEGenericType(this$static, msgs){ + msgs = this$static.setEType(null, msgs); + return $basicSetEGenericType(this$static, null, msgs); +} + +function $getEType(this$static){ + var oldEType; + if ((this$static.eFlags & 1) == 0 && !!this$static.eType && this$static.eType.eIsProxy()) { + oldEType = castTo(this$static.eType, 54); + this$static.eType = castTo($eResolveProxy(this$static, oldEType), 142); + this$static.eType != oldEType && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldEType, this$static.eType)); + } + return this$static.eType; +} + +function $setEGenericType(this$static, newEGenericType, msgs){ + var notification; + if (newEGenericType != this$static.eGenericType) { + !!this$static.eGenericType && (msgs = $eInverseRemove(this$static.eGenericType, this$static, -10, msgs)); + !!newEGenericType && (msgs = $eInverseAdd(newEGenericType, this$static, -10, msgs)); + msgs = $basicSetEGenericType(this$static, newEGenericType, msgs); + } + else if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 9, newEGenericType, newEGenericType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $setEType(this$static, newEType){ + var eGenericType, msgs, newEGenericType; + msgs = this$static.setEType(newEType, null); + newEGenericType = null; + if (newEType) { + newEGenericType = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(newEGenericType, this$static.eType); + } + msgs = $setEGenericType(this$static, newEGenericType, msgs); + !!msgs && msgs.dispatch_0(); +} + +function $setEType_0(this$static, newEType, msgs){ + var notification, oldEType; + oldEType = this$static.eType; + this$static.eType = newEType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 8, oldEType, this$static.eType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $setLowerBound(this$static, newLowerBound){ + var oldLowerBound; + oldLowerBound = this$static.lowerBound; + this$static.lowerBound = newLowerBound; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 4, oldLowerBound, this$static.lowerBound)); +} + +function $setOrdered(this$static, newOrdered){ + var oldOrdered; + oldOrdered = (this$static.eFlags & 256) != 0; + newOrdered?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 2, oldOrdered, newOrdered)); +} + +function $setUnique_2(this$static, newUnique){ + var oldUnique; + oldUnique = (this$static.eFlags & 512) != 0; + newUnique?(this$static.eFlags |= 512):(this$static.eFlags &= -513); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 3, oldUnique, newUnique)); +} + +function $setUpperBound(this$static, newUpperBound){ + var oldUpperBound; + oldUpperBound = this$static.upperBound; + this$static.upperBound = newUpperBound; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 5, oldUpperBound, this$static.upperBound)); +} + +function $toString_28(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_21(this$static); + result = new StringBuffer_1($toString_21(this$static)); + result.string += ' (ordered: '; + $append_4(result, (this$static.eFlags & 256) != 0); + result.string += ', unique: '; + $append_4(result, (this$static.eFlags & 512) != 0); + result.string += ', lowerBound: '; + $append_1(result, this$static.lowerBound); + result.string += ', upperBound: '; + $append_1(result, this$static.upperBound); + result.string += ')'; + return result.string; +} + +function ETypedElementImpl(){ + this.eFlags |= 256; + this.eFlags |= 512; +} + +defineClass(292, 448, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 114:1, 481:1, 54:1, 99:1, 158:1, 292:1, 119:1, 120:1}); +_.eGet = function eGet_18(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_3(this.lowerBound); + case 5: + return valueOf_3(this.upperBound); + case 6: + return $clinit_Boolean() , this.isMany()?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_13(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_17(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return this.isMany(); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_16(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + this.setName(castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 17).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 17).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 142)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 89), null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_17(){ + return $clinit_EcorePackage$Literals() , ETYPED_ELEMENT; +} +; +_.eUnset = function eUnset_16(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + this.setName(null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.setUpperBound(1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_1(){ + $getEType(this); + this.eFlags |= 1; +} +; +_.getEType = function getEType(){ + return $getEType(this); +} +; +_.getUpperBound = function getUpperBound(){ + return this.upperBound; +} +; +_.isMany = function isMany(){ + var upper; + return upper = this.upperBound , upper > 1 || upper == -1; +} +; +_.isUnique = function isUnique_2(){ + return (this.eFlags & 512) != 0; +} +; +_.setEType = function setEType(newEType, msgs){ + return $setEType_0(this, newEType, msgs); +} +; +_.setUpperBound = function setUpperBound(newUpperBound){ + $setUpperBound(this, newUpperBound); +} +; +_.toString_0 = function toString_146(){ + return $toString_28(this); +} +; +_.lowerBound = 0; +_.upperBound = 1; +var Lorg_eclipse_emf_ecore_impl_ETypedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypedElementImpl', 292); +function $eBasicRemoveFromContainerFeature_6(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 17) { + return this$static.eContainer.eInverseRemove(this$static, 21, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getDefaultValue(this$static){ + var eDataType, ePackage, eType, factory, literal; + eType = $getEType(this$static); + literal = this$static.defaultValueLiteral; + if (literal == null && !!eType) { + return this$static.isMany()?null:eType.getDefaultValue(); + } + else if (instanceOf(eType, 156)) { + ePackage = eType.getEPackage(); + if (ePackage) { + factory = ePackage.getEFactoryInstance(); + if (factory != this$static.defaultValueFactory) { + eDataType = castTo(eType, 156); + if (eDataType.isSerializable()) { + try { + this$static.defaultValue = factory.createFromString(eDataType, literal); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 82)) { + this$static.defaultValue = null; + } + else + throw toJs($e0); + } + } + this$static.defaultValueFactory = factory; + } + } + return this$static.defaultValue; + } + return null; +} + +function $getEContainingClass(this$static){ + if (this$static.eFlags_0 >> 16 != 17) + return null; + return castTo(this$static.eContainer, 29); +} + +function $getFeatureMapEntryPrototype(this$static){ + var eOpposite; + if (!this$static.prototypeFeatureMapEntry) { + eOpposite = this$static.getEOpposite(); + eOpposite?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$static, this$static, null)):this$static.isContainment()?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this$static, null)):$getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this$static)) == 1?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleContentFeatureMapEntry(this$static)):(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleFeatureMapEntry(this$static, null)); + } + return this$static.prototypeFeatureMapEntry; +} + +function $isFeatureMap(this$static){ + var eType; + if (this$static.cachedEType != this$static.eType) { + eType = $getEType(this$static); + this$static.cachedIsFeatureMap = !!eType && eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry'; + this$static.cachedEType = eType; + } + return this$static.cachedIsFeatureMap; +} + +function $setChangeable(this$static, newChangeable){ + var oldChangeable; + oldChangeable = (this$static.eFlags & $intern_35) != 0; + newChangeable?(this$static.eFlags |= $intern_35):(this$static.eFlags &= -1025); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 10, oldChangeable, newChangeable)); +} + +function $setDefaultValueLiteral(this$static, newDefaultValueLiteral){ + this$static.defaultValueFactory = null; + $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral); +} + +function $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral){ + var oldDefaultValueLiteral; + oldDefaultValueLiteral = this$static.defaultValueLiteral; + this$static.defaultValueLiteral = newDefaultValueLiteral; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 13, oldDefaultValueLiteral, this$static.defaultValueLiteral)); +} + +function $setDerived(this$static, newDerived){ + var oldDerived; + oldDerived = (this$static.eFlags & $intern_17) != 0; + newDerived?(this$static.eFlags |= $intern_17):(this$static.eFlags &= -16385); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 16, oldDerived, newDerived)); +} + +function $setFeatureID(this$static, featureID){ + this$static.featureID = featureID; +} + +function $setName_0(this$static, newName){ + instanceOf(this$static.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 90)), 4); + $setName(this$static, newName); +} + +function $setTransient(this$static, newTransient){ + var oldTransient; + oldTransient = (this$static.eFlags & $intern_62) != 0; + newTransient?(this$static.eFlags |= $intern_62):(this$static.eFlags &= -4097); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 12, oldTransient, newTransient)); +} + +function $setUnsettable(this$static, newUnsettable){ + var oldUnsettable; + oldUnsettable = (this$static.eFlags & $intern_152) != 0; + newUnsettable?(this$static.eFlags |= $intern_152):(this$static.eFlags &= -8193); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 15, oldUnsettable, newUnsettable)); +} + +function $setVolatile(this$static, newVolatile){ + var oldVolatile; + oldVolatile = (this$static.eFlags & $intern_153) != 0; + newVolatile?(this$static.eFlags |= $intern_153):(this$static.eFlags &= -2049); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 11, oldVolatile, newVolatile)); +} + +function $toString_29(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_28(this$static); + result = new StringBuffer_1($toString_28(this$static)); + result.string += ' (changeable: '; + $append_4(result, (this$static.eFlags & $intern_35) != 0); + result.string += ', volatile: '; + $append_4(result, (this$static.eFlags & $intern_153) != 0); + result.string += ', transient: '; + $append_4(result, (this$static.eFlags & $intern_62) != 0); + result.string += ', defaultValueLiteral: '; + $append_3(result, this$static.defaultValueLiteral); + result.string += ', unsettable: '; + $append_4(result, (this$static.eFlags & $intern_152) != 0); + result.string += ', derived: '; + $append_4(result, (this$static.eFlags & $intern_17) != 0); + result.string += ')'; + return result.string; +} + +function EStructuralFeatureImpl(){ + ETypedElementImpl.call(this); + this.featureID = -1; + this.defaultValue = null; + this.defaultValueFactory = null; + this.defaultValueLiteral = null; + this.eFlags |= $intern_35; +} + +defineClass(462, 292, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 179:1, 69:1, 114:1, 481:1, 54:1, 99:1, 158:1, 462:1, 292:1, 119:1, 120:1, 692:1}); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_7(msgs){ + return $eBasicRemoveFromContainerFeature_6(this, msgs); +} +; +_.eGet = function eGet_19(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_3(this.lowerBound); + case 5: + return valueOf_3(this.upperBound); + case 6: + return $clinit_Boolean() , this.isMany()?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_35) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_153) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_62) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_152) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_12(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 17: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_6(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 17, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_14(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 17: + return $eBasicSetContainer(this, null, 17, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_18(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return this.isMany(); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_35) == 0; + case 11: + return (this.eFlags & $intern_153) != 0; + case 12: + return (this.eFlags & $intern_62) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_152) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_17(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 17).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 17).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 142)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 89), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_18(){ + return $clinit_EcorePackage$Literals() , ESTRUCTURAL_FEATURE; +} +; +_.eUnset = function eUnset_17(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 90)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.setUpperBound(1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_2(){ + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.getContainerClass = function getContainerClass(){ + return this.containerClass; +} +; +_.getDefaultValue = function getDefaultValue(){ + return $getDefaultValue(this); +} +; +_.getEContainingClass = function getEContainingClass(){ + return $getEContainingClass(this); +} +; +_.getEOpposite = function getEOpposite(){ + return null; +} +; +_.getExtendedMetaData_0 = function getExtendedMetaData_0(){ + return this.eStructuralFeatureExtendedMetaData; +} +; +_.getFeatureID_0 = function getFeatureID_4(){ + return this.featureID; +} +; +_.getFeatureMapEntryPrototype = function getFeatureMapEntryPrototype(){ + return $getFeatureMapEntryPrototype(this); +} +; +_.getSettingDelegate = function getSettingDelegate(){ + var dataClass, defaultValue, eClass, eOpposite, eType, featureMapFeature, instanceClass, intrinsicDefaultValue, upper; + if (!this.settingDelegate) { + eClass = $getEContainingClass(this); + (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; + eOpposite = this.getEOpposite(); + !!eOpposite && $getFeatureCount($getEContainingClass(eOpposite)); + eType = $getEType(this); + instanceClass = eType.getInstanceClass(); + dataClass = !instanceClass?null:(instanceClass.modifiers & 1) != 0?instanceClass == Z_classLit?Ljava_lang_Boolean_2_classLit:instanceClass == I_classLit?Ljava_lang_Integer_2_classLit:instanceClass == F_classLit?Ljava_lang_Float_2_classLit:instanceClass == D_classLit?Ljava_lang_Double_2_classLit:instanceClass == J_classLit?Ljava_lang_Long_2_classLit:instanceClass == S_classLit?Ljava_lang_Short_2_classLit:instanceClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:instanceClass; + defaultValue = $getDefaultValue(this); + intrinsicDefaultValue = eType.getDefaultValue(); + getSettingDelegateFactory(this); + (this.eFlags & $intern_17) != 0 && (!!(featureMapFeature = $getMixedFeature(($clinit_ExtendedMetaData() , INSTANCE_11), eClass)) && featureMapFeature != this || !!(featureMapFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, this))))?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(this, featureMapFeature)):this.isMany()?this.isContainment()?!eOpposite?(this.eFlags & $intern_152) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(42, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(0, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(50, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(43, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(1, dataClass, this)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(44, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(2, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(41, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(45, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(3, dataClass, this)):(this.eFlags & $intern_152) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(46, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(4, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(47, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(5, dataClass, this, eOpposite)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(48, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(6, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(49, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(7, dataClass, this, eOpposite)):instanceOf(eType, 156)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & 512) != 0?(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(8, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(9, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(10, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(11, dataClass, this)):(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(12, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(13, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(14, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(15, dataClass, this)):!eOpposite?this.isResolveProxies_0()?(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(16, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(17, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(18, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(19, dataClass, this)):(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(20, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(21, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(22, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(23, dataClass, this)):(upper = eOpposite.upperBound , upper > 1 || upper == -1?this.isResolveProxies_0()?(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(24, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(25, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(26, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(27, dataClass, this, eOpposite)):(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(28, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(29, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(30, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(31, dataClass, this, eOpposite)):this.isResolveProxies_0()?(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(32, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(33, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(34, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(35, dataClass, this, eOpposite)):(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(36, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(37, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(38, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(39, dataClass, this, eOpposite))):this.isContainer()?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(castTo(eType, 29), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(castTo(eType, 29), this, eOpposite)):instanceOf(eType, 156)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & $intern_152) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(castTo(eType, 156), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(castTo(eType, 156), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):this.isContainment()?!eOpposite?(this.eFlags & $intern_152) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(castTo(eType, 29), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(castTo(eType, 29), this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(castTo(eType, 29), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(castTo(eType, 29), this)):(this.eFlags & $intern_152) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(castTo(eType, 29), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(castTo(eType, 29), this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(castTo(eType, 29), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(castTo(eType, 29), this, eOpposite)):this.isResolveProxies_0()?!eOpposite?(this.eFlags & $intern_152) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(castTo(eType, 29), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(castTo(eType, 29), this)):(this.eFlags & $intern_152) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(castTo(eType, 29), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(castTo(eType, 29), this, eOpposite)):!eOpposite?(this.eFlags & $intern_152) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(castTo(eType, 29), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(castTo(eType, 29), this)):(this.eFlags & $intern_152) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(castTo(eType, 29), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(castTo(eType, 29), this, eOpposite)); + } + return this.settingDelegate; +} +; +_.isChangeable = function isChangeable_0(){ + return (this.eFlags & $intern_35) != 0; +} +; +_.isContainer = function isContainer(){ + return false; +} +; +_.isContainment = function isContainment_0(){ + return false; +} +; +_.isDerived = function isDerived_0(){ + return (this.eFlags & $intern_17) != 0; +} +; +_.isFeatureMap_0 = function isFeatureMap_0(){ + return $isFeatureMap(this); +} +; +_.isResolveProxies_0 = function isResolveProxies_0(){ + return false; +} +; +_.isUnsettable = function isUnsettable_0(){ + return (this.eFlags & $intern_152) != 0; +} +; +_.setExtendedMetaData_0 = function setExtendedMetaData_0(eStructuralFeatureExtendedMetaData){ + this.eStructuralFeatureExtendedMetaData = eStructuralFeatureExtendedMetaData; +} +; +_.setName = function setName_0(newName){ + $setName_0(this, newName); +} +; +_.toString_0 = function toString_147(){ + return $toString_29(this); +} +; +_.cachedIsFeatureMap = false; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl', 462); +function $basicGetEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType) { + eType = this$static.eType; + instanceOf(eType, 156) && (this$static.eAttributeType = castTo(eType, 156)); + } + return this$static.eAttributeType; +} + +function $getEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType || (this$static.eFlags & 1) == 0 && this$static.eAttributeType.eIsProxy()) { + eType = $getEType(this$static); + instanceOf(eType, 156) && (this$static.eAttributeType = castTo(eType, 156)); + } + return this$static.eAttributeType; +} + +function $isMany(this$static){ + var eType, upper; + switch (this$static.effectiveIsMany) { + case -1: + { + return true; + } + + case 0: + { + upper = this$static.upperBound; + if (upper > 1 || upper == -1) { + this$static.effectiveIsMany = -1; + return true; + } + else { + eType = $getEType(this$static); + if (!!eType && ($clinit_FeatureMapUtil() , eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry')) { + this$static.effectiveIsMany = -1; + return true; + } + else { + this$static.effectiveIsMany = 1; + return false; + } + } + } + + default:case 1: + { + return false; + } + + } +} + +function $setID(this$static, newID){ + var oldID; + oldID = (this$static.eFlags & $intern_138) != 0; + newID?(this$static.eFlags |= $intern_138):(this$static.eFlags &= -32769); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldID, newID)); +} + +function $setUpperBound_0(this$static, upperBound){ + this$static.effectiveIsMany = 0; + $setUpperBound(this$static, upperBound); +} + +function EAttributeImpl(){ + EStructuralFeatureImpl.call(this); +} + +defineClass(331, 462, {110:1, 94:1, 93:1, 35:1, 155:1, 197:1, 58:1, 179:1, 69:1, 114:1, 481:1, 54:1, 99:1, 331:1, 158:1, 462:1, 292:1, 119:1, 120:1, 692:1}, EAttributeImpl); +_.eGet = function eGet_20(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_3(this.lowerBound); + case 5: + return valueOf_3(this.upperBound); + case 6: + return $clinit_Boolean() , $isMany(this)?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_35) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_153) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_62) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_152) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + case 18: + return $clinit_Boolean() , (this.eFlags & $intern_138) != 0?true:false; + case 19: + if (resolve) + return $getEAttributeType(this); + return $basicGetEAttributeType(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EATTRIBUTE:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_19(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return $isMany(this); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_35) == 0; + case 11: + return (this.eFlags & $intern_153) != 0; + case 12: + return (this.eFlags & $intern_62) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_152) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_138) != 0; + case 19: + return !!$basicGetEAttributeType(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EATTRIBUTE:eClass), featureID)); +} +; +_.eSet = function eSet_18(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 17).value_0); + return; + case 5: + $setUpperBound_0(this, castTo(newValue, 17).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 142)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 89), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + case 18: + $setID(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EATTRIBUTE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_19(){ + return $clinit_EcorePackage$Literals() , EATTRIBUTE; +} +; +_.eUnset = function eUnset_18(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 90)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.effectiveIsMany = 0; + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + case 18: + $setID(this, false); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EATTRIBUTE:eClass), featureID)); +} +; +_.freeze = function freeze_3(){ + $getEAttributeType(this); + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.isMany = function isMany_0(){ + return $isMany(this); +} +; +_.setEType = function setEType_0(newEType, msgs){ + this.effectiveIsMany = 0; + this.eAttributeType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.setUpperBound = function setUpperBound_0(upperBound){ + $setUpperBound_0(this, upperBound); +} +; +_.toString_0 = function toString_148(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_29(this); + result = new StringBuffer_1($toString_29(this)); + result.string += ' (iD: '; + $append_4(result, (this.eFlags & $intern_138) != 0); + result.string += ')'; + return result.string; +} +; +_.effectiveIsMany = 0; +var Lorg_eclipse_emf_ecore_impl_EAttributeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAttributeImpl', 331); +function $basicGetEPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 241); +} + +function $basicSetInstanceClassName(this$static, value_0){ + if (this$static.instanceClassName == null && this$static.generatedInstanceClassName != null) { + this$static.instanceClassName = this$static.generatedInstanceClassName; + this$static.generatedInstanceClassName = null; + } + $setInstanceClassNameGen(this$static, value_0 == null?null:(checkCriticalNotNull(value_0) , value_0)); + !!this$static.instanceClass && this$static.setInstanceClassGen(null); +} + +function $basicSetInstanceTypeName(this$static, newInstanceTypeName){ + var oldInstanceTypeName; + oldInstanceTypeName = this$static.instanceTypeName; + this$static.instanceTypeName = newInstanceTypeName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); +} + +function $eBasicRemoveFromContainerFeature_7(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 6) { + return this$static.eContainer.eInverseRemove(this$static, 5, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getEPackage(this$static){ + var result; + if (this$static.ePackage) { + return this$static.ePackage; + } + else { + result = $getEPackageGen(this$static); + !!result && !result.eIsProxy() && (this$static.ePackage = result); + return result; + } +} + +function $getEPackageGen(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo($eContainer(this$static), 241); +} + +function $getInstanceClass(this$static){ + var primitiveClass; + if (!this$static.instanceClass && (this$static.instanceClassName != null || this$static.generatedInstanceClassName != null)) { + primitiveClass = $getPrimitiveOrArrayClass(this$static); + if (primitiveClass) { + this$static.setInstanceClassGen(primitiveClass); + } + else { + try { + this$static.setInstanceClassGen(null); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 63)) + throw toJs($e0); + } + } + } + return this$static.instanceClass; +} + +function $getPrimitiveOrArrayClass(this$static){ + var arrayIndex, className, componentClassName, result; + className = this$static.instanceClassName != null?this$static.instanceClassName:this$static.generatedInstanceClassName; + arrayIndex = $indexOf_1(className, fromCodePoint(91)); + if (arrayIndex != -1) { + componentClassName = (checkCriticalStringBounds(0, arrayIndex, className.length) , className.substr(0, arrayIndex)); + result = new StringBuffer; + do + result.string += '['; + while ((arrayIndex = $indexOf_0(className, 91, ++arrayIndex)) != -1); + if ($equals_5(componentClassName, 'boolean')) + result.string += 'Z'; + else if ($equals_5(componentClassName, 'byte')) + result.string += 'B'; + else if ($equals_5(componentClassName, 'char')) + result.string += 'C'; + else if ($equals_5(componentClassName, 'double')) + result.string += 'D'; + else if ($equals_5(componentClassName, 'float')) + result.string += 'F'; + else if ($equals_5(componentClassName, 'int')) + result.string += 'I'; + else if ($equals_5(componentClassName, 'long')) + result.string += 'J'; + else if ($equals_5(componentClassName, 'short')) + result.string += 'S'; + else { + result.string += 'L'; + result.string += '' + componentClassName; + result.string += ';'; + } + try { + return null; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 63)) + throw toJs($e0); + } + } + else if ($indexOf_1(className, fromCodePoint(46)) == -1) { + if ($equals_5(className, 'boolean')) + return Z_classLit; + else if ($equals_5(className, 'byte')) + return B_classLit; + else if ($equals_5(className, 'char')) + return C_classLit; + else if ($equals_5(className, 'double')) + return D_classLit; + else if ($equals_5(className, 'float')) + return F_classLit; + else if ($equals_5(className, 'int')) + return I_classLit; + else if ($equals_5(className, 'long')) + return J_classLit; + else if ($equals_5(className, 'short')) + return S_classLit; + } + return null; +} + +function $isInstance(this$static, object){ + var helper, instanceClass; + if (object != null) { + instanceClass = $getInstanceClass(this$static); + if (instanceClass) { + if ((instanceClass.modifiers & 1) != 0) { + if (instanceClass == Z_classLit) { + return instanceOfBoolean(object); + } + else if (instanceClass == I_classLit) { + return instanceOf(object, 17); + } + else if (instanceClass == F_classLit) { + return instanceOf(object, 161); + } + else if (instanceClass == B_classLit) { + return instanceOf(object, 222); + } + else if (instanceClass == C_classLit) { + return instanceOf(object, 180); + } + else if (instanceClass == D_classLit) { + return instanceOfDouble(object); + } + else if (instanceClass == S_classLit) { + return instanceOf(object, 191); + } + else if (instanceClass == J_classLit) { + return instanceOf(object, 168); + } + } + else { + return $clinit_Reflect() , helper = castTo($get_10(HELPER_REGISTRY, instanceClass), 57) , !helper || helper.isInstance(object); + } + } + else if (instanceOf(object, 58)) { + return this$static.dynamicIsInstance(castTo(object, 58)); + } + } + return false; +} + +function $setGeneratedInstanceClass(this$static, isGenerated){ + if (isGenerated) { + if (this$static.generatedInstanceClassName == null) { + this$static.generatedInstanceClassName = this$static.instanceClassName; + this$static.instanceClassName = null; + } + } + else if (this$static.generatedInstanceClassName != null) { + this$static.instanceClassName = this$static.generatedInstanceClassName; + this$static.generatedInstanceClassName = null; + } +} + +function $setInstanceClass(this$static, value_0){ + var component, indices, name_0; + if (!value_0) { + $setInstanceClassNameGen(this$static, null); + $basicSetInstanceTypeName(this$static, null); + } + else if ((value_0.modifiers & 4) != 0) { + indices = '[]'; + for (component = value_0.componentType;; component = component.componentType) { + if ((component.modifiers & 4) == 0) { + name_0 = $intern(($ensureNamesAreInitialized(component) , component.typeName + indices)); + $setInstanceClassNameGen(this$static, name_0); + $basicSetInstanceTypeName(this$static, name_0); + break; + } + indices += '[]'; + } + } + else { + name_0 = $intern(($ensureNamesAreInitialized(value_0) , value_0.typeName)); + $setInstanceClassNameGen(this$static, name_0); + $basicSetInstanceTypeName(this$static, name_0); + } + this$static.setInstanceClassGen(value_0); +} + +function $setInstanceClassName(this$static, value_0){ + $basicSetInstanceClassName(this$static, value_0); + $basicSetInstanceTypeName(this$static, this$static.instanceClassName); +} + +function $setInstanceClassNameGen(this$static, newInstanceClassName){ + var oldInstanceClassName; + oldInstanceClassName = this$static.instanceClassName; + this$static.instanceClassName = newInstanceClassName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldInstanceClassName, this$static.instanceClassName)); +} + +function $setInstanceTypeName(this$static, newInstanceTypeName){ + var end, index_0, newInstanceClassName, oldInstanceTypeName; + oldInstanceTypeName = this$static.instanceTypeName; + if (newInstanceTypeName == null) { + this$static.instanceTypeName = null; + $basicSetInstanceClassName(this$static, null); + } + else { + this$static.instanceTypeName = (checkCriticalNotNull(newInstanceTypeName) , newInstanceTypeName); + index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(60)); + if (index_0 != -1) { + newInstanceClassName = (checkCriticalStringBounds(0, index_0, newInstanceTypeName.length) , newInstanceTypeName.substr(0, index_0)); + $indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1 && !$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short') && (newInstanceClassName = 'java.lang.Object'); + end = $lastIndexOf(newInstanceTypeName, fromCodePoint(62)); + end != -1 && (newInstanceClassName += '' + (checkCriticalStringElementIndex(end + 1, newInstanceTypeName.length + 1) , newInstanceTypeName.substr(end + 1))); + $basicSetInstanceClassName(this$static, newInstanceClassName); + } + else { + newInstanceClassName = newInstanceTypeName; + if ($indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1) { + index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(91)); + index_0 != -1 && (newInstanceClassName = (checkCriticalStringBounds(0, index_0, newInstanceTypeName.length) , newInstanceTypeName.substr(0, index_0))); + if (!$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short')) { + newInstanceClassName = 'java.lang.Object'; + index_0 != -1 && (newInstanceClassName += '' + (checkCriticalStringElementIndex(index_0, newInstanceTypeName.length + 1) , newInstanceTypeName.substr(index_0))); + } + else { + newInstanceClassName = newInstanceTypeName; + } + } + $basicSetInstanceClassName(this$static, newInstanceClassName); + newInstanceClassName == newInstanceTypeName && (this$static.instanceTypeName = this$static.instanceClassName); + } + } + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); +} + +function $setName_1(this$static, newName){ + instanceOf(this$static.eContainer, 184) && (castTo(this$static.eContainer, 184).eNameToEClassifierMap = null); + $setName(this$static, newName); +} + +function $toString_30(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_21(this$static); + result = new StringBuffer_1($toString_21(this$static)); + result.string += ' (instanceClassName: '; + $append_3(result, this$static.instanceClassName); + result.string += ')'; + return result.string; +} + +defineClass(364, 448, {110:1, 94:1, 93:1, 142:1, 155:1, 197:1, 58:1, 114:1, 54:1, 99:1, 364:1, 158:1, 119:1, 120:1, 691:1}); +_.dynamicIsInstance = function dynamicIsInstance(eObject){ + return eObject.eClass_0() == this; +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_8(msgs){ + return $eBasicRemoveFromContainerFeature_7(this, msgs); +} +; +_.eBasicSetContainer = function eBasicSetContainer_5(newContainer, newContainerFeatureID){ + this.ePackage = null; + this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; + this.eContainer = newContainer; +} +; +_.eGet = function eGet_21(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return this.getDefaultValue(); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_13(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_15(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_20(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return this.getDefaultValue() != null; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_19(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_20(){ + return $clinit_EcorePackage$Literals() , ECLASSIFIER; +} +; +_.eUnset = function eUnset_19(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 184) && (castTo(this.eContainer, 184).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getClassifierID = function getClassifierID(){ + var ePackage; + return this.metaObjectID == -1 && (this.metaObjectID = (ePackage = $getEPackage(this) , ePackage?$indexOf_6(ePackage.getEClassifiers(), this):-1)) , this.metaObjectID; +} +; +_.getDefaultValue = function getDefaultValue_0(){ + return null; +} +; +_.getEPackage = function getEPackage(){ + return $getEPackage(this); +} +; +_.getExtendedMetaData_1 = function getExtendedMetaData_1(){ + return this.eClassifierExtendedMetaData; +} +; +_.getInstanceClass = function getInstanceClass(){ + return $getInstanceClass(this); +} +; +_.getInstanceClassName = function getInstanceClassName(){ + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; +} +; +_.getInstanceTypeName = function getInstanceTypeName(){ + return this.instanceTypeName; +} +; +_.isInstance = function isInstance_0(object){ + return $isInstance(this, object); +} +; +_.setExtendedMetaData_1 = function setExtendedMetaData_1(eClassifierExtendedMetaData){ + this.eClassifierExtendedMetaData = eClassifierExtendedMetaData; +} +; +_.setGeneratedInstanceClass = function setGeneratedInstanceClass(isGenerated){ + $setGeneratedInstanceClass(this, isGenerated); +} +; +_.setInstanceClassGen = function setInstanceClassGen(newInstanceClass){ + this.instanceClass = newInstanceClass; +} +; +_.setName = function setName_1(newName){ + $setName_1(this, newName); +} +; +_.toString_0 = function toString_149(){ + return $toString_30(this); +} +; +_.instanceClass = null; +_.instanceClassName = null; +_.metaObjectID = -1; +var Lorg_eclipse_emf_ecore_impl_EClassifierImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassifierImpl', 364); +function $clinit_EClassImpl(){ + $clinit_EClassImpl = emptyMethod; + COMPUTATION_IN_PROGRESS = new EClassImpl$MyHashSet; + NO_EALL_STRUCTURE_FEATURES_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_154, 179, 0, []); + NO_EALL_OPERATIONS_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, 1), $intern_155, 62, 0, []); +} + +function $getEAllAttributes(this$static){ + var attributes, computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, result; + if (!this$static.eAllAttributes) { + this$static.eIDAttribute = null; + result = new EClassImpl$2(this$static); + attributes = new EClassImpl$3; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 29); + $addAll_9(result, $getEAllAttributes(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 179); + instanceOf(eStructuralFeature, 331) && $add_21(attributes, castTo(eStructuralFeature, 35)); + } + $shrink_0(attributes); + this$static.eAttributes = new EClassImpl$4(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 7), 19) , attributes.size_0), attributes.data_0); + $addAll_9(result, this$static.eAttributes); + $shrink_0(result); + this$static.eAllAttributes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 19) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -2; + } + return this$static.eAllAttributes; +} + +function $getEAllContainments(this$static){ + var eReference, eReference$iterator, result; + if (!this$static.eAllContainments) { + result = new EClassImpl$7; + for (eReference$iterator = new AbstractEList$NonResolvingEIterator($getEAllReferences(this$static)); eReference$iterator.cursor != eReference$iterator.this$01_2.size_1();) { + eReference = castTo($doNext_0(eReference$iterator), 19); + (eReference.eFlags & $intern_138) != 0 && $add_21(result, eReference); + } + $shrink_0(result); + this$static.eAllContainments = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 8), 19) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -9; + } + return this$static.eAllContainments; +} + +function $getEAllGenericSuperTypes(this$static){ + var computationInProgress, eGenericSuperType, eGenericSuperType$iterator, eSuperType, old, result; + if (!this$static.eAllGenericSuperTypes) { + result = new EClassImpl$1EGenericSuperTypeEList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eGenericSuperType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this$static)); eGenericSuperType$iterator.cursor != eGenericSuperType$iterator.this$01_2.size_1();) { + eGenericSuperType = castTo($doNext(eGenericSuperType$iterator), 89); + eSuperType = $getERawType(eGenericSuperType); + instanceOf(eSuperType, 90) && $addAll_9(result, $getEAllGenericSuperTypes(castTo(eSuperType, 29))); + $add_21(result, eGenericSuperType); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + $eliminateEquivalentDuplicates(result); + $shrink_0(result); + this$static.eAllGenericSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 15), 19) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -33; + } + return this$static.eAllGenericSuperTypes; +} + +function $getEAllOperations(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, i, old, operationID, result; + if (!this$static.eAllOperations) { + result = new EClassImpl$6; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 29); + $addAll_9(result, $getEAllOperations(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + operationID = result.size_0; + for (i = (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , new AbstractEList$EIterator(this$static.eOperations)); i.cursor != i.this$01_2.size_1(); ++operationID) { + castTo($doNext(i), 411); + } + $addAll_9(result, (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , this$static.eOperations)); + $shrink_0(result); + this$static.eAllOperations = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 9), 19) , result.size_0), result.data_0); + this$static.eAllOperationsData = castTo(result.data_0, 688); + this$static.eAllOperationsData == null && (this$static.eAllOperationsData = NO_EALL_OPERATIONS_DATA); + $getESuperAdapter(this$static).modifiedState &= -17; + } + return this$static.eAllOperations; +} + +function $getEAllReferences(this$static){ + var computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, references, result; + if (!this$static.eAllReferences) { + result = new EClassImpl$1ReferenceList; + references = new EClassImpl$1ReferenceList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 29); + $addAll_9(result, $getEAllReferences(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 179); + instanceOf(eStructuralFeature, 102) && $add_21(references, castTo(eStructuralFeature, 19)); + } + $shrink_0(references); + this$static.eReferences = new EClassImpl$5(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 6), 19) , references.size_0), references.data_0); + $addAll_9(result, this$static.eReferences); + $shrink_0(result); + this$static.eAllReferences = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 19) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -3; + } + return this$static.eAllReferences; +} + +function $getEAllStructuralFeatures(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, featureID, i, old, result; + if (!this$static.eAllStructuralFeatures) { + result = new EClassImpl$1EStructuralFeatureUniqueEList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 29); + $addAll_9(result, $getEAllStructuralFeatures(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + featureID = result.size_0; + for (i = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); i.cursor != i.this$01_2.size_1(); ++featureID) { + $setFeatureID(castTo($doNext(i), 462), featureID); + } + $addAll_9(result, (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , this$static.eStructuralFeatures)); + $shrink_0(result); + this$static.eAllStructuralFeatures = new EClassImpl$1EAllStructuralFeaturesList(this$static, result); + this$static.eAllStructuralFeaturesData = castTo(result.data_0, 254); + this$static.eAllStructuralFeaturesData == null && (this$static.eAllStructuralFeaturesData = NO_EALL_STRUCTURE_FEATURES_DATA); + this$static.eNameToFeatureMap = null; + $getESuperAdapter(this$static).modifiedState &= -5; + } + return this$static.eAllStructuralFeatures; +} + +function $getEAllSuperTypes(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, higherSupers, old, result; + if (!this$static.eAllSuperTypes) { + result = new EClassImpl$9; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 29); + higherSupers = $getEAllSuperTypes(eSuperType); + $addAll_9(result, higherSupers); + $add_21(result, eSuperType); + } + computationInProgress.map_0.remove_0(this$static) != null; + } + $shrink_0(result); + this$static.eAllSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 11), 19) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -33; + } + return this$static.eAllSuperTypes; +} + +function $getEGenericSuperTypes(this$static){ + if (!this$static.eGenericSuperTypes) { + $getESuperAdapter(this$static); + this$static.eGenericSuperTypes = new EClassImpl$1(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); + $getESuperTypes(this$static); + } + return this$static.eGenericSuperTypes; +} + +function $getEOperations(this$static){ + !this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)); + return this$static.eOperations; +} + +function $getEStructuralFeature(this$static, featureID){ + var eAllStructuralFeaturesData; + eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); + return featureID >= 0 && featureID < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[featureID]:null; +} + +function $getEStructuralFeature_0(this$static, name_0){ + var duplicate, eStructuralFeature, eStructuralFeature$iterator, key, result; + (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; + if (!this$static.eNameToFeatureMap) { + result = new HashMap_0((3 * this$static.eAllStructuralFeatures.size_0 / 2 | 0) + 1); + for (eStructuralFeature$iterator = new AbstractEList$NonResolvingEIterator(this$static.eAllStructuralFeatures); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext_0(eStructuralFeature$iterator), 179); + key = eStructuralFeature.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eStructuralFeature):$put_10(result.stringMap, key, eStructuralFeature), 179); + !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); + } + this$static.eNameToFeatureMap = result; + } + return castTo($getStringValue(this$static.eNameToFeatureMap, name_0), 179); +} + +function $getEStructuralFeatures(this$static){ + !this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)); + return this$static.eStructuralFeatures; +} + +function $getESuperAdapter(this$static){ + if (!this$static.eSuperAdapter) { + this$static.eSuperAdapter = new EClassImpl$10(this$static); + $add_20(new MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$static), 0, this$static.eSuperAdapter); + } + return this$static.eSuperAdapter; +} + +function $getESuperTypes(this$static){ + if (!this$static.eSuperTypes) { + $getESuperAdapter(this$static); + this$static.eSuperTypes = new EClassImpl$8(this$static, this$static); + } + return this$static.eSuperTypes; +} + +function $getFeatureCount(this$static){ + return (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; +} + +function $getFeatureID(this$static, feature){ + var eAllStructuralFeaturesData, index_0, last; + eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); + index_0 = feature.getFeatureID_0(); + if (index_0 != -1) { + for (last = eAllStructuralFeaturesData.length; index_0 < last; ++index_0) { + if (eAllStructuralFeaturesData[index_0] == feature) { + return index_0; + } + } + } + return -1; +} + +function $isSetESuperTypes(this$static){ + return !!this$static.eSuperTypes && $getEGenericSuperTypes(this$static.eSuperTypes.this$01).size_0 != 0 && !(!!this$static.eGenericSuperTypes && $isSet(this$static.eGenericSuperTypes)); +} + +function $isSuperTypeOf(this$static, someClass){ + return someClass == this$static || $contains_10($getEAllSuperTypes(someClass), this$static); +} + +function $setAbstract(this$static, newAbstract){ + var oldAbstract; + oldAbstract = (this$static.eFlags & 256) != 0; + newAbstract?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldAbstract, newAbstract)); +} + +function $setInterface(this$static, newInterface){ + var oldInterface; + oldInterface = (this$static.eFlags & 512) != 0; + newInterface?(this$static.eFlags |= 512):(this$static.eFlags &= -513); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 9, oldInterface, newInterface)); +} + +function $toString_31(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_30(this$static); + result = new StringBuffer_1($toString_30(this$static)); + result.string += ' (abstract: '; + $append_4(result, (this$static.eFlags & 256) != 0); + result.string += ', interface: '; + $append_4(result, (this$static.eFlags & 512) != 0); + result.string += ')'; + return result.string; +} + +function EClassImpl(){ + $clinit_EClassImpl(); +} + +defineClass(90, 364, {110:1, 94:1, 93:1, 29:1, 142:1, 155:1, 197:1, 58:1, 114:1, 54:1, 99:1, 90:1, 364:1, 158:1, 482:1, 119:1, 120:1, 691:1}, EClassImpl); +_.dynamicIsInstance = function dynamicIsInstance_0(eObject){ + return $isSuperTypeOf(this, eObject.eClass_0()); +} +; +_.eGet = function eGet_22(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return null; + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 9: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 10: + return $getESuperTypes(this); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , this.eOperations; + case 12: + return $getEAllAttributes(this); + case 13: + return $getEAllReferences(this); + case 14: + return $getEAllReferences(this) , this.eReferences; + case 15: + return $getEAllAttributes(this) , this.eAttributes; + case 16: + return $getEAllContainments(this); + case 17: + return $getEAllOperations(this); + case 18: + return $getEAllStructuralFeatures(this); + case 19: + return $getEAllSuperTypes(this); + case 20: + return $getEAllAttributes(this) , this.eIDAttribute; + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , this.eStructuralFeatures; + case 22: + return $getEGenericSuperTypes(this); + case 23: + return $getEAllGenericSuperTypes(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ECLASS:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_14(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicAdd_0(this.eOperations, otherEnd, msgs); + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicAdd_0(this.eStructuralFeatures, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_16(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicRemove_0(this.eOperations, otherEnd, msgs); + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicRemove_0(this.eStructuralFeatures, otherEnd, msgs); + case 22: + return $basicRemove_0($getEGenericSuperTypes(this), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_21(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return false; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) != 0; + case 9: + return (this.eFlags & 512) != 0; + case 10: + return !!this.eSuperTypes && $getEGenericSuperTypes(this.eSuperTypes.this$01).size_0 != 0 && !(!!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes)); + case 11: + return !!this.eOperations && this.eOperations.size_0 != 0; + case 12: + return $getEAllAttributes(this).size_0 != 0; + case 13: + return $getEAllReferences(this).size_0 != 0; + case 14: + return $getEAllReferences(this) , this.eReferences.size_0 != 0; + case 15: + return $getEAllAttributes(this) , this.eAttributes.size_0 != 0; + case 16: + return $getEAllContainments(this).size_0 != 0; + case 17: + return $getEAllOperations(this).size_0 != 0; + case 18: + return $getEAllStructuralFeatures(this).size_0 != 0; + case 19: + return $getEAllSuperTypes(this).size_0 != 0; + case 20: + return $getEAllAttributes(this) , !!this.eIDAttribute; + case 21: + return !!this.eStructuralFeatures && this.eStructuralFeatures.size_0 != 0; + case 22: + return !!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes); + case 23: + return $getEAllGenericSuperTypes(this).size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ECLASS:eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_2(uriFragmentSegment){ + var result; + result = this.eAllStructuralFeaturesData == null || !!this.eOperations && this.eOperations.size_0 != 0?null:$getEStructuralFeature_0(this, uriFragmentSegment); + return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_20(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 16)); + return; + case 8: + $setAbstract(this, $booleanValue(castToBoolean(newValue))); + return; + case 9: + $setInterface(this, $booleanValue(castToBoolean(newValue))); + return; + case 10: + $clear_12($getESuperTypes(this)); + $addAll_9($getESuperTypes(this), castTo(newValue, 16)); + return; + case 11: + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $clear_13(this.eOperations); + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $addAll_9(this.eOperations, castTo(newValue, 16)); + return; + case 21: + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $clear_13(this.eStructuralFeatures); + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $addAll_9(this.eStructuralFeatures, castTo(newValue, 16)); + return; + case 22: + $clear_13($getEGenericSuperTypes(this)); + $addAll_9($getEGenericSuperTypes(this), castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ECLASS:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_21(){ + return $clinit_EcorePackage$Literals() , ECLASS; +} +; +_.eUnset = function eUnset_20(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 184) && (castTo(this.eContainer, 184).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setAbstract(this, false); + return; + case 9: + $setInterface(this, false); + return; + case 10: + !!this.eSuperTypes && $clear_12(this.eSuperTypes); + return; + case 11: + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $clear_13(this.eOperations); + return; + case 21: + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $clear_13(this.eStructuralFeatures); + return; + case 22: + !!this.eGenericSuperTypes && $clear_13(this.eGenericSuperTypes); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ECLASS:eClass), featureID)); +} +; +_.freeze = function freeze_4(){ + var i, size_0; + $getEAllAttributes(this); + $getEAllReferences(this); + $getEAllContainments(this); + $getEAllOperations(this); + $getEAllStructuralFeatures(this); + $getEAllSuperTypes(this); + $getEAllGenericSuperTypes(this); + $clear_11($getSubclasses($getESuperAdapter(this))); + if (this.eStructuralFeatures) { + for (i = 0 , size_0 = this.eStructuralFeatures.size_0; i < size_0; ++i) { + $freeze($get_20(this.eStructuralFeatures, i)); + } + } + if (this.eOperations) { + for (i = 0 , size_0 = this.eOperations.size_0; i < size_0; ++i) { + $freeze($get_20(this.eOperations, i)); + } + } + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.toString_0 = function toString_150(){ + return $toString_31(this); +} +; +_.eAttributes = null; +_.eReferences = null; +var COMPUTATION_IN_PROGRESS, NO_EALL_OPERATIONS_DATA, NO_EALL_STRUCTURE_FEATURES_DATA; +var Lorg_eclipse_emf_ecore_impl_EClassImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl', 90); +defineClass(2092, 2091, $intern_156); +_.addAllUnique = function addAllUnique_9(index_0, collection){ + return $addAllUnique_3(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_10(collection){ + return $addAllUnique_3(this, this.size_0, collection); +} +; +_.addUnique = function addUnique_10(index_0, object){ + $addUnique_5(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_11(object){ + $addUnique_6(this, object); +} +; +_.basicAdd = function basicAdd_0(object, notifications){ + return $basicAdd_0(this, object, notifications); +} +; +_.basicGet = function basicGet_1(index_0){ + return $basicGet(this, index_0); +} +; +_.basicRemove = function basicRemove_0(object, notifications){ + return $basicRemove_0(this, object, notifications); +} +; +_.setUnique = function setUnique_4(index_0, object){ + return $setUnique_1(this, index_0, object); +} +; +_.basicIterator = function basicIterator_2(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_5(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_6(index_0){ + return $basicListIterator(this, index_0); +} +; +var Lorg_eclipse_emf_ecore_util_NotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'NotifyingInternalEListImpl', 2092); +function $contains_11(this$static, object){ + var containedEObject, eContainer, eObject, i, opposite, result, result0; + if (this$static.isEObject()) { + if (this$static.size_0 > 4) { + if (this$static.isInstance(object)) { + if (this$static.isContainment()) { + eObject = castTo(object, 54); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this$static.owner && (this$static.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), this$static.getInverseFeatureClass()) == this$static.getInverseFeatureID():-1 - eObject.eContainerFeatureID_0() == this$static.getFeatureID_0()); + if (this$static.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { + for (i = 0; i < this$static.size_0; ++i) { + containedEObject = this$static.resolveProxy(castTo(this$static.data_0[i], 58)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this$static.hasNavigableInverse() && !this$static.hasManyInverse()) { + opposite = castTo(object, 58).eGet_0($getEOpposite(castTo(this$static.getEStructuralFeature(), 19))); + if (maskUndefined(opposite) === maskUndefined(this$static.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 58).eIsProxy()) { + return false; + } + } + } + else { + return false; + } + } + result = $contains_10(this$static, object); + if (this$static.hasProxies() && !result) { + for (i = 0; i < this$static.size_0; ++i) { + eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 58)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return true; + } + } + } + return result; + } + else { + return $contains_10(this$static, object); + } +} + +function $createNotification(this$static, eventType, oldObject, newObject, index_0, wasSet){ + return new ENotificationImpl_3(this$static.owner, eventType, this$static.getFeatureID_0(), oldObject, newObject, index_0, wasSet); +} + +function $dispatchNotification(this$static, notification){ + $eNotify(this$static.owner, notification); +} + +function $indexOf_6(this$static, object){ + var eObject, i, index_0; + index_0 = $indexOf_4(this$static, object); + if (index_0 >= 0) + return index_0; + if (this$static.isEObject()) { + for (i = 0; i < this$static.size_0; ++i) { + eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 58)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} + +function $resolve(this$static, index_0, eObject){ + var element, notificationChain, oldElement, oldObject, resolved, resolvedElement; + resolved = this$static.resolveProxy(eObject); + if (resolved != eObject) { + oldObject = this$static.data_0[index_0]; + resolvedElement = resolved; + $assign(this$static, index_0, this$static.validate(index_0, resolvedElement)); + oldElement = oldObject; + this$static.didSet(index_0, resolvedElement, oldElement); + if (this$static.isContainment()) { + element = eObject; + notificationChain = this$static.inverseRemove(element, null); + !castTo(resolved, 54).eInternalContainer() && (notificationChain = this$static.inverseAdd(resolvedElement, notificationChain)); + !!notificationChain && notificationChain.dispatch_0(); + } + $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, this$static.createNotification(9, eObject, resolved, index_0, false)); + return resolved; + } + else { + return eObject; + } +} + +function $set_14(this$static, newValue){ + $clear_13(this$static); + this$static.addAll(castTo(newValue, 15)); +} + +function $toArray_10(this$static){ + var i; + if (this$static.hasProxies()) { + for (i = this$static.size_0 - 1; i >= 0; --i) { + $get_20(this$static, i); + } + } + return $toArray_8(this$static); +} + +function $validate_0(this$static, index_0, object){ + $validate(this$static, object); + if (!this$static.hasInstanceClass() && object != null && !this$static.isInstance(object)) { + throw toJs(new ArrayStoreException); + } + return object; +} + +function EcoreEList(dataClass, owner){ + this.dataClass = dataClass; + this.owner = owner; +} + +defineClass(632, 2092, $intern_157); +_.contains = function contains_63(object){ + return $contains_11(this, object); +} +; +_.createNotification = function createNotification_1(eventType, oldObject, newObject, index_0, wasSet){ + return $createNotification(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_1(notification){ + $dispatchNotification(this, notification); +} +; +_.get_6 = function get_63(resolve){ + return this; +} +; +_.getEStructuralFeature = function getEStructuralFeature_0(){ + return $getEStructuralFeature(this.owner.eClass_0(), this.getFeatureID_0()); +} +; +_.getFeature = function getFeature_4(){ + return this.getEStructuralFeature(); +} +; +_.getFeatureID_0 = function getFeatureID_5(){ + return $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()); +} +; +_.getInverseFeatureClass = function getInverseFeatureClass(){ + return castTo(this.getEStructuralFeature().getEType(), 29).getInstanceClass(); +} +; +_.getInverseFeatureID = function getInverseFeatureID(){ + return $getEOpposite(castTo(this.getEStructuralFeature(), 19)).featureID; +} +; +_.getNotifier = function getNotifier_4(){ + return this.owner; +} +; +_.hasInstanceClass = function hasInstanceClass(){ + return true; +} +; +_.hasManyInverse = function hasManyInverse(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse(){ + return false; +} +; +_.hasProxies = function hasProxies(){ + return false; +} +; +_.indexOf_0 = function indexOf_15(object){ + return $indexOf_6(this, object); +} +; +_.inverseAdd = function inverseAdd_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 54) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 19))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 54) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 19))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.isContainment = function isContainment_1(){ + return false; +} +; +_.isEObject = function isEObject(){ + return true; +} +; +_.isInstance = function isInstance_1(object){ + return isInstance(this.dataClass, object); +} +; +_.isNotificationRequired = function isNotificationRequired_1(){ + return $eNotificationRequired(this.owner); +} +; +_.isSet_0 = function isSet_3(){ + return this.size_0 != 0; +} +; +_.newData = function newData_3(capacity){ + return newInstance_11(this.dataClass, capacity); +} +; +_.resolve = function resolve_1(index_0, object){ + return this.isEObject() && this.hasProxies()?$resolve(this, index_0, castTo(object, 58)):object; +} +; +_.resolveProxy = function resolveProxy(eObject){ + return eObject.eIsProxy()?$eResolveProxy(this.owner, castTo(eObject, 54)):eObject; +} +; +_.set_1 = function set_31(newValue){ + $set_14(this, newValue); +} +; +_.toArray = function toArray_38(){ + return $toArray_10(this); +} +; +_.toArray_0 = function toArray_39(array){ + var i; + if (this.hasProxies()) { + for (i = this.size_0 - 1; i >= 0; --i) { + $get_20(this, i); + } + } + return $toArray_9(this, array); +} +; +_.unset = function unset_1(){ + $clear_13(this); +} +; +_.validate = function validate_0(index_0, object){ + return $validate_0(this, index_0, object); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList', 632); +function EObjectEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(505, 632, $intern_157, EObjectEList); +_.canContainNull = function canContainNull_2(){ + return false; +} +; +_.getFeatureID_0 = function getFeatureID_6(){ + return this.featureID; +} +; +_.hasInverse = function hasInverse_1(){ + return false; +} +; +_.isEObject = function isEObject_0(){ + return true; +} +; +_.isUnique = function isUnique_3(){ + return true; +} +; +_.resolve = function resolve_2(index_0, object){ + return object; +} +; +_.useEquals = function useEquals_1(){ + return false; +} +; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList', 505); +function EObjectContainmentEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(83, 505, $intern_157, EObjectContainmentEList); +_.hasInverse = function hasInverse_2(){ + return true; +} +; +_.hasNavigableInverse = function hasNavigableInverse_0(){ + return false; +} +; +_.isContainment = function isContainment_2(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList', 83); +function EObjectContainmentEList$Unsettable(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(555, 83, $intern_157, EObjectContainmentEList$Unsettable); +_.didChange = function didChange_0(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_4(){ + return this.isSet; +} +; +_.unset = function unset_2(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable', 555); +function $isSet(this$static){ + var eGenericType, eGenericType$iterator; + for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { + return true; + } + } + return false; +} + +function $shadowAdd(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 3, 10, null, (result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowRemove(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 4, 10, (result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)), null, $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowSet(this$static, oldEGenericType, newEGenericType, notifications){ + var notification, result, result0; + notification = new ENotificationImpl_3(this$static.owner, 1, 10, (result0 = oldEGenericType.eRawType , instanceOf(result0, 90)?castTo(result0, 29):($clinit_EcorePackage$Literals() , EOBJECT)), (result = newEGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, oldEGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function EClassImpl$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 22); +} + +defineClass(1161, 555, $intern_157, EClassImpl$1); +_.move = function move_14(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 89) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , ECLASS__ESUPER_TYPES), valueOf_3(sourceIndex), (result = result0.eRawType , instanceOf(result, 90)?castTo(result, 29):EOBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_0(eGenericType, notifications){ + return $shadowAdd(this, castTo(eGenericType, 89), notifications); +} +; +_.shadowRemove = function shadowRemove_0(eGenericType, notifications){ + return $shadowRemove(this, castTo(eGenericType, 89), notifications); +} +; +_.shadowSet = function shadowSet_0(oldEGenericType, newEGenericType, notifications){ + return $shadowSet(this, castTo(oldEGenericType, 89), castTo(newEGenericType, 89), notifications); +} +; +_.createNotification = function createNotification_2(eventType, oldObject, newObject, index_0, wasSet){ + switch (eventType) { + case 3: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); + } + + case 5: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); + } + + default:{ + return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); + } + + } +} +; +_.hasShadow = function hasShadow_0(){ + return true; +} +; +_.isSet_0 = function isSet_5(){ + return $isSet(this); +} +; +_.unset = function unset_3(){ + $clear_13(this); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1', 1161); +function $getSubclasses(this$static){ + !this$static.subclasses && (this$static.subclasses = new ESuperAdapter$1); + return this$static.subclasses; +} + +function $setFlags(this$static, featureId){ + var eSuperAdapter, i, oldModifiedState, subclass; + oldModifiedState = this$static.modifiedState; + switch (featureId) { + case 1: + { + this$static.modifiedState |= 1; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 2: + { + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 4: + { + this$static.modifiedState |= 1; + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 3: + { + this$static.modifiedState |= 16; + this$static.modifiedState |= 8; + break; + } + + case 0: + { + this$static.modifiedState |= 32; + this$static.modifiedState |= 16; + this$static.modifiedState |= 8; + this$static.modifiedState |= 1; + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + break; + } + + } + if (this$static.modifiedState != oldModifiedState && !!this$static.subclasses) { + for (i = new AbstractEList$EIterator(this$static.subclasses); i.cursor != i.this$01_2.size_1();) { + subclass = castTo($doNext(i), 482); + eSuperAdapter = $getESuperAdapter(subclass); + $setFlags_0(eSuperAdapter, featureId); + } + } +} + +function getFeatureID_7(notification){ + var featureID; + featureID = notification.getFeatureID(null); + switch (featureID) { + case 10: + return 0; + case 15: + return 1; + case 14: + return 2; + case 11: + return 3; + case 21: + return 4; + } + return -1; +} + +defineClass(1175, 1174, $intern_143); +_.notifyChanged = function notifyChanged_0(notification){ + var eSuperAdapter, eventType, featureID, holder, i, newValue, oldValue; + eventType = notification.getEventType(); + if (eventType != 8) { + featureID = getFeatureID_7(notification); + if (featureID == 0) { + switch (eventType) { + case 1: + case 9: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + eSuperAdapter = $getESuperAdapter(castTo(oldValue, 482)); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 482); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 29)); + } + } + break; + } + + case 3: + { + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 482); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 29)); + } + } + break; + } + + case 5: + { + newValue = notification.getNewValue(); + if (newValue != null) { + for (i = castTo(newValue, 16).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 482); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 29)); + } + } + } + break; + } + + case 4: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + holder = castTo(oldValue, 482); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + } + break; + } + + case 6: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + for (i = castTo(oldValue, 16).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 482); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + } + } + break; + } + + } + } + this.setFlags(featureID); + } +} +; +_.setFlags = function setFlags(featureId){ + $setFlags(this, featureId); +} +; +_.modifiedState = 63; +var Lorg_eclipse_emf_ecore_impl_ESuperAdapter_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter', 1175); +function $setFlags_0(this$static, featureId){ + $setFlags(this$static, featureId); + (this$static.modifiedState & 1) != 0 && (this$static.this$01.eAllAttributes = null); + (this$static.modifiedState & 2) != 0 && (this$static.this$01.eAllReferences = null); + if ((this$static.modifiedState & 4) != 0) { + this$static.this$01.eAllStructuralFeatures = null; + this$static.this$01.eAllStructuralFeaturesData = null; + } + if ((this$static.modifiedState & 16) != 0) { + this$static.this$01.eAllOperations = null; + this$static.this$01.eAllOperationsData = null; + } + (this$static.modifiedState & 8) != 0 && (this$static.this$01.eAllContainments = null); + if ((this$static.modifiedState & 32) != 0) { + this$static.this$01.eAllSuperTypes = null; + this$static.this$01.eAllGenericSuperTypes = null; + } +} + +function EClassImpl$10(this$0){ + this.this$01 = this$0; +} + +defineClass(1176, 1175, $intern_143, EClassImpl$10); +_.setFlags = function setFlags_0(featureId){ + $setFlags_0(this, featureId); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/10', 1176); +defineClass(1165, 710, $intern_157); +_.addAllUnique = function addAllUnique_11(index_0, collection){ + return $addAllUnique(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_12(collection){ + return $addAllUnique_0(this, collection); +} +; +_.addUnique = function addUnique_12(index_0, object){ + $addUnique(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_13(object){ + $addUnique_0(this, object); +} +; +_.basicGet = function basicGet_2(index_0){ + return $basicGet(this, index_0); +} +; +_.setUnique = function setUnique_5(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.basicAdd = function basicAdd_1(object, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.basicIterator = function basicIterator_3(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_7(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_8(index_0){ + return $basicListIterator(this, index_0); +} +; +_.basicRemove = function basicRemove_1(object, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.get_6 = function get_64(resolve){ + return this; +} +; +_.isSet_0 = function isSet_6(){ + return this.size_0 != 0; +} +; +_.set_1 = function set_32(newValue){ + throw toJs(new UnsupportedOperationException); +} +; +_.unset = function unset_4(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList', 1165); +function EcoreEList$UnmodifiableEList$FastCompare(size_0, data_0){ + BasicEList$UnmodifiableEList.call(this, size_0, data_0); +} + +defineClass(328, 1165, $intern_157, EcoreEList$UnmodifiableEList$FastCompare); +_.useEquals = function useEquals_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList$FastCompare_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList/FastCompare', 328); +function $containments(this$static){ + maskUndefined(this$static.containments) === maskUndefined(($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA)) && $init_2(this$static); + return this$static.containments; +} + +function $init_2(this$static){ + var containmentsList, crossReferencesList, eAnnotation, eAnnotation0, eAnnotation1, eReference, eStructuralFeature, i, isMixed, theOpposite; + containmentsList = new EClassImpl$1EStructuralFeatureUniqueEList; + crossReferencesList = new EClassImpl$1EStructuralFeatureUniqueEList; + isMixed = $equals_5('mixed', (eAnnotation0 = $getEAnnotation(this$static.this$01, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , !eAnnotation0?null:castToString($get_21((!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details), 'kind')))); + for (i = 0; i < this$static.size_0; ++i) { + eStructuralFeature = castTo(this$static.data_0[i], 179); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + (eReference.eFlags & $intern_138) != 0?((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation1 = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation1?null:castToString($get_21((!eAnnotation1.details && (eAnnotation1.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation1)) , eAnnotation1.details), 'group'))) == null)) && $add_21(containmentsList, eReference):(theOpposite = $getEOpposite(eReference) , !!theOpposite && (theOpposite.eFlags & $intern_138) != 0 || ((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation?null:castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group'))) == null)) && $add_21(crossReferencesList, eReference)); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 69).isFeatureMap_0()) { + if (!eStructuralFeature.isDerived()) { + $add_21(containmentsList, eStructuralFeature); + $add_21(crossReferencesList, eStructuralFeature); + } + } + } + } + $shrink_0(containmentsList); + $shrink_0(crossReferencesList); + this$static.containments = castTo(containmentsList.data_0, 254); + castTo(crossReferencesList.data_0, 254); +} + +function EClassImpl$1EAllStructuralFeaturesList(this$0, eAllStructuralFeatures){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 10), 19) , eAllStructuralFeatures.size_0), eAllStructuralFeatures.data_0); + this.containments = ($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA); +} + +defineClass(1168, 328, $intern_157, EClassImpl$1EAllStructuralFeaturesList); +_.indexOf_0 = function indexOf_16(object){ + var eStructuralFeature, index_0, last; + if (instanceOf(object, 179)) { + eStructuralFeature = castTo(object, 179); + index_0 = eStructuralFeature.getFeatureID_0(); + if (index_0 != -1) { + for (last = this.size_0; index_0 < last; ++index_0) { + if (maskUndefined(this.data_0[index_0]) === maskUndefined(object)) { + return index_0; + } + } + } + } + return -1; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EAllStructuralFeaturesList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EAllStructuralFeaturesList', 1168); +function $eliminateEquivalentDuplicates(this$static){ + var eGenericType, eGenericTypes, i, j, otherEGenericType; + eGenericTypes = castTo(this$static.data_0, 689); + for (i = this$static.size_0 - 1; i >= 0; --i) { + eGenericType = eGenericTypes[i]; + for (j = 0; j < i; ++j) { + otherEGenericType = eGenericTypes[j]; + if ($equivalent(this$static, eGenericType, otherEGenericType)) { + $remove_33(this$static, i); + break; + } + } + } +} + +function $equivalent(this$static, eGenericType, otherEGenericType){ + var eClassifier, eTypeArgument, eTypeArgumentSize, eTypeArguments, eTypeParameter, instanceTypeName, j, otherEClassifier, otherETypeArgument, otherETypeArguments, otherETypeParameter, otherInstanceTypeName; + if (eGenericType == otherEGenericType) { + return true; + } + else { + eGenericType = $resolve_0(this$static, eGenericType); + otherEGenericType = $resolve_0(this$static, otherEGenericType); + eClassifier = $getEClassifier(eGenericType); + if (eClassifier) { + otherEClassifier = $getEClassifier(otherEGenericType); + if (otherEClassifier != eClassifier) { + if (!otherEClassifier) { + return false; + } + else { + instanceTypeName = eClassifier.getInstanceTypeName(); + otherInstanceTypeName = otherEClassifier.getInstanceTypeName(); + return instanceTypeName == otherInstanceTypeName && instanceTypeName != null; + } + } + else { + eTypeArguments = (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments); + eTypeArgumentSize = eTypeArguments.size_0; + otherETypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); + if (eTypeArgumentSize == otherETypeArguments.size_0) { + for (j = 0; j < eTypeArgumentSize; ++j) { + eTypeArgument = castTo($get_20(eTypeArguments, j), 89); + otherETypeArgument = castTo($get_20(otherETypeArguments, j), 89); + if (!$equivalent(this$static, eTypeArgument, otherETypeArgument)) { + return false; + } + } + } + return true; + } + } + else { + eTypeParameter = eGenericType.eTypeParameter; + otherETypeParameter = otherEGenericType.eTypeParameter; + return eTypeParameter == otherETypeParameter; + } + } +} + +function $resolve_0(this$static, eGenericType){ + var eContainer, eGenericTypes, eTypeArguments, eTypeParameter, i, index_0, otherEGenericType; + eTypeParameter = eGenericType.eTypeParameter; + if (eTypeParameter) { + eContainer = $eContainer(eTypeParameter); + eGenericTypes = castTo(this$static.data_0, 689); + for (i = 0; i < this$static.size_0; ++i) { + otherEGenericType = eGenericTypes[i]; + if ($getEClassifier(otherEGenericType) == eContainer) { + eTypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); + index_0 = castTo(eContainer.eGet_0(eContainmentFeature(eTypeParameter, eTypeParameter.eContainer, eTypeParameter.eFlags_0 >> 16)), 15).indexOf_0(eTypeParameter); + if (index_0 < eTypeArguments.size_0) { + return $resolve_0(this$static, castTo($get_20(eTypeArguments, index_0), 89)); + } + } + } + } + return eGenericType; +} + +function EClassImpl$1EGenericSuperTypeEList(){ +} + +defineClass(1162, 506, $intern_141, EClassImpl$1EGenericSuperTypeEList); +_.newData = function newData_4(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_158, 89, capacity, 0, 1); +} +; +_.useEquals = function useEquals_3(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EGenericSuperTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EGenericSuperTypeEList', 1162); +function EClassImpl$1EStructuralFeatureUniqueEList(){ +} + +defineClass(633, 506, $intern_141, EClassImpl$1EStructuralFeatureUniqueEList); +_.newData = function newData_5(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_154, 179, capacity, 0, 1); +} +; +_.useEquals = function useEquals_4(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EStructuralFeatureUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EStructuralFeatureUniqueEList', 633); +function EClassImpl$1ReferenceList(){ +} + +defineClass(755, 506, $intern_141, EClassImpl$1ReferenceList); +_.newData = function newData_6(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_154, 19, capacity, 0, 1); +} +; +_.useEquals = function useEquals_5(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1ReferenceList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1ReferenceList', 755); +function $didAdd_0(this$static, eAttribute){ + (eAttribute.eFlags & $intern_138) != 0 && !this$static.this$01.eIDAttribute && (this$static.this$01.eIDAttribute = eAttribute); +} + +function EClassImpl$2(this$0){ + this.this$01 = this$0; +} + +defineClass(1163, 506, $intern_141, EClassImpl$2); +_.didAdd = function didAdd_1(index_0, eAttribute){ + $didAdd_0(this, castTo(eAttribute, 35)); +} +; +_.newData = function newData_7(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_154, 35, capacity, 0, 1); +} +; +_.useEquals = function useEquals_6(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/2', 1163); +function EClassImpl$3(){ +} + +defineClass(1164, 506, $intern_141, EClassImpl$3); +_.newData = function newData_8(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_154, 35, capacity, 0, 1); +} +; +_.useEquals = function useEquals_7(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/3', 1164); +function $add_28(this$static, object){ + $clinit_System(); + String.fromCharCode(10); + return $add_21($getEStructuralFeatures(this$static.this$01), object); +} + +function $addUnique_8(this$static, object){ + $addUnique_6($getEStructuralFeatures(this$static.this$01), object); +} + +function EClassImpl$4(this$0, $anonymous2, $anonymous3){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); +} + +defineClass(1166, 328, $intern_157, EClassImpl$4); +_.add_2 = function add_62(object){ + return $add_28(this, castTo(object, 35)); +} +; +_.addUnique_0 = function addUnique_14(object){ + $addUnique_8(this, castTo(object, 35)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/4', 1166); +function $add_29(this$static, object){ + $clinit_System(); + String.fromCharCode(10); + return $add_21($getEStructuralFeatures(this$static.this$01), object); +} + +function $addUnique_9(this$static, object){ + $addUnique_6($getEStructuralFeatures(this$static.this$01), object); +} + +function EClassImpl$5(this$0, $anonymous2, $anonymous3){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); +} + +defineClass(1167, 328, $intern_157, EClassImpl$5); +_.add_2 = function add_63(object){ + return $add_29(this, castTo(object, 19)); +} +; +_.addUnique_0 = function addUnique_15(object){ + $addUnique_9(this, castTo(object, 19)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/5', 1167); +function EClassImpl$6(){ +} + +defineClass(1169, 506, $intern_141, EClassImpl$6); +_.newData = function newData_9(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_155, 62, capacity, 0, 1); +} +; +_.useEquals = function useEquals_8(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/6', 1169); +function EClassImpl$7(){ +} + +defineClass(1170, 506, $intern_141, EClassImpl$7); +_.newData = function newData_10(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_154, 19, capacity, 0, 1); +} +; +_.useEquals = function useEquals_9(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/7', 1170); +defineClass(2095, 2094, {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 70:1, 61:1, 71:1}); +_.addAllUnique = function addAllUnique_13(index_0, collection){ + return $addAllUnique_2(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_14(collection){ + return $addAllUnique_2(this, this.delegateSize(), collection); +} +; +_.addUnique = function addUnique_16(index_0, object){ + $addUnique_3(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_17(object){ + $addUnique_4(this, object); +} +; +_.basicAdd = function basicAdd_2(object, notifications){ + return $basicAdd(this, object, notifications); +} +; +_.basicRemove = function basicRemove_2(object, notifications){ + return $basicRemove(this, object, notifications); +} +; +_.setUnique = function setUnique_6(index_0, object){ + return $setUnique_0(this, index_0, object); +} +; +_.basicGet = function basicGet_3(index_0){ + return this.delegateGet(index_0); +} +; +_.basicIterator = function basicIterator_4(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicList = function basicList_0(){ + return this.delegateBasicList(); +} +; +_.basicListIterator = function basicListIterator_9(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_10(index_0){ + return $basicListIterator(this, index_0); +} +; +var Lorg_eclipse_emf_ecore_util_DelegatingNotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingNotifyingInternalEListImpl', 2095); +function $resolve_1(this$static, index_0, object){ + var internalEObject, internalEObject0, notificationChain, resolved; + if (this$static.isEObject() && this$static.hasProxies()) { + resolved = $resolveProxy(this$static, castTo(object, 58)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + this$static.delegateGet(index_0); + this$static.delegateSet(index_0, $validate_1(this$static, index_0, resolved)); + if (this$static.isContainment()) { + notificationChain = (internalEObject0 = castTo(object, 54) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject0.eInverseRemove(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 19)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 29).getInstanceClass(), null):internalEObject0.eInverseRemove(this$static.owner, $getFeatureID(internalEObject0.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 19))), null, null):internalEObject0.eInverseRemove(this$static.owner, -1 - this$static.getFeatureID_0(), null, null)); + !castTo(resolved, 54).eInternalContainer() && (notificationChain = (internalEObject = castTo(resolved, 54) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject.eInverseAdd(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 19)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 29).getInstanceClass(), notificationChain):internalEObject.eInverseAdd(this$static.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 19))), null, notificationChain):internalEObject.eInverseAdd(this$static.owner, -1 - this$static.getFeatureID_0(), null, notificationChain))); + !!notificationChain && notificationChain.dispatch_0(); + } + $eNotificationRequired(this$static.owner) && this$static.dispatchNotification(this$static.createNotification(9, object, resolved, index_0, false)); + return resolved; + } + } + return object; +} + +function $resolveProxy(this$static, eObject){ + return eObject.eIsProxy()?$eResolveProxy(this$static.owner, castTo(eObject, 54)):eObject; +} + +function $validate_1(this$static, index_0, object){ + $validate(this$static, object); + if (object != null && !this$static.isInstance(object)) { + throw toJs(new ArrayStoreException); + } + return object; +} + +function DelegatingEcoreEList(owner){ + this.owner = owner; +} + +defineClass(756, 2095, $intern_159); +_.canContainNull = function canContainNull_3(){ + var eClassifier; + eClassifier = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(); + return instanceOf(eClassifier, 156) && !instanceOf(eClassifier, 469) && (eClassifier.getInstanceClass().modifiers & 1) == 0; +} +; +_.contains = function contains_64(object){ + var containedEObject, eContainer, eObject, i, opposite, result, result0, size_0; + if (this.isEObject()) { + size_0 = this.delegateSize(); + if (size_0 > 4) { + if (this.isInstance(object)) { + if (this.isContainment()) { + eObject = castTo(object, 54); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this.owner && (this.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 29).getInstanceClass()) == $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 19)).featureID:-1 - eObject.eContainerFeatureID_0() == this.getFeatureID_0()); + if (this.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { + for (i = 0; i < size_0; ++i) { + containedEObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this.hasNavigableInverse() && !this.hasManyInverse()) { + opposite = castTo(object, 58).eGet_0($getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 19))); + if (maskUndefined(opposite) === maskUndefined(this.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 58).eIsProxy()) { + return false; + } + } + } + else { + return false; + } + } + result = this.delegateContains(object); + if (this.hasProxies() && !result) { + for (i = 0; i < size_0; ++i) { + eObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return true; + } + } + } + return result; + } + else { + return this.delegateContains(object); + } +} +; +_.createNotification = function createNotification_3(eventType, oldObject, newObject, index_0, wasSet){ + return new ENotificationImpl_3(this.owner, eventType, this.getFeatureID_0(), oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_2(notification){ + $eNotify(this.owner, notification); +} +; +_.get_6 = function get_65(resolve){ + return this; +} +; +_.getFeature = function getFeature_5(){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); +} +; +_.getFeatureID_0 = function getFeatureID_8(){ + return $getFeatureID($eClass(this.owner), $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0())); +} +; +_.getNotifier = function getNotifier_5(){ + return this.owner; +} +; +_.hasInstanceClass = function hasInstanceClass_0(){ + return !!$getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().getInstanceClass(); +} +; +_.hasInverse = function hasInverse_3(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + return (eReference.eFlags & $intern_138) != 0 || !!$getEOpposite(castTo(eStructuralFeature, 19)); + } + else { + return false; + } +} +; +_.hasManyInverse = function hasManyInverse_0(){ + var eReference, eStructuralFeature, oppositeEReference, upper; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + oppositeEReference = $getEOpposite(eReference); + return !!oppositeEReference && (upper = oppositeEReference.upperBound , upper > 1 || upper == -1); + } + else { + return false; + } +} +; +_.hasNavigableInverse = function hasNavigableInverse_1(){ + var eReference, eStructuralFeature, oppositeEReference; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + oppositeEReference = $getEOpposite(eReference); + return !!oppositeEReference; + } + else { + return false; + } +} +; +_.hasProxies = function hasProxies_0(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + return (eReference.eFlags & $intern_64) != 0; + } + else { + return false; + } +} +; +_.indexOf_0 = function indexOf_17(object){ + var eObject, i, index_0, size_0; + index_0 = this.delegateIndexOf(object); + if (index_0 >= 0) + return index_0; + if (this.isEObject()) { + for (i = 0 , size_0 = this.delegateSize(); i < size_0; ++i) { + eObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} +; +_.inverseAdd = function inverseAdd_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 54) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 19)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 29).getInstanceClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 19))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 54) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 19)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 29).getInstanceClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 19))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.isContainment = function isContainment_3(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + return (eReference.eFlags & $intern_138) != 0; + } + else { + return false; + } +} +; +_.isEObject = function isEObject_1(){ + return instanceOf($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 90); +} +; +_.isInstance = function isInstance_2(object){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().isInstance(object); +} +; +_.isNotificationRequired = function isNotificationRequired_2(){ + return $eNotificationRequired(this.owner); +} +; +_.isSet_0 = function isSet_7(){ + return !this.delegateIsEmpty(); +} +; +_.isUnique = function isUnique_4(){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).isUnique(); +} +; +_.resolve = function resolve_3(index_0, object){ + return $resolve_1(this, index_0, object); +} +; +_.set_1 = function set_33(newValue){ + $clear_12(this); + $addAll_9(this, castTo(newValue, 15)); +} +; +_.toArray = function toArray_40(){ + var i; + if (this.hasProxies()) { + for (i = this.delegateSize() - 1; i >= 0; --i) { + $resolve_1(this, i, this.delegateGet(i)); + } + } + return this.delegateToArray(); +} +; +_.toArray_0 = function toArray_41(array){ + var i; + if (this.hasProxies()) { + for (i = this.delegateSize() - 1; i >= 0; --i) { + $resolve_1(this, i, this.delegateGet(i)); + } + } + return this.delegateToArray_0(array); +} +; +_.unset = function unset_5(){ + $clear_12(this); +} +; +_.validate = function validate_1(index_0, object){ + return $validate_1(this, index_0, object); +} +; +var Lorg_eclipse_emf_ecore_util_DelegatingEcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingEcoreEList', 756); +function $delegateAdd(this$static, index_0, eClass){ + $add_20($getEGenericSuperTypes(this$static.this$01), index_0, $wrap_0(eClass)); +} + +function $delegateAdd_0(this$static, eClass){ + $add_21($getEGenericSuperTypes(this$static.this$01), $wrap_0(eClass)); +} + +function $delegateContains(this$static, object){ + var eClass, eClass$iterator; + for (eClass$iterator = new AbstractEList$EIterator(this$static); eClass$iterator.cursor != eClass$iterator.this$01_2.size_1();) { + eClass = castTo($doNext(eClass$iterator), 29); + if (maskUndefined(object) === maskUndefined(eClass)) { + return true; + } + } + return false; +} + +function $delegateSet(this$static, index_0, eClass){ + var eGenericType, result, result0; + eGenericType = castTo($get_20($getEGenericSuperTypes(this$static.this$01), index_0), 89); + result0 = (result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)); + ((result0.eFlags_0 & 64) != 0?$eResolveProxy(this$static.owner, result0):result0) == eClass?$getERawType(eGenericType):$setEClassifier(eGenericType, eClass); + return result0; +} + +function $wrap_0(eClass){ + var eGenericType, eGenericType0; + eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClass); + return eGenericType0; +} + +function EClassImpl$8(this$0, $anonymous0){ + this.this$01 = this$0; + DelegatingEcoreEList.call(this, $anonymous0); +} + +defineClass(1171, 756, $intern_159, EClassImpl$8); +_.delegateAdd = function delegateAdd_1(index_0, eClass){ + $delegateAdd(this, index_0, castTo(eClass, 29)); +} +; +_.delegateAdd_0 = function delegateAdd_2(eClass){ + $delegateAdd_0(this, castTo(eClass, 29)); +} +; +_.delegateGet = function delegateGet_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericSuperTypes(this.this$01), index_0), 89) , result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateRemove = function delegateRemove_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericSuperTypes(this.this$01), index_0), 89) , result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateSet = function delegateSet_0(index_0, eClass){ + return $delegateSet(this, index_0, castTo(eClass, 29)); +} +; +_.canContainNull = function canContainNull_4(){ + return false; +} +; +_.createNotification = function createNotification_4(eventType, oldObject, newObject, index_0, wasSet){ + return null; +} +; +_.delegateBasicList = function delegateBasicList_0(){ + return new EClassImpl$8$1(this); +} +; +_.delegateClear = function delegateClear_0(){ + $clear_13($getEGenericSuperTypes(this.this$01)); +} +; +_.delegateContains = function delegateContains_0(object){ + return $delegateContains(this, object); +} +; +_.delegateContainsAll = function delegateContainsAll_0(collection){ + var object, object$iterator; + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$delegateContains(this, object)) { + return false; + } + } + return true; +} +; +_.delegateEquals = function delegateEquals_0(object){ + var i, j, list; + if (instanceOf(object, 15)) { + list = castTo(object, 15); + if (list.size_1() == $getEGenericSuperTypes(this.this$01).size_0) { + for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { + if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { + return false; + } + } + return true; + } + } + return false; +} +; +_.delegateHashCode = function delegateHashCode_0(){ + var eGenericType, eGenericType$iterator, hashCode, object, result; + hashCode = 1; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + object = (result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)); + hashCode = 31 * hashCode + (!object?0:getObjectIdentityHashCode(object)); + } + return hashCode; +} +; +_.delegateIndexOf = function delegateIndexOf_0(object){ + var eGenericType, eGenericType$iterator, index_0, result; + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)))) { + return index_0; + } + ++index_0; + } + return -1; +} +; +_.delegateIsEmpty = function delegateIsEmpty_0(){ + return $getEGenericSuperTypes(this.this$01).size_0 == 0; +} +; +_.delegateList_1 = function delegateList_2(){ + return null; +} +; +_.delegateSize = function delegateSize_0(){ + return $getEGenericSuperTypes(this.this$01).size_0; +} +; +_.delegateToArray = function delegateToArray_1(){ + var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; + size_0 = $getEGenericSuperTypes(this.this$01).size_0; + result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + result0[index_0++] = (result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)); + } + return result0; +} +; +_.delegateToArray_0 = function delegateToArray_2(array){ + var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; + size_0 = $getEGenericSuperTypes(this.this$01).size_0; + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + array.length > size_0 && setCheck(array, size_0, null); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + rawType = (result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)); + setCheck(array, index_0++, rawType); + } + return array; +} +; +_.delegateToString = function delegateToString_0(){ + var eGenericSuperTypes, i, result, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + eGenericSuperTypes = $getEGenericSuperTypes(this.this$01); + for (i = 0 , size_0 = $getEGenericSuperTypes(this.this$01).size_0; i < size_0;) { + $append_3(stringBuffer, valueOf_6((result = castTo($get_20(eGenericSuperTypes, i), 89).eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT)))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.dispatchNotification = function dispatchNotification_3(notification){ +} +; +_.getFeatureID_0 = function getFeatureID_9(){ + return 10; +} +; +_.hasInstanceClass = function hasInstanceClass_1(){ + return true; +} +; +_.hasInverse = function hasInverse_4(){ + return false; +} +; +_.hasManyInverse = function hasManyInverse_1(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse_2(){ + return false; +} +; +_.hasProxies = function hasProxies_1(){ + return true; +} +; +_.isContainment = function isContainment_4(){ + return false; +} +; +_.isEObject = function isEObject_2(){ + return true; +} +; +_.isInstance = function isInstance_3(object){ + return instanceOf(object, 90); +} +; +_.isSet_0 = function isSet_8(){ + return $isSetESuperTypes(this.this$01); +} +; +_.isUnique = function isUnique_5(){ + return true; +} +; +_.useEquals = function useEquals_10(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8', 1171); +function EClassImpl$8$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1172, 2062, $intern_38, EClassImpl$8$1); +_.listIterator_1 = function listIterator_29(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_76(){ + return $getEGenericSuperTypes(this.this$11.this$01).size_0; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$8$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8/1', 1172); +function EClassImpl$9(){ +} + +defineClass(1173, 506, $intern_141, EClassImpl$9); +_.newData = function newData_11(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 142, capacity, 0, 1); +} +; +_.useEquals = function useEquals_11(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/9', 1173); +function EClassImpl$MyHashSet(){ + HashSet.call(this); +} + +defineClass(1160, 49, $intern_77, EClassImpl$MyHashSet); +var Lorg_eclipse_emf_ecore_impl_EClassImpl$MyHashSet_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/MyHashSet', 1160); +function $setSerializable(this$static, newSerializable){ + var oldSerializable; + oldSerializable = (this$static.eFlags & 256) != 0; + newSerializable?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldSerializable, newSerializable)); +} + +function EDataTypeImpl(){ + this.eFlags |= 256; +} + +defineClass(577, 364, {110:1, 94:1, 93:1, 142:1, 156:1, 847:1, 155:1, 197:1, 58:1, 114:1, 54:1, 99:1, 364:1, 158:1, 119:1, 120:1, 691:1}, EDataTypeImpl); +_.eGet = function eGet_23(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return this.getDefaultValue(); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_22(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return this.getDefaultValue() != null; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) == 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_21(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 16)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_22(){ + return $clinit_EcorePackage$Literals() , EDATA_TYPE; +} +; +_.eUnset = function eUnset_21(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 184) && (castTo(this.eContainer, 184).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setSerializable(this, true); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_5(){ + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.getConversionDelegate = function getConversionDelegate(){ + var conversionDelegates, eDataTypeDelegateURI, eDataTypeDelegateURI$iterator; + if (!this.conversionDelegateIsSet) { + conversionDelegates = getConversionDelegates($getEPackage(this)); + if (!conversionDelegates.isEmpty()) { + for (eDataTypeDelegateURI$iterator = conversionDelegates.iterator_0(); eDataTypeDelegateURI$iterator.hasNext_0();) { + eDataTypeDelegateURI = castToString(eDataTypeDelegateURI$iterator.next_1()); + !!$getEAnnotation(this, eDataTypeDelegateURI) && getConversionDelegateFactory(this); + } + } + } + return this.conversionDelegate; +} +; +_.getDefaultValue = function getDefaultValue_1(){ + var instanceClass; + if (!this.defaultValueIsSet) { + instanceClass = null; + try { + instanceClass = $getInstanceClass(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 103)) + throw toJs($e0); + } + this.defaultValue = null; + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (instanceClass == Z_classLit?(this.defaultValue = ($clinit_Boolean() , FALSE_0)):instanceClass == I_classLit?(this.defaultValue = valueOf_3(0)):instanceClass == F_classLit?(this.defaultValue = new Float(0)):instanceClass == D_classLit?(this.defaultValue = 0):instanceClass == J_classLit?(this.defaultValue = valueOf_4(0)):instanceClass == S_classLit?(this.defaultValue = valueOf_5(0)):instanceClass == B_classLit?(this.defaultValue = get_32(0)):(this.defaultValue = valueOf_2(0))); + this.defaultValueIsSet = true; + } + return this.defaultValue; +} +; +_.isSerializable = function isSerializable_0(){ + return (this.eFlags & 256) != 0; +} +; +_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass(isGenerated){ + isGenerated && (this.instanceClassName = 'org.eclipse.emf.common.util.AbstractEnumerator'); +} +; +_.setGeneratedInstanceClass = function setGeneratedInstanceClass_0(isGenerated){ + $setGeneratedInstanceClass(this, isGenerated); + this.setDataTypeGeneratedInstanceClass(isGenerated); +} +; +_.setInstanceClassGen = function setInstanceClassGen_0(instanceClass){ + this.instanceClass = instanceClass; + this.defaultValueIsSet = false; +} +; +_.toString_0 = function toString_151(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_30(this); + result = new StringBuffer_1($toString_30(this)); + result.string += ' (serializable: '; + $append_4(result, (this.eFlags & 256) != 0); + result.string += ')'; + return result.string; +} +; +_.conversionDelegateIsSet = false; +_.defaultValue = null; +_.defaultValueIsSet = false; +var Lorg_eclipse_emf_ecore_impl_EDataTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EDataTypeImpl', 577); +function $getDefaultValue_0(this$static){ + var eLiterals; + eLiterals = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , this$static.eLiterals); + if (eLiterals.size_0 != 0) { + return $getInstance(castTo($get_20(eLiterals, 0), 694)); + } + return null; +} + +function $getEEnumLiteralByLiteral(this$static, literal){ + var eEnumLiteral, eEnumLiteral$iterator, result; + if (literal == null) { + for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { + eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 694); + result = eEnumLiteral.literal; + if ((result == null?eEnumLiteral.name_0:result) == null) { + return eEnumLiteral; + } + } + } + else { + for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { + eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 694); + if ($equals_5(literal, (result = eEnumLiteral.literal , result == null?eEnumLiteral.name_0:result))) { + return eEnumLiteral; + } + } + } + return null; +} + +function EEnumImpl(){ + EDataTypeImpl.call(this); +} + +defineClass(469, 577, {110:1, 94:1, 93:1, 142:1, 156:1, 847:1, 685:1, 155:1, 197:1, 58:1, 114:1, 54:1, 99:1, 364:1, 469:1, 158:1, 119:1, 120:1, 691:1}, EEnumImpl); +_.eGet = function eGet_24(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return $getDefaultValue_0(this); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , this.eLiterals; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_15(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicAdd_0(this.eLiterals, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_17(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicRemove_0(this.eLiterals, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_23(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return !!$getDefaultValue_0(this); + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) == 0; + case 9: + return !!this.eLiterals && this.eLiterals.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM:eClass), featureID)); +} +; +_.eSet = function eSet_22(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 16)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + case 9: + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $clear_13(this.eLiterals); + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $addAll_9(this.eLiterals, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_23(){ + return $clinit_EcorePackage$Literals() , EENUM; +} +; +_.eUnset = function eUnset_22(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 184) && (castTo(this.eContainer, 184).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setSerializable(this, true); + return; + case 9: + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $clear_13(this.eLiterals); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM:eClass), featureID)); +} +; +_.freeze = function freeze_6(){ + var i, size_0; + if (this.eLiterals) { + for (i = 0 , size_0 = this.eLiterals.size_0; i < size_0; ++i) { + $freeze($get_20(this.eLiterals, i)); + } + } + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.getDefaultValue = function getDefaultValue_2(){ + return $getDefaultValue_0(this); +} +; +_.isInstance = function isInstance_4(object){ + if (object != null) { + return true; + } + return false; +} +; +_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass_0(isGenerated){ +} +; +var Lorg_eclipse_emf_ecore_impl_EEnumImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumImpl', 469); +function $eBasicRemoveFromContainerFeature_8(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 5) { + return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_emf_ecore_EEnum_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getInstance(this$static){ + return this$static.instance?this$static.instance:this$static.generatedInstance; +} + +function $setInstance(this$static, newInstance){ + var literal, result, oldInstance; + oldInstance = this$static.instance; + this$static.instance = newInstance; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldInstance, this$static.instance)); + if (!newInstance) { + $setName(this$static, null); + $setValue_1(this$static, 0); + $setLiteral(this$static, null); + } + else if (newInstance != this$static) { + $setName(this$static, newInstance.name_0); + $setValue_1(this$static, newInstance.value_0); + literal = (result = newInstance.literal , result == null?newInstance.name_0:result); + $setLiteral(this$static, literal == null || $equals_5(literal, newInstance.name_0)?null:literal); + } +} + +function $setLiteral(this$static, newLiteral){ + var oldLiteral; + oldLiteral = this$static.literal; + this$static.literal = newLiteral; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, oldLiteral, this$static.literal)); +} + +function $setValue_1(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 2, oldValue, this$static.value_0)); +} + +function EEnumLiteralImpl(){ + this.generatedInstance = this; +} + +defineClass(582, 448, {110:1, 94:1, 93:1, 2039:1, 694:1, 155:1, 197:1, 58:1, 114:1, 54:1, 99:1, 582:1, 158:1, 119:1, 120:1}, EEnumLiteralImpl); +_.getName = function getName_6(){ + return this.name_0; +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_9(msgs){ + return $eBasicRemoveFromContainerFeature_8(this, msgs); +} +; +_.eGet = function eGet_25(featureID, resolve, coreType){ + var eClass, result; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return valueOf_3(this.value_0); + case 3: + return this.instance?this.instance:this.generatedInstance; + case 4: + return result = this.literal , result == null?this.name_0:result; + case 5: + return this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 685):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM_LITERAL:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_16(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 5: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_8(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 5, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_18(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 5: + return $eBasicSetContainer(this, null, 5, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_24(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.value_0 != 0; + case 3: + return !!this.instance; + case 4: + return this.literal != null; + case 5: + return !!(this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 685):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.eSet = function eSet_23(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setValue_1(this, castTo(newValue, 17).value_0); + return; + case 3: + $setInstance(this, castTo(newValue, 2039)); + return; + case 4: + $setLiteral(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM_LITERAL:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_24(){ + return $clinit_EcorePackage$Literals() , EENUM_LITERAL; +} +; +_.eUnset = function eUnset_23(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setValue_1(this, 0); + return; + case 3: + $setInstance(this, null); + return; + case 4: + $setLiteral(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.toString_0 = function toString_152(){ + var result; + return result = this.literal , result == null?this.name_0:result; +} +; +_.instance = null; +_.literal = null; +_.value_0 = 0; +var Lorg_eclipse_emf_ecore_impl_EEnumLiteralImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumLiteralImpl', 582); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit = createForInterface('org.eclipse.emf.ecore.impl', 'EFactoryImpl/InternalEDateTimeFormat'); +function $format_0(this$static, value_0){ + return $format(this$static.dateTimeFormat, value_0, null); +} + +function $parse_2(this$static, value_0){ + return $parse_1(this$static.dateTimeFormat, value_0); +} + +function EFactoryImpl$1ClientInternalEDateTimeFormat(dateTimeFormat){ + this.dateTimeFormat = dateTimeFormat; +} + +defineClass(499, 1, {2114:1}, EFactoryImpl$1ClientInternalEDateTimeFormat); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$1ClientInternalEDateTimeFormat_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl/1ClientInternalEDateTimeFormat', 499); +function $basicSetELowerBound(this$static, newELowerBound, msgs){ + var notification, oldELowerBound; + oldELowerBound = this$static.eLowerBound; + this$static.eLowerBound = newELowerBound; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 3, oldELowerBound, newELowerBound); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $basicSetETypeParameter(this$static, newETypeParameter, msgs){ + var notification, oldETypeParameter; + oldETypeParameter = this$static.eTypeParameter; + this$static.eTypeParameter = newETypeParameter; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 4, oldETypeParameter, newETypeParameter); + !msgs?(msgs = notification):msgs.add_5(notification); + } + oldETypeParameter != newETypeParameter && (newETypeParameter?(msgs = $setERawType(this$static, $getErasure(this$static, newETypeParameter), msgs)):(msgs = $setERawType(this$static, this$static.eClassifier, msgs))); + return msgs; +} + +function $basicSetEUpperBound(this$static, newEUpperBound, msgs){ + var notification, oldEUpperBound; + oldEUpperBound = this$static.eUpperBound; + this$static.eUpperBound = newEUpperBound; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 0, oldEUpperBound, newEUpperBound); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $getEClassifier(this$static){ + var oldEClassifier; + if (!!this$static.eClassifier && this$static.eClassifier.eIsProxy()) { + oldEClassifier = castTo(this$static.eClassifier, 54); + this$static.eClassifier = castTo($eResolveProxy(this$static, oldEClassifier), 142); + this$static.eClassifier != oldEClassifier && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 5, oldEClassifier, this$static.eClassifier)); + } + return this$static.eClassifier; +} + +function $getERawType(this$static){ + var newERawType, oldERawType; + if (!!this$static.eRawType && this$static.eRawType.eIsProxy()) { + oldERawType = castTo(this$static.eRawType, 54); + this$static.eRawType = castTo($eResolveProxy(this$static, oldERawType), 142); + if (this$static.eRawType != oldERawType) { + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 2, oldERawType, this$static.eRawType)); + if (instanceOf(this$static.eContainer, 411)) { + this$static.eFlags_0 >> 16 == -15 && this$static.eContainer.eNotificationRequired() && $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 13, oldERawType, this$static.eRawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 62)), this$static))); + } + else if (instanceOf(this$static.eContainer, 90)) { + if (this$static.eFlags_0 >> 16 == -23 && this$static.eContainer.eNotificationRequired()) { + newERawType = this$static.eRawType; + instanceOf(newERawType, 90) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 90) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 29)), this$static))); + } + } + } + } + return this$static.eRawType; +} + +function $getETypeArguments(this$static){ + !this$static.eTypeArguments && (this$static.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static, 1)); + return this$static.eTypeArguments; +} + +function $getErasure(this$static, eTypeParameter){ + var eBound, eBound$iterator, eRawType, needEClass, needEDataType; + if (!eTypeParameter) { + return null; + } + else { + needEClass = instanceOf(this$static.eContainer, 90) || instanceOf(this$static.eContainer, 102); + needEDataType = !needEClass && instanceOf(this$static.eContainer, 331); + for (eBound$iterator = new AbstractEList$EIterator((!eTypeParameter.eBounds && (eTypeParameter.eBounds = new ETypeParameterImpl$1(eTypeParameter, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eTypeParameter)) , eTypeParameter.eBounds)); eBound$iterator.cursor != eBound$iterator.this$01_2.size_1();) { + eBound = castTo($doNext(eBound$iterator), 89); + eRawType = $getERawType(eBound); + if (needEClass?instanceOf(eRawType, 90):needEDataType?instanceOf(eRawType, 156):!!eRawType) { + return eRawType; + } + } + return needEClass?($clinit_EcorePackage$Literals() , EOBJECT):($clinit_EcorePackage$Literals() , EJAVA_OBJECT); + } +} + +function $setEClassifier(this$static, newEClassifier){ + var msgs, oldEClassifier; + oldEClassifier = this$static.eClassifier; + msgs = $setEClassifier_0(this$static, newEClassifier, null); + oldEClassifier != newEClassifier && !this$static.eTypeParameter && (msgs = $setERawType(this$static, newEClassifier, msgs)); + !!msgs && msgs.dispatch_0(); +} + +function $setEClassifier_0(this$static, newEClassifier, msgs){ + var notification, oldEClassifier; + oldEClassifier = this$static.eClassifier; + this$static.eClassifier = newEClassifier; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 5, oldEClassifier, this$static.eClassifier); + !msgs?(msgs = notification):$add_22(msgs, notification); + } + return msgs; +} + +function $setELowerBound(this$static, newELowerBound){ + var msgs; + if (newELowerBound != this$static.eLowerBound) { + msgs = null; + !!this$static.eLowerBound && (msgs = $eInverseRemove(this$static.eLowerBound, this$static, -4, msgs)); + !!newELowerBound && (msgs = $eInverseAdd(newELowerBound, this$static, -4, msgs)); + msgs = $basicSetELowerBound(this$static, newELowerBound, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newELowerBound, newELowerBound)); +} + +function $setERawType(this$static, newERawType, msgs){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, eTypeParameter, notification, oldERawType; + oldERawType = this$static.eRawType; + !newERawType && (newERawType = eJavaObject); + this$static.eRawType = newERawType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 2, oldERawType, this$static.eRawType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (oldERawType != newERawType) { + if (instanceOf(this$static.eContainer, 292)) { + if (this$static.eFlags_0 >> 16 == -10) { + msgs = castTo(this$static.eContainer, 292).setEType(newERawType, msgs); + } + else if (this$static.eFlags_0 >> 16 == -15) { + !newERawType && (newERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + !oldERawType && (oldERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + if (this$static.eContainer.eNotificationRequired()) { + notification = new ENotificationImpl_3(this$static.eContainer, 1, 13, oldERawType, newERawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 62)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 90)) { + if (this$static.eFlags_0 >> 16 == -23) { + instanceOf(newERawType, 90) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 90) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + if (this$static.eContainer.eNotificationRequired()) { + notification = new ENotificationImpl_3(this$static.eContainer, 1, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 29)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 457)) { + eTypeParameter = castTo(this$static.eContainer, 850); + eGenericTypes = (!eTypeParameter.eGenericTypes && (eTypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , eTypeParameter.eGenericTypes); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_3(eGenericType$iterator.val$delegateIterator2).getKey(), 89); + msgs = $setERawType(eGenericType, $getErasure(eGenericType, eTypeParameter), msgs); + } + } + } + return msgs; +} + +function $setETypeParameter(this$static, newETypeParameter){ + var msgs; + if (newETypeParameter != this$static.eTypeParameter) { + !!this$static.eTypeParameter && $remove_42($getEGenericTypes(this$static.eTypeParameter), this$static); + !!newETypeParameter && (!newETypeParameter.eGenericTypes && (newETypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , $add_30(newETypeParameter.eGenericTypes, this$static)); + msgs = $basicSetETypeParameter(this$static, newETypeParameter, null); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newETypeParameter, newETypeParameter)); +} + +function $setEUpperBound(this$static, newEUpperBound){ + var msgs; + if (newEUpperBound != this$static.eUpperBound) { + msgs = null; + !!this$static.eUpperBound && (msgs = $eInverseRemove(this$static.eUpperBound, this$static, -1, msgs)); + !!newEUpperBound && (msgs = $eInverseAdd(newEUpperBound, this$static, -1, msgs)); + msgs = $basicSetEUpperBound(this$static, newEUpperBound, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, newEUpperBound, newEUpperBound)); +} + +function $toString_32(this$static, result){ + var eTypeArgument, eTypeArgument$iterator, first, index_0, instanceTypeName, label_0, tail; + if (this$static.eClassifier) { + label_0 = this$static.eClassifier.getName(); + tail = null; + if (label_0 != null) { + result.string += '' + label_0; + } + else { + instanceTypeName = this$static.eClassifier.getInstanceTypeName(); + if (instanceTypeName != null) { + index_0 = $indexOf_1(instanceTypeName, fromCodePoint(91)); + if (index_0 != -1) { + tail = (checkCriticalStringElementIndex(index_0, instanceTypeName.length + 1) , instanceTypeName.substr(index_0)); + result.string += '' + $substring_1(instanceTypeName == null?'null':(checkCriticalNotNull(instanceTypeName) , instanceTypeName), 0, index_0); + } + else { + result.string += '' + instanceTypeName; + } + } + } + if (!!this$static.eTypeArguments && this$static.eTypeArguments.size_0 != 0) { + first = true; + result.string += '<'; + for (eTypeArgument$iterator = new AbstractEList$EIterator(this$static.eTypeArguments); eTypeArgument$iterator.cursor != eTypeArgument$iterator.this$01_2.size_1();) { + eTypeArgument = castTo($doNext(eTypeArgument$iterator), 89); + first?(first = false):(result.string += ', ' , result); + $toString_32(eTypeArgument, result); + } + result.string += '>'; + } + tail != null && (result.string += '' + tail , result); + } + else if (this$static.eTypeParameter) { + label_0 = this$static.eTypeParameter.name_0; + label_0 != null && (result.string += '' + label_0 , result); + } + else { + result.string += '?'; + if (this$static.eLowerBound) { + result.string += ' super '; + $toString_32(this$static.eLowerBound, result); + } + else { + if (this$static.eUpperBound) { + result.string += ' extends '; + $toString_32(this$static.eUpperBound, result); + } + } + } +} + +function EGenericTypeImpl(){ + this.eRawType = eJavaObject; +} + +defineClass(248, 120, {110:1, 94:1, 93:1, 89:1, 58:1, 114:1, 54:1, 99:1, 248:1, 119:1, 120:1}, EGenericTypeImpl); +_.eBasicSetContainer_0 = function eBasicSetContainer_6(newContainer, newContainerFeatureID, msgs){ + var newERawType; + msgs = $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); + if (!!this.eTypeParameter && instanceOf(newContainer, 179)) { + newERawType = $getErasure(this, this.eTypeParameter); + newERawType != this.eRawType && (msgs = $setERawType(this, newERawType, msgs)); + } + return msgs; +} +; +_.eGet = function eGet_26(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return this.eUpperBound; + case 1: + return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , this.eTypeArguments; + case 2: + if (resolve) + return $getERawType(this); + return this.eRawType; + case 3: + return this.eLowerBound; + case 4: + return this.eTypeParameter; + case 5: + if (resolve) + return $getEClassifier(this); + return this.eClassifier; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EGENERIC_TYPE:eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_19(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return $basicSetEUpperBound(this, null, msgs); + case 1: + return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , $basicRemove_0(this.eTypeArguments, otherEnd, msgs); + case 3: + return $basicSetELowerBound(this, null, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EGENERIC_TYPE):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_25(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eUpperBound; + case 1: + return !!this.eTypeArguments && this.eTypeArguments.size_0 != 0; + case 2: + return !!this.eRawType; + case 3: + return !!this.eLowerBound; + case 4: + return !!this.eTypeParameter; + case 5: + return !!this.eClassifier; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.eSet = function eSet_24(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, castTo(newValue, 89)); + return; + case 1: + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $clear_13(this.eTypeArguments); + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $addAll_9(this.eTypeArguments, castTo(newValue, 16)); + return; + case 3: + $setELowerBound(this, castTo(newValue, 89)); + return; + case 4: + $setETypeParameter(this, castTo(newValue, 850)); + return; + case 5: + $setEClassifier(this, castTo(newValue, 142)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EGENERIC_TYPE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_25(){ + return $clinit_EcorePackage$Literals() , EGENERIC_TYPE; +} +; +_.eUnset = function eUnset_24(featureID){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, null); + return; + case 1: + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $clear_13(this.eTypeArguments); + return; + case 3: + $setELowerBound(this, null); + return; + case 4: + $setETypeParameter(this, null); + return; + case 5: + $setEClassifier(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.toString_0 = function toString_153(){ + var result; + result = new StringBuilder_1($toString_16(this)); + result.string += ' (expression: '; + $toString_32(this, result); + result.string += ')'; + return result.string; +} +; +var eJavaObject; +var Lorg_eclipse_emf_ecore_impl_EGenericTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EGenericTypeImpl', 248); +function $addUnique_10(this$static, index_0, object){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(object); +} + +defineClass(2067, 2062, $intern_160); +_.addUnique = function addUnique_18(index_0, object){ + $addUnique_10(this, index_0, object); +} +; +_.basicAdd = function basicAdd_3(object, notifications){ + $addUnique_10(this, this.size_1(), object); + return notifications; +} +; +_.basicGet = function basicGet_4(index_0){ + return $get_7(this.basicList(), index_0); +} +; +_.basicIterator = function basicIterator_5(){ + return this.basicListIterator(); +} +; +_.basicList = function basicList_1(){ + return new AbstractSequentialInternalEList$1(this); +} +; +_.basicListIterator = function basicListIterator_11(){ + return this.basicListIterator_0(0); +} +; +_.basicListIterator_0 = function basicListIterator_12(index_0){ + return this.basicList().listIterator_1(index_0); +} +; +_.basicRemove = function basicRemove_3(object, notifications){ + $advanceToFind(this, object, true); + return notifications; +} +; +_.move = function move_15(newPosition, oldPosition){ + var iter, movedObject; + movedObject = $remove_4(this, oldPosition); + iter = this.listIterator_1(newPosition); + iter.add_1(movedObject); + return movedObject; +} +; +_.move_0 = function move_16(newPosition, object){ + var iter; + $advanceToFind(this, object, true); + iter = this.listIterator_1(newPosition); + iter.add_1(object); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList', 2067); +function $clinit_EContentsEList(){ + $clinit_EContentsEList = emptyMethod; + EMPTY_CONTENTS_ELIST = new EContentsEList$1; +} + +function $isIncludedEntry(eStructuralFeature){ + return instanceOf(eStructuralFeature, 102) && (castTo(eStructuralFeature, 19).eFlags & $intern_138) != 0; +} + +function $iterator_1(this$static){ + var result; + if (this$static.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this$static.resolve_0()?this$static.newResolvingListIterator():this$static.newNonResolvingListIterator(); + return result; +} + +function EContentsEList(eObject, eStructuralFeatures){ + $clinit_EContentsEList(); + this.eObject = eObject; + this.eStructuralFeatures = eStructuralFeatures; +} + +defineClass(496, 2067, $intern_160, EContentsEList); +_.basicGet = function basicGet_5(index_0){ + return $get_7(this.basicList(), index_0); +} +; +_.basicIterator = function basicIterator_6(){ + if (this.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + return this.newNonResolvingListIterator(); +} +; +_.basicList = function basicList_2(){ + return new EContentsEList$2(this.eObject, this.eStructuralFeatures); +} +; +_.basicListIterator = function basicListIterator_13(){ + if (this.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + return this.newNonResolvingListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_14(index_0){ + var i, result; + if (this.eStructuralFeatures == null) { + if (index_0 < 0 || index_0 > 1) { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); + } + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this.newNonResolvingListIterator(); + for (i = 0; i < index_0; ++i) { + $next_14(result); + } + return result; +} +; +_.isEmpty = function isEmpty_33(){ + var feature, featureMap, i, j, size_0, value_0; + if (this.eStructuralFeatures != null) { + for (i = 0; i < this.eStructuralFeatures.length; ++i) { + feature = this.eStructuralFeatures[i]; + if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { + value_0 = this.eObject.eGet_1(feature, false); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + featureMap = castTo(value_0, 160); + for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { + if ($isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null) { + return false; + } + } + } + else if (feature.isMany()) { + if (!castTo(value_0, 16).isEmpty()) { + return false; + } + } + else if (value_0 != null) { + return false; + } + } + } + } + return true; +} +; +_.iterator_0 = function iterator_88(){ + return $iterator_1(this); +} +; +_.listIterator_1 = function listIterator_30(index_0){ + var i, result; + if (this.eStructuralFeatures == null) { + if (index_0 != 0) { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); + } + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this.resolve_0()?this.newResolvingListIterator():this.newNonResolvingListIterator(); + for (i = 0; i < index_0; ++i) { + $next_14(result); + } + return result; +} +; +_.move = function move_17(newPosition, oldPosition){ + throw toJs(new UnsupportedOperationException); +} +; +_.move_0 = function move_18(newPosition, o){ + throw toJs(new UnsupportedOperationException); +} +; +_.newNonResolvingListIterator = function newNonResolvingListIterator(){ + return new EContentsEList$FeatureIteratorImpl(this.eObject, this.eStructuralFeatures); +} +; +_.newResolvingListIterator = function newResolvingListIterator(){ + return new EContentsEList$ResolvingFeatureIteratorImpl(this.eObject, this.eStructuralFeatures); +} +; +_.resolve_0 = function resolve_4(){ + return true; +} +; +_.size_1 = function size_77(){ + var feature, featureMap, i, j, result, size_0, value_0; + result = 0; + if (this.eStructuralFeatures != null) { + for (i = 0; i < this.eStructuralFeatures.length; ++i) { + feature = this.eStructuralFeatures[i]; + if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { + value_0 = this.eObject.eGet_1(feature, false); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + featureMap = castTo(value_0, 160); + for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { + $isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null && ++result; + } + } + else + feature.isMany()?(result += castTo(value_0, 16).size_1()):value_0 != null && ++result; + } + } + } + return result; +} +; +_.useIsSet = function useIsSet(){ + return true; +} +; +var EMPTY_CONTENTS_ELIST; +var Lorg_eclipse_emf_ecore_util_EContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList', 496); +function ENamedElementImpl$1($anonymous0, $anonymous1){ + $clinit_EContentsEList(); + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(1177, 496, $intern_160, ENamedElementImpl$1); +_.newNonResolvingListIterator = function newNonResolvingListIterator_0(){ + return new ENamedElementImpl$1$2(this.eObject, this.eStructuralFeatures); +} +; +_.newResolvingListIterator = function newResolvingListIterator_0(){ + return new ENamedElementImpl$1$1(this.eObject, this.eStructuralFeatures); +} +; +_.useIsSet = function useIsSet_0(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1', 1177); +function $clinit_EContentsEList$FeatureIteratorImpl(){ + $clinit_EContentsEList$FeatureIteratorImpl = emptyMethod; + EMPTY_ITERATOR = new EContentsEList$FeatureIteratorImpl$1; +} + +function $next_14(this$static){ + var result; + if (this$static.prepared > 1 || this$static.hasNext_0()) { + ++this$static.cursor; + this$static.prepared = 0; + result = this$static.preparedResult; + this$static.hasNext_0(); + return result; + } + else { + throw toJs(new NoSuchElementException); + } +} + +function $scanNext(this$static){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (this$static.valueListIndex < this$static.valueListSize) { + entry = castTo(!this$static.valueInternalEList?this$static.valueList.get_0(this$static.valueListIndex):this$static.valueInternalEList.basicGet(this$static.valueListIndex), 76); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 102) && (castTo(entryFeature, 19).eFlags & $intern_138) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + return true; + } + else { + ++this$static.valueListIndex; + } + } + return false; + } + else { + return this$static.valueListIndex < this$static.valueListSize; + } +} + +function $scanNext_0(this$static, values){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (values.hasNext_0()) { + entry = castTo(values.next_1(), 76); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 102) && (castTo(entryFeature, 19).eFlags & $intern_138) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + values.previous_0(); + return true; + } + } + return false; + } + else { + return values.hasNext_0(); + } +} + +function $scanPrevious(this$static){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (this$static.valueListIndex > 0) { + entry = castTo(this$static.valueList.get_0(this$static.valueListIndex - 1), 76); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 102) && (castTo(entryFeature, 19).eFlags & $intern_138) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + return true; + } + else { + --this$static.valueListIndex; + } + } + return false; + } + else { + return this$static.valueListIndex > 0; + } +} + +function $scanPrevious_0(this$static, values){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (values.hasPrevious()) { + entry = castTo(values.previous_0(), 76); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 102) && (castTo(entryFeature, 19).eFlags & $intern_138) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + values.next_1(); + return true; + } + } + return false; + } + else { + return values.hasPrevious(); + } +} + +function EContentsEList$FeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + this.eObject = eObject; + this.eStructuralFeatures = eStructuralFeatures; +} + +defineClass(287, 1, $intern_161, EContentsEList$FeatureIteratorImpl); +_.forEachRemaining = function forEachRemaining_57(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_64(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.filter_0 = function filter_3(featureFilter){ + if (this.prepared != 0 || !!this.featureFilter) { + throw toJs(new IllegalStateException_0('Iterator already in use or already filtered')); + } + this.featureFilter = featureFilter; +} +; +_.hasNext_0 = function hasNext_46(){ + var entry, feature, newPreparedResult, newValueList, result, value_0; + switch (this.prepared) { + case 3: + case 2: + { + return true; + } + + case 1: + { + return false; + } + + case -3: + { + !this.values?++this.valueListIndex:this.values.next_1(); + } + + default:{ + if (!this.valueList || (!this.values?!$scanNext(this):!$scanNext_0(this, this.values))) { + while (this.featureCursor < this.eStructuralFeatures.length) { + feature = this.eStructuralFeatures[this.featureCursor++]; + if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { + value_0 = this.eObject.eGet_1(feature, this.resolve_0()); + this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 71); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 59)) { + this.values = null; + this.valueListSize = this.valueList.size_1(); + this.valueListIndex = 0; + } + else { + this.values = !this.valueInternalEList?this.valueList.listIterator_0():this.valueInternalEList.basicListIterator(); + } + if (!this.values?$scanNext(this):$scanNext_0(this, this.values)) { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 76); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = 3; + return true; + } + } + else if (value_0 != null) { + this.valueList = null; + this.values = null; + newPreparedResult = value_0; + this.preparedResult = newPreparedResult; + this.prepared = 2; + return true; + } + } + } + this.valueList = null; + this.values = null; + this.isHandlingFeatureMap = false; + this.prepared = 1; + return false; + } + else { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 76); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = 3; + return true; + } + } + + } +} +; +_.hasPrevious = function hasPrevious_9(){ + var entry, feature, newPreparedResult, newValueList, result, value_0; + switch (this.prepared) { + case -3: + case -2: + { + return true; + } + + case -1: + { + return false; + } + + case 3: + { + !this.values?--this.valueListIndex:this.values.previous_0(); + } + + default:{ + if (!this.valueList || (!this.values?!$scanPrevious(this):!$scanPrevious_0(this, this.values))) { + while (this.featureCursor > 0) { + feature = this.eStructuralFeatures[--this.featureCursor]; + if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { + value_0 = this.eObject.eGet_1(feature, this.resolve_0()); + this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 71); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 59)) { + this.valueListSize = this.valueList.size_1(); + this.valueListIndex = this.valueListSize; + } + else { + this.values = !this.valueInternalEList?this.valueList.listIterator_1(this.valueList.size_1()):this.valueInternalEList.basicListIterator_0(this.valueList.size_1()); + } + if (!this.values?$scanPrevious(this):$scanPrevious_0(this, this.values)) { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 76); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = -3; + return true; + } + } + else if (value_0 != null) { + this.valueList = null; + this.values = null; + newPreparedResult = value_0; + this.preparedResult = newPreparedResult; + this.prepared = -2; + return true; + } + } + } + this.valueList = null; + this.values = null; + this.prepared = -1; + return false; + } + else { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 76); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = -3; + return true; + } + } + + } +} +; +_.next_1 = function next_47(){ + return $next_14(this); +} +; +_.nextIndex_0 = function nextIndex_10(){ + return this.cursor; +} +; +_.previous_0 = function previous_10(){ + var result; + if (this.prepared < -1 || this.hasPrevious()) { + --this.cursor; + this.prepared = 0; + result = this.preparedResult; + this.hasPrevious(); + return result; + } + else { + throw toJs(new NoSuchElementException); + } +} +; +_.previousIndex = function previousIndex_9(){ + return this.cursor - 1; +} +; +_.remove = function remove_126(){ + throw toJs(new UnsupportedOperationException); +} +; +_.resolve_0 = function resolve_5(){ + return false; +} +; +_.set_1 = function set_34(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.useIsSet = function useIsSet_1(){ + return true; +} +; +_.cursor = 0; +_.featureCursor = 0; +_.isHandlingFeatureMap = false; +_.prepared = 0; +_.valueListIndex = 0; +_.valueListSize = 0; +var EMPTY_ITERATOR; +var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl', 287); +function EContentsEList$ResolvingFeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, eObject, eStructuralFeatures); +} + +defineClass(711, 287, $intern_161, EContentsEList$ResolvingFeatureIteratorImpl); +_.resolve_0 = function resolve_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$ResolvingFeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/ResolvingFeatureIteratorImpl', 711); +function ENamedElementImpl$1$1($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$ResolvingFeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1178, 711, $intern_161, ENamedElementImpl$1$1); +_.useIsSet = function useIsSet_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/1', 1178); +function ENamedElementImpl$1$2($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1179, 287, $intern_161, ENamedElementImpl$1$2); +_.useIsSet = function useIsSet_3(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/2', 1179); +function $$init_11(this$static){ +} + +function $getFeature(this$static){ + var eClass; + if (!this$static.feature && this$static.featureID != -1) { + eClass = this$static.notifier.eClass_0(); + this$static.feature = $getEStructuralFeature(eClass, this$static.featureID); + } + return this$static.feature; +} + +function ENotificationImpl(notifier, featureID, oldDoubleValue, newDoubleValue){ + NotificationImpl.call(this, 1, oldDoubleValue, newDoubleValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_0(notifier, featureID, oldIntValue, newIntValue){ + NotificationImpl_0.call(this, 1, oldIntValue, newIntValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_1(notifier, eventType, featureID, oldValue, newValue){ + ENotificationImpl_2.call(this, notifier, eventType, featureID, oldValue, newValue, -1); +} + +function ENotificationImpl_2(notifier, eventType, featureID, oldValue, newValue, position){ + NotificationImpl_1.call(this, eventType, oldValue, newValue, position); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_3(notifier, eventType, featureID, oldValue, newValue, position, wasSet){ + NotificationImpl_2.call(this, eventType, oldValue, newValue, position, wasSet); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_4(notifier, eventType, featureID, oldBooleanValue, newBooleanValue){ + NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_5(notifier, eventType, feature, oldByteValue, newByteValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldByteValue; + this.newSimplePrimitiveValue = newByteValue; + this.position = -1; + this.primitiveType = 1; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_6(notifier, eventType, feature, oldByteValue, newByteValue, isSetChange){ + ENotificationImpl_5.call(this, notifier, eventType, feature, oldByteValue, newByteValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_7(notifier, eventType, feature, oldCharValue, newCharValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldCharValue; + this.newSimplePrimitiveValue = newCharValue; + this.position = -1; + this.primitiveType = 2; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_8(notifier, eventType, feature, oldCharValue, newCharValue, isSetChange){ + ENotificationImpl_7.call(this, notifier, eventType, feature, oldCharValue, newCharValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_9(notifier, eventType, feature, oldDoubleValue, newDoubleValue){ + NotificationImpl.call(this, eventType, oldDoubleValue, newDoubleValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_10(notifier, eventType, feature, oldDoubleValue, newDoubleValue, isSetChange){ + ENotificationImpl_9.call(this, notifier, eventType, feature, oldDoubleValue, newDoubleValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_11(notifier, eventType, feature, oldFloatValue, newFloatValue){ + this.eventType = eventType; + this.oldIEEEPrimitiveValue = oldFloatValue; + this.newIEEEPrimitiveValue = newFloatValue; + this.position = -1; + this.primitiveType = 4; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_12(notifier, eventType, feature, oldFloatValue, newFloatValue, isSetChange){ + ENotificationImpl_11.call(this, notifier, eventType, feature, oldFloatValue, newFloatValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_13(notifier, eventType, feature, oldIntValue, newIntValue){ + NotificationImpl_0.call(this, eventType, oldIntValue, newIntValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_14(notifier, eventType, feature, oldIntValue, newIntValue, isSetChange){ + ENotificationImpl_13.call(this, notifier, eventType, feature, oldIntValue, newIntValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_15(notifier, eventType, feature, oldLongValue, newLongValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldLongValue; + this.newSimplePrimitiveValue = newLongValue; + this.position = -1; + this.primitiveType = 6; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_16(notifier, eventType, feature, oldLongValue, newLongValue, isSetChange){ + ENotificationImpl_15.call(this, notifier, eventType, feature, oldLongValue, newLongValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue){ + ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, -1); +} + +function ENotificationImpl_18(notifier, eventType, feature, oldValue, newValue, position){ + NotificationImpl_1.call(this, eventType, oldValue, newValue, position); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, isSetChange){ + ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, isSetChange?-2:-1); +} + +function ENotificationImpl_20(notifier, eventType, feature, oldShortValue, newShortValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldShortValue; + this.newSimplePrimitiveValue = newShortValue; + this.position = -1; + this.primitiveType = 7; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_21(notifier, eventType, feature, oldShortValue, newShortValue, isSetChange){ + ENotificationImpl_20.call(this, notifier, eventType, feature, oldShortValue, newShortValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_22(notifier, eventType, feature, oldBooleanValue, newBooleanValue){ + NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_23(notifier, eventType, feature, oldBooleanValue, newBooleanValue, isSetChange){ + ENotificationImpl_22.call(this, notifier, eventType, feature, oldBooleanValue, newBooleanValue); + isSetChange && (this.position = -2); +} + +defineClass(39, 152, $intern_145, ENotificationImpl, ENotificationImpl_0, ENotificationImpl_1, ENotificationImpl_2, ENotificationImpl_3, ENotificationImpl_4, ENotificationImpl_5, ENotificationImpl_6, ENotificationImpl_7, ENotificationImpl_8, ENotificationImpl_9, ENotificationImpl_10, ENotificationImpl_11, ENotificationImpl_12, ENotificationImpl_13, ENotificationImpl_14, ENotificationImpl_15, ENotificationImpl_16, ENotificationImpl_17, ENotificationImpl_18, ENotificationImpl_19, ENotificationImpl_20, ENotificationImpl_21, ENotificationImpl_22, ENotificationImpl_23); +_.getFeature = function getFeature_6(){ + return $getFeature(this); +} +; +_.getFeatureDefaultValue = function getFeatureDefaultValue_0(){ + var feature; + feature = $getFeature(this); + if (feature) { + return feature.getDefaultValue(); + } + return null; +} +; +_.getFeatureID = function getFeatureID_10(expectedClass){ + this.featureID == -1 && !!this.feature && (this.featureID = this.notifier.eDerivedStructuralFeatureID(this.feature.getFeatureID_0(), this.feature.getContainerClass())); + return this.notifier.eBaseStructuralFeatureID(this.featureID, expectedClass); +} +; +_.getNotifier = function getNotifier_6(){ + return this.notifier; +} +; +_.isFeatureUnsettable = function isFeatureUnsettable_0(){ + var feature; + feature = $getFeature(this); + if (feature) { + return feature.isUnsettable(); + } + return false; +} +; +_.featureID = -1; +var Lorg_eclipse_emf_ecore_impl_ENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENotificationImpl', 39); +function $eBasicRemoveFromContainerFeature_9(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 10) { + return this$static.eContainer.eInverseRemove(this$static, 11, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getEGenericExceptions(this$static){ + if (!this$static.eGenericExceptions) { + this$static.eGenericExceptions = new EOperationImpl$2(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); + !this$static.eExceptions && (this$static.eExceptions = new EOperationImpl$1(this$static, this$static)); + } + return this$static.eGenericExceptions; +} + +function $isSetEExceptions(this$static){ + return !!this$static.eExceptions && $getEGenericExceptions(this$static.eExceptions.this$01).size_0 != 0 && !(!!this$static.eGenericExceptions && $isSet_0(this$static.eGenericExceptions)); +} + +function EOperationImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(411, 292, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 62:1, 114:1, 481:1, 54:1, 99:1, 158:1, 411:1, 292:1, 119:1, 120:1}, EOperationImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_10(msgs){ + return $eBasicRemoveFromContainerFeature_9(this, msgs); +} +; +_.eGet = function eGet_27(featureID, resolve, coreType){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_3(this.lowerBound); + case 5: + return valueOf_3(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 29):null; + case 11: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , this.eTypeParameters; + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , this.eParameters; + case 13: + return !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)) , this.eExceptions; + case 14: + return $getEGenericExceptions(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EOPERATION:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_17(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 10: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_9(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 10, msgs); + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicAdd_0(this.eParameters, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_20(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 10: + return $eBasicSetContainer(this, null, 10, msgs); + case 11: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicRemove_0(this.eParameters, otherEnd, msgs); + case 14: + return $basicRemove_0($getEGenericExceptions(this), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_26(featureID){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 29):null); + case 11: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 12: + return !!this.eParameters && this.eParameters.size_0 != 0; + case 13: + return !!this.eExceptions && $getEGenericExceptions(this.eExceptions.this$01).size_0 != 0 && !(!!this.eGenericExceptions && $isSet_0(this.eGenericExceptions)); + case 14: + return !!this.eGenericExceptions && $isSet_0(this.eGenericExceptions); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EOPERATION:eClass), featureID)); +} +; +_.eSet = function eSet_25(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 17).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 17).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 142)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 89), null); + !!msgs && msgs.dispatch_0(); + return; + case 11: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $addAll_9(this.eTypeParameters, castTo(newValue, 16)); + return; + case 12: + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $clear_13(this.eParameters); + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $addAll_9(this.eParameters, castTo(newValue, 16)); + return; + case 13: + !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); + $clear_12(this.eExceptions); + !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); + $addAll_9(this.eExceptions, castTo(newValue, 16)); + return; + case 14: + $clear_13($getEGenericExceptions(this)); + $addAll_9($getEGenericExceptions(this), castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EOPERATION:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_26(){ + return $clinit_EcorePackage$Literals() , EOPERATION; +} +; +_.eUnset = function eUnset_25(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 11: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $clear_13(this.eTypeParameters); + return; + case 12: + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $clear_13(this.eParameters); + return; + case 13: + !!this.eExceptions && $clear_12(this.eExceptions); + return; + case 14: + !!this.eGenericExceptions && $clear_13(this.eGenericExceptions); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EOPERATION:eClass), featureID)); +} +; +_.freeze = function freeze_7(){ + var i, size_0; + if (this.eParameters) { + for (i = 0 , size_0 = this.eParameters.size_0; i < size_0; ++i) { + $freeze($get_20(this.eParameters, i)); + } + } + $getEType(this); + this.eFlags |= 1; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl', 411); +function $delegateAdd_1(this$static, index_0, eClassifier){ + $add_20($getEGenericExceptions(this$static.this$01), index_0, $wrap_1(eClassifier)); +} + +function $delegateAdd_2(this$static, eClassifier){ + $add_21($getEGenericExceptions(this$static.this$01), $wrap_1(eClassifier)); +} + +function $delegateContains_0(this$static, object){ + var eClassifier, eClassifier$iterator; + for (eClassifier$iterator = new AbstractEList$EIterator(this$static); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = castTo($doNext(eClassifier$iterator), 142); + if (maskUndefined(object) === maskUndefined(eClassifier)) { + return true; + } + } + return false; +} + +function $delegateSet_0(this$static, index_0, eClassifier){ + var eGenericType, result, result0; + eGenericType = castTo($get_20($getEGenericExceptions(this$static.this$01), index_0), 89); + result0 = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + (result0.eIsProxy()?$eResolveProxy(this$static.owner, castTo(result0, 54)):result0) == eClassifier?$getERawType(eGenericType):$setEClassifier(eGenericType, eClassifier); + return result0; +} + +function $wrap_1(eClassifier){ + var eGenericType, eGenericType0; + eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClassifier); + return eGenericType0; +} + +function EOperationImpl$1(this$0, $anonymous0){ + this.this$01 = this$0; + DelegatingEcoreEList.call(this, $anonymous0); +} + +defineClass(513, 756, $intern_159, EOperationImpl$1); +_.delegateAdd = function delegateAdd_3(index_0, eClassifier){ + $delegateAdd_1(this, index_0, castTo(eClassifier, 142)); +} +; +_.delegateAdd_0 = function delegateAdd_4(eClassifier){ + $delegateAdd_2(this, castTo(eClassifier, 142)); +} +; +_.delegateGet = function delegateGet_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericExceptions(this.this$01), index_0), 89) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); +} +; +_.delegateRemove = function delegateRemove_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericExceptions(this.this$01), index_0), 89) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); +} +; +_.delegateSet = function delegateSet_1(index_0, eClassifier){ + return $delegateSet_0(this, index_0, castTo(eClassifier, 142)); +} +; +_.canContainNull = function canContainNull_5(){ + return false; +} +; +_.createNotification = function createNotification_5(eventType, oldObject, newObject, index_0, wasSet){ + return null; +} +; +_.delegateBasicList = function delegateBasicList_1(){ + return new EOperationImpl$1$1(this); +} +; +_.delegateClear = function delegateClear_1(){ + $clear_13($getEGenericExceptions(this.this$01)); +} +; +_.delegateContains = function delegateContains_1(object){ + return $delegateContains_0(this, object); +} +; +_.delegateContainsAll = function delegateContainsAll_1(collection){ + var object, object$iterator; + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$delegateContains_0(this, object)) { + return false; + } + } + return true; +} +; +_.delegateEquals = function delegateEquals_1(object){ + var i, j, list; + if (instanceOf(object, 15)) { + list = castTo(object, 15); + if (list.size_1() == $getEGenericExceptions(this.this$01).size_0) { + for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { + if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { + return false; + } + } + return true; + } + } + return false; +} +; +_.delegateHashCode = function delegateHashCode_1(){ + var eGenericType, eGenericType$iterator, hashCode, object, result; + hashCode = 1; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + object = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + hashCode = 31 * hashCode + (!object?0:hashCode__I__devirtual$(object)); + } + return hashCode; +} +; +_.delegateIndexOf = function delegateIndexOf_1(object){ + var eGenericType, eGenericType$iterator, index_0, result; + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))) { + return index_0; + } + ++index_0; + } + return -1; +} +; +_.delegateIsEmpty = function delegateIsEmpty_1(){ + return $getEGenericExceptions(this.this$01).size_0 == 0; +} +; +_.delegateList_1 = function delegateList_3(){ + return null; +} +; +_.delegateSize = function delegateSize_1(){ + return $getEGenericExceptions(this.this$01).size_0; +} +; +_.delegateToArray = function delegateToArray_3(){ + var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; + size_0 = $getEGenericExceptions(this.this$01).size_0; + result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + result0[index_0++] = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + } + return result0; +} +; +_.delegateToArray_0 = function delegateToArray_4(array){ + var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; + size_0 = $getEGenericExceptions(this.this$01).size_0; + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + array.length > size_0 && setCheck(array, size_0, null); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + rawType = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + setCheck(array, index_0++, rawType); + } + return array; +} +; +_.delegateToString = function delegateToString_1(){ + var eGenericExceptions, i, result, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + eGenericExceptions = $getEGenericExceptions(this.this$01); + for (i = 0 , size_0 = $getEGenericExceptions(this.this$01).size_0; i < size_0;) { + $append_3(stringBuffer, valueOf_6((result = castTo($get_20(eGenericExceptions, i), 89).eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.dispatchNotification = function dispatchNotification_4(notification){ +} +; +_.getFeatureID_0 = function getFeatureID_11(){ + return 13; +} +; +_.hasInstanceClass = function hasInstanceClass_2(){ + return true; +} +; +_.hasInverse = function hasInverse_5(){ + return false; +} +; +_.hasManyInverse = function hasManyInverse_2(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse_3(){ + return false; +} +; +_.hasProxies = function hasProxies_2(){ + return true; +} +; +_.isContainment = function isContainment_5(){ + return false; +} +; +_.isEObject = function isEObject_3(){ + return true; +} +; +_.isInstance = function isInstance_5(object){ + return instanceOf(object, 142); +} +; +_.isSet_0 = function isSet_9(){ + return $isSetEExceptions(this.this$01); +} +; +_.isUnique = function isUnique_6(){ + return true; +} +; +_.useEquals = function useEquals_12(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1', 513); +function EOperationImpl$1$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1376, 2062, $intern_38, EOperationImpl$1$1); +_.listIterator_1 = function listIterator_31(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_78(){ + return $getEGenericExceptions(this.this$11.this$01).size_0; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1/1', 1376); +function $isSet_0(this$static){ + var eGenericType, eGenericType$iterator; + for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 89); + if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { + return true; + } + } + return false; +} + +function $shadowAdd_0(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 3, 13, null, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowRemove_0(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 4, 13, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), null, $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowSet_0(this$static, oldEGenericType, newEGenericType, notifications){ + var notification, result, result0; + notification = new ENotificationImpl_3(this$static.owner, 1, 13, (result0 = oldEGenericType.eRawType , result0?result0:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), (result = newEGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, oldEGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function EOperationImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 14); +} + +defineClass(1377, 555, $intern_157, EOperationImpl$2); +_.move = function move_19(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 89) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , EOPERATION__EEXCEPTIONS), valueOf_3(sourceIndex), (result = result0.eRawType , result?result:EJAVA_OBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_1(eGenericType, notifications){ + return $shadowAdd_0(this, castTo(eGenericType, 89), notifications); +} +; +_.shadowRemove = function shadowRemove_1(eGenericType, notifications){ + return $shadowRemove_0(this, castTo(eGenericType, 89), notifications); +} +; +_.shadowSet = function shadowSet_1(oldEGenericType, newEGenericType, notifications){ + return $shadowSet_0(this, castTo(oldEGenericType, 89), castTo(newEGenericType, 89), notifications); +} +; +_.createNotification = function createNotification_6(eventType, oldObject, newObject, index_0, wasSet){ + switch (eventType) { + case 3: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); + } + + case 5: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); + } + + default:{ + return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); + } + + } +} +; +_.hasShadow = function hasShadow_1(){ + return true; +} +; +_.isSet_0 = function isSet_10(){ + return $isSet_0(this); +} +; +_.unset = function unset_6(){ + $clear_13(this); +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/2', 1377); +function EPackageImpl$1(this$0, val$factory){ + this.this$01 = this$0; + this.val$factory2 = val$factory; +} + +defineClass(507, 1, {2037:1, 507:1}, EPackageImpl$1); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/1', 507); +function EObjectContainmentWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(14, 83, $intern_157, EObjectContainmentWithInverseEList); +_.getInverseFeatureClass = function getInverseFeatureClass_0(){ + return this.dataClass; +} +; +_.getInverseFeatureID = function getInverseFeatureID_0(){ + return this.inverseFeatureID; +} +; +_.hasNavigableInverse = function hasNavigableInverse_4(){ + return true; +} +; +_.inverseFeatureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList', 14); +function EObjectContainmentWithInverseEList$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(365, 14, $intern_157, EObjectContainmentWithInverseEList$Resolving); +_.hasProxies = function hasProxies_3(){ + return true; +} +; +_.resolve = function resolve_7(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Resolving', 365); +function EPackageImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentWithInverseEList$Resolving.call(this, $anonymous0, $anonymous1, 5, 6); +} + +defineClass(308, 365, $intern_157, EPackageImpl$2); +_.didChange = function didChange_1(){ + this.this$01.eNameToEClassifierMap = null; +} +; +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/2', 308); +function EPackageImpl$3(){ +} + +defineClass(1278, 1, {}, EPackageImpl$3); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/3', 1278); +function $getEFactory(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = $get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 241)) { + result = castTo(ePackage, 241); + result.getNsURI() == null && undefined; + return result.getEFactoryInstance(); + } + else if (instanceOf(ePackage, 507)) { + ePackageDescriptor = castTo(ePackage, 2037); + result = ePackageDescriptor.val$factory2; + return result; + } + else { + return null; + } +} + +function $getEPackage_0(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = nsURI == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 241)) { + result = castTo(ePackage, 241); + result.getNsURI() == null && undefined; + return result; + } + else if (instanceOf(ePackage, 507)) { + ePackageDescriptor = castTo(ePackage, 2037); + result = ePackageDescriptor.this$01; + !!result && (result.nsURI == null?undefined:nsURI == null?$put_9(this$static.hashCodeMap, null, result):$put_10(this$static.stringMap, nsURI, result)); + return result; + } + else { + return null; + } +} + +function EPackageRegistryImpl(){ + HashMap.call(this); +} + +defineClass(733, 45, $intern_76, EPackageRegistryImpl); +_.containsKey = function containsKey_16(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +var Lorg_eclipse_emf_ecore_impl_EPackageRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageRegistryImpl', 733); +function $eBasicRemoveFromContainerFeature_10(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 10) { + return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_emf_ecore_EOperation_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), this$static.eFlags_0 >> 16), 19)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function EParameterImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(518, 292, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 2116:1, 114:1, 481:1, 54:1, 99:1, 158:1, 518:1, 292:1, 119:1, 120:1}, EParameterImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_11(msgs){ + return $eBasicRemoveFromContainerFeature_10(this, msgs); +} +; +_.eGet = function eGet_28(featureID, resolve, coreType){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_3(this.lowerBound); + case 5: + return valueOf_3(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 62):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EPARAMETER:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_18(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 10: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_10(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 10, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_21(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 10: + return $eBasicSetContainer(this, null, 10, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_27(featureID){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 62):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EPARAMETER:eClass), featureID)); +} +; +_.eStaticClass = function eStaticClass_27(){ + return $clinit_EcorePackage$Literals() , EPARAMETER; +} +; +var Lorg_eclipse_emf_ecore_impl_EParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EParameterImpl', 518); +function $basicGetEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType) { + eType = this$static.eType; + instanceOf(eType, 90) && (this$static.eReferenceType = castTo(eType, 29)); + } + return this$static.eReferenceType; +} + +function $getEOpposite(this$static){ + var oldEOpposite; + if (!!this$static.eOpposite && (this$static.eOpposite.eFlags_0 & 64) != 0) { + oldEOpposite = this$static.eOpposite; + this$static.eOpposite = castTo($eResolveProxy(this$static, oldEOpposite), 19); + this$static.eOpposite != oldEOpposite && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 21, oldEOpposite, this$static.eOpposite)); + } + return this$static.eOpposite; +} + +function $getEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType || (this$static.eFlags & 1) == 0 && (this$static.eReferenceType.eFlags_0 & 64) != 0) { + eType = $getEType(this$static); + instanceOf(eType, 90) && (this$static.eReferenceType = castTo(eType, 29)); + } + return this$static.eReferenceType; +} + +function $setContainment(this$static, value_0){ + $setContainmentGen(this$static, value_0); + instanceOf(this$static.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 90)), 2); +} + +function $setContainmentGen(this$static, newContainment){ + var oldContainment; + oldContainment = (this$static.eFlags & $intern_138) != 0; + newContainment?(this$static.eFlags |= $intern_138):(this$static.eFlags &= -32769); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldContainment, newContainment)); +} + +function $setEOpposite(this$static, newEOpposite){ + var oldEOpposite; + oldEOpposite = this$static.eOpposite; + this$static.eOpposite = newEOpposite; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 21, oldEOpposite, this$static.eOpposite)); +} + +function $setResolveProxies(this$static, newResolveProxies){ + var oldResolveProxies; + oldResolveProxies = (this$static.eFlags & $intern_64) != 0; + newResolveProxies?(this$static.eFlags |= $intern_64):(this$static.eFlags &= -65537); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 20, oldResolveProxies, newResolveProxies)); +} + +function EReferenceImpl(){ + EStructuralFeatureImpl.call(this); + this.eFlags |= $intern_64; +} + +defineClass(102, 462, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 19:1, 179:1, 69:1, 114:1, 481:1, 54:1, 99:1, 158:1, 102:1, 462:1, 292:1, 119:1, 120:1, 692:1}, EReferenceImpl); +_.eGet = function eGet_29(featureID, resolve, coreType){ + var eClass, lower, theOpposite, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_3(this.lowerBound); + case 5: + return valueOf_3(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_35) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_153) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_62) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_152) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + case 18: + return $clinit_Boolean() , (this.eFlags & $intern_138) != 0?true:false; + case 19: + return $clinit_Boolean() , theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_138) != 0?true:false; + case 20: + return $clinit_Boolean() , (this.eFlags & $intern_64) != 0?true:false; + case 21: + if (resolve) + return $getEOpposite(this); + return this.eOpposite; + case 22: + if (resolve) + return $getEReferenceType(this); + return $basicGetEReferenceType(this); + case 23: + return !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)) , this.eKeys; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EREFERENCE:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_28(featureID){ + var eClass, lower, theOpposite, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_35) == 0; + case 11: + return (this.eFlags & $intern_153) != 0; + case 12: + return (this.eFlags & $intern_62) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_152) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_138) != 0; + case 19: + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_138) != 0; + case 20: + return (this.eFlags & $intern_64) == 0; + case 21: + return !!this.eOpposite; + case 22: + return !!$basicGetEReferenceType(this); + case 23: + return !!this.eKeys && this.eKeys.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EREFERENCE:eClass), featureID)); +} +; +_.eSet = function eSet_26(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 17).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 17).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 142)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 89), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + case 18: + $setContainment(this, $booleanValue(castToBoolean(newValue))); + return; + case 20: + $setResolveProxies(this, $booleanValue(castToBoolean(newValue))); + return; + case 21: + $setEOpposite(this, castTo(newValue, 19)); + return; + case 23: + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $clear_13(this.eKeys); + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $addAll_9(this.eKeys, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EREFERENCE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_28(){ + return $clinit_EcorePackage$Literals() , EREFERENCE; +} +; +_.eUnset = function eUnset_26(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 90)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + case 18: + $setContainmentGen(this, false); + instanceOf(this.eContainer, 90) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 90)), 2); + return; + case 20: + $setResolveProxies(this, true); + return; + case 21: + $setEOpposite(this, null); + return; + case 23: + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $clear_13(this.eKeys); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?EREFERENCE:eClass), featureID)); +} +; +_.freeze = function freeze_8(){ + $getEReferenceType(this); + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.getEOpposite = function getEOpposite_0(){ + return $getEOpposite(this); +} +; +_.isContainer = function isContainer_0(){ + var theOpposite; + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_138) != 0; +} +; +_.isContainment = function isContainment_6(){ + return (this.eFlags & $intern_138) != 0; +} +; +_.isResolveProxies_0 = function isResolveProxies_1(){ + return (this.eFlags & $intern_64) != 0; +} +; +_.setEType = function setEType_1(newEType, msgs){ + this.eReferenceType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.toString_0 = function toString_154(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_29(this); + result = new StringBuffer_1($toString_29(this)); + result.string += ' (containment: '; + $append_4(result, (this.eFlags & $intern_138) != 0); + result.string += ', resolveProxies: '; + $append_4(result, (this.eFlags & $intern_64) != 0); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_impl_EReferenceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EReferenceImpl', 102); +function $setKey(this$static, key){ + $setTypedKeyGen(this$static, key == null?null:(checkCriticalNotNull(key) , key)); +} + +function $setTypedKey_0(this$static, newKey){ + $setTypedKeyGen(this$static, newKey == null?null:(checkCriticalNotNull(newKey) , newKey)); +} + +function $setTypedKeyGen(this$static, newKey){ + var oldKey; + oldKey = this$static.key; + this$static.key = newKey; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); +} + +function $setTypedValue_0(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); +} + +function $setValue_2(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + $setTypedValue_0(this$static, value_0); + return oldValue; +} + +function EStringToStringMapEntryImpl(){ +} + +defineClass(561, 120, {110:1, 44:1, 94:1, 93:1, 136:1, 58:1, 114:1, 54:1, 99:1, 561:1, 119:1, 120:1}, EStringToStringMapEntryImpl); +_.equals_0 = function equals_224(other){ + return this === other; +} +; +_.getKey = function getKey_11(){ + return this.key; +} +; +_.getValue = function getValue_14(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_84(){ + return getObjectIdentityHashCode(this); +} +; +_.setKey = function setKey_2(key){ + $setKey(this, castToString(key)); +} +; +_.setValue = function setValue_14(value_0){ + return $setValue_2(this, castToString(value_0)); +} +; +_.eGet = function eGet_30(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return this.key; + case 1: + return this.value_0; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_29(featureID){ + var eClass; + switch (featureID) { + case 0: + return this.key != null; + case 1: + return this.value_0 != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); +} +; +_.eSet = function eSet_27(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setTypedKey_0(this, castToString(newValue)); + return; + case 1: + $setTypedValue_0(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_29(){ + return $clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY; +} +; +_.eUnset = function eUnset_27(featureID){ + var eClass; + switch (featureID) { + case 0: + $setTypedKeyGen(this, null); + return; + case 1: + $setTypedValue_0(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); +} +; +_.getHash = function getHash_2(){ + var theKey; + if (this.hash == -1) { + theKey = this.key; + this.hash = theKey == null?0:$hashCode_2(theKey); + } + return this.hash; +} +; +_.setHash = function setHash_2(hash){ + this.hash = hash; +} +; +_.toString_0 = function toString_155(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (key: '; + $append_3(result, this.key); + result.string += ', value: '; + $append_3(result, this.value_0); + result.string += ')'; + return result.string; +} +; +_.hash = -1; +_.key = null; +_.value_0 = null; +var Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStringToStringMapEntryImpl', 561); +var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry/Internal'); +function $validate_2(this$static, value_0){ + var valueClass; + if (value_0 != null && !this$static.eStructuralFeature.getEType().isInstance(value_0)) { + valueClass = instanceOf(value_0, 58)?castTo(value_0, 58).eClass_0().name_0:$getName(getClass__Ljava_lang_Class___devirtual$(value_0)); + throw toJs(new ClassCastException_0("The feature '" + this$static.eStructuralFeature.getName() + "'s type '" + this$static.eStructuralFeature.getEType().getName() + "' does not permit a value of type '" + valueClass + "'")); + } +} + +function EStructuralFeatureImpl$BasicFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(576, 1, $intern_162); +_.createEntry = function createEntry(value_0){ + return this.createEntry_0(castTo(value_0, 54)); +} +; +_.createEntry_0 = function createEntry_0(value_0){ + return this.createEntry(value_0); +} +; +_.equals_0 = function equals_225(that){ + var entry, value_0; + if (this === that) { + return true; + } + else if (instanceOf(that, 76)) { + entry = castTo(that, 76); + if (entry.getEStructuralFeature() == this.eStructuralFeature) { + value_0 = this.getValue(); + return value_0 == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue()); + } + else { + return false; + } + } + else { + return false; + } +} +; +_.getEStructuralFeature = function getEStructuralFeature_1(){ + return this.eStructuralFeature; +} +; +_.hashCode_1 = function hashCode_85(){ + var value_0; + value_0 = this.getValue(); + return hashCode__I__devirtual$(this.eStructuralFeature) ^ (value_0 == null?0:hashCode__I__devirtual$(value_0)); +} +; +_.toString_0 = function toString_156(){ + var eStructuralFeature, prefix; + eStructuralFeature = this.eStructuralFeature; + prefix = $getEPackage(eStructuralFeature.getEContainingClass()).getNsPrefix(); + eStructuralFeature.getName(); + return (prefix != null && prefix.length != 0?prefix + ':' + eStructuralFeature.getName():eStructuralFeature.getName()) + '=' + this.getValue(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$BasicFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/BasicFeatureMapEntry', 576); +function $inverseAdd(this$static, owner, otherEnd, featureID, notifications){ + var containmentFeatureID; + if (otherEnd) { + containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); + notifications = otherEnd.eInverseAdd(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); + } + return notifications; +} + +function $inverseRemove(this$static, owner, otherEnd, featureID, notifications){ + var containmentFeatureID; + if (otherEnd) { + containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); + notifications = otherEnd.eInverseRemove(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); + } + return notifications; +} + +function EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(791, 576, $intern_162, EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry); +_.createEntry_0 = function createEntry_1(value_0){ + return new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_15(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_3(owner, featureID, notifications){ + return $inverseAdd(this, owner, this.value_0, featureID, notifications); +} +; +_.inverseRemove_0 = function inverseRemove_3(owner, featureID, notifications){ + return $inverseRemove(this, owner, this.value_0, featureID, notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry', 791); +function EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(feature, featureMapFeature){ + this.feature = feature; + this.featureMapFeature = featureMapFeature; +} + +defineClass(1350, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator); +_.dynamicGet_0 = function dynamicGet_3(owner, settings, index_0, resolve, coreType){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 220); + return featureMap.setting(this.feature).get_6(resolve); +} +; +_.dynamicInverseAdd = function dynamicInverseAdd(owner, settings, index_0, otherEnd, notifications){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 220); + return featureMap.basicAdd_0(this.feature, otherEnd, notifications); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove(owner, settings, index_0, otherEnd, notifications){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 220); + return featureMap.basicRemove_0(this.feature, otherEnd, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 220); + return featureMap.setting(this.feature).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_3(owner, settings, index_0, newValue){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 220); + featureMap.setting(this.feature).set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting(owner, settings, index_0){ + return castTo($eGet_0(owner, this.featureMapFeature), 220).setting(this.feature); +} +; +_.dynamicUnset_0 = function dynamicUnset_3(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 220); + featureMap.setting(this.feature).unset(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator', 1350); +function $createDynamicSetting(this$static, owner){ + switch (this$static.style) { + case 0: + case 2: + case 4: + case 6: + case 42: + case 44: + case 46: + case 48: + case 8: + case 10: + case 12: + case 14: + case 16: + case 18: + case 20: + case 22: + case 24: + case 26: + case 28: + case 30: + case 32: + case 34: + case 36: + case 38: + return new EcoreEList$Dynamic(this$static.dynamicKind, this$static.dataClass, owner, this$static.feature); + case 1: + return new EObjectContainmentEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 43: + return new EObjectContainmentEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 3: + return new EObjectContainmentEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 45: + return new EObjectContainmentEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 41: + return new EcoreEMap(castTo($getEType(this$static.feature), 29), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 50: + return new EcoreEMap$Unsettable(castTo($getEType(this$static.feature), 29), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 5: + return new EObjectContainmentWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 47: + return new EObjectContainmentWithInverseEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 7: + return new EObjectContainmentWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 49: + return new EObjectContainmentWithInverseEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 9: + return new EDataTypeUniqueEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 11: + return new EDataTypeUniqueEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 13: + return new EDataTypeEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 15: + return new EDataTypeEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 17: + return new EObjectResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 19: + return new EObjectResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 21: + return new EObjectEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 23: + return new EObjectEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 25: + return new EObjectWithInverseResolvingEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 27: + return new EObjectWithInverseResolvingEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 29: + return new EObjectWithInverseEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 31: + return new EObjectWithInverseEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 33: + return new EObjectWithInverseResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 35: + return new EObjectWithInverseResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 37: + return new EObjectWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 39: + return new EObjectWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 40: + return new BasicFeatureMap(owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + default:throw toJs(new RuntimeException_0('Unknown feature style: ' + this$static.style)); + } +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany(style, dataClass, feature){ + this.style = style; + this.dataClass = dataClass; + this.feature = feature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_0(style, dataClass, feature, inverseFeature){ + this.style = style; + this.dataClass = dataClass; + this.feature = feature; + this.inverseFeature = inverseFeature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_1(style, feature){ + this.style = style; + this.dataClass = Ljava_lang_Object_2_classLit; + this.dynamicKind = kind_0(feature); + this.feature = feature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_2(style, feature, inverseFeature){ + this.style = style; + this.dataClass = Ljava_lang_Object_2_classLit; + this.dynamicKind = kind_0(feature); + this.feature = feature; + this.inverseFeature = inverseFeature; +} + +defineClass(91, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateMany, EStructuralFeatureImpl$InternalSettingDelegateMany_0, EStructuralFeatureImpl$InternalSettingDelegateMany_1, EStructuralFeatureImpl$InternalSettingDelegateMany_2); +_.dynamicGet_0 = function dynamicGet_4(owner, settings, index_0, resolve, coreType){ + var result; + result = settings.dynamicGet(index_0); + result == null && settings.dynamicSet(index_0, result = $createDynamicSetting(this, owner)); + if (!coreType) { + switch (this.style) { + case 50: + case 41: + return castTo(result, 597).map_2(); + case 40: + return castTo(result, 220).getWrapper(); + } + } + return result; +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_0(owner, settings, index_0, otherEnd, notifications){ + var result, setting; + setting = settings.dynamicGet(index_0); + setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + result = castTo(setting, 71).basicAdd(otherEnd, notifications); + return result; +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_0(owner, settings, index_0, otherEnd, notifications){ + var setting; + setting = settings.dynamicGet(index_0); + setting != null && (notifications = castTo(setting, 71).basicRemove(otherEnd, notifications)); + return notifications; +} +; +_.dynamicIsSet = function dynamicIsSet_0(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null && castTo(setting, 79).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_4(owner, settings, index_0, newValue){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 79); + !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + setting.set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting_0(owner, settings, index_0){ + var result, setting; + setting = settings.dynamicGet(index_0); + setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + if (instanceOf(setting, 79)) { + return castTo(setting, 79); + } + else { + result = castTo(settings.dynamicGet(index_0), 15); + return new EStructuralFeatureImpl$SettingMany(result); + } +} +; +_.dynamicUnset_0 = function dynamicUnset_4(owner, settings, index_0){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 79); + !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + setting.unset(); +} +; +_.dynamicKind = 0; +_.style = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateMany', 91); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle = emptyMethod; + NIL_0 = ($clinit_EStructuralFeature$Internal$DynamicValueHolder() , NIL); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingle(feature){ + this.feature = feature; +} + +defineClass(512, 1, {}); +_.dynamicInverseAdd = function dynamicInverseAdd_1(owner, settings, index_0, otherEnd, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_1(owner, settings, index_0, otherEnd, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicSetting = function dynamicSetting_1(owner, settings, index_0){ + return new EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this, owner, settings, index_0); +} +; +var NIL_0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle', 512); +function EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this$1, val$owner, val$settings, val$index){ + this.this$11 = this$1; + this.val$owner2 = val$owner; + this.val$settings3 = val$settings; + this.val$index4 = val$index; +} + +defineClass(1367, 1, $intern_150, EStructuralFeatureImpl$InternalSettingDelegateSingle$1); +_.get_6 = function get_66(resolve){ + return this.this$11.dynamicGet_0(this.val$owner2, this.val$settings3, this.val$index4, resolve, true); +} +; +_.isSet_0 = function isSet_11(){ + return this.this$11.dynamicIsSet(this.val$owner2, this.val$settings3, this.val$index4); +} +; +_.set_1 = function set_35(newValue){ + this.this$11.dynamicSet_0(this.val$owner2, this.val$settings3, this.val$index4, newValue); +} +; +_.unset = function unset_7(){ + this.this$11.dynamicUnset_0(this.val$owner2, this.val$settings3, this.val$index4); +} +; +_.val$index4 = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle/1', 1367); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(784, 512, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainer); +_.dynamicGet_0 = function dynamicGet_5(owner, settings, index_0, resolve, coreType){ + return eContainmentFeature(owner, owner.eInternalContainer(), owner.eContainerFeatureID_0()) == this.inverseFeature?this.isResolveProxies_0() && resolve?$eContainer(owner):owner.eInternalContainer():null; +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_2(owner, settings, index_0, otherEnd, notifications){ + var eContainerFeatureID, featureID; + !!owner.eInternalContainer() && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return owner.eBasicSetContainer_0(otherEnd, featureID, notifications); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_2(owner, settings, index_0, otherEnd, notifications){ + var featureID; + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return owner.eBasicSetContainer_0(null, featureID, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet_1(owner, settings, index_0){ + var featureID; + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return !!owner.eInternalContainer() && owner.eContainerFeatureID_0() == featureID; +} +; +_.dynamicSet_0 = function dynamicSet_5(owner, settings, index_0, newValue){ + var eContainer, eContainerFeatureID, featureID, internalEObject, notifications; + if (newValue != null && !$isInstance(this.eClass, newValue)) { + throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 58)?$toString_31(castTo(newValue, 58).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); + } + eContainer = owner.eInternalContainer(); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + if (maskUndefined(newValue) !== maskUndefined(eContainer) || owner.eContainerFeatureID_0() != featureID && newValue != null) { + if (isAncestor(owner, castTo(newValue, 58))) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + owner.toString_0())); + notifications = null; + !!eContainer && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); + internalEObject = castTo(newValue, 54); + !!internalEObject && (notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications)); + notifications = owner.eBasicSetContainer_0(internalEObject, featureID, notifications); + !!notifications && notifications.dispatch_0(); + } + else { + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_1(owner, 1, featureID, newValue, newValue)); + } +} +; +_.dynamicUnset_0 = function dynamicUnset_5(owner, settings, index_0){ + var eContainer, eContainerFeatureID, featureID, notifications; + eContainer = owner.eInternalContainer(); + if (eContainer) { + notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(null):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, null)); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + notifications = owner.eBasicSetContainer_0(null, featureID, notifications); + !!notifications && notifications.dispatch_0(); + } + else { + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 1, this.feature, null, null)); + } +} +; +_.isResolveProxies_0 = function isResolveProxies_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainer_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer', 784); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleContainer.call(this, eClass, feature, inverseFeature); +} + +defineClass(1351, 784, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving); +_.isResolveProxies_0 = function isResolveProxies_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving', 1351); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData(defaultValue, intrinsicDefaultValue, feature){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.defaultValue = defaultValue; + this.intrinsicDefaultValue = intrinsicDefaultValue; + this.notificationCreator = ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , OBJECT_NOTIFICATION_CREATOR); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleData_0(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.defaultValue = defaultValue; + this.intrinsicDefaultValue = intrinsicDefaultValue; + this.notificationCreator = notificationCreator; +} + +defineClass(574, 512, {}); +_.dynamicGet_0 = function dynamicGet_6(owner, settings, index_0, resolve, coreType){ + var result; + return result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result; +} +; +_.dynamicIsSet = function dynamicIsSet_2(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null && (maskUndefined(setting) === maskUndefined(NIL_0) || !equals_Ljava_lang_Object__Z__devirtual$(setting, this.defaultValue)); +} +; +_.dynamicSet_0 = function dynamicSet_6(owner, settings, index_0, newValue){ + var oldValue, result; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); + if (newValue == null) { + if (this.intrinsicDefaultValue != null) { + settings.dynamicSet(index_0, null); + newValue = this.defaultValue; + } + else + this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, newValue)); + } + else { + if (newValue == null) { + this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + } +} +; +_.dynamicUnset_0 = function dynamicUnset_6(owner, settings, index_0){ + var oldValue, result; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); + settings.dynamicUnset(index_0); + $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, this.defaultValue)); + } + else { + settings.dynamicUnset(index_0); + } +} +; +_.validate_0 = function validate_2(object){ + throw toJs(new ClassCastException); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData', 574); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator = emptyMethod; + OBJECT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator; + BOOLEAN_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1; + BYTE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2; + CHAR_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3; + DOUBLE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4; + FLOAT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5; + INT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6; + LONG_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7; + SHORT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8; +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ +} + +defineClass($intern_163, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator); +_.createNotification_0 = function createNotification_7(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue); +} +; +_.createNotification_1 = function createNotification_8(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, wasSet); +} +; +var BOOLEAN_NOTIFICATION_CREATOR, BYTE_NOTIFICATION_CREATOR, CHAR_NOTIFICATION_CREATOR, DOUBLE_NOTIFICATION_CREATOR, FLOAT_NOTIFICATION_CREATOR, INT_NOTIFICATION_CREATOR, LONG_NOTIFICATION_CREATOR, OBJECT_NOTIFICATION_CREATOR, SHORT_NOTIFICATION_CREATOR; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator', $intern_163); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1(){ +} + +defineClass(1368, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1); +_.createNotification_0 = function createNotification_9(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_22(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue))); +} +; +_.createNotification_1 = function createNotification_10(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_23(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue)), wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1', 1368); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2(){ +} + +defineClass(1369, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2); +_.createNotification_0 = function createNotification_11(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_5(notifier, eventType, feature, castTo(oldValue, 222).value_0, castTo(newValue, 222).value_0); +} +; +_.createNotification_1 = function createNotification_12(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_6(notifier, eventType, feature, castTo(oldValue, 222).value_0, castTo(newValue, 222).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2', 1369); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3(){ +} + +defineClass(1370, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3); +_.createNotification_0 = function createNotification_13(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_7(notifier, eventType, feature, castTo(oldValue, 180).value_0, castTo(newValue, 180).value_0); +} +; +_.createNotification_1 = function createNotification_14(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_8(notifier, eventType, feature, castTo(oldValue, 180).value_0, castTo(newValue, 180).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3', 1370); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4(){ +} + +defineClass(1371, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4); +_.createNotification_0 = function createNotification_15(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_9(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue))); +} +; +_.createNotification_1 = function createNotification_16(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_10(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue)), wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4', 1371); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5(){ +} + +defineClass(1372, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5); +_.createNotification_0 = function createNotification_17(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_11(notifier, eventType, feature, castTo(oldValue, 161).value_0, castTo(newValue, 161).value_0); +} +; +_.createNotification_1 = function createNotification_18(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_12(notifier, eventType, feature, castTo(oldValue, 161).value_0, castTo(newValue, 161).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5', 1372); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6(){ +} + +defineClass(1373, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6); +_.createNotification_0 = function createNotification_19(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_13(notifier, eventType, feature, castTo(oldValue, 17).value_0, castTo(newValue, 17).value_0); +} +; +_.createNotification_1 = function createNotification_20(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_14(notifier, eventType, feature, castTo(oldValue, 17).value_0, castTo(newValue, 17).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6', 1373); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7(){ +} + +defineClass(1374, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7); +_.createNotification_0 = function createNotification_21(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_15(notifier, eventType, feature, castTo(oldValue, 168).value_0, castTo(newValue, 168).value_0); +} +; +_.createNotification_1 = function createNotification_22(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_16(notifier, eventType, feature, castTo(oldValue, 168).value_0, castTo(newValue, 168).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7', 1374); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8(){ +} + +defineClass(1375, $intern_163, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8); +_.createNotification_0 = function createNotification_23(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_20(notifier, eventType, feature, castTo(oldValue, 191).value_0, castTo(newValue, 191).value_0); +} +; +_.createNotification_1 = function createNotification_24(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_21(notifier, eventType, feature, castTo(oldValue, 191).value_0, castTo(newValue, 191).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8', 1375); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1353, 574, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic); +_.validate_0 = function validate_3(object){ + if (!this.eDataType.isInstance(object)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic', 1353); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1354, 574, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic); +_.validate_0 = function validate_4(object){ +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic', 1354); +defineClass(785, 574, {}); +_.dynamicIsSet = function dynamicIsSet_3(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null; +} +; +_.dynamicSet_0 = function dynamicSet_7(owner, settings, index_0, newValue){ + var oldIsSet, oldValue; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldIsSet = true; + oldValue = settings.dynamicGet(index_0); + if (oldValue == null) { + oldIsSet = false; + oldValue = this.defaultValue; + } + else + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + if (newValue == null) { + if (this.intrinsicDefaultValue != null) { + settings.dynamicSet(index_0, null); + newValue = this.defaultValue; + } + else { + settings.dynamicSet(index_0, NIL_0); + } + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + $eNotify(owner, this.notificationCreator.createNotification_1(owner, 1, this.feature, oldValue, newValue, !oldIsSet)); + } + else { + if (newValue == null) { + this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):settings.dynamicSet(index_0, NIL_0); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + } +} +; +_.dynamicUnset_0 = function dynamicUnset_7(owner, settings, index_0){ + var oldIsSet, oldValue; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldIsSet = true; + oldValue = settings.dynamicGet(index_0); + if (oldValue == null) { + oldIsSet = false; + oldValue = this.defaultValue; + } + else + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicUnset(index_0); + $eNotify(owner, this.notificationCreator.createNotification_1(owner, 2, this.feature, oldValue, this.defaultValue, oldIsSet)); + } + else { + settings.dynamicUnset(index_0); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable', 785); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1355, 785, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic); +_.validate_0 = function validate_5(object){ + if (!this.eDataType.isInstance(object)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic', 1355); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1356, 785, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic); +_.validate_0 = function validate_6(object){ +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic', 1356); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0(eClass, feature, inverseFeature){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(410, 512, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObject); +_.dynamicGet_0 = function dynamicGet_7(owner, settings, index_0, resolve, coreType){ + var newEObject, notificationChain, oldEObject, resolvedEObject, result; + result = settings.dynamicGet(index_0); + if (this.isUnsettable() && maskUndefined(result) === maskUndefined(NIL_0)) { + return null; + } + else if (this.isResolveProxies_0() && resolve && result != null) { + oldEObject = castTo(result, 54); + if (oldEObject.eIsProxy()) { + resolvedEObject = $eResolveProxy(owner, oldEObject); + if (oldEObject != resolvedEObject) { + if (!$isInstance(this.eClass, resolvedEObject)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(resolvedEObject) + "' must be of type '" + this.eClass + "'")); + } + settings.dynamicSet(index_0, result = resolvedEObject); + if (this.isContainment()) { + newEObject = castTo(resolvedEObject, 54); + notificationChain = oldEObject.eInverseRemove(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(oldEObject.eClass_0(), this.inverseFeature), null, null); + !newEObject.eInternalContainer() && (notificationChain = newEObject.eInverseAdd(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(newEObject.eClass_0(), this.inverseFeature), null, notificationChain)); + !!notificationChain && notificationChain.dispatch_0(); + } + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 9, this.feature, oldEObject, resolvedEObject)); + } + } + return result; + } + else { + return result; + } +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_3(owner, settings, index_0, otherEnd, notifications){ + var internalEObject, oldValue; + oldValue = settings.dynamicGet(index_0); + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicSet(index_0, otherEnd); + if (this.hasInverse()) { + if (maskUndefined(oldValue) !== maskUndefined(otherEnd) && oldValue != null) { + internalEObject = castTo(oldValue, 54); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + else + this.isContainment() && oldValue != null && (notifications = castTo(oldValue, 54).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + !notifications && (notifications = new NotificationChainImpl_0(4)); + notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, otherEnd)); + } + return notifications; +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_3(owner, settings, index_0, otherEnd, notifications){ + var oldValue; + oldValue = settings.dynamicGet(index_0); + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicUnset(index_0); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + !notifications && (notifications = new NotificationChainImpl_0(4)); + this.isUnsettable()?notifications.add_5(new ENotificationImpl_17(owner, 2, this.feature, oldValue, null)):notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, null)); + } + return notifications; +} +; +_.dynamicIsSet = function dynamicIsSet_4(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null; +} +; +_.dynamicSet_0 = function dynamicSet_8(owner, settings, index_0, newValue){ + var internalEObject, notification, notifications, oldIsSet, oldValue; + if (newValue != null && !$isInstance(this.eClass, newValue)) { + throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 58)?$toString_31(castTo(newValue, 58).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); + } + oldValue = settings.dynamicGet(index_0); + oldIsSet = oldValue != null; + this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + notifications = null; + if (this.hasInverse()) { + if (maskUndefined(oldValue) !== maskUndefined(newValue)) { + if (oldValue != null) { + internalEObject = castTo(oldValue, 54); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + if (newValue != null) { + internalEObject = castTo(newValue, 54); + notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + } + else if (this.isContainment()) { + if (maskUndefined(oldValue) !== maskUndefined(newValue)) { + oldValue != null && (notifications = castTo(oldValue, 54).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + newValue != null && (notifications = castTo(newValue, 54).eInverseAdd(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + } + } + newValue == null && this.isUnsettable()?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, newValue); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + notification = new ENotificationImpl_19(owner, 1, this.feature, oldValue, newValue, this.isUnsettable() && !oldIsSet); + if (!notifications) { + $eNotify(owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else + !!notifications && notifications.dispatch_0(); +} +; +_.dynamicUnset_0 = function dynamicUnset_8(owner, settings, index_0){ + var internalEObject, notification, notifications, oldIsSet, oldValue; + oldValue = settings.dynamicGet(index_0); + oldIsSet = oldValue != null; + this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + notifications = null; + if (oldValue != null) { + if (this.hasInverse()) { + internalEObject = castTo(oldValue, 54); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + else + this.isContainment() && (notifications = castTo(oldValue, 54).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + } + settings.dynamicUnset(index_0); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + notification = new ENotificationImpl_19(owner, this.isUnsettable()?2:1, this.feature, oldValue, null, oldIsSet); + if (!notifications) { + $eNotify(owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else + !!notifications && notifications.dispatch_0(); +} +; +_.hasInverse = function hasInverse_6(){ + return false; +} +; +_.isContainment = function isContainment_7(){ + return false; +} +; +_.isResolveProxies_0 = function isResolveProxies_4(){ + return false; +} +; +_.isUnsettable = function isUnsettable_1(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject', 410); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(575, 410, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment); +_.isContainment = function isContainment_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment', 575); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(1359, 575, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving); +_.isResolveProxies_0 = function isResolveProxies_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving', 1359); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(787, 575, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable); +_.isUnsettable = function isUnsettable_2(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable', 787); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable.call(this, eClass, feature); +} + +defineClass(1361, 787, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving); +_.isResolveProxies_0 = function isResolveProxies_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving', 1361); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(650, 575, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse); +_.hasInverse = function hasInverse_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse', 650); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1360, 650, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving); +_.isResolveProxies_0 = function isResolveProxies_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving', 1360); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(788, 650, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable); +_.isUnsettable = function isUnsettable_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable', 788); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable.call(this, eClass, feature, inverseFeature); +} + +defineClass(1362, 788, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving); +_.isResolveProxies_0 = function isResolveProxies_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving', 1362); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(651, 410, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving); +_.isResolveProxies_0 = function isResolveProxies_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving', 651); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving.call(this, eClass, feature); +} + +defineClass(1363, 651, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable); +_.isUnsettable = function isUnsettable_4(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable', 1363); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(789, 651, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse); +_.hasInverse = function hasInverse_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse', 789); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1364, 789, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable); +_.isUnsettable = function isUnsettable_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable', 1364); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(1357, 410, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable); +_.isUnsettable = function isUnsettable_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable', 1357); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(786, 410, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse); +_.hasInverse = function hasInverse_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse', 786); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1358, 786, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable); +_.isUnsettable = function isUnsettable_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable', 1358); +function $inverseAdd_0(this$static, owner, otherEnd, notifications){ + !!otherEnd && (notifications = otherEnd.eInverseAdd(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); + return notifications; +} + +function $inverseRemove_0(this$static, owner, otherEnd, notifications){ + !!otherEnd && (notifications = otherEnd.eInverseRemove(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); + return notifications; +} + +function EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$0, eStructuralFeature, value_0){ + this.this$01 = this$0; + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(790, 576, $intern_162, EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry); +_.createEntry_0 = function createEntry_2(value_0){ + return new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this.this$01, this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_16(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_4(owner, featureID, notifications){ + return $inverseAdd_0(this, owner, this.value_0, notifications); +} +; +_.inverseRemove_0 = function inverseRemove_4(owner, featureID, notifications){ + return $inverseRemove_0(this, owner, this.value_0, notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry', 790); +function EStructuralFeatureImpl$SettingMany(list){ + this.list = list; +} + +defineClass(1365, 1, $intern_150, EStructuralFeatureImpl$SettingMany); +_.get_6 = function get_67(resolve){ + return this.list; +} +; +_.isSet_0 = function isSet_12(){ + return instanceOf(this.list, 97)?castTo(this.list, 97).isSet_0():!this.list.isEmpty(); +} +; +_.set_1 = function set_36(newValue){ + this.list.clear_0(); + this.list.addAll(castTo(newValue, 15)); +} +; +_.unset = function unset_8(){ + instanceOf(this.list, 97)?castTo(this.list, 97).unset():this.list.clear_0(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SettingMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SettingMany', 1365); +function EStructuralFeatureImpl$SimpleContentFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; + this.eDataType = castTo($getEType(eStructuralFeature), 156); + this.eFactory = this.eDataType.getEPackage().getEFactoryInstance(); +} + +defineClass(1366, 576, $intern_162, EStructuralFeatureImpl$SimpleContentFeatureMapEntry); +_.createEntry = function createEntry_3(value_0){ + return new EStructuralFeatureImpl$SimpleFeatureMapEntry(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT), this.eFactory.convertToString(this.eDataType, value_0)); +} +; +_.getValue = function getValue_17(){ + return null; +} +; +_.inverseAdd_0 = function inverseAdd_5(owner, featureID, notifications){ + return notifications; +} +; +_.inverseRemove_0 = function inverseRemove_5(owner, featureID, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleContentFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleContentFeatureMapEntry', 1366); +function EStructuralFeatureImpl$SimpleFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(652, 576, $intern_162, EStructuralFeatureImpl$SimpleFeatureMapEntry); +_.createEntry = function createEntry_4(value_0){ + return new EStructuralFeatureImpl$SimpleFeatureMapEntry(this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_18(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_6(owner, featureID, notifications){ + return notifications; +} +; +_.inverseRemove_0 = function inverseRemove_6(owner, featureID, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleFeatureMapEntry', 652); +function ESuperAdapter$1(){ +} + +defineClass(403, 506, $intern_141, ESuperAdapter$1); +_.newData = function newData_12(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 29, capacity, 0, 1); +} +; +_.useEquals = function useEquals_13(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ESuperAdapter$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter/1', 403); +function $getEGenericTypes(this$static){ + !this$static.eGenericTypes && (this$static.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)); + return this$static.eGenericTypes; +} + +function ETypeParameterImpl(){ +} + +defineClass(457, 448, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 114:1, 850:1, 54:1, 99:1, 158:1, 457:1, 119:1, 120:1}, ETypeParameterImpl); +_.eGet = function eGet_31(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , this.eBounds; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ETYPE_PARAMETER:eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_22(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 2: + return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , $basicRemove_0(this.eBounds, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?($clinit_EcorePackage$Literals() , ETYPE_PARAMETER):eClass), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_30(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return !!this.eBounds && this.eBounds.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +_.eSet = function eSet_28(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 16)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $clear_13(this.eBounds); + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $addAll_9(this.eBounds, castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ETYPE_PARAMETER:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_30(){ + return $clinit_EcorePackage$Literals() , ETYPE_PARAMETER; +} +; +_.eUnset = function eUnset_28(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $clear_13(this.eBounds); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 29) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl', 457); +function $inverseAdd_1(this$static, object, notifications){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; + notifications = (internalEObject = object , $eInverseAdd(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); + eGenericTypes = $getEGenericTypes(this$static.this$01); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_3(eGenericType$iterator.val$delegateIterator2).getKey(), 89); + notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); + } + return notifications; +} + +function $inverseRemove_1(this$static, object, notifications){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; + notifications = (internalEObject = object , $eInverseRemove(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); + eGenericTypes = $getEGenericTypes(this$static.this$01); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_3(eGenericType$iterator.val$delegateIterator2).getKey(), 89); + notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); + } + return notifications; +} + +function ETypeParameterImpl$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, $anonymous0, $anonymous1, 2); +} + +defineClass(458, 83, $intern_157, ETypeParameterImpl$1); +_.inverseAdd = function inverseAdd_7(object, notifications){ + return $inverseAdd_1(this, castTo(object, 89), notifications); +} +; +_.inverseRemove = function inverseRemove_7(object, notifications){ + return $inverseRemove_1(this, castTo(object, 89), notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/1', 458); +function ETypeParameterImpl$2(){ + HashMap.call(this); +} + +defineClass(647, 45, $intern_76, ETypeParameterImpl$2); +_.keySet_0 = function keySet_20(){ + return new ETypeParameterImpl$2$1(this); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2', 647); +function $add_30(this$static, eGenericType){ + return $put_6(this$static.this$11, eGenericType, '') == null; +} + +function $remove_42(this$static, object){ + if ($containsKey_3(this$static.this$11, object)) { + $remove_6(this$static.this$11, object); + return true; + } + else { + return false; + } +} + +function ETypeParameterImpl$2$1(this$1){ + this.this$11 = this$1; +} + +defineClass(570, $intern_9, $intern_10, ETypeParameterImpl$2$1); +_.add_2 = function add_65(eGenericType){ + return $add_30(this, castTo(eGenericType, 89)); +} +; +_.addAll = function addAll_34(eGenericTypes){ + var eGenericType, eGenericType$iterator, result; + result = false; + for (eGenericType$iterator = eGenericTypes.iterator_0(); eGenericType$iterator.hasNext_0();) { + eGenericType = castTo(eGenericType$iterator.next_1(), 89); + $put_6(this.this$11, eGenericType, '') == null && (result = true); + } + return result; +} +; +_.clear_0 = function clear_65(){ + $reset(this.this$11); +} +; +_.contains = function contains_65(object){ + return $containsKey_3(this.this$11, object); +} +; +_.iterator_0 = function iterator_89(){ + var delegateIterator; + return delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator); +} +; +_.remove_1 = function remove_127(object){ + return $remove_42(this, object); +} +; +_.size_1 = function size_79(){ + return $size_2(this.this$11); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1', 570); +function ETypeParameterImpl$2$1$1(val$delegateIterator){ + this.val$delegateIterator2 = val$delegateIterator; +} + +defineClass(571, 1, $intern_6, ETypeParameterImpl$2$1$1); +_.forEachRemaining = function forEachRemaining_58(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_48(){ + return castTo($next_3(this.val$delegateIterator2).getKey(), 89); +} +; +_.hasNext_0 = function hasNext_47(){ + return this.val$delegateIterator2.hasNext; +} +; +_.remove = function remove_128(){ + $remove_7(this.val$delegateIterator2); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1/1', 571); +function EValidatorRegistryImpl(){ + HashMap.call(this); +} + +defineClass(1329, 45, $intern_76, EValidatorRegistryImpl); +_.containsKey = function containsKey_17(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +_.get_3 = function get_68(key){ + var eValidator, eValidatorDescriptor; + eValidator = instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); + if (instanceOf(eValidator, 851)) { + eValidatorDescriptor = castTo(eValidator, 851); + eValidator = eValidatorDescriptor.getEValidator(); + $put_6(this, castTo(key, 241), eValidator); + return eValidator; + } + else + return eValidator != null?eValidator:key == null?($clinit_EObjectValidator() , INSTANCE_9):null; +} +; +var Lorg_eclipse_emf_ecore_impl_EValidatorRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EValidatorRegistryImpl', 1329); +function $booleanValueOf(initialValue){ + if ($equalsIgnoreCase('true', initialValue)) { + return $clinit_Boolean() , TRUE_0; + } + else if ($equalsIgnoreCase('false', initialValue)) { + return $clinit_Boolean() , FALSE_0; + } + else { + throw toJs(new IllegalArgumentException_0('Expecting true or false')); + } +} + +function $convertEByteArrayToString(instanceValue){ + var bytes; + if (instanceValue == null) { + return null; + } + else { + bytes = castTo(instanceValue, 195); + return $bytesToHexString(bytes, bytes.length); + } +} + +function $convertECharToString(instanceValue){ + if (instanceOf(instanceValue, 180)) { + return '' + castTo(instanceValue, 180).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertECharacterObjectToString(instanceValue){ + if (instanceOf(instanceValue, 180)) { + return '' + castTo(instanceValue, 180).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $createECharFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_43, $intern_0) & $intern_47; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_2(charValue); +} + +function $createECharacterObjectFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_43, $intern_0) & $intern_47; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_2(charValue); +} + +function $createEDateFromString(initialValue){ + var exception, i, parseException; + if (initialValue == null) { + return null; + } + exception = null; + for (i = 0; i < EDATE_FORMATS.length; ++i) { + try { + return $parse_2(EDATE_FORMATS[i], initialValue); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 33)) { + parseException = $e0; + exception = parseException; + } + else + throw toJs($e0); + } + } + throw toJs(new WrappedException(exception)); +} + +function EcoreFactoryImpl(){ +} + +function init_3(){ + $clinit_EFactoryImpl(); + var exception, theEcoreFactory; + try { + theEcoreFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 2040); + if (theEcoreFactory) { + return theEcoreFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + exception = $e0; + $log_2(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new EcoreFactoryImpl; +} + +defineClass(1349, 720, {110:1, 94:1, 93:1, 480:1, 155:1, 58:1, 114:1, 2040:1, 54:1, 99:1, 158:1, 119:1, 120:1}, EcoreFactoryImpl); +_.convertToString = function convertToString_1(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 21: + case 22: + case 23: + case 24: + case 26: + case 31: + case 32: + case 37: + case 38: + case 39: + case 40: + case 43: + case 44: + case 48: + case 49: + case 20: + return instanceValue == null?null:toString_40(instanceValue); + case 25: + return $convertEByteArrayToString(instanceValue); + case 27: + return $convertECharToString(instanceValue); + case 28: + return $convertECharacterObjectToString(instanceValue); + case 29: + return instanceValue == null?null:$format_0(EDATE_FORMATS[0], castTo(instanceValue, 206)); + case 41: + return instanceValue == null?'':$getName(castTo(instanceValue, 297)); + case 42: + return toString_40(instanceValue); + case 50: + return castToString(instanceValue); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_49(eClass0){ + var eAnnotation, eAttribute, eClass, eDataType, eEnum, eEnumLiteral, eFactory, eGenericType, eObject, eOperation, ePackage, ePackage0, eParameter, eReference, eStringToStringMapEntry, eTypeParameter; + switch (eClass0.metaObjectID == -1 && (eClass0.metaObjectID = (ePackage0 = $getEPackage(eClass0) , ePackage0?$indexOf_6(ePackage0.getEClassifiers(), eClass0):-1)) , eClass0.metaObjectID) { + case 0: + return eAttribute = new EAttributeImpl , eAttribute; + case 1: + return eAnnotation = new EAnnotationImpl , eAnnotation; + case 2: + return eClass = new EClassImpl , eClass; + case 4: + return eDataType = new EDataTypeImpl , eDataType; + case 5: + return eEnum = new EEnumImpl , eEnum; + case 6: + return eEnumLiteral = new EEnumLiteralImpl , eEnumLiteral; + case 7: + return eFactory = new EFactoryImpl , eFactory; + case 10: + return eObject = new EObjectImpl , eObject; + case 11: + return eOperation = new EOperationImpl , eOperation; + case 12: + return ePackage = new EPackageImpl , ePackage; + case 13: + return eParameter = new EParameterImpl , eParameter; + case 14: + return eReference = new EReferenceImpl , eReference; + case 17: + return eStringToStringMapEntry = new EStringToStringMapEntryImpl , eStringToStringMapEntry; + case 18: + return eGenericType = new EGenericTypeImpl , eGenericType; + case 19: + return eTypeParameter = new ETypeParameterImpl , eTypeParameter; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass0.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_1(eDataType, initialValue){ + switch (eDataType.getClassifierID()) { + case 20: + return initialValue == null?null:new BigDecimal_0(initialValue); + case 21: + return initialValue == null?null:new BigInteger_3(initialValue); + case 23: + case 22: + return initialValue == null?null:$booleanValueOf(initialValue); + case 26: + case 24: + return initialValue == null?null:get_32(__parseAndValidateInt(initialValue, -128, 127) << 24 >> 24); + case 25: + return $hexStringToBytes(initialValue); + case 27: + return $createECharFromString(initialValue); + case 28: + return $createECharacterObjectFromString(initialValue); + case 29: + return $createEDateFromString(initialValue); + case 32: + case 31: + return initialValue == null?null:__parseAndValidateDouble(initialValue); + case 38: + case 37: + return initialValue == null?null:new Float_0(initialValue); + case 40: + case 39: + return initialValue == null?null:valueOf_3(__parseAndValidateInt(initialValue, $intern_43, $intern_0)); + case 41: + return null; + case 42: + return initialValue == null?null:null; + case 44: + case 43: + return initialValue == null?null:valueOf_4(__parseAndValidateLong(initialValue)); + case 49: + case 48: + return initialValue == null?null:valueOf_5(__parseAndValidateInt(initialValue, $intern_164, 32767) << 16 >> 16); + case 50: + return initialValue; + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EcoreFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcoreFactoryImpl', 1349); +function $clinit_EcorePackageImpl(){ + $clinit_EcorePackageImpl = emptyMethod; + eGenericTypes_0 = new ArrayList; +} + +function $$init_12(this$static){ + this$static.eAttributeEClass = null; + this$static.eAnnotationEClass = null; + this$static.eClassEClass = null; + this$static.eDataTypeEClass = null; + this$static.eEnumEClass = null; + this$static.eEnumLiteralEClass = null; + this$static.eFactoryEClass = null; + this$static.eClassifierEClass = null; + this$static.eModelElementEClass = null; + this$static.eNamedElementEClass = null; + this$static.eObjectEClass = null; + this$static.eOperationEClass = null; + this$static.ePackageEClass = null; + this$static.eParameterEClass = null; + this$static.eReferenceEClass = null; + this$static.eStructuralFeatureEClass = null; + this$static.eTypedElementEClass = null; + this$static.eStringToStringMapEntryEClass = null; + this$static.eGenericTypeEClass = null; + this$static.eTypeParameterEClass = null; + this$static.eBigDecimalEDataType = null; + this$static.eBigIntegerEDataType = null; + this$static.eBooleanObjectEDataType = null; + this$static.eCharacterObjectEDataType = null; + this$static.eDateEDataType = null; + this$static.eDiagnosticChainEDataType = null; + this$static.eDoubleObjectEDataType = null; + this$static.eFloatObjectEDataType = null; + this$static.eIntegerObjectEDataType = null; + this$static.eBooleanEDataType = null; + this$static.eByteObjectEDataType = null; + this$static.eByteEDataType = null; + this$static.eByteArrayEDataType = null; + this$static.eCharEDataType = null; + this$static.eDoubleEDataType = null; + this$static.eFloatEDataType = null; + this$static.eIntEDataType = null; + this$static.eJavaClassEDataType = null; + this$static.eJavaObjectEDataType = null; + this$static.eLongObjectEDataType = null; + this$static.eMapEDataType = null; + this$static.eShortObjectEDataType = null; + this$static.eLongEDataType = null; + this$static.eShortEDataType = null; + this$static.eTreeIteratorEDataType = null; + this$static.eInvocationTargetExceptionEDataType = null; + this$static.eFeatureMapEntryEDataType = null; + this$static.eEnumeratorEDataType = null; + this$static.eFeatureMapEDataType = null; + this$static.eStringEDataType = null; + this$static.eeListEDataType = null; + this$static.eResourceEDataType = null; + this$static.eResourceSetEDataType = null; + this$static.isCreated = false; + this$static.isInitialized = false; +} + +function $createEGenericType_1(){ + var eGenericType, eGenericType0, eGenericType1; + eGenericType0 = (eGenericType1 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType1); + $add_3(eGenericTypes_0, eGenericType0); + return eGenericType0; +} + +function $createEcoreAnnotations(this$static){ + $addAnnotation(this$static.eAttributeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentTransient'])); + $addAnnotation(this$static.eAnnotationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedSourceURI'])); + $addAnnotation(this$static.eClassEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures'])); + $addAnnotation(this$static.eClassifierEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedInstanceTypeName UniqueTypeParameterNames'])); + $addAnnotation(this$static.eEnumEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueEnumeratorNames UniqueEnumeratorLiterals'])); + $addAnnotation(this$static.eNamedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedName'])); + $addAnnotation(this$static.eOperationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid'])); + $addAnnotation(this$static.ePackageEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs'])); + $addAnnotation(this$static.eReferenceEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer'])); + $addAnnotation(this$static.eStructuralFeatureEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidDefaultValueLiteral'])); + $addAnnotation(this$static.eTypedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidLowerBound ValidUpperBound ConsistentBounds ValidType'])); + $addAnnotation(this$static.eGenericTypeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentType ConsistentBounds ConsistentArguments'])); +} + +function $createExtendedMetaDataAnnotations(this$static){ + $addAnnotation(this$static.eBigDecimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#decimal'])); + $addAnnotation(this$static.eBigIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#integer'])); + $addAnnotation(this$static.eBooleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#boolean'])); + $addAnnotation(this$static.eBooleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EBoolean', 'name', 'EBoolean:Object'])); + $addAnnotation(this$static.eByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#byte'])); + $addAnnotation(this$static.eByteArrayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#hexBinary'])); + $addAnnotation(this$static.eByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EByte', 'name', 'EByte:Object'])); + $addAnnotation(this$static.eCharacterObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EChar', 'name', 'EChar:Object'])); + $addAnnotation(this$static.eDoubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#double'])); + $addAnnotation(this$static.eDoubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EDouble', 'name', 'EDouble:Object'])); + $addAnnotation(this$static.eFloatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#float'])); + $addAnnotation(this$static.eFloatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EFloat', 'name', 'EFloat:Object'])); + $addAnnotation(this$static.eIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#int'])); + $addAnnotation(this$static.eIntegerObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EInt', 'name', 'EInt:Object'])); + $addAnnotation(this$static.eLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#long'])); + $addAnnotation(this$static.eLongObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'ELong', 'name', 'ELong:Object'])); + $addAnnotation(this$static.eShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#short'])); + $addAnnotation(this$static.eShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EShort', 'name', 'EShort:Object'])); + $addAnnotation(this$static.eStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#string'])); +} + +function $createPackageContents_0(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.eAttributeEClass = $createEClass(this$static, 0); + $createEAttribute(this$static.eAttributeEClass, 18); + $createEReference(this$static.eAttributeEClass, 19); + this$static.eAnnotationEClass = $createEClass(this$static, 1); + $createEAttribute(this$static.eAnnotationEClass, 1); + $createEReference(this$static.eAnnotationEClass, 2); + $createEReference(this$static.eAnnotationEClass, 3); + $createEReference(this$static.eAnnotationEClass, 4); + $createEReference(this$static.eAnnotationEClass, 5); + this$static.eClassEClass = $createEClass(this$static, 2); + $createEAttribute(this$static.eClassEClass, 8); + $createEAttribute(this$static.eClassEClass, 9); + $createEReference(this$static.eClassEClass, 10); + $createEReference(this$static.eClassEClass, 11); + $createEReference(this$static.eClassEClass, 12); + $createEReference(this$static.eClassEClass, 13); + $createEReference(this$static.eClassEClass, 14); + $createEReference(this$static.eClassEClass, 15); + $createEReference(this$static.eClassEClass, 16); + $createEReference(this$static.eClassEClass, 17); + $createEReference(this$static.eClassEClass, 18); + $createEReference(this$static.eClassEClass, 19); + $createEReference(this$static.eClassEClass, 20); + $createEReference(this$static.eClassEClass, 21); + $createEReference(this$static.eClassEClass, 22); + $createEReference(this$static.eClassEClass, 23); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + this$static.eClassifierEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.eClassifierEClass, 2); + $createEAttribute(this$static.eClassifierEClass, 3); + $createEAttribute(this$static.eClassifierEClass, 4); + $createEAttribute(this$static.eClassifierEClass, 5); + $createEReference(this$static.eClassifierEClass, 6); + $createEReference(this$static.eClassifierEClass, 7); + $createEOperation(this$static.eClassifierEClass); + $createEOperation(this$static.eClassifierEClass); + this$static.eDataTypeEClass = $createEClass(this$static, 4); + $createEAttribute(this$static.eDataTypeEClass, 8); + this$static.eEnumEClass = $createEClass(this$static, 5); + $createEReference(this$static.eEnumEClass, 9); + $createEOperation(this$static.eEnumEClass); + $createEOperation(this$static.eEnumEClass); + $createEOperation(this$static.eEnumEClass); + this$static.eEnumLiteralEClass = $createEClass(this$static, 6); + $createEAttribute(this$static.eEnumLiteralEClass, 2); + $createEAttribute(this$static.eEnumLiteralEClass, 3); + $createEAttribute(this$static.eEnumLiteralEClass, 4); + $createEReference(this$static.eEnumLiteralEClass, 5); + this$static.eFactoryEClass = $createEClass(this$static, 7); + $createEReference(this$static.eFactoryEClass, 1); + $createEOperation(this$static.eFactoryEClass); + $createEOperation(this$static.eFactoryEClass); + $createEOperation(this$static.eFactoryEClass); + this$static.eModelElementEClass = $createEClass(this$static, 8); + $createEReference(this$static.eModelElementEClass, 0); + $createEOperation(this$static.eModelElementEClass); + this$static.eNamedElementEClass = $createEClass(this$static, 9); + $createEAttribute(this$static.eNamedElementEClass, 1); + this$static.eObjectEClass = $createEClass(this$static, 10); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + this$static.eOperationEClass = $createEClass(this$static, 11); + $createEReference(this$static.eOperationEClass, 10); + $createEReference(this$static.eOperationEClass, 11); + $createEReference(this$static.eOperationEClass, 12); + $createEReference(this$static.eOperationEClass, 13); + $createEReference(this$static.eOperationEClass, 14); + $createEOperation(this$static.eOperationEClass); + $createEOperation(this$static.eOperationEClass); + this$static.ePackageEClass = $createEClass(this$static, 12); + $createEAttribute(this$static.ePackageEClass, 2); + $createEAttribute(this$static.ePackageEClass, 3); + $createEReference(this$static.ePackageEClass, 4); + $createEReference(this$static.ePackageEClass, 5); + $createEReference(this$static.ePackageEClass, 6); + $createEReference(this$static.ePackageEClass, 7); + $createEOperation(this$static.ePackageEClass); + this$static.eParameterEClass = $createEClass(this$static, 13); + $createEReference(this$static.eParameterEClass, 10); + this$static.eReferenceEClass = $createEClass(this$static, 14); + $createEAttribute(this$static.eReferenceEClass, 18); + $createEAttribute(this$static.eReferenceEClass, 19); + $createEAttribute(this$static.eReferenceEClass, 20); + $createEReference(this$static.eReferenceEClass, 21); + $createEReference(this$static.eReferenceEClass, 22); + $createEReference(this$static.eReferenceEClass, 23); + this$static.eStructuralFeatureEClass = $createEClass(this$static, 15); + $createEAttribute(this$static.eStructuralFeatureEClass, 10); + $createEAttribute(this$static.eStructuralFeatureEClass, 11); + $createEAttribute(this$static.eStructuralFeatureEClass, 12); + $createEAttribute(this$static.eStructuralFeatureEClass, 13); + $createEAttribute(this$static.eStructuralFeatureEClass, 14); + $createEAttribute(this$static.eStructuralFeatureEClass, 15); + $createEAttribute(this$static.eStructuralFeatureEClass, 16); + $createEReference(this$static.eStructuralFeatureEClass, 17); + $createEOperation(this$static.eStructuralFeatureEClass); + $createEOperation(this$static.eStructuralFeatureEClass); + this$static.eTypedElementEClass = $createEClass(this$static, 16); + $createEAttribute(this$static.eTypedElementEClass, 2); + $createEAttribute(this$static.eTypedElementEClass, 3); + $createEAttribute(this$static.eTypedElementEClass, 4); + $createEAttribute(this$static.eTypedElementEClass, 5); + $createEAttribute(this$static.eTypedElementEClass, 6); + $createEAttribute(this$static.eTypedElementEClass, 7); + $createEReference(this$static.eTypedElementEClass, 8); + $createEReference(this$static.eTypedElementEClass, 9); + this$static.eStringToStringMapEntryEClass = $createEClass(this$static, 17); + $createEAttribute(this$static.eStringToStringMapEntryEClass, 0); + $createEAttribute(this$static.eStringToStringMapEntryEClass, 1); + this$static.eGenericTypeEClass = $createEClass(this$static, 18); + $createEReference(this$static.eGenericTypeEClass, 0); + $createEReference(this$static.eGenericTypeEClass, 1); + $createEReference(this$static.eGenericTypeEClass, 2); + $createEReference(this$static.eGenericTypeEClass, 3); + $createEReference(this$static.eGenericTypeEClass, 4); + $createEReference(this$static.eGenericTypeEClass, 5); + $createEOperation(this$static.eGenericTypeEClass); + this$static.eTypeParameterEClass = $createEClass(this$static, 19); + $createEReference(this$static.eTypeParameterEClass, 2); + this$static.eBigDecimalEDataType = $createEDataType(this$static, 20); + this$static.eBigIntegerEDataType = $createEDataType(this$static, 21); + this$static.eBooleanEDataType = $createEDataType(this$static, 22); + this$static.eBooleanObjectEDataType = $createEDataType(this$static, 23); + this$static.eByteEDataType = $createEDataType(this$static, 24); + this$static.eByteArrayEDataType = $createEDataType(this$static, 25); + this$static.eByteObjectEDataType = $createEDataType(this$static, 26); + this$static.eCharEDataType = $createEDataType(this$static, 27); + this$static.eCharacterObjectEDataType = $createEDataType(this$static, 28); + this$static.eDateEDataType = $createEDataType(this$static, 29); + this$static.eDiagnosticChainEDataType = $createEDataType(this$static, 30); + this$static.eDoubleEDataType = $createEDataType(this$static, 31); + this$static.eDoubleObjectEDataType = $createEDataType(this$static, 32); + this$static.eeListEDataType = $createEDataType(this$static, 33); + this$static.eEnumeratorEDataType = $createEDataType(this$static, 34); + this$static.eFeatureMapEDataType = $createEDataType(this$static, 35); + this$static.eFeatureMapEntryEDataType = $createEDataType(this$static, 36); + this$static.eFloatEDataType = $createEDataType(this$static, 37); + this$static.eFloatObjectEDataType = $createEDataType(this$static, 38); + this$static.eIntEDataType = $createEDataType(this$static, 39); + this$static.eIntegerObjectEDataType = $createEDataType(this$static, 40); + this$static.eJavaClassEDataType = $createEDataType(this$static, 41); + this$static.eJavaObjectEDataType = $createEDataType(this$static, 42); + this$static.eLongEDataType = $createEDataType(this$static, 43); + this$static.eLongObjectEDataType = $createEDataType(this$static, 44); + this$static.eMapEDataType = $createEDataType(this$static, 45); + this$static.eResourceEDataType = $createEDataType(this$static, 46); + this$static.eResourceSetEDataType = $createEDataType(this$static, 47); + this$static.eShortEDataType = $createEDataType(this$static, 48); + this$static.eShortObjectEDataType = $createEDataType(this$static, 49); + this$static.eStringEDataType = $createEDataType(this$static, 50); + this$static.eTreeIteratorEDataType = $createEDataType(this$static, 51); + this$static.eInvocationTargetExceptionEDataType = $createEDataType(this$static, 52); +} + +function $initializePackageContents_0(this$static){ + var g1, g2, msgs, msgs0, msgs1, msgs2, op; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'ecore'); + $setNsPrefix(this$static, 'ecore'); + $setNsURI(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); + $addETypeParameter(this$static.eeListEDataType, 'E'); + $addETypeParameter(this$static.eJavaClassEDataType, 'T'); + $addETypeParameter(this$static.eMapEDataType, 'K'); + $addETypeParameter(this$static.eMapEDataType, 'V'); + $addETypeParameter(this$static.eTreeIteratorEDataType, 'E'); + $add_21($getESuperTypes(this$static.eAttributeEClass), this$static.eStructuralFeatureEClass); + $add_21($getESuperTypes(this$static.eAnnotationEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eClassEClass), this$static.eClassifierEClass); + $add_21($getESuperTypes(this$static.eClassifierEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eDataTypeEClass), this$static.eClassifierEClass); + $add_21($getESuperTypes(this$static.eEnumEClass), this$static.eDataTypeEClass); + $add_21($getESuperTypes(this$static.eEnumLiteralEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eFactoryEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eNamedElementEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eOperationEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.ePackageEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eParameterEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.eReferenceEClass), this$static.eStructuralFeatureEClass); + $add_21($getESuperTypes(this$static.eStructuralFeatureEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.eTypedElementEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eTypeParameterEClass), this$static.eNamedElementEClass); + $initEClass(this$static.eAttributeEClass, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, 'EAttribute', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 0), 35), this$static.eBooleanEDataType, 'iD', null, 0, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 1), 19), this$static.eDataTypeEClass, null, 'eAttributeType', 1, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, true, true, false, false, true, false, true); + $initEClass(this$static.eAnnotationEClass, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, 'EAnnotation', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 0), 35), this$static.eStringEDataType, 'source', null, 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 1), 19), this$static.eStringToStringMapEntryEClass, null, 'details', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 19), this$static.eModelElementEClass, castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 19), 'eModelElement', 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, true, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 3), 19), this$static.eObjectEClass, null, 'contents', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 4), 19), this$static.eObjectEClass, null, 'references', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.eClassEClass, Lorg_eclipse_emf_ecore_EClass_2_classLit, 'EClass', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 0), 35), this$static.eBooleanEDataType, 'abstract', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 1), 35), this$static.eBooleanEDataType, 'interface', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 2), 19), this$static.eClassEClass, null, 'eSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 19), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 19), 'eOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 4), 19), this$static.eAttributeEClass, null, 'eAllAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 5), 19), this$static.eReferenceEClass, null, 'eAllReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 6), 19), this$static.eReferenceEClass, null, 'eReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 7), 19), this$static.eAttributeEClass, null, 'eAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 8), 19), this$static.eReferenceEClass, null, 'eAllContainments', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 9), 19), this$static.eOperationEClass, null, 'eAllOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 10), 19), this$static.eStructuralFeatureEClass, null, 'eAllStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 11), 19), this$static.eClassEClass, null, 'eAllSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 12), 19), this$static.eAttributeEClass, null, 'eIDAttribute', 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 19), this$static.eStructuralFeatureEClass, castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 19), 'eStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 14), 19), this$static.eGenericTypeEClass, null, 'eGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 15), 19), this$static.eGenericTypeEClass, null, 'eAllGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 0), 62), this$static.eBooleanEDataType, 'isSuperTypeOf'); + $addEParameter(op, this$static.eClassEClass, 'someClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 1), 62), this$static.eIntEDataType, 'getFeatureCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 2), 62), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eIntEDataType, 'featureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 3), 62), this$static.eIntEDataType, 'getFeatureID'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 4), 62), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eStringEDataType, 'featureName'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 5), 62), this$static.eIntEDataType, 'getOperationCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 6), 62), this$static.eOperationEClass, 'getEOperation'); + $addEParameter(op, this$static.eIntEDataType, 'operationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 7), 62), this$static.eIntEDataType, 'getOperationID'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 8), 62), this$static.eOperationEClass, 'getOverride'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 9), 62), this$static.eGenericTypeEClass, 'getFeatureType'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $initEClass(this$static.eClassifierEClass, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, 'EClassifier', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 0), 35), this$static.eStringEDataType, 'instanceClassName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); + g1 = $createEGenericType(this$static.eJavaClassEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 1), 35), g1, 'instanceClass', Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 2), 35), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 3), 35), this$static.eStringEDataType, 'instanceTypeName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 19), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 19), 'ePackage', 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, false, false, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 5), 19), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, false, true, true, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 0), 62), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 1), 62), this$static.eIntEDataType, 'getClassifierID'); + $initEClass(this$static.eDataTypeEClass, Lorg_eclipse_emf_ecore_EDataType_2_classLit, 'EDataType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eDataTypeEClass), 0), 35), this$static.eBooleanEDataType, 'serializable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EDataType_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eEnumEClass, Lorg_eclipse_emf_ecore_EEnum_2_classLit, 'EEnum', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 19), this$static.eEnumLiteralEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 19), 'eLiterals', 0, -1, Lorg_eclipse_emf_ecore_EEnum_2_classLit, false, false, true, true, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 0), 62), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 1), 62), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eIntEDataType, 'value'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 2), 62), this$static.eEnumLiteralEClass, 'getEEnumLiteralByLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'literal'); + $initEClass(this$static.eEnumLiteralEClass, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, 'EEnumLiteral', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 0), 35), this$static.eIntEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 1), 35), this$static.eEnumeratorEDataType, 'instance', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 2), 35), this$static.eStringEDataType, 'literal', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 19), this$static.eEnumEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 19), 'eEnum', 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, false, false, false, false, false); + $initEClass(this$static.eFactoryEClass, Lorg_eclipse_emf_ecore_EFactory_2_classLit, 'EFactory', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 19), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 19), 'ePackage', 1, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, true, false, true, false, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 0), 62), this$static.eObjectEClass, 'create'); + $addEParameter(op, this$static.eClassEClass, 'eClass'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 1), 62), this$static.eJavaObjectEDataType, 'createFromString'); + $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); + $addEParameter(op, this$static.eStringEDataType, 'literalValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 2), 62), this$static.eStringEDataType, 'convertToString'); + $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'instanceValue'); + $initEClass(this$static.eModelElementEClass, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, 'EModelElement', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 19), this$static.eAnnotationEClass, castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 19), 'eAnnotations', 0, -1, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, false, false, true, true, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eModelElementEClass), 0), 62), this$static.eAnnotationEClass, 'getEAnnotation'); + $addEParameter(op, this$static.eStringEDataType, 'source'); + $initEClass(this$static.eNamedElementEClass, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, 'ENamedElement', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eNamedElementEClass), 0), 35), this$static.eStringEDataType, 'name', null, 0, 1, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eObjectEClass, Lorg_eclipse_emf_ecore_EObject_2_classLit, 'EObject', false, false, true); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 0), 62), this$static.eClassEClass, 'eClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 1), 62), this$static.eBooleanEDataType, 'eIsProxy'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 2), 62), this$static.eResourceEDataType, 'eResource'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 3), 62), this$static.eObjectEClass, 'eContainer'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 4), 62), this$static.eStructuralFeatureEClass, 'eContainingFeature'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 5), 62), this$static.eReferenceEClass, 'eContainmentFeature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 6), 62), null, 'eContents'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs0 = $setEGenericType(op, g1, null); + !!msgs0 && msgs0.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 7), 62), null, 'eAllContents'); + g1 = $createEGenericType(this$static.eTreeIteratorEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs1 = $setEGenericType(op, g1, null); + !!msgs1 && msgs1.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 8), 62), null, 'eCrossReferences'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs2 = $setEGenericType(op, g1, null); + !!msgs2 && msgs2.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 9), 62), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 10), 62), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eBooleanEDataType, 'resolve'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 11), 62), null, 'eSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'newValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 12), 62), this$static.eBooleanEDataType, 'eIsSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 13), 62), null, 'eUnset'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 14), 62), this$static.eJavaObjectEDataType, 'eInvoke'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'arguments'); + $addEException(op, this$static.eInvocationTargetExceptionEDataType); + $initEClass(this$static.eOperationEClass, Lorg_eclipse_emf_ecore_EOperation_2_classLit, 'EOperation', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 19), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 19), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, true, false, false, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 1), 19), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 19), this$static.eParameterEClass, castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 19), 'eParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 3), 19), this$static.eClassifierEClass, null, 'eExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 4), 19), this$static.eGenericTypeEClass, null, 'eGenericExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, true, false); + $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 0), 62), this$static.eIntEDataType, 'getOperationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 1), 62), this$static.eBooleanEDataType, 'isOverrideOf'); + $addEParameter(op, this$static.eOperationEClass, 'someOperation'); + $initEClass(this$static.ePackageEClass, Lorg_eclipse_emf_ecore_EPackage_2_classLit, 'EPackage', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 0), 35), this$static.eStringEDataType, 'nsURI', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 1), 35), this$static.eStringEDataType, 'nsPrefix', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 19), this$static.eFactoryEClass, castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 19), 'eFactoryInstance', 1, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 19), this$static.eClassifierEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 19), 'eClassifiers', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 19), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 19), 'eSubpackages', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 19), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 19), 'eSuperPackage', 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, false, false, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.ePackageEClass), 0), 62), this$static.eClassifierEClass, 'getEClassifier'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + $initEClass(this$static.eParameterEClass, Lorg_eclipse_emf_ecore_EParameter_2_classLit, 'EParameter', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 19), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 19), 'eOperation', 0, 1, Lorg_eclipse_emf_ecore_EParameter_2_classLit, true, false, false, false, false, false, false); + $initEClass(this$static.eReferenceEClass, Lorg_eclipse_emf_ecore_EReference_2_classLit, 'EReference', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 0), 35), this$static.eBooleanEDataType, 'containment', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 1), 35), this$static.eBooleanEDataType, 'container', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 2), 35), this$static.eBooleanEDataType, 'resolveProxies', 'true', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 3), 19), this$static.eReferenceEClass, null, 'eOpposite', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 4), 19), this$static.eClassEClass, null, 'eReferenceType', 1, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 5), 19), this$static.eAttributeEClass, null, 'eKeys', 0, -1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.eStructuralFeatureEClass, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 'EStructuralFeature', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 0), 35), this$static.eBooleanEDataType, 'changeable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 1), 35), this$static.eBooleanEDataType, 'volatile', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 2), 35), this$static.eBooleanEDataType, 'transient', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 3), 35), this$static.eStringEDataType, 'defaultValueLiteral', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 4), 35), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 5), 35), this$static.eBooleanEDataType, 'unsettable', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 6), 35), this$static.eBooleanEDataType, 'derived', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 19), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 19), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, false, false, false, false, false, false); + $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 0), 62), this$static.eIntEDataType, 'getFeatureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 1), 62), null, 'getContainerClass'); + g1 = $createEGenericType(this$static.eJavaClassEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs = $setEGenericType(op, g1, null); + !!msgs && msgs.dispatch_0(); + $initEClass(this$static.eTypedElementEClass, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, 'ETypedElement', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 0), 35), this$static.eBooleanEDataType, 'ordered', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 1), 35), this$static.eBooleanEDataType, 'unique', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 2), 35), this$static.eIntEDataType, 'lowerBound', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 3), 35), this$static.eIntEDataType, 'upperBound', '1', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 4), 35), this$static.eBooleanEDataType, 'many', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 5), 35), this$static.eBooleanEDataType, 'required', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 6), 19), this$static.eClassifierEClass, null, 'eType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 7), 19), this$static.eGenericTypeEClass, null, 'eGenericType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, true, false, true, false); + $initEClass(this$static.eStringToStringMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'EStringToStringMapEntry', false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 0), 35), this$static.eStringEDataType, 'key', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 1), 35), this$static.eStringEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eGenericTypeEClass, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, 'EGenericType', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 0), 19), this$static.eGenericTypeEClass, null, 'eUpperBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 1), 19), this$static.eGenericTypeEClass, null, 'eTypeArguments', 0, -1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 2), 19), this$static.eClassifierEClass, null, 'eRawType', 1, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, true, false, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 3), 19), this$static.eGenericTypeEClass, null, 'eLowerBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 4), 19), this$static.eTypeParameterEClass, null, 'eTypeParameter', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 5), 19), this$static.eClassifierEClass, null, 'eClassifier', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eGenericTypeEClass), 0), 62), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEClass(this$static.eTypeParameterEClass, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, 'ETypeParameter', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypeParameterEClass), 0), 19), this$static.eGenericTypeEClass, null, 'eBounds', 0, -1, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, false, false, true, true, false, false, false); + $initEDataType(this$static.eBigDecimalEDataType, Ljava_math_BigDecimal_2_classLit, 'EBigDecimal', true); + $initEDataType(this$static.eBigIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'EBigInteger', true); + $initEDataType(this$static.eBooleanEDataType, Z_classLit, 'EBoolean', true); + $initEDataType(this$static.eBooleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'EBooleanObject', true); + $initEDataType(this$static.eByteEDataType, B_classLit, 'EByte', true); + $initEDataType(this$static.eByteArrayEDataType, getClassLiteralForArray(B_classLit, 1), 'EByteArray', true); + $initEDataType(this$static.eByteObjectEDataType, Ljava_lang_Byte_2_classLit, 'EByteObject', true); + $initEDataType(this$static.eCharEDataType, C_classLit, 'EChar', true); + $initEDataType(this$static.eCharacterObjectEDataType, Ljava_lang_Character_2_classLit, 'ECharacterObject', true); + $initEDataType(this$static.eDateEDataType, Ljava_util_Date_2_classLit, 'EDate', true); + $initEDataType(this$static.eDiagnosticChainEDataType, Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, 'EDiagnosticChain', false); + $initEDataType(this$static.eDoubleEDataType, D_classLit, 'EDouble', true); + $initEDataType(this$static.eDoubleObjectEDataType, Ljava_lang_Double_2_classLit, 'EDoubleObject', true); + $initEDataType(this$static.eeListEDataType, Lorg_eclipse_emf_common_util_EList_2_classLit, 'EEList', false); + $initEDataType(this$static.eEnumeratorEDataType, Lorg_eclipse_emf_common_util_Enumerator_2_classLit, 'EEnumerator', false); + $initEDataType(this$static.eFeatureMapEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, 'EFeatureMap', false); + $initEDataType(this$static.eFeatureMapEntryEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, 'EFeatureMapEntry', false); + $initEDataType(this$static.eFloatEDataType, F_classLit, 'EFloat', true); + $initEDataType(this$static.eFloatObjectEDataType, Ljava_lang_Float_2_classLit, 'EFloatObject', true); + $initEDataType(this$static.eIntEDataType, I_classLit, 'EInt', true); + $initEDataType(this$static.eIntegerObjectEDataType, Ljava_lang_Integer_2_classLit, 'EIntegerObject', true); + $initEDataType(this$static.eJavaClassEDataType, Ljava_lang_Class_2_classLit, 'EJavaClass', true); + $initEDataType(this$static.eJavaObjectEDataType, Ljava_lang_Object_2_classLit, 'EJavaObject', true); + $initEDataType(this$static.eLongEDataType, J_classLit, 'ELong', true); + $initEDataType(this$static.eLongObjectEDataType, Ljava_lang_Long_2_classLit, 'ELongObject', true); + $initEDataType(this$static.eMapEDataType, Ljava_util_Map_2_classLit, 'EMap', false); + $initEDataType(this$static.eResourceEDataType, Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, 'EResource', false); + $initEDataType(this$static.eResourceSetEDataType, Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, 'EResourceSet', false); + $initEDataType(this$static.eShortEDataType, S_classLit, 'EShort', true); + $initEDataType(this$static.eShortObjectEDataType, Ljava_lang_Short_2_classLit, 'EShortObject', true); + $initEDataType(this$static.eStringEDataType, Ljava_lang_String_2_classLit, 'EString', true); + $initEDataType(this$static.eTreeIteratorEDataType, Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, 'ETreeIterator', false); + $initEDataType(this$static.eInvocationTargetExceptionEDataType, Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, 'EInvocationTargetException', false); + $createResource(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); +} + +function EcorePackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2002/Ecore', ($clinit_EcoreFactory() , eINSTANCE_1)); + $$init_12(this); +} + +function init_4(){ + $clinit_EcorePackageImpl(); + var theEcorePackage; + if (isInited_0) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 2038); + register_0(Ljava_util_Map$Entry_2_classLit, new EcorePackageImpl$44); + initializeRegistryHelpersGen(); + theEcorePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 560)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore'):new EcorePackageImpl, 560); + isInited_0 = true; + $createPackageContents_0(theEcorePackage); + $initializePackageContents_0(theEcorePackage); + $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theEcorePackage, new EcorePackageImpl$1); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore', theEcorePackage); + return theEcorePackage; +} + +function initializeRegistryHelpersGen(){ + register_0(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, new EcorePackageImpl$2); + register_0(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, new EcorePackageImpl$3); + register_0(Lorg_eclipse_emf_ecore_EClass_2_classLit, new EcorePackageImpl$4); + register_0(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, new EcorePackageImpl$5); + register_0(Lorg_eclipse_emf_ecore_EDataType_2_classLit, new EcorePackageImpl$6); + register_0(Lorg_eclipse_emf_ecore_EEnum_2_classLit, new EcorePackageImpl$7); + register_0(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, new EcorePackageImpl$8); + register_0(Lorg_eclipse_emf_ecore_EFactory_2_classLit, new EcorePackageImpl$9); + register_0(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, new EcorePackageImpl$10); + register_0(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, new EcorePackageImpl$11); + register_0(Lorg_eclipse_emf_ecore_EObject_2_classLit, new EcorePackageImpl$12); + register_0(Lorg_eclipse_emf_ecore_EOperation_2_classLit, new EcorePackageImpl$13); + register_0(Lorg_eclipse_emf_ecore_EPackage_2_classLit, new EcorePackageImpl$14); + register_0(Lorg_eclipse_emf_ecore_EParameter_2_classLit, new EcorePackageImpl$15); + register_0(Lorg_eclipse_emf_ecore_EReference_2_classLit, new EcorePackageImpl$16); + register_0(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, new EcorePackageImpl$17); + register_0(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, new EcorePackageImpl$18); + register_0(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, new EcorePackageImpl$19); + register_0(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, new EcorePackageImpl$20); + register_0(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, new EcorePackageImpl$21); + register_0(Ljava_lang_Boolean_2_classLit, new EcorePackageImpl$22); + register_0(getClassLiteralForArray(B_classLit, 1), new EcorePackageImpl$23); + register_0(Ljava_lang_Byte_2_classLit, new EcorePackageImpl$24); + register_0(Ljava_lang_Character_2_classLit, new EcorePackageImpl$25); + register_0(Ljava_util_Date_2_classLit, new EcorePackageImpl$26); + register_0(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, new EcorePackageImpl$27); + register_0(Ljava_lang_Double_2_classLit, new EcorePackageImpl$28); + register_0(Lorg_eclipse_emf_common_util_EList_2_classLit, new EcorePackageImpl$29); + register_0(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, new EcorePackageImpl$30); + register_0(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, new EcorePackageImpl$31); + register_0(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, new EcorePackageImpl$32); + register_0(Ljava_lang_Float_2_classLit, new EcorePackageImpl$33); + register_0(Ljava_lang_Integer_2_classLit, new EcorePackageImpl$34); + register_0(Ljava_lang_Class_2_classLit, new EcorePackageImpl$35); + register_0(Ljava_lang_Long_2_classLit, new EcorePackageImpl$36); + register_0(Ljava_util_Map_2_classLit, new EcorePackageImpl$37); + register_0(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, new EcorePackageImpl$38); + register_0(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, new EcorePackageImpl$39); + register_0(Ljava_lang_Short_2_classLit, new EcorePackageImpl$40); + register_0(Ljava_lang_String_2_classLit, new EcorePackageImpl$41); + register_0(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, new EcorePackageImpl$42); + register_0(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, new EcorePackageImpl$43); +} + +function internalBootstrap(){ + $clinit_EcorePackageImpl(); + var eGenericType, eGenericType$iterator; + $createExtendedMetaDataAnnotations(($clinit_EcorePackage() , eINSTANCE_2)); + $createEcoreAnnotations(eINSTANCE_2); + $freeze_0(eINSTANCE_2); + eJavaObject = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT); + for (eGenericType$iterator = new ArrayList$1(eGenericTypes_0); eGenericType$iterator.i < eGenericType$iterator.this$01.array.length;) { + eGenericType = castTo($next_6(eGenericType$iterator), 248); + $setERawType(eGenericType, EJAVA_OBJECT, null); + } + return true; +} + +defineClass(560, 184, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 241:1, 114:1, 2038:1, 54:1, 99:1, 158:1, 184:1, 560:1, 119:1, 120:1, 690:1}, EcorePackageImpl); +_.isCreated = false; +_.isInitialized = false; +var eGenericTypes_0, isInited_0 = false; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl', 560); +function EcorePackageImpl$1(){ +} + +defineClass(1234, 1, {851:1}, EcorePackageImpl$1); +_.getEValidator = function getEValidator(){ + return $clinit_EcoreValidator() , INSTANCE_10; +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/1', 1234); +function EcorePackageImpl$10(){ +} + +defineClass(1243, 1, $intern_165, EcorePackageImpl$10); +_.isInstance = function isInstance_6(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, $intern_2, 155, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/10', 1243); +function EcorePackageImpl$11(){ +} + +defineClass(1244, 1, $intern_165, EcorePackageImpl$11); +_.isInstance = function isInstance_7(instance){ + return instanceOf(instance, 197); +} +; +_.newArrayInstance = function newArrayInstance_0(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, $intern_2, 197, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/11', 1244); +function EcorePackageImpl$12(){ +} + +defineClass(1245, 1, $intern_165, EcorePackageImpl$12); +_.isInstance = function isInstance_8(instance){ + return instanceOf(instance, 58); +} +; +_.newArrayInstance = function newArrayInstance_1(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 58, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/12', 1245); +function EcorePackageImpl$13(){ +} + +defineClass(1246, 1, $intern_165, EcorePackageImpl$13); +_.isInstance = function isInstance_9(instance){ + return instanceOf(instance, 411); +} +; +_.newArrayInstance = function newArrayInstance_2(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_155, 62, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/13', 1246); +function EcorePackageImpl$14(){ +} + +defineClass(1247, 1, $intern_165, EcorePackageImpl$14); +_.isInstance = function isInstance_10(instance){ + return instanceOf(instance, 241); +} +; +_.newArrayInstance = function newArrayInstance_3(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EPackage_2_classLit, $intern_2, 241, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/14', 1247); +function EcorePackageImpl$15(){ +} + +defineClass(1248, 1, $intern_165, EcorePackageImpl$15); +_.isInstance = function isInstance_11(instance){ + return instanceOf(instance, 518); +} +; +_.newArrayInstance = function newArrayInstance_4(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EParameter_2_classLit, $intern_2, 2116, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/15', 1248); +function EcorePackageImpl$16(){ +} + +defineClass(1249, 1, $intern_165, EcorePackageImpl$16); +_.isInstance = function isInstance_12(instance){ + return instanceOf(instance, 102); +} +; +_.newArrayInstance = function newArrayInstance_5(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_154, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/16', 1249); +function EcorePackageImpl$17(){ +} + +defineClass(1250, 1, $intern_165, EcorePackageImpl$17); +_.isInstance = function isInstance_13(instance){ + return instanceOf(instance, 179); +} +; +_.newArrayInstance = function newArrayInstance_6(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_154, 179, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/17', 1250); +function EcorePackageImpl$18(){ +} + +defineClass(1251, 1, $intern_165, EcorePackageImpl$18); +_.isInstance = function isInstance_14(instance){ + return instanceOf(instance, 481); +} +; +_.newArrayInstance = function newArrayInstance_7(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, $intern_2, 481, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/18', 1251); +function EcorePackageImpl$19(){ +} + +defineClass(1252, 1, $intern_165, EcorePackageImpl$19); +_.isInstance = function isInstance_15(instance){ + return instanceOf(instance, 561); +} +; +_.newArrayInstance = function newArrayInstance_8(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, $intern_149, 561, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/19', 1252); +function EcorePackageImpl$2(){ +} + +defineClass(1235, 1, $intern_165, EcorePackageImpl$2); +_.isInstance = function isInstance_16(instance){ + return instanceOf(instance, 331); +} +; +_.newArrayInstance = function newArrayInstance_9(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_154, 35, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/2', 1235); +function EcorePackageImpl$20(){ +} + +defineClass(1253, 1, $intern_165, EcorePackageImpl$20); +_.isInstance = function isInstance_17(instance){ + return instanceOf(instance, 248); +} +; +_.newArrayInstance = function newArrayInstance_10(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_158, 89, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/20', 1253); +function EcorePackageImpl$21(){ +} + +defineClass(1254, 1, $intern_165, EcorePackageImpl$21); +_.isInstance = function isInstance_18(instance){ + return instanceOf(instance, 457); +} +; +_.newArrayInstance = function newArrayInstance_11(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, $intern_2, 850, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/21', 1254); +function EcorePackageImpl$22(){ +} + +defineClass(1255, 1, $intern_165, EcorePackageImpl$22); +_.isInstance = function isInstance_19(instance){ + return instanceOfBoolean(instance); +} +; +_.newArrayInstance = function newArrayInstance_12(size_0){ + return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 485, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/22', 1255); +function EcorePackageImpl$23(){ +} + +defineClass(1256, 1, $intern_165, EcorePackageImpl$23); +_.isInstance = function isInstance_20(instance){ + return instanceOf(instance, 195); +} +; +_.newArrayInstance = function newArrayInstance_13(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 195, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/23', 1256); +function EcorePackageImpl$24(){ +} + +defineClass(1257, 1, $intern_165, EcorePackageImpl$24); +_.isInstance = function isInstance_21(instance){ + return instanceOf(instance, 222); +} +; +_.newArrayInstance = function newArrayInstance_14(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 222, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/24', 1257); +function EcorePackageImpl$25(){ +} + +defineClass(1258, 1, $intern_165, EcorePackageImpl$25); +_.isInstance = function isInstance_22(instance){ + return instanceOf(instance, 180); +} +; +_.newArrayInstance = function newArrayInstance_15(size_0){ + return initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 180, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/25', 1258); +function EcorePackageImpl$26(){ +} + +defineClass(1259, 1, $intern_165, EcorePackageImpl$26); +_.isInstance = function isInstance_23(instance){ + return instanceOf(instance, 206); +} +; +_.newArrayInstance = function newArrayInstance_16(size_0){ + return initUnidimensionalArray(Ljava_util_Date_2_classLit, $intern_16, 206, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/26', 1259); +function EcorePackageImpl$27(){ +} + +defineClass(1260, 1, $intern_165, EcorePackageImpl$27); +_.isInstance = function isInstance_24(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_17(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, $intern_2, 2215, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/27', 1260); +function EcorePackageImpl$28(){ +} + +defineClass(1261, 1, $intern_165, EcorePackageImpl$28); +_.isInstance = function isInstance_25(instance){ + return instanceOfDouble(instance); +} +; +_.newArrayInstance = function newArrayInstance_18(size_0){ + return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/28', 1261); +function EcorePackageImpl$29(){ +} + +defineClass(1262, 1, $intern_165, EcorePackageImpl$29); +_.isInstance = function isInstance_26(instance){ + return instanceOf(instance, 61); +} +; +_.newArrayInstance = function newArrayInstance_19(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_EList_2_classLit, $intern_99, 61, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/29', 1262); +function EcorePackageImpl$3(){ +} + +defineClass(1236, 1, $intern_165, EcorePackageImpl$3); +_.isInstance = function isInstance_27(instance){ + return instanceOf(instance, 519); +} +; +_.newArrayInstance = function newArrayInstance_20(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, {3:1, 4:1, 5:1, 2033:1}, 598, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/3', 1236); +function EcorePackageImpl$30(){ +} + +defineClass(1263, 1, $intern_165, EcorePackageImpl$30); +_.isInstance = function isInstance_28(instance){ + return instanceOf(instance, 582); +} +; +_.newArrayInstance = function newArrayInstance_21(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, $intern_2, 2039, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/30', 1263); +function EcorePackageImpl$31(){ +} + +defineClass(1264, 1, $intern_165, EcorePackageImpl$31); +_.isInstance = function isInstance_29(instance){ + return instanceOf(instance, 160); +} +; +_.newArrayInstance = function newArrayInstance_22(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, $intern_99, 160, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/31', 1264); +function EcorePackageImpl$32(){ +} + +defineClass(1265, 1, $intern_165, EcorePackageImpl$32); +_.isInstance = function isInstance_30(instance){ + return instanceOf(instance, 76); +} +; +_.newArrayInstance = function newArrayInstance_23(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, $intern_166, 76, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/32', 1265); +function EcorePackageImpl$33(){ +} + +defineClass(1266, 1, $intern_165, EcorePackageImpl$33); +_.isInstance = function isInstance_31(instance){ + return instanceOf(instance, 161); +} +; +_.newArrayInstance = function newArrayInstance_24(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 161, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/33', 1266); +function EcorePackageImpl$34(){ +} + +defineClass(1267, 1, $intern_165, EcorePackageImpl$34); +_.isInstance = function isInstance_32(instance){ + return instanceOf(instance, 17); +} +; +_.newArrayInstance = function newArrayInstance_25(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 17, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/34', 1267); +function EcorePackageImpl$35(){ +} + +defineClass(1268, 1, $intern_165, EcorePackageImpl$35); +_.isInstance = function isInstance_33(instance){ + return instanceOf(instance, 297); +} +; +_.newArrayInstance = function newArrayInstance_26(size_0){ + return initUnidimensionalArray(Ljava_lang_Class_2_classLit, $intern_2, 297, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/35', 1268); +function EcorePackageImpl$36(){ +} + +defineClass(1269, 1, $intern_165, EcorePackageImpl$36); +_.isInstance = function isInstance_34(instance){ + return instanceOf(instance, 168); +} +; +_.newArrayInstance = function newArrayInstance_27(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 168, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/36', 1269); +function EcorePackageImpl$37(){ +} + +defineClass(1270, 1, $intern_165, EcorePackageImpl$37); +_.isInstance = function isInstance_35(instance){ + return instanceOf(instance, 85); +} +; +_.newArrayInstance = function newArrayInstance_28(size_0){ + return initUnidimensionalArray(Ljava_util_Map_2_classLit, $intern_2, 85, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/37', 1270); +function EcorePackageImpl$38(){ +} + +defineClass(1271, 1, $intern_165, EcorePackageImpl$38); +_.isInstance = function isInstance_36(instance){ + return instanceOf(instance, 599); +} +; +_.newArrayInstance = function newArrayInstance_29(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, $intern_2, 599, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/38', 1271); +function EcorePackageImpl$39(){ +} + +defineClass(1272, 1, $intern_165, EcorePackageImpl$39); +_.isInstance = function isInstance_37(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_30(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, $intern_2, 2216, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/39', 1272); +function EcorePackageImpl$4(){ +} + +defineClass(1237, 1, $intern_165, EcorePackageImpl$4); +_.isInstance = function isInstance_38(instance){ + return instanceOf(instance, 90); +} +; +_.newArrayInstance = function newArrayInstance_31(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 29, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/4', 1237); +function EcorePackageImpl$40(){ +} + +defineClass(1273, 1, $intern_165, EcorePackageImpl$40); +_.isInstance = function isInstance_39(instance){ + return instanceOf(instance, 191); +} +; +_.newArrayInstance = function newArrayInstance_32(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 191, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/40', 1273); +function EcorePackageImpl$41(){ +} + +defineClass(1274, 1, $intern_165, EcorePackageImpl$41); +_.isInstance = function isInstance_40(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_33(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/41', 1274); +function EcorePackageImpl$42(){ +} + +defineClass(1275, 1, $intern_165, EcorePackageImpl$42); +_.isInstance = function isInstance_41(instance){ + return instanceOf(instance, 596); +} +; +_.newArrayInstance = function newArrayInstance_34(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, $intern_2, 596, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/42', 1275); +function EcorePackageImpl$43(){ +} + +defineClass(1276, 1, $intern_165, EcorePackageImpl$43); +_.isInstance = function isInstance_42(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_35(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, $intern_16, 2217, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/43', 1276); +function EcorePackageImpl$44(){ +} + +defineClass(1277, 1, $intern_165, EcorePackageImpl$44); +_.isInstance = function isInstance_43(instance){ + return instanceOf(instance, 44); +} +; +_.newArrayInstance = function newArrayInstance_36(size_0){ + return initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 44, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/44', 1277); +function EcorePackageImpl$5(){ +} + +defineClass(1238, 1, $intern_165, EcorePackageImpl$5); +_.isInstance = function isInstance_44(instance){ + return instanceOf(instance, 142); +} +; +_.newArrayInstance = function newArrayInstance_37(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 142, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/5', 1238); +function EcorePackageImpl$6(){ +} + +defineClass(1239, 1, $intern_165, EcorePackageImpl$6); +_.isInstance = function isInstance_45(instance){ + return instanceOf(instance, 156); +} +; +_.newArrayInstance = function newArrayInstance_38(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EDataType_2_classLit, $intern_2, 156, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/6', 1239); +function EcorePackageImpl$7(){ +} + +defineClass(1240, 1, $intern_165, EcorePackageImpl$7); +_.isInstance = function isInstance_46(instance){ + return instanceOf(instance, 469); +} +; +_.newArrayInstance = function newArrayInstance_39(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnum_2_classLit, $intern_2, 685, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/7', 1240); +function EcorePackageImpl$8(){ +} + +defineClass(1241, 1, $intern_165, EcorePackageImpl$8); +_.isInstance = function isInstance_47(instance){ + return instanceOf(instance, 582); +} +; +_.newArrayInstance = function newArrayInstance_40(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, $intern_2, 694, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/8', 1241); +function EcorePackageImpl$9(){ +} + +defineClass(1242, 1, $intern_165, EcorePackageImpl$9); +_.isInstance = function isInstance_48(instance){ + return instanceOf(instance, 480); +} +; +_.newArrayInstance = function newArrayInstance_41(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EFactory_2_classLit, $intern_2, 480, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/9', 1242); +function $didAdd_1(this$static, newAdapter){ + var listener$array, listener$index, listener$max, listeners; + newAdapter.setTarget(this$static.this$01); + listeners = castTo($getField(this$static.this$01, 8), 2035); + if (listeners != null) { + for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { + null.$_nullMethod(); + } + } +} + +function $didRemove_0(this$static, index_0, oldAdapter){ + var adapter, listener$array, listener$index, listener$max, listeners, notification; + listeners = castTo($getField(this$static.this$01, 8), 2035); + if (listeners != null) { + for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { + null.$_nullMethod(); + } + } + adapter = oldAdapter; + if ((this$static.this$01.eFlags_0 & 1) == 0) { + notification = new MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$static, oldAdapter, index_0); + adapter.notifyChanged(notification); + } + instanceOf(adapter, 686)?castTo(adapter, 686).unsetTarget(this$static.this$01):adapter.getTarget() == this$static.this$01 && adapter.setTarget(null); +} + +function $setData(this$static, data_0){ + var eContainerAdapterArray, eInternalContainer; + ++this$static.modCount; + if (data_0 != null) { + eContainerAdapterArray = (eInternalContainer = this$static.this$01.eContainer , instanceOf(eInternalContainer, 99)?castTo(eInternalContainer, 99).eBasicAdapterArray():null); + if (equals_46(data_0, eContainerAdapterArray)) { + $setField(this$static.this$01, 4, eContainerAdapterArray); + return; + } + } + $setField(this$static.this$01, 4, castTo(data_0, 129)); +} + +function MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$0){ + $clinit_ArrayDelegatingEList(); + this.this$01 = this$0; +} + +defineClass(1038, 2080, $intern_147, MinimalEObjectImpl$1ArrayDelegatingAdapterList); +_.didAdd = function didAdd_2(index_0, newAdapter){ + $didAdd_1(this, castTo(newAdapter, 424)); +} +; +_.didRemove = function didRemove_1(index_0, oldAdapter){ + $didRemove_0(this, index_0, castTo(oldAdapter, 424)); +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList', 1038); +function MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$1, $anonymous1, $anonymous3){ + this.this$11 = this$1; + NotificationImpl_1.call(this, 8, $anonymous1, null, $anonymous3); +} + +defineClass(1039, 152, $intern_145, MinimalEObjectImpl$1ArrayDelegatingAdapterList$1); +_.getNotifier = function getNotifier_7(){ + return this.this$11.this$01; +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1', 1039); +function $clinit_EcorePlugin(){ + $clinit_EcorePlugin = emptyMethod; + new EcorePlugin; + new ArrayList; +} + +function EcorePlugin(){ + new HashMap; + new HashMap; + new HashMap; +} + +defineClass(1067, 1066, {}, EcorePlugin); +var Lorg_eclipse_emf_ecore_plugin_EcorePlugin_2_classLit = createForClass('org.eclipse.emf.ecore.plugin', 'EcorePlugin', 1067); +var Lorg_eclipse_emf_ecore_resource_Resource_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'Resource'); +function $getEObject(this$static, uriFragmentPath){ + var eObject, i, size_0; + size_0 = uriFragmentPath.array.length; + eObject = $getEObjectForURIFragmentRootSegment(this$static, size_0 == 0?'':(checkCriticalElementIndex(0, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[0]))); + for (i = 1; i < size_0 && !!eObject; ++i) { + eObject = castTo(eObject, 54).eObjectForURIFragmentSegment((checkCriticalElementIndex(i, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[i]))); + } + return eObject; +} + +function $getEObjectByID(this$static, id_0){ + var eObject, eObjectId, i, result, eClass, eIDAttribute; + result = null; + for (i = new ResourceImpl$5((!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents)); $hasNext_7(i);) { + eObject = castTo($next_13(i), 58); + eObjectId = (eClass = eObject.eClass_0() , eIDAttribute = ($getEAllAttributes(eClass) , eClass.eIDAttribute) , !eIDAttribute || !eObject.eIsSet_0(eIDAttribute)?null:convertToString_2($getEAttributeType(eIDAttribute), eObject.eGet_0(eIDAttribute))); + if (eObjectId != null) { + if ($equals_5(eObjectId, id_0)) { + result = eObject; + break; + } + } + } + return result; +} + +function $getEObjectForURIFragmentRootSegment(this$static, uriFragmentRootSegment){ + var contents, exception, position; + position = 0; + if (uriFragmentRootSegment.length > 0) { + try { + position = __parseAndValidateInt(uriFragmentRootSegment, $intern_43, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 130)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + } + contents = (!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents); + return position < contents.size_0 && position >= 0?castTo($get_20(contents, position), 58):null; +} + +defineClass(799, 1524, $intern_167); +_.attached = function attached(eObject){ +} +; +_.detached = function detached(eObject){ +} +; +_.getContents = function getContents(){ + return !this.contents && (this.contents = new ResourceImpl$ContentsEList(this)) , this.contents; +} +; +_.getEObject = function getEObject(uriFragment){ + var i, index_0, length_0, start_0, uriFragmentPath; + length_0 = uriFragment.length; + if (length_0 > 0) { + checkCriticalStringElementIndex(0, uriFragment.length); + if (uriFragment.charCodeAt(0) == 47) { + uriFragmentPath = new ArrayList_0(4); + start_0 = 1; + for (i = 1; i < length_0; ++i) { + checkCriticalStringElementIndex(i, uriFragment.length); + if (uriFragment.charCodeAt(i) == 47) { + $add_3(uriFragmentPath, start_0 == i?'':(checkCriticalStringBounds(start_0, i, uriFragment.length) , uriFragment.substr(start_0, i - start_0))); + start_0 = i + 1; + } + } + $add_3(uriFragmentPath, (checkCriticalStringElementIndex(start_0, uriFragment.length + 1) , uriFragment.substr(start_0))); + return $getEObject(this, uriFragmentPath); + } + else { + checkCriticalStringElementIndex(length_0 - 1, uriFragment.length); + if (uriFragment.charCodeAt(length_0 - 1) == 63) { + index_0 = $lastIndexOf_0(uriFragment, fromCodePoint(63), length_0 - 2); + index_0 > 0 && (uriFragment = (checkCriticalStringBounds(0, index_0, uriFragment.length) , uriFragment.substr(0, index_0))); + } + } + } + return $getEObjectByID(this, uriFragment); +} +; +_.getResourceSet = function getResourceSet(){ + return this.resourceSet; +} +; +_.toString_0 = function toString_157(){ + var number; + return $getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)) + " uri='" + this.uri_0 + "'"; +} +; +_.isLoaded = false; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl', 799); +function BinaryResourceImpl(uri_0){ + this.uri_0 = uri_0; +} + +defineClass(1525, 799, $intern_167, BinaryResourceImpl); +var Lorg_eclipse_emf_ecore_resource_impl_BinaryResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'BinaryResourceImpl', 1525); +function $getEObjectChildren(this$static, eObject){ + return this$static.isResolveProxies?eObject.eContents_0().iterator_0():castTo(eObject.eContents_0(), 71).basicIterator(); +} + +function $hasNext_7(this$static){ + var iterator; + if (!this$static.includeRoot && this$static.data_0 == null) { + this$static.nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, this$static.nextPruneIterator); + iterator = this$static.nextPruneIterator; + } + else { + if (this$static.data_0 == null) { + return true; + } + else if (this$static.size_0 == 0) { + return false; + } + else { + iterator = castTo(this$static.data_0[this$static.size_0 - 1], 51); + } + } + if (iterator == this$static.resourceSetIterator && null.$_nullField >= null.$_nullMethod()) { + $next_13(this$static); + return $hasNext_7(this$static); + } + else { + return iterator.hasNext_0(); + } +} + +defineClass(1190, 708, $intern_142); +_.getChildren = function getChildren_0(object){ + return instanceOf(object, 58)?$getEObjectChildren(this, castTo(object, 58)):instanceOf(object, 599)?new AbstractEList$EIterator(castTo(object, 599).getContents()):maskUndefined(object) === maskUndefined(this.object)?castTo(object, 16).iterator_0():($clinit_ECollections() , EMPTY_ELIST.listIterator); +} +; +_.hasNext_0 = function hasNext_48(){ + return $hasNext_7(this); +} +; +_.isResolveProxies = false; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ContentTreeIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ContentTreeIterator', 1190); +function ResourceImpl$5($anonymous0){ + AbstractTreeIterator.call(this, $anonymous0, false); + this.isResolveProxies = false; +} + +defineClass(1526, 1190, $intern_142, ResourceImpl$5); +_.getChildren = function getChildren_1(object){ + return maskUndefined(object) === maskUndefined(this.object)?castTo(object, 15).iterator_0():new EcoreUtil$ProperContentIterator(castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/5', 1526); +function ResourceImpl$ContentsEList(this$0){ + this.this$01 = this$0; +} + +defineClass(658, 2092, $intern_156, ResourceImpl$ContentsEList); +_.contains = function contains_66(object){ + return this.size_0 <= 4?$contains_10(this, object):instanceOf(object, 54) && castTo(object, 54).eDirectResource() == this.this$01; +} +; +_.didAdd = function didAdd_3(index_0, object){ + index_0 == this.size_0 - 1 && (this.this$01.isLoaded || (this.this$01.isLoaded = true , null)); +} +; +_.didClear = function didClear_1(oldSize, oldData){ + oldSize == 0?this.this$01.isLoaded || (this.this$01.isLoaded = true , null):$didClear(this, oldSize, oldData); +} +; +_.didRemove = function didRemove_2(index_0, object){ +} +; +_.didSet = function didSet_1(index_0, newObject, oldObject){ +} +; +_.getFeatureID_0 = function getFeatureID_12(){ + return 2; +} +; +_.getNotifier = function getNotifier_8(){ + return this.this$01; +} +; +_.hasInverse = function hasInverse_10(){ + return true; +} +; +_.inverseAdd = function inverseAdd_8(object, notifications){ + var eObject; + eObject = castTo(object, 54); + notifications = eObject.eSetResource(this.this$01, notifications); + return notifications; +} +; +_.inverseRemove = function inverseRemove_8(object, notifications){ + var eObject; + eObject = castTo(object, 54); + return eObject.eSetResource(null, notifications); +} +; +_.isNotificationRequired = function isNotificationRequired_3(){ + return false; +} +; +_.isUnique = function isUnique_7(){ + return true; +} +; +_.newData = function newData_13(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 58, capacity, 0, 1); +} +; +_.useEquals = function useEquals_14(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$ContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/ContentsEList', 658); +function AbstractSequentialInternalEList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(970, 2062, $intern_38, AbstractSequentialInternalEList$1); +_.listIterator_1 = function listIterator_32(index_0){ + return this.this$01.basicListIterator_0(index_0); +} +; +_.size_1 = function size_80(){ + return this.this$01.size_1(); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList/1', 970); +function $clinit_ExtendedMetaData(){ + $clinit_ExtendedMetaData = emptyMethod; + FEATURE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'simple', 'attribute', 'attributeWildcard', 'element', 'elementWildcard', 'group']); + CONTENT_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'empty', 'simple', 'mixed', 'elementOnly']); + WHITE_SPACE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'preserve', 'replace', 'collapse']); + INSTANCE_11 = new BasicExtendedMetaData; +} + +var CONTENT_KINDS, FEATURE_KINDS, INSTANCE_11, WHITE_SPACE_KINDS; +function $clinit_BasicExtendedMetaData(){ + $clinit_BasicExtendedMetaData = emptyMethod; + var eAttribute, eDataType; + UNINITIALIZED_EDATA_TYPE = ($clinit_EcoreFactory() , eDataType = new EDataTypeImpl , eDataType); + UNINITIALIZED_ESTRUCTURAL_FEATURE = (eAttribute = new EAttributeImpl , eAttribute); +} + +function $basicGetAffiliation(this$static, eStructuralFeature){ + var eAnnotation, fragmentIndex, qualifiedName; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'affiliation')); + if (qualifiedName != null) { + fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); + return fragmentIndex == -1?$getElement(this$static, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())), qualifiedName):fragmentIndex == 0?$getElement(this$static, null, (checkCriticalStringElementIndex(1, qualifiedName.length + 1) , qualifiedName.substr(1))):$getElement(this$static, (checkCriticalStringBounds(0, fragmentIndex, qualifiedName.length) , qualifiedName.substr(0, fragmentIndex)), (checkCriticalStringElementIndex(fragmentIndex + 1, qualifiedName.length + 1) , qualifiedName.substr(fragmentIndex + 1))); + } + } + return null; +} + +function $basicGetBaseType(this$static, eDataType){ + var baseType, details, eAnnotation, index_0, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); + baseType = castToString($get_21(details, 'baseType')); + if (baseType != null) { + index_0 = baseType.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), baseType):index_0 == 0?$getType(this$static, null, (checkCriticalStringElementIndex(1, baseType.length + 1) , baseType.substr(1))):$getType(this$static, (checkCriticalStringBounds(0, index_0, baseType.length) , baseType.substr(0, index_0)), (checkCriticalStringElementIndex(index_0 + 1, baseType.length + 1) , baseType.substr(index_0 + 1))); + if (instanceOf(type_0, 156)) { + return castTo(type_0, 156); + } + } + } + return null; +} + +function $basicGetContentKind(this$static, eClass){ + var eAnnotation, i, kind; + eAnnotation = eClass.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); + if (kind != null) { + for (i = 1; i < ($clinit_ExtendedMetaData() , CONTENT_KINDS).length; ++i) { + if ($equals_5(CONTENT_KINDS[i], kind)) { + return i; + } + } + } + } + return 0; +} + +function $basicGetFeatureKind(this$static, eStructuralFeature){ + var eAnnotation, i, kind; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); + if (kind != null) { + for (i = 1; i < ($clinit_ExtendedMetaData() , FEATURE_KINDS).length; ++i) { + if ($equals_5(FEATURE_KINDS[i], kind)) { + return i; + } + } + } + } + return 0; +} + +function $basicGetGroup(this$static, eStructuralFeature){ + var eAnnotation, eContainingClass, fragmentIndex, name_0, namespace, qualifiedName; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group')); + if (qualifiedName != null) { + fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); + eContainingClass = eStructuralFeature.getEContainingClass(); + if (fragmentIndex == -1) { + namespace = $getNamespace(this$static, $getEPackage(eContainingClass)); + name_0 = qualifiedName; + } + else if (fragmentIndex == 0) { + namespace = null; + name_0 = (checkCriticalStringElementIndex(1, qualifiedName.length + 1) , qualifiedName.substr(1)); + } + else { + namespace = (checkCriticalStringBounds(0, fragmentIndex, qualifiedName.length) , qualifiedName.substr(0, fragmentIndex)); + name_0 = (checkCriticalStringElementIndex(fragmentIndex + 1, qualifiedName.length + 1) , qualifiedName.substr(fragmentIndex + 1)); + } + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + return $getAttribute_0(this$static, eContainingClass, namespace, name_0); + } + + case 0: + case 4: + case 5: + case 6: + { + return $getElement_0(this$static, eContainingClass, namespace, name_0); + } + + } + } + } + return null; +} + +function $basicGetItemType(this$static, eDataType){ + var details, eAnnotation, index_0, itemType, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); + itemType = castToString($get_21(details, 'itemType')); + if (itemType != null) { + index_0 = itemType.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), itemType):index_0 == 0?$getType(this$static, null, (checkCriticalStringElementIndex(1, itemType.length + 1) , itemType.substr(1))):$getType(this$static, (checkCriticalStringBounds(0, index_0, itemType.length) , itemType.substr(0, index_0)), (checkCriticalStringElementIndex(index_0 + 1, itemType.length + 1) , itemType.substr(index_0 + 1))); + if (instanceOf(type_0, 156)) { + return castTo(type_0, 156); + } + } + } + return null; +} + +function $basicGetMemberTypes(this$static, eDataType){ + var eAnnotation, index_0, member, member$array, member$index, member$max, memberTypes, result, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + memberTypes = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'memberTypes')); + if (memberTypes != null) { + result = new ArrayList; + for (member$array = $split_0(memberTypes, '\\w') , member$index = 0 , member$max = member$array.length; member$index < member$max; ++member$index) { + member = member$array[member$index]; + index_0 = member.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), member):index_0 == 0?$getType(this$static, null, (checkCriticalStringElementIndex(1, member.length + 1) , member.substr(1))):$getType(this$static, (checkCriticalStringBounds(0, index_0, member.length) , member.substr(0, index_0)), (checkCriticalStringElementIndex(index_0 + 1, member.length + 1) , member.substr(index_0 + 1))); + instanceOf(type_0, 156) && $add_3(result, castTo(type_0, 156)); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $basicGetName(this$static, eClassifier){ + var eAnnotation, result; + eAnnotation = eClassifier.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); + if (result != null) { + return result; + } + } + return eClassifier.getName(); +} + +function $basicGetName_0(this$static, eStructuralFeature){ + var eAnnotation, result; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); + if (result != null) { + return result; + } + } + return eStructuralFeature.getName(); +} + +function $basicGetNamespace(this$static, eStructuralFeature){ + var eAnnotation, result; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (!eAnnotation) { + return null; + } + else { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'namespace')); + return $equals_5('##targetNamespace', result)?$getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())):result; + } +} + +function $basicGetWhiteSpaceFacet(this$static, eDataType){ + var eAnnotation, i, whiteSpaceLiteral; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + whiteSpaceLiteral = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'whiteSpace')); + for (i = 1; i < ($clinit_ExtendedMetaData() , WHITE_SPACE_KINDS).length; ++i) { + if ($equals_5(WHITE_SPACE_KINDS[i], whiteSpaceLiteral)) { + return i; + } + } + } + return 0; +} + +function $basicGetWildcards(this$static, eStructuralFeature){ + var eAnnotation, result, wildcard, wildcard$array, wildcard$index, wildcard$max, wildcards; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + wildcards = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'wildcards')); + if (wildcards != null) { + result = new ArrayList; + for (wildcard$array = $split_0(wildcards, '\\w') , wildcard$index = 0 , wildcard$max = wildcard$array.length; wildcard$index < wildcard$max; ++wildcard$index) { + wildcard = wildcard$array[wildcard$index]; + $equals_5(wildcard, '##other')?$add_3(result, '!##' + $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):$equals_5(wildcard, '##local')?(result.array.push(null) , undefined , true):$equals_5(wildcard, '##targetNamespace')?$add_3(result, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):(push_1(result.array, wildcard) , true); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $getAffiliation(this$static, eClass, eStructuralFeature){ + var affiliation, allAttributes, allElements, i, name_0, namespace, namespace0, result, size_0; + if ($getFeatureID(eClass, eStructuralFeature) >= 0) { + return eStructuralFeature; + } + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + { + if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { + namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + name_0 = $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + result = $getLocalAttribute(this$static, eClass, namespace, name_0); + if (result) { + return result; + } + allAttributes = $getAllAttributes(this$static, eClass); + for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { + result = castTo(allAttributes.get_0(i), 179); + if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { + return result; + } + } + } + return null; + } + + case 4: + { + if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { + for (affiliation = eStructuralFeature; affiliation; affiliation = $getAffiliation_0($getExtendedMetaData_1(this$static, affiliation))) { + namespace0 = $getNamespace_0($getExtendedMetaData_1(this$static, affiliation)); + name_0 = $getName_0($getExtendedMetaData_1(this$static, affiliation)); + result = $getLocalElement(this$static, eClass, namespace0, name_0); + if (result) { + return result; + } + } + namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if ($equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace)) { + return $getMixedFeature(this$static, eClass); + } + else { + allElements = $getAllElements(this$static, eClass); + for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { + result = castTo(allElements.get_0(i), 179); + if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { + return result; + } + } + } + } + return null; + } + + default:{ + return null; + } + + } +} + +function $getAllAttributes(this$static, eClass){ + var allAttributes, attributes, changeable, eGenericType, eSuperType, i, result, result0, size_0, superTypes; + superTypes = $getESuperTypes(eClass); + result0 = null; + changeable = false; + for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { + eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 89) , result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT))), 29); + allAttributes = $getAllAttributes(this$static, eSuperType); + if (!allAttributes.isEmpty()) { + if (!result0) { + result0 = allAttributes; + } + else { + if (!changeable) { + changeable = true; + result0 = new UniqueEList_0(result0); + } + result0.addAll(allAttributes); + } + } + } + attributes = $getAttributes(this$static, eClass); + if (attributes.isEmpty()) { + return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; + } + else { + if (!result0) { + return attributes; + } + else { + changeable || (result0 = new UniqueEList_0(result0)); + result0.addAll(attributes); + return result0; + } + } +} + +function $getAllElements(this$static, eClass){ + var allElements, changeable, eGenericType, eSuperType, elements, i, result, result0, size_0, superTypes; + superTypes = $getESuperTypes(eClass); + result0 = null; + changeable = false; + for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { + eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 89) , result = eGenericType.eRawType , instanceOf(result, 90)?castTo(result, 29):($clinit_EcorePackage$Literals() , EOBJECT))), 29); + allElements = $getAllElements(this$static, eSuperType); + if (!allElements.isEmpty()) { + if (!result0) { + result0 = allElements; + } + else { + if (!changeable) { + changeable = true; + result0 = new UniqueEList_0(result0); + } + result0.addAll(allElements); + } + } + } + elements = $getElements(this$static, eClass); + if (elements.isEmpty()) { + return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; + } + else { + if (!result0) { + return elements; + } + else { + changeable || (result0 = new UniqueEList_0(result0)); + result0.addAll(elements); + return result0; + } + } +} + +function $getAnnotation(this$static, eModelElement){ + var result; + result = eModelElement.getEAnnotation(this$static.annotationURI); + return result; +} + +function $getAttribute(this$static, namespace, name_0){ + var documentRoot, ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + if (ePackage0) { + documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 29); + if (documentRoot) { + return $getLocalAttribute(this$static, documentRoot, namespace, name_0); + } + } + return null; +} + +function $getAttribute_0(this$static, eClass, namespace, name_0){ + var result; + result = $getLocalAttribute(this$static, eClass, namespace, name_0); + if (!result) { + result = $getAttribute(this$static, namespace, name_0); + if (!!result && !$getAffiliation(this$static, eClass, result)) { + return null; + } + } + return result; +} + +function $getAttributes(this$static, eClass){ + var eStructuralFeature, eStructuralFeatures, i, result, size_0; + eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); + result = null; + for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { + eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 179); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + !result && (result = new ArrayList); + push_1(result.array, eStructuralFeature); + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getElement(this$static, namespace, name_0){ + var documentRoot, ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + if (ePackage0) { + documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 29); + if (documentRoot) { + return $getLocalElement(this$static, documentRoot, namespace, name_0); + } + } + return null; +} + +function $getElement_0(this$static, eClass, namespace, name_0){ + var result; + result = $getLocalElement(this$static, eClass, namespace, name_0); + if (!result) { + result = $getElement(this$static, namespace, name_0); + if (!!result && !$getAffiliation(this$static, eClass, result)) { + return null; + } + } + return result; +} + +function $getElements(this$static, eClass){ + var eStructuralFeature, eStructuralFeatures, i, result, size_0; + eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); + result = null; + for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { + eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 179); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 4: + case 5: + case 6: + { + !result && (result = new ArrayList); + push_1(result.array, eStructuralFeature); + break; + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getExtendedMetaData(this$static, eClassifier){ + var holder, result; + holder = castTo(eClassifier, 691); + result = holder.getExtendedMetaData_1(); + !result && holder.setExtendedMetaData_1(result = instanceOf(eClassifier, 90)?new BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$static, castTo(eClassifier, 29)):new BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$static, castTo(eClassifier, 156))); + return result; +} + +function $getExtendedMetaData_0(this$static, ePackage){ + var holder, result; + holder = castTo(ePackage, 690); + result = holder.getExtendedMetaData(); + !result && holder.setExtendedMetaData(result = new BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$static, ePackage)); + return result; +} + +function $getExtendedMetaData_1(this$static, eStructuralFeature){ + var holder, result; + holder = castTo(eStructuralFeature, 692); + result = holder.getExtendedMetaData_0(); + !result && holder.setExtendedMetaData_0(result = new BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$static, eStructuralFeature)); + return result; +} + +function $getLocalAttribute(this$static, eClass, namespace, name_0){ + var allAttributes, eStructuralFeature, featureNamespace, i, result, size_0; + result = null; + allAttributes = $getAllAttributes(this$static, eClass); + for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { + eStructuralFeature = castTo(allAttributes.get_0(i), 179); + if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { + featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if (namespace == null) { + if (featureNamespace == null) { + return eStructuralFeature; + } + else + !result && (result = eStructuralFeature); + } + else if ($equals_5(namespace, featureNamespace)) { + return eStructuralFeature; + } + else + featureNamespace == null && !result && (result = eStructuralFeature); + } + } + return null; +} + +function $getLocalElement(this$static, eClass, namespace, name_0){ + var allElements, eStructuralFeature, featureNamespace, i, result, size_0; + result = null; + allElements = $getAllElements(this$static, eClass); + for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { + eStructuralFeature = castTo(allElements.get_0(i), 179); + if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { + featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if (namespace == null) { + if (featureNamespace == null) { + return eStructuralFeature; + } + else + !result && (result = eStructuralFeature); + } + else if ($equals_5(namespace, featureNamespace)) { + return eStructuralFeature; + } + else + featureNamespace == null && !result && (result = eStructuralFeature); + } + } + return null; +} + +function $getMixedFeature(this$static, eClass){ + var eAllAttributes, eAttribute, i, size_0; + switch ($getExtendedMetaData(this$static, eClass).getContentKind()) { + case 3: + case 2: + { + eAllAttributes = $getEAllAttributes(eClass); + for (i = 0 , size_0 = eAllAttributes.size_0; i < size_0; ++i) { + eAttribute = castTo($get_20(eAllAttributes, i), 35); + if ($getFeatureKind($getExtendedMetaData_1(this$static, eAttribute)) == 5) { + return eAttribute; + } + } + break; + } + + } + return null; +} + +function $getNamespace(this$static, ePackage){ + return $isQualified($getExtendedMetaData_0(this$static, ePackage))?ePackage.getNsURI():null; +} + +function $getType(this$static, namespace, name_0){ + var ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + return !ePackage0?null:$getType_1($getExtendedMetaData_0(this$static, ePackage0), name_0); +} + +function $getType_0(this$static, ePackage, name_0){ + return $getType_1($getExtendedMetaData_0(this$static, ePackage), name_0); +} + +function $matches(wildcards, namespace){ + var i, size_0, suffixlength, wildcard; + if (!wildcards.isEmpty()) { + for (i = 0 , size_0 = wildcards.size_1(); i < size_0; ++i) { + wildcard = castToString(wildcards.get_0(i)); + if (wildcard == null?namespace == null:$equals_5(wildcard.substr(0, 3), '!##')?namespace != null && (suffixlength = namespace.length , !$equals_5(wildcard.substr(wildcard.length - suffixlength, suffixlength), namespace) || wildcard.length != namespace.length + 3) && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace):$equals_5(wildcard, '##any') && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace) || $equals_5(wildcard, namespace)) { + return true; + } + } + } + return false; +} + +function BasicExtendedMetaData(){ + $clinit_BasicExtendedMetaData(); + BasicExtendedMetaData_0.call(this, ($clinit_EPackage$Registry() , INSTANCE_6)); +} + +function BasicExtendedMetaData_0(registry){ + this.annotationURI = (checkCriticalNotNull('http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData'); + this.registry = registry; + new EPackageRegistryImpl; +} + +defineClass(634, 1, {}, BasicExtendedMetaData); +var UNINITIALIZED_EDATA_TYPE, UNINITIALIZED_ESTRUCTURAL_FEATURE; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData', 634); +function $setContentKind(this$static, kind){ + this$static.contentKind = kind; +} + +function $setName_2(this$static, name_0){ + this$static.name_0 = name_0; +} + +function BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$0, eClass){ + this.this$01 = this$0; + this.eClass = eClass; +} + +defineClass(1181, 1, {}, BasicExtendedMetaData$EClassExtendedMetaDataImpl); +_.getBaseType = function getBaseType(){ + return null; +} +; +_.getContentKind = function getContentKind(){ + this.contentKind == -2 && $setContentKind(this, $basicGetContentKind(this.this$01, this.eClass)); + return this.contentKind; +} +; +_.getItemType = function getItemType(){ + return null; +} +; +_.getMemberTypes = function getMemberTypes(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getName = function getName_7(){ + this.name_0 == 'uninitialized' && $setName_2(this, $basicGetName(this.this$01, this.eClass)); + return this.name_0; +} +; +_.getWhiteSpaceFacet = function getWhiteSpaceFacet(){ + return 0; +} +; +_.contentKind = -2; +_.name_0 = 'uninitialized'; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EClassExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EClassExtendedMetaDataImpl', 1181); +function $setBaseType(this$static, baseType){ + this$static.baseType = baseType; +} + +function $setItemType(this$static, itemType){ + this$static.itemType = itemType; +} + +function $setMemberTypes(this$static, memberTypes){ + this$static.memberTypes = memberTypes; +} + +function $setName_3(this$static, name_0){ + this$static.name_0 = name_0; +} + +function $setWhiteSpaceFacet(this$static, whiteSpace){ + this$static.whiteSpace = whiteSpace; +} + +function BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$0, eDataType){ + this.this$01 = this$0; + this.baseType = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE); + this.itemType = UNINITIALIZED_EDATA_TYPE; + this.eDataType = eDataType; +} + +defineClass(1182, 1, {}, BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl); +_.getBaseType = function getBaseType_0(){ + this.baseType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setBaseType(this, $basicGetBaseType(this.this$01, this.eDataType)); + return this.baseType; +} +; +_.getContentKind = function getContentKind_0(){ + return 0; +} +; +_.getItemType = function getItemType_0(){ + this.itemType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setItemType(this, $basicGetItemType(this.this$01, this.eDataType)); + return this.itemType; +} +; +_.getMemberTypes = function getMemberTypes_0(){ + !this.memberTypes && $setMemberTypes(this, $basicGetMemberTypes(this.this$01, this.eDataType)); + return this.memberTypes; +} +; +_.getName = function getName_8(){ + this.name_0 == 'uninitialized' && $setName_3(this, $basicGetName(this.this$01, this.eDataType)); + return this.name_0; +} +; +_.getWhiteSpaceFacet = function getWhiteSpaceFacet_0(){ + this.whiteSpace == -2 && $setWhiteSpaceFacet(this, $basicGetWhiteSpaceFacet(this.this$01, this.eDataType)); + return this.whiteSpace; +} +; +_.name_0 = 'uninitialized'; +_.whiteSpace = -2; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl', 1182); +function $getType_1(this$static, name_0){ + var conflictingEClassifier, eClassifier, eClassifierName, eClassifiers, i, i0, nameToClassifierMap, originalMapSize, result, size_0; + result = null; + !!this$static.nameToClassifierMap && (result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 142)); + if (!result) { + eClassifiers = this$static.ePackage.getEClassifiers(); + size_0 = eClassifiers.size_0; + if (!this$static.nameToClassifierMap || $size_2(this$static.nameToClassifierMap) != size_0) { + nameToClassifierMap = new HashMap; + !!this$static.nameToClassifierMap && $putAll(nameToClassifierMap, this$static.nameToClassifierMap); + originalMapSize = nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0; + for (i0 = originalMapSize; i0 < size_0; ++i0) { + eClassifier = castTo($get_20(eClassifiers, i0), 142); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 142); + !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); + } + if (nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0 != size_0) { + for (i = 0; i < originalMapSize; ++i) { + eClassifier = castTo($get_20(eClassifiers, i), 142); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 142); + !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); + } + } + this$static.nameToClassifierMap = nameToClassifierMap; + } + result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 142); + } + return result; +} + +function $isQualified(this$static){ + var eAnnotation; + this$static.isInitialized || $setQualified(this$static, (eAnnotation = $getAnnotation(this$static.this$01, this$static.ePackage) , !eAnnotation || !$equals_5('false', $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'qualified')))); + return this$static.isQualified; +} + +function $setQualified(this$static, isQualified){ + this$static.isQualified = isQualified; + this$static.isInitialized = true; +} + +function BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$0, ePackage){ + this.this$01 = this$0; + this.ePackage = ePackage; +} + +defineClass(1180, 1, {}, BasicExtendedMetaData$EPackageExtendedMetaDataImpl); +_.isInitialized = false; +_.isQualified = false; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EPackageExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EPackageExtendedMetaDataImpl', 1180); +function $getAffiliation_0(this$static){ + this$static.affiliation == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setAffiliation(this$static, $basicGetAffiliation(this$static.this$01, this$static.eStructuralFeature)); + return this$static.affiliation; +} + +function $getFeatureKind(this$static){ + this$static.featureKind == -2 && $setFeatureKind(this$static, $basicGetFeatureKind(this$static.this$01, this$static.eStructuralFeature)); + return this$static.featureKind; +} + +function $getGroup(this$static){ + this$static.group_0 == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setGroup(this$static, $basicGetGroup(this$static.this$01, this$static.eStructuralFeature)); + return this$static.group_0; +} + +function $getName_0(this$static){ + this$static.name_0 == 'uninitialized' && $setName_4(this$static, $basicGetName_0(this$static.this$01, this$static.eStructuralFeature)); + return this$static.name_0; +} + +function $getNamespace_0(this$static){ + this$static.namespace == 'uninitialized' && $setNamespace(this$static, $basicGetNamespace(this$static.this$01, this$static.eStructuralFeature)); + return this$static.namespace; +} + +function $getWildcards(this$static){ + !this$static.wildcards && $setWildcards(this$static, $basicGetWildcards(this$static.this$01, this$static.eStructuralFeature)); + return this$static.wildcards; +} + +function $setAffiliation(this$static, affiliation){ + this$static.affiliation = affiliation; +} + +function $setFeatureKind(this$static, kind){ + this$static.featureKind = kind; +} + +function $setGroup(this$static, group){ + this$static.group_0 = group; +} + +function $setName_4(this$static, name_0){ + this$static.name_0 = name_0; +} + +function $setNamespace(this$static, namespace){ + this$static.namespace = namespace; +} + +function $setWildcards(this$static, wildcards){ + this$static.wildcards = wildcards; +} + +function BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$0, eStructuralFeature){ + this.this$01 = this$0; + this.group_0 = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE); + this.affiliation = UNINITIALIZED_ESTRUCTURAL_FEATURE; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1183, 1, {}, BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl); +_.featureKind = -2; +_.name_0 = 'uninitialized'; +_.namespace = 'uninitialized'; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl', 1183); +function EDataTypeEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(593, 632, $intern_157, EDataTypeEList); +_.getFeatureID_0 = function getFeatureID_13(){ + return this.featureID; +} +; +_.isEObject = function isEObject_4(){ + return false; +} +; +_.resolve = function resolve_8(index_0, object){ + return object; +} +; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_util_EDataTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList', 593); +var Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap'); +function $add_31(this$static, index_0, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique()) { + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + $add_20(this$static, index_0, object); +} + +function $add_32(this$static, feature, index_0, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0)) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + $add_20(this$static, $entryIndex(this$static, feature, index_0), isFeatureMap?castTo(object, 76):createEntry_5(feature, object)); +} + +function $add_33(this$static, feature, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0)) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (isFeatureMap?equals_Ljava_lang_Object__Z__devirtual$(entry, object):object == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return false; + } + else { + castTo($set_10(this$static, i, isFeatureMap?castTo(object, 76):createEntry_5(feature, object)), 76); + return true; + } + } + } + } + return $add_21(this$static, isFeatureMap?castTo(object, 76):createEntry_5(feature, object)); +} + +function $add_34(this$static, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique() && $contains_12(this$static, entryFeature, entry.getValue())) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry)) { + return false; + } + else { + castTo($set_10(this$static, i, object), 76); + return true; + } + } + } + } + return $add_21(this$static, object); +} + +function $addAll_12(this$static, feature, index_0, collection){ + var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; + if (collection.size_1() == 0) { + return false; + } + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()); + entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$contains_13(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0)) { + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else if (!isFeatureMap) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + if (collection.size_1() > 1) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + if (!isFeatureMap) { + entry = createEntry_5(feature, collection.iterator_0().next_1()); + entryCollection.add_2(entry); + } + } + return $addAll_8(this$static, $entryIndex(this$static, feature, index_0), entryCollection); +} + +function $addAll_13(this$static, feature, collection){ + var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; + if (collection.size_1() == 0) { + return false; + } + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()); + entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$contains_13(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0)) { + entry = createEntry_5(feature, object); + entryCollection.contains(entry) || entryCollection.add_2(entry); + } + } + } + else if (!isFeatureMap) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else { + if (collection.size_1() > 1) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (collection.contains(isFeatureMap?entry:entry.getValue())) { + return false; + } + else { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + castTo($set_10(this$static, i, isFeatureMap?castTo(object, 76):createEntry_5(feature, object)), 76); + } + return true; + } + } + } + if (!isFeatureMap) { + entry = createEntry_5(feature, collection.iterator_0().next_1()); + entryCollection.add_2(entry); + } + } + return $addAll_9(this$static, entryCollection); +} + +function $addUnique_11(this$static, feature, index_0, object){ + var prototype_0; + this$static.modCount = -1; + $addUnique_5(this$static, $entryIndex(this$static, feature, index_0), ($clinit_FeatureMapUtil() , prototype_0 = castTo(feature, 69).getFeatureMapEntryPrototype() , prototype_0.createEntry(object))); +} + +function $addUnique_12(this$static, entry){ + var index_0, notification, notifications, oldIsSet; + this$static.modCount = -1; + if ($eNotificationRequired(this$static.owner)) { + index_0 = this$static.size_0; + oldIsSet = this$static.size_0 != 0; + $addUnique_0(this$static, entry); + notification = new ENotificationImpl_3(this$static.owner, 3, this$static.featureID, null, entry, index_0, oldIsSet); + notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); + notifications = $shadowAdd_1(this$static, entry, notifications); + if (!notifications) { + $eNotify(this$static.owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + $addUnique_0(this$static, entry); + notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); + !!notifications && notifications.dispatch_0(); + } +} + +function $addUnique_13(this$static, object){ + ++this$static.modCount; + $validate_3(this$static, this$static.size_0, object); + $addUnique_12(this$static, castTo(object, 343)); +} + +function $basicAdd_2(this$static, feature, object, notifications){ + var entries, entry, entry0, i, notification, oldIsSet; + if (object == null) { + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry0 = entries[i]; + if (entry0.getEStructuralFeature() == feature) { + return $basicRemove_0(this$static, entry0, notifications); + } + } + } + entry = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?castTo(object, 76):createEntry_5(feature, object)); + if ($eNotificationRequired(this$static.owner)) { + oldIsSet = !$isEmpty_1(this$static, feature); + notifications = $basicAdd_0(this$static, entry, notifications); + notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, object, $indexOf_8(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0), oldIsSet):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), object, -1, oldIsSet); + notifications?notifications.add_5(notification):(notifications = notification); + } + else { + notifications = $basicAdd_0(this$static, entry, notifications); + } + return notifications; +} + +function $basicIterator(this$static, feature){ + return new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $basicListIterator_0(this$static, feature){ + return new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $basicListIterator_1(this$static, feature, index_0){ + var i, result; + result = new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_15(result); + } + return result; +} + +function $basicRemove_2(this$static, object, notifications){ + var entries, entry, feature, i, match_0, notification; + if (instanceOf(object, 76)) { + return $basicRemove_0(this$static, object, notifications); + } + else { + match_0 = null; + feature = null; + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + feature = entry.getEStructuralFeature(); + if (instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_138) != 0) { + match_0 = entry; + break; + } + } + } + if (match_0) { + if ($eNotificationRequired(this$static.owner)) { + notification = feature.isMany()?$createNotification_0(this$static, 4, feature, object, null, $indexOf_8(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + notifications = $basicRemove_2(this$static, match_0, notifications); + } + return notifications; + } +} + +function $basicRemove_3(this$static, feature, object, notifications){ + var count, entries, entry, i, match_0, notification, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + entries = castTo(this$static.data_0, 124); + match_0 = null; + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + match_0 = entry; + break; + } + ++count; + } + } + } + else if (object != null) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + match_0 = entry; + break; + } + ++count; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + match_0 = entry; + break; + } + ++count; + } + } + } + if (match_0) { + if ($eNotificationRequired(this$static.owner)) { + notification = feature.isMany()?new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 4, feature, object, null, count, true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + notifications = $basicRemove_2(this$static, match_0, notifications); + } + return notifications; +} + +function $clear_15(this$static, feature){ + var entries, entry, entryCollection, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entryCollection = new BasicEList; + entries = castTo(this$static.data_0, 124); + for (i = this$static.size_0; --i >= 0;) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(entryCollection, entry); + } + !$removeAll_4(this$static, entryCollection) && $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, feature.isMany()?$createNotification_0(this$static, 6, feature, ($clinit_Collections() , EMPTY_LIST), null, -1, false):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, null, null, -1, false)); +} + +function $contains_12(this$static, feature, object){ + return $contains_13(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0); +} + +function $contains_13(this$static, feature, object, resolve){ + var entries, entry, i, i0, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + return true; + } + } + } + else if (object != null) { + for (i0 = 0; i0 < this$static.size_0; ++i0) { + entry = entries[i0]; + if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return true; + } + } + if (resolve) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 58)))) { + return true; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && entry.getValue() == null) { + return false; + } + } + } + return false; +} + +function $containsAll_1(this$static, feature, collection){ + var i; + for (i = collection.iterator_0(); i.hasNext_0();) { + if (!$contains_12(this$static, feature, i.next_1())) { + return false; + } + } + return true; +} + +function $createNotification_0(this$static, eventType, feature, oldObject, newObject, index_0, wasSet){ + return new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, eventType, feature, oldObject, newObject, index_0, wasSet); +} + +function $entryIndex(this$static, feature, index_0){ + var count, entries, entry, i, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + result = this$static.size_0; + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (index_0 == count) { + return i; + } + ++count; + result = i + 1; + } + } + if (index_0 == count) { + return result; + } + else { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } +} + +function $get_23(this$static, feature, index_0, resolve){ + var count, entries, entry, i, validator, value_0; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + if (isMany_1(this$static.owner, feature)) { + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } + else { + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + return feature.getDefaultValue(); + } +} + +function $get_24(this$static, feature, resolve){ + var count, entries, entry, entryFeature, i, result, validator, value_0; + entries = castTo(this$static.data_0, 124); + if (isMany_1(this$static.owner, feature)) { + return $clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + if (validator.isValid(entryFeature)) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + return entry; + } + else if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { + result = new StringBuilder_1(toString_40(entry.getValue())); + while (++i < this$static.size_0) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + (entryFeature == TEXT || entryFeature == CDATA) && $append_11(result, toString_40(entry.getValue())); + } + return createFromString_2(castTo(feature.getEType(), 156), result.string); + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + return feature.getDefaultValue(); + } +} + +function $indexOf_7(this$static, feature, object){ + return $indexOf_8(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0); +} + +function $indexOf_8(this$static, feature, object, resolve){ + var entries, entry, i, i0, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + result = 0; + entries = castTo(this$static.data_0, 124); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + return result; + } + ++result; + } + } + } + else if (object != null) { + for (i0 = 0; i0 < this$static.size_0; ++i0) { + entry = entries[i0]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return result; + } + ++result; + } + } + if (resolve) { + result = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 58)))) { + return result; + } + ++result; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + return result; + } + ++result; + } + } + } + return -1; +} + +function $inverseAdd_2(this$static, entry, notifications){ + return entry.inverseAdd_0(this$static.owner, this$static.featureID, notifications); +} + +function $inverseAdd_3(this$static, object, notifications){ + return $inverseAdd_2(this$static, castTo(object, 343), notifications); +} + +function $inverseRemove_2(this$static, entry, notifications){ + return entry.inverseRemove_0(this$static.owner, this$static.featureID, notifications); +} + +function $inverseRemove_3(this$static, object, notifications){ + return $inverseRemove_2(this$static, castTo(object, 343), notifications); +} + +function $isEmpty_1(this$static, feature){ + var entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + return false; + } + } + return true; +} + +function $iterator_2(this$static, feature){ + return instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $list(this$static, feature){ + return $clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); +} + +function $listIterator_3(this$static, feature){ + return instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $listIterator_4(this$static, feature, index_0){ + var i, result; + result = instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_15(result); + } + return result; +} + +function $move_5(this$static, targetIndex, sourceIndex){ + var count, entries, entry, feature, featureSourceIndex, featureTargetIndex, i, isValid, maxIndex, result, sourceEntry, validator; + if ($eNotificationRequired(this$static.owner)) { + if (targetIndex != sourceIndex) { + entries = castTo(this$static.data_0, 124); + sourceEntry = entries[sourceIndex]; + feature = sourceEntry.getEStructuralFeature(); + if (isMany_1(this$static.owner, feature)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + featureTargetIndex = -1; + featureSourceIndex = -1; + count = 0; + for (i = 0 , maxIndex = targetIndex > sourceIndex?targetIndex:sourceIndex; i <= maxIndex; ++i) { + if (i == sourceIndex) { + featureSourceIndex = count++; + } + else { + entry = entries[i]; + isValid = validator.isValid(entry.getEStructuralFeature()); + i == targetIndex && (featureTargetIndex = i == maxIndex && !isValid?count - 1:count); + isValid && ++count; + } + } + result = castTo($move_1(this$static, targetIndex, sourceIndex), 76); + featureSourceIndex != featureTargetIndex && $dispatchNotification(this$static, new ENotificationImpl_18(this$static.owner, 7, feature, valueOf_3(featureSourceIndex), sourceEntry.getValue(), featureTargetIndex)); + return result; + } + } + } + else { + return castTo($move(this$static, targetIndex, sourceIndex), 76); + } + return castTo($move_1(this$static, targetIndex, sourceIndex), 76); +} + +function $move_6(this$static, feature, targetIndex, sourceIndex){ + var count, entries, entry, entrySourceIndex, entryTargetIndex, i, result, validator; + if (isMany_1(this$static.owner, feature)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + result = null; + entryTargetIndex = -1; + entrySourceIndex = -1; + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + count == targetIndex && (entryTargetIndex = i); + if (count == sourceIndex) { + entrySourceIndex = i; + result = entry.getValue(); + } + ++count; + } + } + if (entryTargetIndex == -1) { + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + count)); + } + if (entrySourceIndex == -1) { + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + count)); + } + $move_1(this$static, entryTargetIndex, entrySourceIndex); + $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, $createNotification_0(this$static, 7, feature, valueOf_3(sourceIndex), result, targetIndex, true)); + return result; + } + else { + throw toJs(new IllegalArgumentException_0('The feature must be many-valued to support move')); + } +} + +function $move_7(this$static, feature, index_0, object){ + $move_6(this$static, feature, index_0, $indexOf_8(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0)); +} + +function $remove_43(this$static, feature, index_0){ + var count, entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + $remove_35(this$static, i); + return $clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?entry:entry.getValue(); + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); +} + +function $remove_44(this$static, feature, object){ + var entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + $remove_35(this$static, i); + return true; + } + } + } + } + else if (object != null) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + $remove_35(this$static, i); + return true; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + $remove_35(this$static, i); + return true; + } + } + } + } + return false; +} + +function $resolve_2(this$static, index_0, entry){ + var affiliatedFeature, affliatedEntry, entries, feature, featureIndex, i, inverseFeatureID, newEntry, notifications, object, opposite, reference, resolved, validator; + feature = entry.getEStructuralFeature(); + if (instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0) { + object = castTo(entry.getValue(), 54); + resolved = $eResolveProxy(this$static.owner, object); + if (resolved != object) { + newEntry = createEntry_5(feature, resolved); + $assign(this$static, index_0, $validate_3(this$static, index_0, newEntry)); + notifications = null; + if ($eNotificationRequired(this$static.owner)) { + affiliatedFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.owner.eClass_0(), feature); + if (affiliatedFeature != $getEStructuralFeature(this$static.owner.eClass_0(), this$static.featureID)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + featureIndex = 0; + entries = castTo(this$static.data_0, 124); + for (i = 0; i < index_0; ++i) { + affliatedEntry = entries[i]; + validator.isValid(affliatedEntry.getEStructuralFeature()) && ++featureIndex; + } + notifications = new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 9, affiliatedFeature, object, resolved, featureIndex, false); + notifications.add_5(new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, entry, newEntry, index_0, false)); + } + } + reference = castTo(feature, 19); + opposite = $getEOpposite(reference); + if (opposite) { + notifications = object.eInverseRemove(this$static.owner, $getFeatureID(object.eClass_0(), opposite), null, notifications); + notifications = castTo(resolved, 54).eInverseAdd(this$static.owner, $getFeatureID(resolved.eClass_0(), opposite), null, notifications); + } + else if ((reference.eFlags & $intern_138) != 0) { + inverseFeatureID = -1 - $getFeatureID(this$static.owner.eClass_0(), reference); + notifications = object.eInverseRemove(this$static.owner, inverseFeatureID, null, null); + !castTo(resolved, 54).eInternalContainer() && (notifications = castTo(resolved, 54).eInverseAdd(this$static.owner, inverseFeatureID, null, notifications)); + } + !!notifications && notifications.dispatch_0(); + return newEntry; + } + } + return entry; +} + +function $resolveProxy_0(this$static, eObject){ + return $eResolveProxy(this$static.owner, castTo(eObject, 54)); +} + +function $resolveProxy_1(this$static, feature, entryIndex, index_0, object){ + var entry, notifications, oldObject, resolved; + resolved = $resolveProxy_0(this$static, castTo(object, 58)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + oldObject = castTo(this$static.data_0[entryIndex], 76); + entry = createEntry_5(feature, resolved); + $assign(this$static, entryIndex, $validate_3(this$static, entryIndex, entry)); + if ($eNotificationRequired(this$static.owner)) { + notifications = $createNotification_0(this$static, 9, entry.getEStructuralFeature(), object, resolved, index_0, false); + $add_22(notifications, new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, oldObject, entry, index_0, false)); + $dispatch(notifications); + } + return resolved; + } + return object; +} + +function $set_15(this$static, index_0, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique()) { + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature()) && i != index_0) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + return castTo($set_10(this$static, index_0, object), 76); +} + +function $set_16(this$static, newValue){ + $set_14(this$static, instanceOf(newValue, 160)?newValue:castTo(newValue, 2036).featureMap_0()); +} + +function $set_17(this$static, feature, index_0, object){ + var count, currentIndex, entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + currentIndex = $indexOf_8(this$static, feature, object, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0); + if (currentIndex >= 0 && currentIndex != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + return castTo($set_10(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?castTo(object, 76):createEntry_5(feature, object))), 76); + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + return $clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?entry:entry.getValue(); + } + } + return null; + } +} + +function $set_18(this$static, feature, object){ + var entries, entry, entryFeature, i, index_0, list, shouldUnset, validator; + if (isMany_1(this$static.owner, feature)) { + list = ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)); + $clear_15(list.featureMap, list.feature); + $addAll_14(list, castTo(object, 16)); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + if (validator.isValid(entryFeature)) { + if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { + shouldUnset = $shouldUnset(this$static, feature, object); + index_0 = i; + shouldUnset?$remove_35(this$static, i):++i; + while (i < this$static.size_0) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + entryFeature == TEXT || entryFeature == CDATA?$remove_35(this$static, i):++i; + } + shouldUnset || castTo($set_10(this$static, index_0, createEntry_5(feature, object)), 76); + } + else + $shouldUnset(this$static, feature, object)?$remove_35(this$static, i):castTo($set_10(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?castTo(object, 76):createEntry_5(feature, object))), 76); + return; + } + } + $shouldUnset(this$static, feature, object) || $add_21(this$static, ($clinit_FeatureMapUtil() , castTo(feature, 69).isFeatureMap_0()?castTo(object, 76):createEntry_5(feature, object))); + } +} + +function $setting(this$static, feature){ + return isMany_1(this$static.owner, feature)?($clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)):new FeatureMapUtil$FeatureValue(feature, this$static); +} + +function $shadowAdd_1(this$static, entry, notifications){ + var feature, notification, value_0; + feature = entry.getEStructuralFeature(); + value_0 = entry.getValue(); + notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, value_0, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0), true):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), value_0, -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + return notifications; +} + +function $shadowAdd_2(this$static, object, notifications){ + return $shadowAdd_1(this$static, castTo(object, 343), notifications); +} + +function $shadowRemove_1(this$static, entry, notifications){ + var feature, notification, value_0; + feature = entry.getEStructuralFeature(); + value_0 = entry.getValue(); + notification = feature.isMany()?$createNotification_0(this$static, 4, feature, value_0, null, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, value_0, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + return notifications; +} + +function $shadowRemove_2(this$static, object, notifications){ + return $shadowRemove_1(this$static, castTo(object, 343), notifications); +} + +function $shadowSet_1(this$static, oldObject, newObject, notifications){ + var feature, newValue, notification, oldValue; + if ($eNotificationRequired(this$static.owner)) { + feature = oldObject.getEStructuralFeature(); + oldValue = oldObject.getValue(); + newValue = newObject.getValue(); + notification = $createNotification_0(this$static, 1, feature, oldValue, newValue, feature.isMany()?$indexOf_8(this$static, feature, newValue, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0):-1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + return notifications; +} + +function $shouldUnset(this$static, feature, value_0){ + var defaultValue; + if (feature.isUnsettable()) { + return false; + } + else if (feature.getUpperBound() != -2) { + defaultValue = feature.getDefaultValue(); + return defaultValue == null?value_0 == null:equals_Ljava_lang_Object__Z__devirtual$(defaultValue, value_0); + } + else + return feature.getEContainingClass() == this$static.owner.eClass_0() && value_0 == null; +} + +function $size_3(this$static, feature){ + var entries, entry, i, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + result = 0; + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && ++result; + } + return result; +} + +function $toArray_11(this$static, feature){ + return $toArray_12(this$static, feature, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0); +} + +function $toArray_12(this$static, feature, resolve){ + var entries, entry, i, result, validator, value_0; + result = new BasicEList; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + value_0 = entry.getValue(); + $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); + } + } + } + return $toArray_8(result); +} + +function $toArray_13(this$static, feature, array){ + return $toArray_14(this$static, feature, array, instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_64) != 0); +} + +function $toArray_14(this$static, feature, array, resolve){ + var entries, entry, i, result, validator, value_0; + result = new BasicEList; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 124); + $clinit_FeatureMapUtil(); + if (castTo(feature, 69).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + value_0 = entry.getValue(); + $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); + } + } + } + return $toArray_9(result, array); +} + +function $unset(this$static, feature){ + var entries, entry, i, removals, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + removals = null; + entries = castTo(this$static.data_0, 124); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + !removals && (removals = new BasicEList); + $add_21(removals, entry); + } + } + !!removals && $removeAll_4(this$static, removals); +} + +function $validate_3(this$static, index_0, object){ + var eStructuralFeature, result; + if (this$static.modCount == 0) + return object; + result = castTo($validate_0(this$static, index_0, object), 76); + eStructuralFeature = object.getEStructuralFeature(); + if (!eStructuralFeature.isChangeable() || !this$static.featureMapValidator.isValid(eStructuralFeature)) { + throw toJs(new RuntimeException_0("Invalid entry feature '" + eStructuralFeature.getEContainingClass().name_0 + '.' + eStructuralFeature.getName() + "'")); + } + return result; +} + +function BasicFeatureMap(owner, featureID){ + EDataTypeEList.call(this, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, owner, featureID); + this.wrapper = this; + this.featureMapValidator = getValidator(owner.eClass_0(), $getEStructuralFeature(this.owner.eClass_0(), this.featureID)); +} + +defineClass(78, 593, {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1, 79:1, 160:1, 220:1, 2036:1, 71:1, 97:1}, BasicFeatureMap); +_.add_3 = function add_66(index_0, object){ + $add_31(this, index_0, castTo(object, 76)); +} +; +_.add_2 = function add_67(object){ + return $add_34(this, castTo(object, 76)); +} +; +_.addUnique_0 = function addUnique_19(object){ + $addUnique_13(this, castTo(object, 76)); +} +; +_.inverseAdd = function inverseAdd_9(object, notifications){ + return $inverseAdd_3(this, castTo(object, 76), notifications); +} +; +_.inverseRemove = function inverseRemove_9(object, notifications){ + return $inverseRemove_3(this, castTo(object, 76), notifications); +} +; +_.move = function move_20(targetIndex, sourceIndex){ + return $move_5(this, targetIndex, sourceIndex); +} +; +_.resolve = function resolve_9(index_0, entry){ + return $resolve_2(this, index_0, castTo(entry, 76)); +} +; +_.set_2 = function set_37(index_0, object){ + return $set_15(this, index_0, castTo(object, 76)); +} +; +_.shadowAdd = function shadowAdd_2(object, notifications){ + return $shadowAdd_2(this, castTo(object, 76), notifications); +} +; +_.shadowRemove = function shadowRemove_2(object, notifications){ + return $shadowRemove_2(this, castTo(object, 76), notifications); +} +; +_.shadowSet = function shadowSet_2(oldObject, newObject, notifications){ + return $shadowSet_1(this, castTo(oldObject, 76), castTo(newObject, 76), notifications); +} +; +_.validate = function validate_7(index_0, object){ + return $validate_3(this, index_0, castTo(object, 76)); +} +; +_.add_6 = function add_68(feature, object){ + return $add_33(this, feature, object); +} +; +_.addAll_0 = function addAll_35(index_0, collection){ + var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; + uniqueCollection = new BasicEList_0(collection.size_1()); + for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 76); + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this.owner, entryFeature)) { + (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); + } + else { + validator = getValidator(this.owner.eClass_0(), entryFeature); + entries = castTo(this.data_0, 124); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_10(this, j, entry), 76); + include = false; + break; + } + } + include && $add_21(uniqueCollection, entry); + } + } + return $addAll_8(this, index_0, uniqueCollection); +} +; +_.addAll = function addAll_36(collection){ + var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; + uniqueCollection = new BasicEList_0(collection.size_1()); + for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 76); + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this.owner, entryFeature)) { + (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); + } + else { + validator = getValidator(this.owner.eClass_0(), entryFeature); + entries = castTo(this.data_0, 124); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_10(this, j, entry), 76); + include = false; + break; + } + } + include && $add_21(uniqueCollection, entry); + } + } + return $addAll_9(this, uniqueCollection); +} +; +_.addAllUnique_0 = function addAllUnique_15(collection){ + this.modCount = -1; + return $addAllUnique_3(this, this.size_0, collection); +} +; +_.basicAdd_0 = function basicAdd_4(feature, object, notifications){ + return $basicAdd_2(this, feature, object, notifications); +} +; +_.basicRemove = function basicRemove_4(object, notifications){ + return $basicRemove_2(this, object, notifications); +} +; +_.basicRemove_0 = function basicRemove_5(feature, object, notifications){ + return $basicRemove_3(this, feature, object, notifications); +} +; +_.featureMap_0 = function featureMap_0(){ + return this; +} +; +_.get_7 = function get_69(feature, resolve){ + return $get_24(this, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_2(index_0){ + return castTo($get_20(this, index_0), 76).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_19(index_0){ + return castTo($get_20(this, index_0), 76).getValue(); +} +; +_.getWrapper = function getWrapper(){ + return this.wrapper; +} +; +_.hasInverse = function hasInverse_11(){ + return true; +} +; +_.hasShadow = function hasShadow_2(){ + return true; +} +; +_.isSet_1 = function isSet_13(feature){ + return !$isEmpty_1(this, feature); +} +; +_.newData = function newData_14(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, $intern_166, 343, capacity, 0, 1); +} +; +_.resolveProxy = function resolveProxy_0(eObject){ + return $resolveProxy_0(this, eObject); +} +; +_.set_1 = function set_38(newValue){ + $set_16(this, newValue); +} +; +_.set_3 = function set_39(feature, object){ + $set_18(this, feature, object); +} +; +_.setting = function setting_0(feature){ + return $setting(this, feature); +} +; +_.unset_0 = function unset_9(feature){ + $unset(this, feature); +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap', 78); +function $checkModCount(this$static){ + if (this$static.featureMap.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function $hasNext_8(this$static){ + switch (this$static.prepared) { + case 2: + { + return true; + } + + case 1: + { + return false; + } + + case -1: + { + ++this$static.entryCursor; + } + + default:{ + return this$static.scanNext(); + } + + } +} + +function $hasPrevious(this$static){ + switch (this$static.prepared) { + case -2: + { + return true; + } + + case -1: + { + return false; + } + + case 1: + { + --this$static.entryCursor; + } + + default:{ + return this$static.scanPrevious(); + } + + } +} + +function $next_15(this$static){ + var newPreparedResult; + if ($hasNext_8(this$static)) { + $checkModCount(this$static); + if (this$static.resolve_0()) { + newPreparedResult = $resolveProxy_1(this$static.featureMap, this$static.eStructuralFeature, this$static.entryCursor, this$static.cursor, this$static.preparedResult); + this$static.preparedResult = newPreparedResult; + } + this$static.lastCursor = this$static.cursor; + ++this$static.cursor; + ++this$static.entryCursor; + this$static.prepared = 0; + return this$static.preparedResult; + } + else { + throw toJs(new NoSuchElementException); + } +} + +defineClass(1960, 1, $intern_14); +_.forEachRemaining = function forEachRemaining_59(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_69(o){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $add_32(this.featureMap, this.eStructuralFeature, this.cursor, o); + this.expectedModCount = this.featureMap.modCount; + $next_15(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.hasNext_0 = function hasNext_49(){ + return $hasNext_8(this); +} +; +_.hasPrevious = function hasPrevious_10(){ + return $hasPrevious(this); +} +; +_.next_1 = function next_49(){ + return $next_15(this); +} +; +_.nextIndex_0 = function nextIndex_11(){ + return this.cursor; +} +; +_.previous_0 = function previous_11(){ + var newPreparedResult; + if ($hasPrevious(this)) { + $checkModCount(this); + this.lastCursor = --this.cursor; + if (this.resolve_0()) { + newPreparedResult = $resolveProxy_1(this.featureMap, this.eStructuralFeature, this.entryCursor, this.cursor, this.preparedResult); + this.preparedResult = newPreparedResult; + } + this.prepared = 0; + return this.preparedResult; + } + else { + throw toJs(new NoSuchElementException); + } +} +; +_.previousIndex = function previousIndex_10(){ + return this.cursor - 1; +} +; +_.remove = function remove_129(){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $remove_43(this.featureMap, this.eStructuralFeature, this.lastCursor); + this.expectedModCount = this.featureMap.modCount; + if (this.lastCursor < this.cursor) { + --this.cursor; + --this.entryCursor; + } + --this.lastCursor; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.resolve_0 = function resolve_10(){ + return false; +} +; +_.set_1 = function set_40(o){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $set_17(this.featureMap, this.eStructuralFeature, this.lastCursor, o); + this.expectedModCount = this.featureMap.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 77)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.cursor = 0; +_.entryCursor = 0; +_.expectedModCount = 0; +_.isFeatureMap = false; +_.lastCursor = 0; +_.prepared = 0; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicFeatureEIterator', 1960); +function BasicFeatureMap$FeatureEIterator(eStructuralFeature, featureMap){ + this.eStructuralFeature = eStructuralFeature; + this.featureMap = featureMap; + this.expectedModCount = featureMap.modCount; + this.isFeatureMap = ($clinit_FeatureMapUtil() , castTo(eStructuralFeature, 69).isFeatureMap_0()); + this.validator = getValidator(featureMap.owner.eClass_0(), eStructuralFeature); +} + +defineClass(420, 1960, $intern_14, BasicFeatureMap$FeatureEIterator); +_.scanNext = function scanNext(){ + var entries, entry, size_0; + size_0 = this.featureMap.size_0; + entries = castTo(this.featureMap.data_0, 124); + while (this.entryCursor < size_0) { + entry = entries[this.entryCursor]; + if (this.validator.isValid(entry.getEStructuralFeature())) { + this.preparedResult = this.isFeatureMap?entry:entry.getValue(); + this.prepared = 2; + return true; + } + ++this.entryCursor; + } + this.prepared = 1; + this.lastCursor = -1; + return false; +} +; +_.scanPrevious = function scanPrevious(){ + var entries, entry; + entries = castTo(this.featureMap.data_0, 124); + while (--this.entryCursor >= 0) { + entry = entries[this.entryCursor]; + if (this.validator.isValid(entry.getEStructuralFeature())) { + this.preparedResult = this.isFeatureMap?entry:entry.getValue(); + this.prepared = -2; + return true; + } + } + this.prepared = -1; + this.lastCursor = -1; + return false; +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$FeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/FeatureEIterator', 420); +function BasicFeatureMap$ResolvingFeatureEIterator(eStructuralFeature, featureMap){ + BasicFeatureMap$FeatureEIterator.call(this, eStructuralFeature, featureMap); +} + +defineClass(676, 420, $intern_14, BasicFeatureMap$ResolvingFeatureEIterator); +_.resolve_0 = function resolve_11(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$ResolvingFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/ResolvingFeatureEIterator', 676); +function EContentsEList$1(){ + EContentsEList.call(this, null, null); +} + +defineClass(968, 496, $intern_160, EContentsEList$1); +_.basicList = function basicList_3(){ + return this; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/1', 968); +function EContentsEList$2($anonymous0, $anonymous1){ + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(969, 496, $intern_160, EContentsEList$2); +_.resolve_0 = function resolve_12(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$2_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/2', 969); +function EContentsEList$FeatureIteratorImpl$1(){ + EContentsEList$FeatureIteratorImpl.call(this, null, null); +} + +defineClass(967, 287, $intern_161, EContentsEList$FeatureIteratorImpl$1); +_.filter_0 = function filter_4(featureFilter){ +} +; +_.hasNext_0 = function hasNext_50(){ + return false; +} +; +_.hasPrevious = function hasPrevious_11(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl/1', 967); +function EDataTypeEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(840, 593, $intern_157, EDataTypeEList$Unsettable); +_.didChange = function didChange_2(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_14(){ + return this.isSet; +} +; +_.unset = function unset_10(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EDataTypeEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList/Unsettable', 840); +function EDataTypeUniqueEList(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(1958, 593, $intern_157, EDataTypeUniqueEList); +_.isUnique = function isUnique_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList', 1958); +function EDataTypeUniqueEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1959, 840, $intern_157, EDataTypeUniqueEList$Unsettable); +_.isUnique = function isUnique_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList/Unsettable', 1959); +function EObjectContainmentEList$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(147, 83, $intern_157, EObjectContainmentEList$Resolving); +_.hasProxies = function hasProxies_4(){ + return true; +} +; +_.resolve = function resolve_13(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Resolving', 147); +function EObjectContainmentEList$Unsettable$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1184, 555, $intern_157, EObjectContainmentEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_5(){ + return true; +} +; +_.resolve = function resolve_14(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable/Resolving', 1184); +function EObjectContainmentWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(766, 14, $intern_157, EObjectContainmentWithInverseEList$Unsettable); +_.didChange = function didChange_3(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_15(){ + return this.isSet; +} +; +_.unset = function unset_11(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable', 766); +function EObjectContainmentWithInverseEList$Unsettable$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1222, 766, $intern_157, EObjectContainmentWithInverseEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_6(){ + return true; +} +; +_.resolve = function resolve_15(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable/Resolving', 1222); +function EObjectEList$Unsettable(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(757, 505, $intern_157, EObjectEList$Unsettable); +_.didChange = function didChange_4(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_16(){ + return this.isSet; +} +; +_.unset = function unset_12(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList/Unsettable', 757); +function EObjectResolvingEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(338, 505, $intern_157, EObjectResolvingEList); +_.hasProxies = function hasProxies_7(){ + return true; +} +; +_.resolve = function resolve_16(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList', 338); +function EObjectResolvingEList$Unsettable(dataClass, owner, featureID){ + EObjectEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1844, 757, $intern_157, EObjectResolvingEList$Unsettable); +_.hasProxies = function hasProxies_8(){ + return true; +} +; +_.resolve = function resolve_17(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList/Unsettable', 1844); +function $clinit_EObjectValidator(){ + $clinit_EObjectValidator = emptyMethod; + INSTANCE_9 = new EObjectValidator; +} + +function EObjectValidator(){ +} + +defineClass(1527, 1, {}, EObjectValidator); +var INSTANCE_9; +var Lorg_eclipse_emf_ecore_util_EObjectValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectValidator', 1527); +function EObjectWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(559, 505, $intern_157, EObjectWithInverseEList); +_.getInverseFeatureClass = function getInverseFeatureClass_1(){ + return this.dataClass; +} +; +_.getInverseFeatureID = function getInverseFeatureID_1(){ + return this.inverseFeatureID; +} +; +_.hasInverse = function hasInverse_12(){ + return true; +} +; +_.hasNavigableInverse = function hasNavigableInverse_5(){ + return true; +} +; +_.inverseFeatureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList', 559); +function EObjectWithInverseEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1225, 559, $intern_157, EObjectWithInverseEList$ManyInverse); +_.hasManyInverse = function hasManyInverse_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/ManyInverse', 1225); +function EObjectWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(635, 559, $intern_157, EObjectWithInverseEList$Unsettable); +_.didChange = function didChange_5(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_17(){ + return this.isSet; +} +; +_.unset = function unset_13(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable', 635); +function EObjectWithInverseEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1224, 635, $intern_157, EObjectWithInverseEList$Unsettable$ManyInverse); +_.hasManyInverse = function hasManyInverse_4(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable/ManyInverse', 1224); +function EObjectWithInverseResolvingEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(767, 559, $intern_157, EObjectWithInverseResolvingEList); +_.hasProxies = function hasProxies_9(){ + return true; +} +; +_.resolve = function resolve_18(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList', 767); +function EObjectWithInverseResolvingEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(32, 767, $intern_157, EObjectWithInverseResolvingEList$ManyInverse); +_.hasManyInverse = function hasManyInverse_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/ManyInverse', 32); +function EObjectWithInverseResolvingEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(768, 635, $intern_157, EObjectWithInverseResolvingEList$Unsettable); +_.hasProxies = function hasProxies_10(){ + return true; +} +; +_.resolve = function resolve_19(index_0, object){ + return $resolve(this, index_0, castTo(object, 58)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable', 768); +function EObjectWithInverseResolvingEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1223, 768, $intern_157, EObjectWithInverseResolvingEList$Unsettable$ManyInverse); +_.hasManyInverse = function hasManyInverse_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable/ManyInverse', 1223); +function kind_0(eStructuralFeature){ + var eClassifier, eReference, instanceClass, inverseEReference, result, upper; + result = 0; + eClassifier = $getEType(eStructuralFeature); + !!eClassifier.getInstanceClass() && (result |= 4); + (eStructuralFeature.eFlags & $intern_152) != 0 && (result |= 2); + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + inverseEReference = $getEOpposite(eReference); + (eReference.eFlags & $intern_138) != 0 && (result |= 32); + if (inverseEReference) { + $getFeatureCount($getEContainingClass(inverseEReference)); + result |= 8; + upper = inverseEReference.upperBound; + (upper > 1 || upper == -1) && (result |= 16); + (inverseEReference.eFlags & $intern_138) != 0 && (result |= 64); + } + (eReference.eFlags & $intern_64) != 0 && (result |= $intern_153); + result |= $intern_35; + } + else { + if (instanceOf(eClassifier, 469)) { + result |= 512; + } + else { + instanceClass = eClassifier.getInstanceClass(); + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (result |= 256); + } + } + (eStructuralFeature.eFlags & 512) != 0 && (result |= 128); + return result; +} + +defineClass(1185, 632, $intern_157); +_.canContainNull = function canContainNull_6(){ + return (this.kind & 1792) == 0; +} +; +_.didChange = function didChange_6(){ + this.kind |= 1; +} +; +_.hasInstanceClass = function hasInstanceClass_3(){ + return (this.kind & 4) != 0; +} +; +_.hasInverse = function hasInverse_13(){ + return (this.kind & 40) != 0; +} +; +_.hasManyInverse = function hasManyInverse_7(){ + return (this.kind & 16) != 0; +} +; +_.hasNavigableInverse = function hasNavigableInverse_6(){ + return (this.kind & 8) != 0; +} +; +_.hasProxies = function hasProxies_11(){ + return (this.kind & $intern_153) != 0; +} +; +_.isContainment = function isContainment_9(){ + return (this.kind & 32) != 0; +} +; +_.isEObject = function isEObject_5(){ + return (this.kind & $intern_35) != 0; +} +; +_.isInstance = function isInstance_49(object){ + return !this.dataClass?this.getEStructuralFeature().getEType().isInstance(object):isInstance(this.dataClass, object); +} +; +_.isSet_0 = function isSet_18(){ + return (this.kind & 2) != 0?(this.kind & 1) != 0:this.size_0 != 0; +} +; +_.isUnique = function isUnique_10(){ + return (this.kind & 128) != 0; +} +; +_.unset = function unset_14(){ + var oldIsSet; + $clear_13(this); + if ((this.kind & 2) != 0) { + if ($eNotificationRequired(this.owner)) { + oldIsSet = (this.kind & 1) != 0; + this.kind &= -2; + $dispatchNotification(this, new ENotificationImpl_4(this.owner, 2, $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()), oldIsSet, false)); + } + else { + this.kind &= -2; + } + } +} +; +_.useEquals = function useEquals_15(){ + return (this.kind & 1536) == 0; +} +; +_.kind = 0; +var Lorg_eclipse_emf_ecore_util_EcoreEList$Generic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Generic', 1185); +function EcoreEList$Dynamic(kind, dataClass, owner, eStructuralFeature){ + EcoreEList.call(this, dataClass, owner); + this.kind = kind; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1186, 1185, $intern_157, EcoreEList$Dynamic); +_.getEStructuralFeature = function getEStructuralFeature_3(){ + return this.eStructuralFeature; +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$Dynamic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Dynamic', 1186); +function EcoreEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(765, 66, $intern_141, EcoreEMap$1); +_.newData = function newData_15(listCapacity){ + return newInstance_11(this.this$01.entryClass, listCapacity); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/1', 765); +function EcoreEMap$DelegateEObjectContainmentEList(this$0, entryClass, owner, featureID){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, entryClass, owner, featureID); +} + +defineClass(764, 83, $intern_157, EcoreEMap$DelegateEObjectContainmentEList); +_.didAdd = function didAdd_4(index_0, newObject){ + $doPut(this.this$01, castTo(newObject, 136)); +} +; +_.didClear = function didClear_2(size_0, oldObjects){ + $doClear_0(this.this$01); +} +; +_.didMove = function didMove_1(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this.this$01 , castTo(movedObject, 136) , lastArg).modCount; +} +; +_.didRemove = function didRemove_3(index_0, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 136)); +} +; +_.didSet = function didSet_2(index_0, newObject, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 136)); + maskUndefined(oldObject) === maskUndefined(newObject) && castTo(oldObject, 136).setHash($hashOf(castTo(newObject, 136).getKey())); + $doPut(this.this$01, castTo(newObject, 136)); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$DelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/DelegateEObjectContainmentEList', 764); +function EcoreEMap$Unsettable(entryEClass, entryClass, owner, featureID){ + this.initializeDelegateEList(); + this.entryClass = entryClass; + this.entryEClass = entryEClass; + this.delegateEList = null; + this.delegateEList = new EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this, entryClass, owner, featureID); +} + +defineClass(1220, 141, $intern_151, EcoreEMap$Unsettable); +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable', 1220); +function EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this$1, dataClass, owner, featureID){ + EcoreEMap$DelegateEObjectContainmentEList.call(this, this$1, dataClass, owner, featureID); +} + +defineClass(1221, 764, $intern_157, EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList); +_.didChange = function didChange_7(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_19(){ + return this.isSet; +} +; +_.unset = function unset_15(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList', 1221); +function convertToString_2(eDataType, value_0){ + return eDataType.getEPackage().getEFactoryInstance().convertToString(eDataType, value_0); +} + +function createFromString_2(eDataType, literal){ + return eDataType.getEPackage().getEFactoryInstance().createFromString(eDataType, literal); +} + +function getConversionDelegateFactory(eDataType){ + var eDataTypeDelegate, eDataTypeDelegate$iterator; + for (eDataTypeDelegate$iterator = getConversionDelegates($getEPackage(eDataType)).iterator_0(); eDataTypeDelegate$iterator.hasNext_0();) { + eDataTypeDelegate = castToString(eDataTypeDelegate$iterator.next_1()); + if ($getEAnnotation(eDataType, eDataTypeDelegate)) { + return $getFactory(($clinit_EDataType$Internal$ConversionDelegate$Factory$Registry() , INSTANCE_5), eDataTypeDelegate); + } + } + return null; +} + +function getConversionDelegates(ePackage){ + var eAnnotation, eDataTypeDelegate, eDataTypeDelegate$array, eDataTypeDelegate$index, eDataTypeDelegate$max, eDataTypeDelegates, result; + if (ePackage) { + eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); + if (eAnnotation) { + eDataTypeDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'conversionDelegates')); + if (eDataTypeDelegates != null) { + result = new ArrayList; + for (eDataTypeDelegate$array = $split_0(eDataTypeDelegates, '\\w+') , eDataTypeDelegate$index = 0 , eDataTypeDelegate$max = eDataTypeDelegate$array.length; eDataTypeDelegate$index < eDataTypeDelegate$max; ++eDataTypeDelegate$index) { + eDataTypeDelegate = eDataTypeDelegate$array[eDataTypeDelegate$index]; + push_1(result.array, eDataTypeDelegate); + } + return result; + } + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function getRootContainer(eObject){ + var count, parent_0, result; + result = eObject; + if (eObject) { + count = 0; + for (parent_0 = eObject.eContainer_0(); parent_0; parent_0 = parent_0.eContainer_0()) { + if (++count > $intern_67) { + return getRootContainer(parent_0); + } + result = parent_0; + if (parent_0 == eObject) { + throw toJs(new IllegalStateException_0('There is a cycle in the containment hierarchy of ' + eObject)); + } + } + } + return result; +} + +function getSettingDelegateFactory(eStructuralFeature){ + var settingDelegate, settingDelegate$iterator; + for (settingDelegate$iterator = getSettingDelegates($getEPackage($getEContainingClass(eStructuralFeature))).iterator_0(); settingDelegate$iterator.hasNext_0();) { + settingDelegate = castToString(settingDelegate$iterator.next_1()); + if ($getEAnnotation(eStructuralFeature, settingDelegate)) + return $getFactory_0(($clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry() , INSTANCE_7), settingDelegate); + } + return null; +} + +function getSettingDelegates(ePackage){ + var eAnnotation, result, settingDelegate, settingDelegate$array, settingDelegate$index, settingDelegate$max, settingDelegates; + eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); + if (eAnnotation) { + settingDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'settingDelegates')); + if (settingDelegates != null) { + result = new ArrayList; + for (settingDelegate$array = $split_0(settingDelegates, '\\w+') , settingDelegate$index = 0 , settingDelegate$max = settingDelegate$array.length; settingDelegate$index < settingDelegate$max; ++settingDelegate$index) { + settingDelegate = settingDelegate$array[settingDelegate$index]; + push_1(result.array, settingDelegate); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function isAncestor(ancestorEObject, eObject){ + var count, eContainer; + if (eObject) { + if (eObject == ancestorEObject) { + return true; + } + count = 0; + for (eContainer = castTo(eObject, 54).eInternalContainer(); !!eContainer && eContainer != eObject; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_67) { + return isAncestor(ancestorEObject, eContainer); + } + if (eContainer == ancestorEObject) { + return true; + } + } + } + return false; +} + +function resolve_20(proxy){ + var ePackage, proxyURI, resolvedObject, resource; + proxyURI = castTo(proxy, 54).eProxyURI_0(); + if (proxyURI) { + try { + resolvedObject = null; + ePackage = $getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), $toString_26($trimFragment(proxyURI))); + if (ePackage) { + resource = ePackage.eResource_0(); + !!resource && (resolvedObject = resource.getEObject($toString_7(proxyURI.fragment))); + } + if (!!resolvedObject && resolvedObject != proxy) { + return resolve_20(resolvedObject); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 63)) + throw toJs($e0); + } + } + return proxy; +} + +function wrapperClassFor(javaClass){ + return !javaClass?null:(javaClass.modifiers & 1) != 0?javaClass == Z_classLit?Ljava_lang_Boolean_2_classLit:javaClass == I_classLit?Ljava_lang_Integer_2_classLit:javaClass == F_classLit?Ljava_lang_Float_2_classLit:javaClass == D_classLit?Ljava_lang_Double_2_classLit:javaClass == J_classLit?Ljava_lang_Long_2_classLit:javaClass == S_classLit?Ljava_lang_Short_2_classLit:javaClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:javaClass; +} + +function $copy_1(this$static, eObject){ + var copyEObject, eAllStructuralFeaturesData, eClass, eClass0, eReference, eStructuralFeature, i, size_0; + if (!eObject) { + return null; + } + else { + copyEObject = (eClass0 = eObject.eClass_0() , !eClass0?null:$getEPackage(eClass0).getEFactoryInstance().create_3(eClass0)); + if (copyEObject) { + $put_11(this$static, eObject, copyEObject); + eClass = eObject.eClass_0(); + for (i = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { + eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); + if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { + if (instanceOf(eStructuralFeature, 331)) { + $copyAttribute(this$static, castTo(eStructuralFeature, 35), eObject, copyEObject); + } + else { + eReference = castTo(eStructuralFeature, 19); + (eReference.eFlags & $intern_138) != 0 && $copyContainment(this$static, eReference, eObject, copyEObject); + } + } + } + eObject.eIsProxy() && castTo(copyEObject, 54).eSetProxyURI(castTo(eObject, 54).eProxyURI_0()); + } + return copyEObject; + } +} + +function $copyAll(this$static, eObjects){ + var object, object$iterator, result, t; + result = new ArrayList_0(eObjects.size_1()); + for (object$iterator = eObjects.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + t = $copy_1(this$static, castTo(object, 58)); + !!t && (push_1(result.array, t) , true); + } + return result; +} + +function $copyAttribute(this$static, eAttribute, eObject, copyEObject){ + var featureMap, setting, targetEStructuralFeature; + if (eObject.eIsSet_0(eAttribute)) { + $clinit_FeatureMapUtil(); + if ($isFeatureMap(eAttribute)) { + featureMap = castTo(eObject.eGet_0(eAttribute), 160); + $copyFeatureMap(this$static, featureMap); + } + else { + setting = (targetEStructuralFeature = eAttribute , !targetEStructuralFeature?null:castTo(copyEObject, 54).eSetting(targetEStructuralFeature)); + !!setting && $copyAttributeValue(eObject.eGet_0(eAttribute), setting); + } + } +} + +function $copyAttributeValue(value_0, setting){ + setting.set_1(value_0); +} + +function $copyContainment(this$static, eReference, eObject, copyEObject){ + var setting, target, targetEStructuralFeature, upper, value_0; + if (eObject.eIsSet_0(eReference)) { + setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 54).eSetting(targetEStructuralFeature)); + if (setting) { + value_0 = eObject.eGet_0(eReference); + upper = eReference.upperBound; + if (upper > 1 || upper == -1) { + target = castTo(value_0, 15); + setting.set_1($copyAll(this$static, target)); + } + else { + setting.set_1($copy_1(this$static, castTo(value_0, 58))); + } + } + } +} + +function $copyFeatureMap(this$static, featureMap){ + var feature, i, size_0, value_0; + for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { + feature = featureMap.getEStructuralFeature_0(i); + if (instanceOf(feature, 102) && (castTo(feature, 19).eFlags & $intern_138) != 0) { + value_0 = featureMap.getValue_1(i); + value_0 != null && $copy_1(this$static, castTo(value_0, 58)); + } + } +} + +function $copyReference(this$static, eReference, eObject, copyEObject){ + var copyReferencedEObject, index_0, isBidirectional, k, position, referencedEObject, setting, source, target, targetEStructuralFeature, upper, value_0; + if (eObject.eIsSet_0(eReference)) { + setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 54).eSetting(targetEStructuralFeature)); + if (setting) { + value_0 = eObject.eGet_1(eReference, this$static.resolveProxies); + upper = eReference.upperBound; + if (upper > 1 || upper == -1) { + source = castTo(value_0, 71); + target = castTo(setting, 71); + if (source.isEmpty()) { + target.clear_0(); + } + else { + isBidirectional = !!$getEOpposite(eReference); + index_0 = 0; + for (k = this$static.resolveProxies?source.iterator_0():source.basicIterator(); k.hasNext_0();) { + referencedEObject = castTo(k.next_1(), 58); + copyReferencedEObject = castTo($get_16(this$static, referencedEObject), 58); + if (!copyReferencedEObject) { + if (this$static.useOriginalReferences && !isBidirectional) { + target.addUnique(index_0, referencedEObject); + ++index_0; + } + } + else { + if (isBidirectional) { + position = target.indexOf_0(copyReferencedEObject); + position == -1?target.addUnique(index_0, copyReferencedEObject):index_0 != position && target.move_0(index_0, copyReferencedEObject); + } + else { + target.addUnique(index_0, copyReferencedEObject); + } + ++index_0; + } + } + } + } + else { + if (value_0 == null) { + setting.set_1(null); + } + else { + copyReferencedEObject = $get_16(this$static, value_0); + copyReferencedEObject == null?this$static.useOriginalReferences && !$getEOpposite(eReference) && setting.set_1(value_0):setting.set_1(copyReferencedEObject); + } + } + } + } +} + +function $copyReferences(this$static){ + var copyEObject, copyFeatureMap, copyFeatureMapSize, copyReferencedEObject, eAllStructuralFeaturesData, eClass, eObject, eReference, eStructuralFeature, entry, entry$iterator, feature, featureMap, featureMapSize, j, k, l, reference, referencedEObject, size_0, targetEStructuralFeature, theOpposite; + for (entry$iterator = new LinkedHashMap$EntrySet$EntryIterator(new LinkedHashMap$EntrySet(this$static)); entry$iterator.next_0 != entry$iterator.this$11.this$01.head;) { + entry = $next_8(entry$iterator); + eObject = castTo(entry.key, 58); + copyEObject = castTo(entry.value_0, 58); + eClass = eObject.eClass_0(); + for (j = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; j < size_0; ++j) { + eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , j >= 0 && j < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[j]:null); + if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { + if (instanceOf(eStructuralFeature, 102)) { + eReference = castTo(eStructuralFeature, 19); + (eReference.eFlags & $intern_138) == 0 && (theOpposite = $getEOpposite(eReference) , !(!!theOpposite && (theOpposite.eFlags & $intern_138) != 0)) && $copyReference(this$static, eReference, eObject, copyEObject); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 69).isFeatureMap_0()) { + copyFeatureMap = (targetEStructuralFeature = eStructuralFeature , castTo(!targetEStructuralFeature?null:castTo(copyEObject, 54).eSetting(targetEStructuralFeature), 160)); + if (copyFeatureMap) { + featureMap = castTo(eObject.eGet_0(eStructuralFeature), 160); + copyFeatureMapSize = copyFeatureMap.size_1(); + for (k = 0 , featureMapSize = featureMap.size_1(); k < featureMapSize; ++k) { + feature = featureMap.getEStructuralFeature_0(k); + if (instanceOf(feature, 102)) { + referencedEObject = featureMap.getValue_1(k); + copyReferencedEObject = $get_16(this$static, referencedEObject); + if (copyReferencedEObject == null && referencedEObject != null) { + reference = castTo(feature, 19); + if (!this$static.useOriginalReferences || (reference.eFlags & $intern_138) != 0 || !!$getEOpposite(reference)) { + continue; + } + copyReferencedEObject = referencedEObject; + } + if (!copyFeatureMap.add_6(feature, copyReferencedEObject)) { + for (l = 0; l < copyFeatureMapSize; ++l) { + if (copyFeatureMap.getEStructuralFeature_0(l) == feature && maskUndefined(copyFeatureMap.getValue_1(l)) === maskUndefined(copyReferencedEObject)) { + copyFeatureMap.move(copyFeatureMap.size_1() - 1, l); + --copyFeatureMapSize; + break; + } + } + } + } + else { + copyFeatureMap.add_6(featureMap.getEStructuralFeature_0(k), featureMap.getValue_1(k)); + } + } + } + } + } + } + } + } +} + +function EcoreUtil$Copier(){ + LinkedHashMap.call(this); + this.resolveProxies = true; + this.useOriginalReferences = true; +} + +defineClass(1189, 215, $intern_76, EcoreUtil$Copier); +_.resolveProxies = false; +_.useOriginalReferences = false; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$Copier_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/Copier', 1189); +function $hasNext_9(this$static){ + if (this$static.preparedResult == null) { + while (this$static.iterator.hasNext_0()) { + this$static.preparedResult = this$static.iterator.next_1(); + if (!castTo(this$static.preparedResult, 54).eDirectResource()) { + return true; + } + } + this$static.preparedResult = null; + return false; + } + else { + return true; + } +} + +function EcoreUtil$ProperContentIterator(eObject){ + var contents; + contents = eObject.eContents_0(); + this.iterator = instanceOf(contents, 71)?castTo(contents, 71).basicIterator():contents.iterator_0(); +} + +defineClass(759, 1, $intern_6, EcoreUtil$ProperContentIterator); +_.forEachRemaining = function forEachRemaining_60(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_51(){ + return $hasNext_9(this); +} +; +_.next_1 = function next_50(){ + var result; + $hasNext_9(this); + result = this.preparedResult; + this.preparedResult = null; + return result; +} +; +_.remove = function remove_130(){ + this.iterator.remove(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ProperContentIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ProperContentIterator', 759); +function $clinit_EcoreValidator(){ + $clinit_EcoreValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_10 = new EcoreValidator; +} + +function EcoreValidator(){ + $clinit_XMLTypeValidator(); +} + +defineClass(1528, 1527, {}, EcoreValidator); +var INSTANCE_10; +var Lorg_eclipse_emf_ecore_util_EcoreValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreValidator', 1528); +function $clinit_FeatureMapUtil(){ + $clinit_FeatureMapUtil = emptyMethod; + NULL_VALIDATOR = new FeatureMapUtil$1; +} + +function createEntry_5(eStructuralFeature, value_0){ + $clinit_FeatureMapUtil(); + var prototype_0; + prototype_0 = castTo(eStructuralFeature, 69).getFeatureMapEntryPrototype(); + $validate_2(prototype_0, value_0); + return prototype_0.createEntry(value_0); +} + +function getValidator(containingClass, eStructuralFeature){ + $clinit_FeatureMapUtil(); + var extendedMetaData, holder, result, validatorMap; + if (!eStructuralFeature) { + return NULL_VALIDATOR; + } + else if (eStructuralFeature == ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__MIXED) || (eStructuralFeature == ANY_TYPE__MIXED || eStructuralFeature == ANY_TYPE__ANY || eStructuralFeature == ANY_TYPE__ANY_ATTRIBUTE) && containingClass != ANY_TYPE) { + return new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature); + } + else { + holder = castTo(eStructuralFeature, 692); + extendedMetaData = holder.getExtendedMetaData_0(); + if (!extendedMetaData) { + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); + extendedMetaData = holder.getExtendedMetaData_0(); + } + validatorMap = (!extendedMetaData.validatorMap && (extendedMetaData.validatorMap = new HashMap) , extendedMetaData.validatorMap); + result = castTo(getEntryValueOrNull($getEntry_0(validatorMap.hashCodeMap, containingClass)), 2041); + !result && $put_6(validatorMap, containingClass, result = new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature)); + return result; + } +} + +function isMany_1(owner, feature){ + $clinit_FeatureMapUtil(); + var affiliation, affiliationUpperBound, eClass; + if (feature.isMany()) { + return true; + } + else if (feature.getUpperBound() == -2) { + if (feature == ($clinit_XMLTypeFeatures() , TEXT) || feature == CDATA || feature == COMMENT || feature == PROCESSING_INSTRUCTION) { + return true; + } + else { + eClass = owner.eClass_0(); + if ($getFeatureID(eClass, feature) >= 0) { + return false; + } + else { + affiliation = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, feature); + if (!affiliation) { + return true; + } + else { + affiliationUpperBound = affiliation.getUpperBound(); + return (affiliationUpperBound > 1 || affiliationUpperBound == -1) && $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, affiliation)) != 3; + } + } + } + } + else { + return false; + } +} + +var NULL_VALIDATOR; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$Validator_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMapUtil/Validator'); +function FeatureMapUtil$1(){ +} + +defineClass(1295, 1, {2041:1}, FeatureMapUtil$1); +_.isValid = function isValid_2(eStructuralFeature){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/1', 1295); +function $clinit_FeatureMapUtil$BasicValidator(){ + $clinit_FeatureMapUtil$BasicValidator = emptyMethod; + ANY_WILDCARD = ($clinit_Collections() , new Collections$SingletonList('##any')); +} + +function $isIncluded(this$static, feature){ + var featureKind; + if (this$static.wildcards == ANY_WILDCARD) { + featureKind = $getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature)); + return this$static.isElement?featureKind == 4 && feature != ($clinit_XMLTypeFeatures() , TEXT) && feature != ($clinit_XMLTypeFeatures() , CDATA) && feature != ($clinit_XMLTypeFeatures() , COMMENT) && feature != ($clinit_XMLTypeFeatures() , PROCESSING_INSTRUCTION):featureKind == 2; + } + if (!!this$static.groupMembers && (this$static.groupMembers.contains(feature) || this$static.groupMembers.contains($getGroup($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature))) || this$static.groupMembers.contains($getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.containingClass, feature)))) { + return true; + } + if (this$static.wildcards) { + if ($matches(($clinit_ExtendedMetaData() , this$static.wildcards), $getNamespace_0($getExtendedMetaData_1(INSTANCE_11, feature)))) { + featureKind = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature)); + return this$static.isElement?featureKind == 4:featureKind == 2; + } + } + return false; +} + +function FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature){ + $clinit_FeatureMapUtil$BasicValidator(); + var eAllStructuralFeaturesData, feature, feature$iterator, group, i, mixedFeature, size_0; + this.cache = new FeatureMapUtil$BasicValidator$Cache(this); + this.containingClass = containingClass; + this.eStructuralFeature = eStructuralFeature; + this.wildcards = $getWildcards($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); + if (this.wildcards.isEmpty()) { + if ((mixedFeature = $getMixedFeature(INSTANCE_11, containingClass)) == eStructuralFeature) { + this.isElement = true; + this.groupMembers = new ArrayList; + this.wildcards = new UniqueEList; + this.wildcards.add_2('http://www.eclipse.org/emf/2003/XMLType'); + castTo($getType_1($getExtendedMetaData_0(INSTANCE_11, $getEPackage(containingClass)), ''), 29) == containingClass && this.wildcards.add_2($getNamespace(INSTANCE_11, $getEPackage(containingClass))); + for (feature$iterator = $getAllElements(INSTANCE_11, containingClass).iterator_0(); feature$iterator.hasNext_0();) { + feature = castTo(feature$iterator.next_1(), 179); + switch ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature))) { + case 4: + { + this.groupMembers.add_2(feature); + break; + } + + case 5: + { + this.wildcards.addAll($getWildcards($getExtendedMetaData_1(INSTANCE_11, feature))); + break; + } + + } + } + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 69).isFeatureMap_0()) { + this.isElement = true; + this.wildcards = null; + this.groupMembers = new ArrayList; + for (i = 0 , size_0 = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { + feature = (eAllStructuralFeaturesData = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); + for (group = $getGroup($getExtendedMetaData_1(INSTANCE_11, feature)); group; group = $getGroup($getExtendedMetaData_1(INSTANCE_11, group))) { + group == eStructuralFeature && this.groupMembers.add_2(feature); + } + } + } + else if ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 1 && !!mixedFeature) { + this.wildcards = null; + this.groupMembers = ($clinit_XMLTypeFeatures() , TEXTUAL_FEATURES); + } + else { + this.wildcards = null; + this.isElement = true; + this.groupMembers = ($clinit_Collections() , new Collections$SingletonList(eStructuralFeature)); + } + } + } + else { + this.isElement = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 5; + this.wildcards.equals_0(ANY_WILDCARD) && (this.wildcards = ANY_WILDCARD); + } +} + +defineClass(773, 1, {2041:1}, FeatureMapUtil$BasicValidator); +_.isValid = function isValid_3(feature){ + var result; + if (this.eStructuralFeature == feature) + return true; + result = castToBoolean($get_10(this.cache, feature)); + if (result == null) { + if ($isIncluded(this, feature)) { + $put_16(this.cache, feature, ($clinit_Boolean() , TRUE_0)); + return true; + } + else { + $put_16(this.cache, feature, ($clinit_Boolean() , FALSE_0)); + return false; + } + } + else { + return result == ($clinit_Boolean() , TRUE_0); + } +} +; +_.isElement = false; +var ANY_WILDCARD; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator', 773); +function $put_16(this$static, eStructuralFeature, isValid){ + var newCache; + newCache = new FeatureMapUtil$BasicValidator$Cache(this$static.this$11); + $putAll(newCache, this$static.this$11.cache); + $put_9(newCache.hashCodeMap, eStructuralFeature, isValid); + this$static.this$11.cache = newCache; +} + +function FeatureMapUtil$BasicValidator$Cache(this$1){ + this.this$11 = this$1; + HashMap.call(this); +} + +defineClass(774, 45, $intern_76, FeatureMapUtil$BasicValidator$Cache); +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator$Cache_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator/Cache', 774); +function $addAll_14(this$static, collection){ + return $addAll_13(this$static.featureMap, this$static.feature, collection); +} + +function $basicRemove_4(this$static, object, notifications){ + return $basicRemove_3(this$static.featureMap, this$static.feature, object, notifications); +} + +function $clear_16(this$static){ + $clear_15(this$static.featureMap, this$static.feature); +} + +function $isEmpty_2(this$static){ + return $isEmpty_1(this$static.featureMap, this$static.feature); +} + +function FeatureMapUtil$FeatureEList(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(509, 56, {20:1, 31:1, 56:1, 16:1, 15:1, 61:1, 79:1, 71:1, 97:1}, FeatureMapUtil$FeatureEList); +_.add_3 = function add_70(index_0, object){ + $add_32(this.featureMap, this.feature, index_0, object); +} +; +_.add_2 = function add_71(object){ + return $add_33(this.featureMap, this.feature, object); +} +; +_.addAll_0 = function addAll_37(index_0, collection){ + return $addAll_12(this.featureMap, this.feature, index_0, collection); +} +; +_.addAll = function addAll_38(collection){ + return $addAll_14(this, collection); +} +; +_.addUnique = function addUnique_20(index_0, object){ + $addUnique_11(this.featureMap, this.feature, index_0, object); +} +; +_.basicAdd = function basicAdd_5(object, notifications){ + return $basicAdd_2(this.featureMap, this.feature, object, notifications); +} +; +_.basicGet = function basicGet_6(index_0){ + return $get_23(this.featureMap, this.feature, index_0, false); +} +; +_.basicIterator = function basicIterator_7(){ + return $basicIterator(this.featureMap, this.feature); +} +; +_.basicListIterator = function basicListIterator_15(){ + return $basicListIterator_0(this.featureMap, this.feature); +} +; +_.basicListIterator_0 = function basicListIterator_16(index_0){ + return $basicListIterator_1(this.featureMap, this.feature, index_0); +} +; +_.basicRemove = function basicRemove_6(object, notifications){ + return $basicRemove_4(this, object, notifications); +} +; +_.clear_0 = function clear_66(){ + $clear_16(this); +} +; +_.contains = function contains_67(object){ + return $contains_12(this.featureMap, this.feature, object); +} +; +_.containsAll = function containsAll_15(collection){ + return $containsAll_1(this.featureMap, this.feature, collection); +} +; +_.get_0 = function get_70(index_0){ + return $get_23(this.featureMap, this.feature, index_0, true); +} +; +_.get_6 = function get_71(resolve){ + return this; +} +; +_.indexOf_0 = function indexOf_18(object){ + return $indexOf_7(this.featureMap, this.feature, object); +} +; +_.isEmpty = function isEmpty_34(){ + return $isEmpty_2(this); +} +; +_.isSet_0 = function isSet_20(){ + return !$isEmpty_1(this.featureMap, this.feature); +} +; +_.iterator_0 = function iterator_90(){ + return $iterator_2(this.featureMap, this.feature); +} +; +_.listIterator_0 = function listIterator_33(){ + return $listIterator_3(this.featureMap, this.feature); +} +; +_.listIterator_1 = function listIterator_34(index_0){ + return $listIterator_4(this.featureMap, this.feature, index_0); +} +; +_.move = function move_21(targetIndex, sourceIndex){ + return $move_6(this.featureMap, this.feature, targetIndex, sourceIndex); +} +; +_.move_0 = function move_22(index_0, object){ + $move_7(this.featureMap, this.feature, index_0, object); +} +; +_.remove_2 = function remove_131(index_0){ + return $remove_43(this.featureMap, this.feature, index_0); +} +; +_.remove_1 = function remove_132(object){ + return $remove_44(this.featureMap, this.feature, object); +} +; +_.set_2 = function set_41(index_0, object){ + return $set_17(this.featureMap, this.feature, index_0, object); +} +; +_.set_1 = function set_42(newValue){ + $clear_15(this.featureMap, this.feature); + $addAll_14(this, castTo(newValue, 15)); +} +; +_.size_1 = function size_81(){ + return $size_3(this.featureMap, this.feature); +} +; +_.toArray = function toArray_42(){ + return $toArray_11(this.featureMap, this.feature); +} +; +_.toArray_0 = function toArray_43(array){ + return $toArray_13(this.featureMap, this.feature, array); +} +; +_.toString_0 = function toString_158(){ + var i, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = $basicIterator(this.featureMap, this.feature); $hasNext_8(i);) { + $append_3(stringBuffer, valueOf_6($next_15(i))); + $hasNext_8(i) && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.unset = function unset_16(){ + $clear_15(this.featureMap, this.feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureEList', 509); +function $getFeatureID_0(this$static, expectedClass){ + var containerClass; + if (this$static.featureID == -1 && !!this$static.feature) { + containerClass = this$static.feature.getContainerClass(); + this$static.featureID = !containerClass?$getFeatureID(this$static.notifier.eClass_0(), this$static.feature):this$static.notifier.eDerivedStructuralFeatureID(this$static.feature.getFeatureID_0(), containerClass); + } + return this$static.notifier.eBaseStructuralFeatureID(this$static.featureID, expectedClass); +} + +function FeatureMapUtil$FeatureENotificationImpl(owner, eventType, feature, oldObject, newObject, index_0, wasSet){ + NotificationImpl_2.call(this, eventType, oldObject, newObject, index_0, wasSet); + this.notifier = owner; + this.feature = feature; +} + +defineClass(644, 39, $intern_145, FeatureMapUtil$FeatureENotificationImpl); +_.getFeatureID = function getFeatureID_14(expectedClass){ + return $getFeatureID_0(this, expectedClass); +} +; +_.merge_0 = function merge_5(notification){ + var addedValues, collection, newPositions, notificationEventType, notificationNotifier, positions, removedValues; + switch (this.eventType) { + case 1: + case 2: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.newValue = notification.getNewValue(); + notification.getEventType() == 1 && (this.eventType = 1); + return true; + } + break; + } + + case 3: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 5; + addedValues = new BasicEList_0(2); + $add_21(addedValues, this.newValue); + $add_21(addedValues, notification.getNewValue()); + this.newValue = addedValues; + return true; + } + break; + } + + } + break; + } + + case 5: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + collection = castTo(this.newValue, 16); + collection.add_2(notification.getNewValue()); + return true; + } + break; + } + + } + break; + } + + case 4: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 1; + this.newValue = notification.getNewValue(); + return true; + } + break; + } + + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 6; + removedValues = new BasicEList_0(2); + $add_21(removedValues, this.oldValue); + $add_21(removedValues, notification.getOldValue()); + this.oldValue = removedValues; + positions = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [this.position, notification.getPosition_0()]); + this.newValue = positions; + return true; + } + break; + } + + } + break; + } + + case 6: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + collection = castTo(this.oldValue, 16); + collection.add_2(notification.getOldValue()); + positions = castTo(this.newValue, 53); + newPositions = initUnidimensionalArray(I_classLit, $intern_49, 28, positions.length + 1, 15, 1); + arraycopy(positions, 0, newPositions, 0, positions.length); + newPositions[positions.length] = notification.getPosition_0(); + this.newValue = newPositions; + return true; + } + break; + } + + } + break; + } + + } + return false; +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureENotificationImpl', 644); +function FeatureMapUtil$FeatureFeatureMap(feature, featureMap){ + FeatureMapUtil$FeatureEList.call(this, feature, featureMap); + this.wrapper = this; +} + +defineClass(564, 509, {20:1, 31:1, 56:1, 16:1, 15:1, 61:1, 79:1, 160:1, 220:1, 2036:1, 71:1, 97:1}, FeatureMapUtil$FeatureFeatureMap); +_.add_6 = function add_72(feature, value_0){ + return $add_33(this.featureMap, feature, value_0); +} +; +_.basicAdd_0 = function basicAdd_6(feature, object, notifications){ + return $basicAdd_2(this.featureMap, feature, object, notifications); +} +; +_.basicRemove_0 = function basicRemove_7(feature, object, notifications){ + return $basicRemove_3(this.featureMap, feature, object, notifications); +} +; +_.featureMap_0 = function featureMap_1(){ + return this; +} +; +_.get_7 = function get_72(feature, resolve){ + return $get_24(this.featureMap, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_4(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 76).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_20(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 76).getValue(); +} +; +_.getWrapper = function getWrapper_0(){ + return this.wrapper; +} +; +_.isSet_1 = function isSet_21(feature){ + return !$isEmpty_1(this.featureMap, feature); +} +; +_.set_3 = function set_43(feature, object){ + $set_18(this.featureMap, feature, object); +} +; +_.setting = function setting_1(feature){ + return $setting(this.featureMap, feature); +} +; +_.unset_0 = function unset_17(feature){ + $unset(this.featureMap, feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureFeatureMap', 564); +function FeatureMapUtil$FeatureValue(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(1294, 1, $intern_150, FeatureMapUtil$FeatureValue); +_.get_6 = function get_73(resolve){ + return $get_23(this.featureMap, this.feature, -1, resolve); +} +; +_.isSet_0 = function isSet_22(){ + return !$isEmpty_1(this.featureMap, this.feature); +} +; +_.set_1 = function set_44(newValue){ + $set_18(this.featureMap, this.feature, newValue); +} +; +_.unset = function unset_18(){ + $clear_15(this.featureMap, this.feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureValue_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureValue', 1294); +function $clinit_XMLTypeFeatures(){ + $clinit_XMLTypeFeatures = emptyMethod; + TEXT = castTo($get_20($getEStructuralFeatures(($clinit_XMLTypePackage() , eINSTANCE_4).xmlTypeDocumentRootEClass), 6), 35); + CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 35); + COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 35); + PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 19); + $getFeatureMapEntryPrototype(TEXT); + $getFeatureMapEntryPrototype(CDATA); + $getFeatureMapEntryPrototype(COMMENT); + $getFeatureMapEntryPrototype(PROCESSING_INSTRUCTION); + TEXTUAL_FEATURES = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_154, 179, 0, [TEXT, CDATA])); +} + +var CDATA, COMMENT, PROCESSING_INSTRUCTION, TEXT, TEXTUAL_FEATURES; +var Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'AnyType'); +function InvalidDatatypeValueException(reason){ + RuntimeException_0.call(this, reason); +} + +defineClass(680, 63, $intern_44, InvalidDatatypeValueException); +var Lorg_eclipse_emf_ecore_xml_type_InvalidDatatypeValueException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type', 'InvalidDatatypeValueException', 680); +var Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'ProcessingInstruction'); +var Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'SimpleAnyType'); +var Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'XMLTypeDocumentRoot'); +function $clinit_XMLTypeFactory(){ + $clinit_XMLTypeFactory = emptyMethod; + eINSTANCE_3 = init_5(); +} + +var eINSTANCE_3; +function $clinit_XMLTypePackage(){ + $clinit_XMLTypePackage = emptyMethod; + eINSTANCE_4 = init_6(); +} + +var eINSTANCE_4; +function $clinit_XMLTypePackage$Literals(){ + $clinit_XMLTypePackage$Literals = emptyMethod; + ANY_TYPE = ($clinit_XMLTypePackage() , eINSTANCE_4).anyTypeEClass; + ANY_TYPE__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 0), 35); + ANY_TYPE__ANY = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 1), 35); + ANY_TYPE__ANY_ATTRIBUTE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 2), 35); + PROCESSING_INSTRUCTION_0 = eINSTANCE_4.processingInstructionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 1), 35); + SIMPLE_ANY_TYPE = eINSTANCE_4.simpleAnyTypeEClass; + SIMPLE_ANY_TYPE__RAW_VALUE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 1), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 2), 19); + XML_TYPE_DOCUMENT_ROOT = eINSTANCE_4.xmlTypeDocumentRootEClass; + XML_TYPE_DOCUMENT_ROOT__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 0), 35); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 1), 19); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 2), 19); + XML_TYPE_DOCUMENT_ROOT__CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 35); + XML_TYPE_DOCUMENT_ROOT__COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 35); + XML_TYPE_DOCUMENT_ROOT__TEXT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 6), 35); + XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 19); + DATE = eINSTANCE_4.dateEDataType; + DATE_TIME = eINSTANCE_4.dateTimeEDataType; + DURATION = eINSTANCE_4.durationEDataType; + GDAY = eINSTANCE_4.gDayEDataType; + GMONTH = eINSTANCE_4.gMonthEDataType; + GMONTH_DAY = eINSTANCE_4.gMonthDayEDataType; + GYEAR = eINSTANCE_4.gYearEDataType; + GYEAR_MONTH = eINSTANCE_4.gYearMonthEDataType; + NOTATION = eINSTANCE_4.notationEDataType; + QNAME = eINSTANCE_4.qNameEDataType; + TIME = eINSTANCE_4.timeEDataType; +} + +var ANY_TYPE, ANY_TYPE__ANY, ANY_TYPE__ANY_ATTRIBUTE, ANY_TYPE__MIXED, DATE, DATE_TIME, DURATION, GDAY, GMONTH, GMONTH_DAY, GYEAR, GYEAR_MONTH, NOTATION, PROCESSING_INSTRUCTION_0, QNAME, SIMPLE_ANY_TYPE, SIMPLE_ANY_TYPE__RAW_VALUE, TIME, XML_TYPE_DOCUMENT_ROOT, XML_TYPE_DOCUMENT_ROOT__CDATA, XML_TYPE_DOCUMENT_ROOT__COMMENT, XML_TYPE_DOCUMENT_ROOT__MIXED, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION, XML_TYPE_DOCUMENT_ROOT__TEXT; +function AnyTypeImpl(){ + EObjectImpl.call(this); +} + +defineClass(844, 516, {110:1, 94:1, 93:1, 58:1, 54:1, 99:1, 857:1}, AnyTypeImpl); +_.eGet = function eGet_32(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160), 220)).getWrapper(); + case 2: + if (coreType) + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_23(otherEnd, featureID, msgs){ + var feature; + switch (featureID) { + case 0: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); + case 1: + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160), 71)).basicRemove(otherEnd, msgs); + case 2: + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , $basicRemove_2(this.anyAttribute, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_31(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160)).isEmpty(); + case 2: + return !!this.anyAttribute && this.anyAttribute.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_29(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_16(this.mixed, newValue); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160), 220)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_16(this.anyAttribute, newValue); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_31(){ + return $clinit_XMLTypePackage$Literals() , ANY_TYPE; +} +; +_.eUnset = function eUnset_29(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160)).clear_0(); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $clear_13(this.anyAttribute); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_159(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (mixed: '; + $append_2(result, this.mixed); + result.string += ', anyAttribute: '; + $append_2(result, this.anyAttribute); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_AnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'AnyTypeImpl', 844); +function $setData_0(this$static, newData){ + this$static.data_0 = newData; +} + +function $setTarget_2(this$static, newTarget){ + this$static.target = newTarget; +} + +function ProcessingInstructionImpl(){ +} + +defineClass(681, 516, {110:1, 94:1, 93:1, 58:1, 54:1, 99:1, 2119:1, 681:1}, ProcessingInstructionImpl); +_.eGet = function eGet_33(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.data_0; + case 1: + return this.target; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_32(featureID){ + switch (featureID) { + case 0: + return this.data_0 != null; + case 1: + return this.target != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_30(featureID, newValue){ + switch (featureID) { + case 0: + $setData_0(this, castToString(newValue)); + return; + case 1: + $setTarget_2(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_32(){ + return $clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0; +} +; +_.eUnset = function eUnset_30(featureID){ + switch (featureID) { + case 0: + this.data_0 = null; + return; + case 1: + this.target = null; + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_160(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (data: '; + $append_3(result, this.data_0); + result.string += ', target: '; + $append_3(result, this.target); + result.string += ')'; + return result.string; +} +; +_.data_0 = null; +_.target = null; +var Lorg_eclipse_emf_ecore_xml_type_impl_ProcessingInstructionImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'ProcessingInstructionImpl', 681); +function $setInstanceType(this$static, newInstanceType){ + this$static.instanceType = newInstanceType; +} + +function $setRawValue(this$static, newRawValue){ + !this$static.mixed && (this$static.mixed = new BasicFeatureMap(this$static, 0)); + $set_18(this$static.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), newRawValue); +} + +function SimpleAnyTypeImpl(){ + AnyTypeImpl.call(this); +} + +defineClass(682, 844, {110:1, 94:1, 93:1, 58:1, 54:1, 99:1, 857:1, 2120:1, 682:1}, SimpleAnyTypeImpl); +_.eGet = function eGet_34(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160), 220)).getWrapper(); + case 2: + if (coreType) + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)); + case 4: + return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))); + case 5: + return this.instanceType; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_33(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160)).isEmpty(); + case 2: + return !!this.anyAttribute && this.anyAttribute.size_0 != 0; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)) != null; + case 4: + return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))) != null; + case 5: + return !!this.instanceType; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_31(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_16(this.mixed, newValue); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160), 220)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_16(this.anyAttribute, newValue); + return; + case 3: + $setRawValue(this, castToString(newValue)); + return; + case 4: + $setRawValue(this, convertToString_2(this.instanceType, newValue)); + return; + case 5: + $setInstanceType(this, castTo(newValue, 156)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_33(){ + return $clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE; +} +; +_.eUnset = function eUnset_31(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 160)).clear_0(); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $clear_13(this.anyAttribute); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_18(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), null); + return; + case 4: + $setRawValue(this, convertToString_2(this.instanceType, null)); + return; + case 5: + this.instanceType = null; + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_SimpleAnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'SimpleAnyTypeImpl', 682); +function XMLTypeDocumentRootImpl(){ + EObjectImpl.call(this); +} + +defineClass(683, 516, {110:1, 94:1, 93:1, 58:1, 54:1, 99:1, 2121:1, 683:1}, XMLTypeDocumentRootImpl); +_.eGet = function eGet_35(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + return coreType?(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , this.xMLNSPrefixMap):(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $map_0(this.xMLNSPrefixMap)); + case 2: + return coreType?(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , this.xSISchemaLocation):(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $map_0(this.xSISchemaLocation)); + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA)); + case 4: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT)); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)); + case 6: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT)); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_24(otherEnd, featureID, msgs){ + var feature; + switch (featureID) { + case 0: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); + case 1: + return !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $basicRemove_1(this.xMLNSPrefixMap, otherEnd, msgs); + case 2: + return !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $basicRemove_1(this.xSISchemaLocation, otherEnd, msgs); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_4($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT):(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 69) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_34(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !!this.xMLNSPrefixMap && this.xMLNSPrefixMap.size_0 != 0; + case 2: + return !!this.xSISchemaLocation && this.xSISchemaLocation.size_0 != 0; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + case 4: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + case 6: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_32(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_16(this.mixed, newValue); + return; + case 1: + !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); + $set_13(this.xMLNSPrefixMap, newValue); + return; + case 2: + !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); + $set_13(this.xSISchemaLocation, newValue); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__CDATA), castTo(newValue, 16)); + return; + case 4: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__COMMENT), castTo(newValue, 16)); + return; + case 5: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION), castTo(newValue, 16)); + return; + case 6: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__TEXT), castTo(newValue, 16)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_34(){ + return $clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT; +} +; +_.eUnset = function eUnset_32(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); + this.xMLNSPrefixMap.delegateEList.clear_0(); + return; + case 2: + !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); + this.xSISchemaLocation.delegateEList.clear_0(); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + return; + case 4: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + return; + case 5: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + return; + case 6: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_161(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (mixed: '; + $append_2(result, this.mixed); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeDocumentRootImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeDocumentRootImpl', 683); +function $clinit_XMLTypeFactoryImpl(){ + $clinit_XMLTypeFactoryImpl = emptyMethod; + $clinit_EFactoryImpl(); + DOUBLE_POSITIVE_INFINITY = $intern_60; + DOUBLE_NEGATIVE_INFINITY = $intern_61; + FLOAT_POSITIVE_INFINITY = new Float($intern_60); + FLOAT_NEGATIVE_INFINITY = new Float($intern_61); +} + +function $booleanValueOf_0(initialValue){ + initialValue = normalize(initialValue, true); + if ($equals_5('true', initialValue) || $equals_5('1', initialValue)) { + return $clinit_Boolean() , TRUE_0; + } + else if ($equals_5('false', initialValue) || $equals_5('0', initialValue)) { + return $clinit_Boolean() , FALSE_0; + } + throw toJs(new InvalidDatatypeValueException("Invalid boolean value: '" + initialValue + "'")); +} + +function $convertBase64Binary(instanceValue){ + return instanceValue == null?null:encode(instanceValue); +} + +function $convertDouble(instanceValue){ + return instanceValue == $intern_60?'INF':instanceValue == $intern_61?'-INF':'' + instanceValue; +} + +function $convertENTITIESBaseToString(instanceValue){ + var i, list, result; + if (instanceValue == null) + return null; + list = castTo(instanceValue, 15); + if (list.isEmpty()) + return ''; + result = new StringBuffer; + for (i = list.iterator_0(); i.hasNext_0();) { + $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertFloat(instanceValue){ + return instanceValue == $intern_60?'INF':instanceValue == $intern_61?'-INF':'' + instanceValue; +} + +function $convertHexBinary(instanceValue){ + return instanceValue == null?null:encode_0(instanceValue); +} + +function $convertIDREFSBase(instanceValue){ + var item_0, item$iterator, result; + if (!instanceValue) + return null; + if (instanceValue.isEmpty()) + return ''; + result = new StringBuffer; + for (item$iterator = instanceValue.iterator_0(); item$iterator.hasNext_0();) { + item_0 = item$iterator.next_1(); + $append_3(result, castToString(item_0)); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertNMTOKENSBaseToString(instanceValue){ + var i, list, result; + if (instanceValue == null) + return null; + list = castTo(instanceValue, 15); + if (list.isEmpty()) + return ''; + result = new StringBuffer; + for (i = list.iterator_0(); i.hasNext_0();) { + $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertNonNegativeIntegerToString(instanceValue){ + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertNonPositiveIntegerToString(instanceValue){ + return instanceValue == null?null:toString_40(instanceValue); +} + +function $createBase64Binary(literal){ + var value_0; + if (literal == null) + return null; + value_0 = decode_0(normalize(literal, true)); + if (value_0 == null) { + throw toJs(new InvalidDatatypeValueException("Invalid base64Binary value: '" + literal + "'")); + } + return value_0; +} + +function $createDoubleObject(literal){ + var ch_0, length_0, normalizedLiteral, suffixlength; + if (literal == null) { + return null; + } + else { + normalizedLiteral = normalize(literal, true); + suffixlength = 'INF'.length; + if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { + length_0 = normalizedLiteral.length; + if (length_0 == 4) { + ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); + if (ch_0 == 43) { + return DOUBLE_POSITIVE_INFINITY; + } + else if (ch_0 == 45) { + return DOUBLE_NEGATIVE_INFINITY; + } + } + else if (length_0 == 3) { + return DOUBLE_POSITIVE_INFINITY; + } + } + return __parseAndValidateDouble(normalizedLiteral); + } +} + +function $createENTITIESBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createFloatObject(literal){ + var ch_0, length_0, normalizedLiteral, suffixlength; + if (literal == null) { + return null; + } + else { + normalizedLiteral = normalize(literal, true); + suffixlength = 'INF'.length; + if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { + length_0 = normalizedLiteral.length; + if (length_0 == 4) { + ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); + if (ch_0 == 43) { + return FLOAT_POSITIVE_INFINITY; + } + else if (ch_0 == 45) { + return FLOAT_NEGATIVE_INFINITY; + } + } + else if (length_0 == 3) { + return FLOAT_POSITIVE_INFINITY; + } + } + return new Float_0(normalizedLiteral); + } +} + +function $createHexBinary(literal){ + var value_0; + if (literal == null) + return null; + value_0 = decode_1(normalize(literal, true)); + if (value_0 == null) { + throw toJs(new InvalidDatatypeValueException("Invalid hexBinary value: '" + literal + "'")); + } + return value_0; +} + +function $createIDREFSBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createNMTOKENSBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createNonNegativeIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_3((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result.length + 1) , result.substr(1)):result)); +} + +function $createNonPositiveIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_3((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result.length + 1) , result.substr(1)):result)); +} + +function XMLTypeFactoryImpl(){ +} + +function init_5(){ + $clinit_XMLTypeFactoryImpl(); + var exception, theXMLTypeFactory; + try { + theXMLTypeFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2122); + if (theXMLTypeFactory) { + return theXMLTypeFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 103)) { + exception = $e0; + $log_2(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new XMLTypeFactoryImpl; +} + +defineClass(2028, 720, {110:1, 94:1, 93:1, 480:1, 155:1, 58:1, 114:1, 54:1, 99:1, 158:1, 119:1, 120:1, 2122:1}, XMLTypeFactoryImpl); +_.convertToString = function convertToString_3(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 7: + case 8: + case 9: + case 10: + case 16: + case 22: + case 23: + case 24: + case 25: + case 26: + case 32: + case 33: + case 34: + case 36: + case 37: + case 44: + case 45: + case 50: + case 51: + case 53: + case 55: + case 56: + case 57: + case 58: + case 60: + case 61: + case 4: + return instanceValue == null?null:toString_40(instanceValue); + case 19: + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 46: + case 52: + case 54: + case 5: + return castToString(instanceValue); + case 6: + return $convertBase64Binary(castTo(instanceValue, 195)); + case 12: + case 47: + case 49: + case 11: + return $convertToString(this, eDataType, instanceValue); + case 13: + return instanceValue == null?null:$toPlainString(castTo(instanceValue, 247)); + case 15: + case 14: + return instanceValue == null?null:$convertDouble($doubleValue(castToDouble(instanceValue))); + case 17: + return $convertENTITIESBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 18: + return $convertENTITIESBaseToString(instanceValue); + case 21: + case 20: + return instanceValue == null?null:$convertFloat(castTo(instanceValue, 161).value_0); + case 27: + return $convertHexBinary(castTo(instanceValue, 195)); + case 30: + return $convertIDREFSBase(($clinit_XMLTypePackage$Literals() , castTo(instanceValue, 15))); + case 31: + return $convertIDREFSBase(castTo(instanceValue, 15)); + case 40: + return $convertNonPositiveIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 42: + return $convertNMTOKENSBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 43: + return $convertNMTOKENSBaseToString(instanceValue); + case 59: + case 48: + return $convertNonNegativeIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_50(eClass){ + var anyType, ePackage, processingInstruction, simpleAnyType, xmlTypeDocumentRoot; + switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { + case 0: + return anyType = new AnyTypeImpl , anyType; + case 1: + return processingInstruction = new ProcessingInstructionImpl , processingInstruction; + case 2: + return simpleAnyType = new SimpleAnyTypeImpl , simpleAnyType; + case 3: + return xmlTypeDocumentRoot = new XMLTypeDocumentRootImpl , xmlTypeDocumentRoot; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_3(eDataType, initialValue){ + var result, result0, result1, result10, result11, result12, result13, result14, result2, result3, result4, result5, result6, result7, result8, result9; + switch (eDataType.getClassifierID()) { + case 5: + case 52: + case 4: + return initialValue; + case 6: + return $createBase64Binary(initialValue); + case 8: + case 7: + return initialValue == null?null:$booleanValueOf_0(initialValue); + case 9: + return initialValue == null?null:get_32(__parseAndValidateInt((result0 = normalize(initialValue, true) , result0.length > 0 && (checkCriticalStringElementIndex(0, result0.length) , result0.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result0.length + 1) , result0.substr(1)):result0), -128, 127) << 24 >> 24); + case 10: + return initialValue == null?null:get_32(__parseAndValidateInt((result1 = normalize(initialValue, true) , result1.length > 0 && (checkCriticalStringElementIndex(0, result1.length) , result1.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result1.length + 1) , result1.substr(1)):result1), -128, 127) << 24 >> 24); + case 11: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE), initialValue)); + case 12: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE_TIME), initialValue)); + case 13: + return initialValue == null?null:new BigDecimal_0(normalize(initialValue, true)); + case 15: + case 14: + return $createDoubleObject(initialValue); + case 16: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DURATION), initialValue)); + case 17: + return $createENTITIESBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 18: + return $createENTITIESBase(initialValue); + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 54: + case 19: + return normalize(initialValue, true); + case 21: + case 20: + return $createFloatObject(initialValue); + case 22: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GDAY), initialValue)); + case 23: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH), initialValue)); + case 24: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH_DAY), initialValue)); + case 25: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR), initialValue)); + case 26: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR_MONTH), initialValue)); + case 27: + return $createHexBinary(initialValue); + case 30: + return $createIDREFSBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 31: + return $createIDREFSBase(initialValue); + case 32: + return initialValue == null?null:valueOf_3(__parseAndValidateInt((result2 = normalize(initialValue, true) , result2.length > 0 && (checkCriticalStringElementIndex(0, result2.length) , result2.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result2.length + 1) , result2.substr(1)):result2), $intern_43, $intern_0)); + case 33: + return initialValue == null?null:new BigInteger_3((result3 = normalize(initialValue, true) , result3.length > 0 && (checkCriticalStringElementIndex(0, result3.length) , result3.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result3.length + 1) , result3.substr(1)):result3)); + case 34: + return initialValue == null?null:valueOf_3(__parseAndValidateInt((result4 = normalize(initialValue, true) , result4.length > 0 && (checkCriticalStringElementIndex(0, result4.length) , result4.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result4.length + 1) , result4.substr(1)):result4), $intern_43, $intern_0)); + case 36: + return initialValue == null?null:valueOf_4(__parseAndValidateLong((result5 = normalize(initialValue, true) , result5.length > 0 && (checkCriticalStringElementIndex(0, result5.length) , result5.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result5.length + 1) , result5.substr(1)):result5))); + case 37: + return initialValue == null?null:valueOf_4(__parseAndValidateLong((result6 = normalize(initialValue, true) , result6.length > 0 && (checkCriticalStringElementIndex(0, result6.length) , result6.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result6.length + 1) , result6.substr(1)):result6))); + case 40: + return $createNonPositiveIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); + case 42: + return $createNMTOKENSBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 43: + return $createNMTOKENSBase(initialValue); + case 44: + return initialValue == null?null:new BigInteger_3((result7 = normalize(initialValue, true) , result7.length > 0 && (checkCriticalStringElementIndex(0, result7.length) , result7.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result7.length + 1) , result7.substr(1)):result7)); + case 45: + return initialValue == null?null:new BigInteger_3((result8 = normalize(initialValue, true) , result8.length > 0 && (checkCriticalStringElementIndex(0, result8.length) , result8.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result8.length + 1) , result8.substr(1)):result8)); + case 46: + return normalize(initialValue, false); + case 47: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , NOTATION), initialValue)); + case 59: + case 48: + return $createNonNegativeIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); + case 49: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , QNAME), initialValue)); + case 50: + return initialValue == null?null:valueOf_5(__parseAndValidateInt((result9 = normalize(initialValue, true) , result9.length > 0 && (checkCriticalStringElementIndex(0, result9.length) , result9.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result9.length + 1) , result9.substr(1)):result9), $intern_164, 32767) << 16 >> 16); + case 51: + return initialValue == null?null:valueOf_5(__parseAndValidateInt((result10 = normalize(initialValue, true) , result10.length > 0 && (checkCriticalStringElementIndex(0, result10.length) , result10.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result10.length + 1) , result10.substr(1)):result10), $intern_164, 32767) << 16 >> 16); + case 53: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , TIME), initialValue)); + case 55: + return initialValue == null?null:valueOf_5(__parseAndValidateInt((result11 = normalize(initialValue, true) , result11.length > 0 && (checkCriticalStringElementIndex(0, result11.length) , result11.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result11.length + 1) , result11.substr(1)):result11), $intern_164, 32767) << 16 >> 16); + case 56: + return initialValue == null?null:valueOf_5(__parseAndValidateInt((result12 = normalize(initialValue, true) , result12.length > 0 && (checkCriticalStringElementIndex(0, result12.length) , result12.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result12.length + 1) , result12.substr(1)):result12), $intern_164, 32767) << 16 >> 16); + case 57: + return initialValue == null?null:valueOf_4(__parseAndValidateLong((result13 = normalize(initialValue, true) , result13.length > 0 && (checkCriticalStringElementIndex(0, result13.length) , result13.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result13.length + 1) , result13.substr(1)):result13))); + case 58: + return initialValue == null?null:valueOf_4(__parseAndValidateLong((result14 = normalize(initialValue, true) , result14.length > 0 && (checkCriticalStringElementIndex(0, result14.length) , result14.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result14.length + 1) , result14.substr(1)):result14))); + case 60: + return initialValue == null?null:valueOf_3(__parseAndValidateInt((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?(checkCriticalStringElementIndex(1, result.length + 1) , result.substr(1)):result), $intern_43, $intern_0)); + case 61: + return initialValue == null?null:valueOf_3(__parseAndValidateInt(normalize(initialValue, true), $intern_43, $intern_0)); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var DOUBLE_NEGATIVE_INFINITY, DOUBLE_POSITIVE_INFINITY, FLOAT_NEGATIVE_INFINITY, FLOAT_POSITIVE_INFINITY; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeFactoryImpl', 2028); +function $$init_13(this$static){ + this$static.anyTypeEClass = null; + this$static.processingInstructionEClass = null; + this$static.simpleAnyTypeEClass = null; + this$static.xmlTypeDocumentRootEClass = null; + this$static.anySimpleTypeEDataType = null; + this$static.anyURIEDataType = null; + this$static.base64BinaryEDataType = null; + this$static.booleanEDataType = null; + this$static.booleanObjectEDataType = null; + this$static.decimalEDataType = null; + this$static.integerEDataType = null; + this$static.intObjectEDataType = null; + this$static.longEDataType = null; + this$static.longObjectEDataType = null; + this$static.intEDataType = null; + this$static.shortEDataType = null; + this$static.shortObjectEDataType = null; + this$static.byteEDataType = null; + this$static.byteObjectEDataType = null; + this$static.dateEDataType = null; + this$static.dateTimeEDataType = null; + this$static.stringEDataType = null; + this$static.doubleEDataType = null; + this$static.doubleObjectEDataType = null; + this$static.durationEDataType = null; + this$static.entitiesBaseEDataType = null; + this$static.normalizedStringEDataType = null; + this$static.tokenEDataType = null; + this$static.nameEDataType = null; + this$static.ncNameEDataType = null; + this$static.entityEDataType = null; + this$static.entitiesEDataType = null; + this$static.floatEDataType = null; + this$static.floatObjectEDataType = null; + this$static.gDayEDataType = null; + this$static.gMonthEDataType = null; + this$static.gMonthDayEDataType = null; + this$static.gYearEDataType = null; + this$static.gYearMonthEDataType = null; + this$static.hexBinaryEDataType = null; + this$static.idEDataType = null; + this$static.idrefEDataType = null; + this$static.idrefsBaseEDataType = null; + this$static.idrefsEDataType = null; + this$static.languageEDataType = null; + this$static.nonPositiveIntegerEDataType = null; + this$static.negativeIntegerEDataType = null; + this$static.nmtokenEDataType = null; + this$static.nmtokensBaseEDataType = null; + this$static.nmtokensEDataType = null; + this$static.nonNegativeIntegerEDataType = null; + this$static.notationEDataType = null; + this$static.positiveIntegerEDataType = null; + this$static.qNameEDataType = null; + this$static.timeEDataType = null; + this$static.unsignedLongEDataType = null; + this$static.unsignedIntEDataType = null; + this$static.unsignedIntObjectEDataType = null; + this$static.unsignedShortEDataType = null; + this$static.unsignedShortObjectEDataType = null; + this$static.unsignedByteEDataType = null; + this$static.unsignedByteObjectEDataType = null; + this$static.isCreated = false; + this$static.isInitialized = false; +} + +function $createExtendedMetaDataAnnotations_0(this$static){ + $addAnnotation(this$static.anySimpleTypeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anySimpleType'])); + $addAnnotation(this$static.anyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyType', 'kind', 'mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'wildcards', '##any', 'name', ':1', 'processing', 'lax'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attributeWildcard', 'wildcards', '##any', 'name', ':2', 'processing', 'lax'])); + $addAnnotation(this$static.anyURIEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyURI', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.base64BinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'base64Binary', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.booleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.booleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean:Object', 'baseType', 'boolean'])); + $addAnnotation(this$static.byteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte'])); + $addAnnotation(this$static.byteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte:Object', 'baseType', 'byte'])); + $addAnnotation(this$static.dateEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'date', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.dateTimeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'dateTime', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.decimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'decimal', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.doubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.doubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double:Object', 'baseType', 'double'])); + $addAnnotation(this$static.durationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'duration', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.entitiesEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES', 'baseType', 'ENTITIES_._base', 'minLength', '1'])); + $addAnnotation(this$static.entitiesBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES_._base', 'itemType', 'ENTITY'])); + $addAnnotation(this$static.entityEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITY', 'baseType', 'NCName'])); + $addAnnotation(this$static.floatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.floatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float:Object', 'baseType', 'float'])); + $addAnnotation(this$static.gDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gDay', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonth', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gMonthDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonthDay', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gYearEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYear', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gYearMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYearMonth', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.hexBinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'hexBinary', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.idEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ID', 'baseType', 'NCName'])); + $addAnnotation(this$static.idrefEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREF', 'baseType', 'NCName'])); + $addAnnotation(this$static.idrefsEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS', 'baseType', 'IDREFS_._base', 'minLength', '1'])); + $addAnnotation(this$static.idrefsBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS_._base', 'itemType', 'IDREF'])); + $addAnnotation(this$static.intEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int'])); + $addAnnotation(this$static.integerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'integer'])); + $addAnnotation(this$static.intObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int:Object', 'baseType', 'int'])); + $addAnnotation(this$static.languageEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'language', 'baseType', 'token', 'pattern', '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'])); + $addAnnotation(this$static.longEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long'])); + $addAnnotation(this$static.longObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long:Object', 'baseType', 'long'])); + $addAnnotation(this$static.nameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'Name', 'baseType', 'token', 'pattern', '\\i\\c*'])); + $addAnnotation(this$static.ncNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NCName', 'baseType', 'Name', 'pattern', '[\\i-[:]][\\c-[:]]*'])); + $addAnnotation(this$static.negativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'negativeInteger', 'baseType', 'nonPositiveInteger', 'maxInclusive', '-1'])); + $addAnnotation(this$static.nmtokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKEN', 'baseType', 'token', 'pattern', '\\c+'])); + $addAnnotation(this$static.nmtokensEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS', 'baseType', 'NMTOKENS_._base', 'minLength', '1'])); + $addAnnotation(this$static.nmtokensBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS_._base', 'itemType', 'NMTOKEN'])); + $addAnnotation(this$static.nonNegativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonNegativeInteger', 'baseType', 'integer', 'minInclusive', '0'])); + $addAnnotation(this$static.nonPositiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonPositiveInteger', 'baseType', 'integer', 'maxInclusive', '0'])); + $addAnnotation(this$static.normalizedStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'normalizedString', 'baseType', 'string', 'whiteSpace', 'replace'])); + $addAnnotation(this$static.notationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NOTATION', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.positiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'positiveInteger', 'baseType', 'nonNegativeInteger', 'minInclusive', '1'])); + $addAnnotation(this$static.processingInstructionEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'processingInstruction_._type', 'kind', 'empty'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'data'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'target'])); + $addAnnotation(this$static.qNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'QName', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.shortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short'])); + $addAnnotation(this$static.shortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short:Object', 'baseType', 'short'])); + $addAnnotation(this$static.simpleAnyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'simpleAnyType', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':3', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':4', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 19), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':5', 'kind', 'simple'])); + $addAnnotation(this$static.stringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'string', 'whiteSpace', 'preserve'])); + $addAnnotation(this$static.timeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'time', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.tokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'token', 'baseType', 'normalizedString', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.unsignedByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte', 'maxInclusive', '255', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte:Object', 'baseType', 'unsignedByte'])); + $addAnnotation(this$static.unsignedIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt', 'maxInclusive', '4294967295', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedIntObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt:Object', 'baseType', 'unsignedInt'])); + $addAnnotation(this$static.unsignedLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedLong', 'baseType', 'nonNegativeInteger', 'maxInclusive', '18446744073709551615', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort', 'maxInclusive', '65535', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort:Object', 'baseType', 'unsignedShort'])); + $addAnnotation(this$static.xmlTypeDocumentRootEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', '', 'kind', 'mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 19), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xmlns:prefix'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 19), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xsi:schemaLocation'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'cDATA', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'comment', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 19), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'processingInstruction', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 35), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'text', 'namespace', '##targetNamespace'])); +} + +function $createPackageContents_1(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.anyTypeEClass = $createEClass(this$static, 0); + $createEAttribute(this$static.anyTypeEClass, 0); + $createEAttribute(this$static.anyTypeEClass, 1); + $createEAttribute(this$static.anyTypeEClass, 2); + this$static.processingInstructionEClass = $createEClass(this$static, 1); + $createEAttribute(this$static.processingInstructionEClass, 0); + $createEAttribute(this$static.processingInstructionEClass, 1); + this$static.simpleAnyTypeEClass = $createEClass(this$static, 2); + $createEAttribute(this$static.simpleAnyTypeEClass, 3); + $createEAttribute(this$static.simpleAnyTypeEClass, 4); + $createEReference(this$static.simpleAnyTypeEClass, 5); + this$static.xmlTypeDocumentRootEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 0); + $createEReference(this$static.xmlTypeDocumentRootEClass, 1); + $createEReference(this$static.xmlTypeDocumentRootEClass, 2); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 3); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 4); + $createEReference(this$static.xmlTypeDocumentRootEClass, 5); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 6); + this$static.anySimpleTypeEDataType = $createEDataType(this$static, 4); + this$static.anyURIEDataType = $createEDataType(this$static, 5); + this$static.base64BinaryEDataType = $createEDataType(this$static, 6); + this$static.booleanEDataType = $createEDataType(this$static, 7); + this$static.booleanObjectEDataType = $createEDataType(this$static, 8); + this$static.byteEDataType = $createEDataType(this$static, 9); + this$static.byteObjectEDataType = $createEDataType(this$static, 10); + this$static.dateEDataType = $createEDataType(this$static, 11); + this$static.dateTimeEDataType = $createEDataType(this$static, 12); + this$static.decimalEDataType = $createEDataType(this$static, 13); + this$static.doubleEDataType = $createEDataType(this$static, 14); + this$static.doubleObjectEDataType = $createEDataType(this$static, 15); + this$static.durationEDataType = $createEDataType(this$static, 16); + this$static.entitiesEDataType = $createEDataType(this$static, 17); + this$static.entitiesBaseEDataType = $createEDataType(this$static, 18); + this$static.entityEDataType = $createEDataType(this$static, 19); + this$static.floatEDataType = $createEDataType(this$static, 20); + this$static.floatObjectEDataType = $createEDataType(this$static, 21); + this$static.gDayEDataType = $createEDataType(this$static, 22); + this$static.gMonthEDataType = $createEDataType(this$static, 23); + this$static.gMonthDayEDataType = $createEDataType(this$static, 24); + this$static.gYearEDataType = $createEDataType(this$static, 25); + this$static.gYearMonthEDataType = $createEDataType(this$static, 26); + this$static.hexBinaryEDataType = $createEDataType(this$static, 27); + this$static.idEDataType = $createEDataType(this$static, 28); + this$static.idrefEDataType = $createEDataType(this$static, 29); + this$static.idrefsEDataType = $createEDataType(this$static, 30); + this$static.idrefsBaseEDataType = $createEDataType(this$static, 31); + this$static.intEDataType = $createEDataType(this$static, 32); + this$static.integerEDataType = $createEDataType(this$static, 33); + this$static.intObjectEDataType = $createEDataType(this$static, 34); + this$static.languageEDataType = $createEDataType(this$static, 35); + this$static.longEDataType = $createEDataType(this$static, 36); + this$static.longObjectEDataType = $createEDataType(this$static, 37); + this$static.nameEDataType = $createEDataType(this$static, 38); + this$static.ncNameEDataType = $createEDataType(this$static, 39); + this$static.negativeIntegerEDataType = $createEDataType(this$static, 40); + this$static.nmtokenEDataType = $createEDataType(this$static, 41); + this$static.nmtokensEDataType = $createEDataType(this$static, 42); + this$static.nmtokensBaseEDataType = $createEDataType(this$static, 43); + this$static.nonNegativeIntegerEDataType = $createEDataType(this$static, 44); + this$static.nonPositiveIntegerEDataType = $createEDataType(this$static, 45); + this$static.normalizedStringEDataType = $createEDataType(this$static, 46); + this$static.notationEDataType = $createEDataType(this$static, 47); + this$static.positiveIntegerEDataType = $createEDataType(this$static, 48); + this$static.qNameEDataType = $createEDataType(this$static, 49); + this$static.shortEDataType = $createEDataType(this$static, 50); + this$static.shortObjectEDataType = $createEDataType(this$static, 51); + this$static.stringEDataType = $createEDataType(this$static, 52); + this$static.timeEDataType = $createEDataType(this$static, 53); + this$static.tokenEDataType = $createEDataType(this$static, 54); + this$static.unsignedByteEDataType = $createEDataType(this$static, 55); + this$static.unsignedByteObjectEDataType = $createEDataType(this$static, 56); + this$static.unsignedIntEDataType = $createEDataType(this$static, 57); + this$static.unsignedIntObjectEDataType = $createEDataType(this$static, 58); + this$static.unsignedLongEDataType = $createEDataType(this$static, 59); + this$static.unsignedShortEDataType = $createEDataType(this$static, 60); + this$static.unsignedShortObjectEDataType = $createEDataType(this$static, 61); +} + +function $initializePackageContents_1(this$static){ + var theXMLTypePackage_1; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'type'); + $setNsPrefix(this$static, 'ecore.xml.type'); + $setNsURI(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); + theXMLTypePackage_1 = castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2044); + $add_21($getESuperTypes(this$static.simpleAnyTypeEClass), this$static.anyTypeEClass); + $initEClass(this$static.anyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, 'AnyType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 35), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 35), this$static.ecorePackage.eFeatureMapEntryEDataType, 'any', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 35), this$static.ecorePackage.eFeatureMapEntryEDataType, 'anyAttribute', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); + $initEClass(this$static.processingInstructionEClass, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, 'ProcessingInstruction', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 35), this$static.stringEDataType, 'data', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 35), this$static.stringEDataType, 'target', null, 1, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.simpleAnyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, 'SimpleAnyType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 35), theXMLTypePackage_1.stringEDataType, 'rawValue', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 35), theXMLTypePackage_1.anySimpleTypeEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 19), this$static.ecorePackage.eDataTypeEClass, null, 'instanceType', 1, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, false, false, true, false, false, false, false); + $initEClass(this$static.xmlTypeDocumentRootEClass, Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, 'XMLTypeDocumentRoot', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 35), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, null, false, false, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 19), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xMLNSPrefixMap', 0, -1, null, true, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 19), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xSISchemaLocation', 0, -1, null, true, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 35), this$static.stringEDataType, 'cDATA', null, 0, -2, null, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 35), this$static.stringEDataType, 'comment', null, 0, -2, null, true, true, true, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 19), this$static.processingInstructionEClass, null, 'processingInstruction', 0, -2, null, true, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 35), this$static.stringEDataType, 'text', null, 0, -2, null, true, true, true, false, false, true); + $initEDataType(this$static.anySimpleTypeEDataType, Ljava_lang_Object_2_classLit, 'AnySimpleType', true); + $initEDataType(this$static.anyURIEDataType, Ljava_lang_String_2_classLit, 'AnyURI', true); + $initEDataType(this$static.base64BinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'Base64Binary', true); + $initEDataType(this$static.booleanEDataType, Z_classLit, 'Boolean', true); + $initEDataType(this$static.booleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'BooleanObject', true); + $initEDataType(this$static.byteEDataType, B_classLit, 'Byte', true); + $initEDataType(this$static.byteObjectEDataType, Ljava_lang_Byte_2_classLit, 'ByteObject', true); + $initEDataType(this$static.dateEDataType, Ljava_lang_String_2_classLit, 'Date', true); + $initEDataType(this$static.dateTimeEDataType, Ljava_lang_String_2_classLit, 'DateTime', true); + $initEDataType(this$static.decimalEDataType, Ljava_math_BigDecimal_2_classLit, 'Decimal', true); + $initEDataType(this$static.doubleEDataType, D_classLit, 'Double', true); + $initEDataType(this$static.doubleObjectEDataType, Ljava_lang_Double_2_classLit, 'DoubleObject', true); + $initEDataType(this$static.durationEDataType, Ljava_lang_String_2_classLit, 'Duration', true); + $initEDataType(this$static.entitiesEDataType, Ljava_util_List_2_classLit, 'ENTITIES', true); + $initEDataType(this$static.entitiesBaseEDataType, Ljava_util_List_2_classLit, 'ENTITIESBase', true); + $initEDataType(this$static.entityEDataType, Ljava_lang_String_2_classLit, 'ENTITY', true); + $initEDataType(this$static.floatEDataType, F_classLit, 'Float', true); + $initEDataType(this$static.floatObjectEDataType, Ljava_lang_Float_2_classLit, 'FloatObject', true); + $initEDataType(this$static.gDayEDataType, Ljava_lang_String_2_classLit, 'GDay', true); + $initEDataType(this$static.gMonthEDataType, Ljava_lang_String_2_classLit, 'GMonth', true); + $initEDataType(this$static.gMonthDayEDataType, Ljava_lang_String_2_classLit, 'GMonthDay', true); + $initEDataType(this$static.gYearEDataType, Ljava_lang_String_2_classLit, 'GYear', true); + $initEDataType(this$static.gYearMonthEDataType, Ljava_lang_String_2_classLit, 'GYearMonth', true); + $initEDataType(this$static.hexBinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'HexBinary', true); + $initEDataType(this$static.idEDataType, Ljava_lang_String_2_classLit, 'ID', true); + $initEDataType(this$static.idrefEDataType, Ljava_lang_String_2_classLit, 'IDREF', true); + $initEDataType(this$static.idrefsEDataType, Ljava_util_List_2_classLit, 'IDREFS', true); + $initEDataType(this$static.idrefsBaseEDataType, Ljava_util_List_2_classLit, 'IDREFSBase', true); + $initEDataType(this$static.intEDataType, I_classLit, 'Int', true); + $initEDataType(this$static.integerEDataType, Ljava_math_BigInteger_2_classLit, 'Integer', true); + $initEDataType(this$static.intObjectEDataType, Ljava_lang_Integer_2_classLit, 'IntObject', true); + $initEDataType(this$static.languageEDataType, Ljava_lang_String_2_classLit, 'Language', true); + $initEDataType(this$static.longEDataType, J_classLit, 'Long', true); + $initEDataType(this$static.longObjectEDataType, Ljava_lang_Long_2_classLit, 'LongObject', true); + $initEDataType(this$static.nameEDataType, Ljava_lang_String_2_classLit, 'Name', true); + $initEDataType(this$static.ncNameEDataType, Ljava_lang_String_2_classLit, 'NCName', true); + $initEDataType(this$static.negativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NegativeInteger', true); + $initEDataType(this$static.nmtokenEDataType, Ljava_lang_String_2_classLit, 'NMTOKEN', true); + $initEDataType(this$static.nmtokensEDataType, Ljava_util_List_2_classLit, 'NMTOKENS', true); + $initEDataType(this$static.nmtokensBaseEDataType, Ljava_util_List_2_classLit, 'NMTOKENSBase', true); + $initEDataType(this$static.nonNegativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonNegativeInteger', true); + $initEDataType(this$static.nonPositiveIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonPositiveInteger', true); + $initEDataType(this$static.normalizedStringEDataType, Ljava_lang_String_2_classLit, 'NormalizedString', true); + $initEDataType(this$static.notationEDataType, Ljava_lang_String_2_classLit, 'NOTATION', true); + $initEDataType(this$static.positiveIntegerEDataType, Ljava_lang_String_2_classLit, 'PositiveInteger', true); + $initEDataType(this$static.qNameEDataType, Ljava_lang_String_2_classLit, 'QName', true); + $initEDataType(this$static.shortEDataType, S_classLit, 'Short', true); + $initEDataType(this$static.shortObjectEDataType, Ljava_lang_Short_2_classLit, 'ShortObject', true); + $initEDataType(this$static.stringEDataType, Ljava_lang_String_2_classLit, 'String', true); + $initEDataType(this$static.timeEDataType, Ljava_lang_String_2_classLit, 'Time', true); + $initEDataType(this$static.tokenEDataType, Ljava_lang_String_2_classLit, 'Token', true); + $initEDataType(this$static.unsignedByteEDataType, S_classLit, 'UnsignedByte', true); + $initEDataType(this$static.unsignedByteObjectEDataType, Ljava_lang_Short_2_classLit, 'UnsignedByteObject', true); + $initEDataType(this$static.unsignedIntEDataType, J_classLit, 'UnsignedInt', true); + $initEDataType(this$static.unsignedIntObjectEDataType, Ljava_lang_Long_2_classLit, 'UnsignedIntObject', true); + $initEDataType(this$static.unsignedLongEDataType, Ljava_math_BigInteger_2_classLit, 'UnsignedLong', true); + $initEDataType(this$static.unsignedShortEDataType, I_classLit, 'UnsignedShort', true); + $initEDataType(this$static.unsignedShortObjectEDataType, Ljava_lang_Integer_2_classLit, 'UnsignedShortObject', true); + $createResource(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); + $createExtendedMetaDataAnnotations_0(this$static); +} + +function XMLTypePackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2003/XMLType', ($clinit_XMLTypeFactory() , eINSTANCE_3)); + $$init_13(this); +} + +function init_6(){ + var theXMLTypePackage; + if (isInited_1) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2044); + initializeRegistryHelpers(); + theXMLTypePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 594)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType'):new XMLTypePackageImpl, 594); + isInited_1 = true; + $createPackageContents_1(theXMLTypePackage); + $initializePackageContents_1(theXMLTypePackage); + $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theXMLTypePackage, new XMLTypePackageImpl$1); + $freeze_0(theXMLTypePackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType', theXMLTypePackage); + return theXMLTypePackage; +} + +function initializeRegistryHelpers(){ + register_0(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, new XMLTypePackageImpl$2); + register_0(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, new XMLTypePackageImpl$3); + register_0(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, new XMLTypePackageImpl$4); + register_0(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, new XMLTypePackageImpl$5); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$6); + register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$7); + register_0(Ljava_lang_Boolean_2_classLit, new XMLTypePackageImpl$8); + register_0(Ljava_lang_Byte_2_classLit, new XMLTypePackageImpl$9); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$10); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$11); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$12); + register_0(Ljava_lang_Double_2_classLit, new XMLTypePackageImpl$13); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$14); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$15); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$16); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$17); + register_0(Ljava_lang_Float_2_classLit, new XMLTypePackageImpl$18); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$19); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$20); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$21); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$22); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$23); + register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$24); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$25); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$26); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$27); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$28); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$29); + register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$30); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$31); + register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$32); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$33); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$34); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$35); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$36); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$37); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$38); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$39); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$40); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$41); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$42); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$43); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$44); + register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$45); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$46); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$47); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$48); + register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$49); + register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$50); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$51); + register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$52); +} + +defineClass(594, 184, {110:1, 94:1, 93:1, 155:1, 197:1, 58:1, 241:1, 114:1, 54:1, 99:1, 158:1, 184:1, 119:1, 120:1, 690:1, 2044:1, 594:1}, XMLTypePackageImpl); +_.isCreated = false; +_.isInitialized = false; +var isInited_1 = false; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl', 594); +function XMLTypePackageImpl$1(){ +} + +defineClass(1961, 1, {851:1}, XMLTypePackageImpl$1); +_.getEValidator = function getEValidator_0(){ + return $clinit_XMLTypeValidator() , INSTANCE_12; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/1', 1961); +function XMLTypePackageImpl$10(){ +} + +defineClass(1970, 1, $intern_165, XMLTypePackageImpl$10); +_.isInstance = function isInstance_50(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_42(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/10', 1970); +function XMLTypePackageImpl$11(){ +} + +defineClass(1971, 1, $intern_165, XMLTypePackageImpl$11); +_.isInstance = function isInstance_51(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_43(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/11', 1971); +function XMLTypePackageImpl$12(){ +} + +defineClass(1972, 1, $intern_165, XMLTypePackageImpl$12); +_.isInstance = function isInstance_52(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_44(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/12', 1972); +function XMLTypePackageImpl$13(){ +} + +defineClass(1973, 1, $intern_165, XMLTypePackageImpl$13); +_.isInstance = function isInstance_53(instance){ + return instanceOfDouble(instance); +} +; +_.newArrayInstance = function newArrayInstance_45(size_0){ + return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 345, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/13', 1973); +function XMLTypePackageImpl$14(){ +} + +defineClass(1974, 1, $intern_165, XMLTypePackageImpl$14); +_.isInstance = function isInstance_54(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_46(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/14', 1974); +function XMLTypePackageImpl$15(){ +} + +defineClass(1975, 1, $intern_165, XMLTypePackageImpl$15); +_.isInstance = function isInstance_55(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_47(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/15', 1975); +function XMLTypePackageImpl$16(){ +} + +defineClass(1976, 1, $intern_165, XMLTypePackageImpl$16); +_.isInstance = function isInstance_56(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_48(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/16', 1976); +function XMLTypePackageImpl$17(){ +} + +defineClass(1977, 1, $intern_165, XMLTypePackageImpl$17); +_.isInstance = function isInstance_57(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_49(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/17', 1977); +function XMLTypePackageImpl$18(){ +} + +defineClass(1978, 1, $intern_165, XMLTypePackageImpl$18); +_.isInstance = function isInstance_58(instance){ + return instanceOf(instance, 161); +} +; +_.newArrayInstance = function newArrayInstance_50(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 161, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/18', 1978); +function XMLTypePackageImpl$19(){ +} + +defineClass(1979, 1, $intern_165, XMLTypePackageImpl$19); +_.isInstance = function isInstance_59(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_51(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/19', 1979); +function XMLTypePackageImpl$2(){ +} + +defineClass(1962, 1, $intern_165, XMLTypePackageImpl$2); +_.isInstance = function isInstance_60(instance){ + return instanceOf(instance, 857); +} +; +_.newArrayInstance = function newArrayInstance_52(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, $intern_2, 857, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/2', 1962); +function XMLTypePackageImpl$20(){ +} + +defineClass(1980, 1, $intern_165, XMLTypePackageImpl$20); +_.isInstance = function isInstance_61(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_53(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/20', 1980); +function XMLTypePackageImpl$21(){ +} + +defineClass(1981, 1, $intern_165, XMLTypePackageImpl$21); +_.isInstance = function isInstance_62(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_54(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/21', 1981); +function XMLTypePackageImpl$22(){ +} + +defineClass(1982, 1, $intern_165, XMLTypePackageImpl$22); +_.isInstance = function isInstance_63(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_55(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/22', 1982); +function XMLTypePackageImpl$23(){ +} + +defineClass(1983, 1, $intern_165, XMLTypePackageImpl$23); +_.isInstance = function isInstance_64(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_56(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/23', 1983); +function XMLTypePackageImpl$24(){ +} + +defineClass(1984, 1, $intern_165, XMLTypePackageImpl$24); +_.isInstance = function isInstance_65(instance){ + return instanceOf(instance, 195); +} +; +_.newArrayInstance = function newArrayInstance_57(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 195, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/24', 1984); +function XMLTypePackageImpl$25(){ +} + +defineClass(1985, 1, $intern_165, XMLTypePackageImpl$25); +_.isInstance = function isInstance_66(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_58(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/25', 1985); +function XMLTypePackageImpl$26(){ +} + +defineClass(1986, 1, $intern_165, XMLTypePackageImpl$26); +_.isInstance = function isInstance_67(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_59(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/26', 1986); +function XMLTypePackageImpl$27(){ +} + +defineClass(1987, 1, $intern_165, XMLTypePackageImpl$27); +_.isInstance = function isInstance_68(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_60(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/27', 1987); +function XMLTypePackageImpl$28(){ +} + +defineClass(1988, 1, $intern_165, XMLTypePackageImpl$28); +_.isInstance = function isInstance_69(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_61(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/28', 1988); +function XMLTypePackageImpl$29(){ +} + +defineClass(1989, 1, $intern_165, XMLTypePackageImpl$29); +_.isInstance = function isInstance_70(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_62(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/29', 1989); +function XMLTypePackageImpl$3(){ +} + +defineClass(1963, 1, $intern_165, XMLTypePackageImpl$3); +_.isInstance = function isInstance_71(instance){ + return instanceOf(instance, 681); +} +; +_.newArrayInstance = function newArrayInstance_63(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, $intern_2, 2119, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/3', 1963); +function XMLTypePackageImpl$30(){ +} + +defineClass(1990, 1, $intern_165, XMLTypePackageImpl$30); +_.isInstance = function isInstance_72(instance){ + return instanceOf(instance, 17); +} +; +_.newArrayInstance = function newArrayInstance_64(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 17, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/30', 1990); +function XMLTypePackageImpl$31(){ +} + +defineClass(1991, 1, $intern_165, XMLTypePackageImpl$31); +_.isInstance = function isInstance_73(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_65(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/31', 1991); +function XMLTypePackageImpl$32(){ +} + +defineClass(1992, 1, $intern_165, XMLTypePackageImpl$32); +_.isInstance = function isInstance_74(instance){ + return instanceOf(instance, 168); +} +; +_.newArrayInstance = function newArrayInstance_66(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 168, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/32', 1992); +function XMLTypePackageImpl$33(){ +} + +defineClass(1993, 1, $intern_165, XMLTypePackageImpl$33); +_.isInstance = function isInstance_75(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_67(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/33', 1993); +function XMLTypePackageImpl$34(){ +} + +defineClass(1994, 1, $intern_165, XMLTypePackageImpl$34); +_.isInstance = function isInstance_76(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_68(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/34', 1994); +function XMLTypePackageImpl$35(){ +} + +defineClass(1995, 1, $intern_165, XMLTypePackageImpl$35); +_.isInstance = function isInstance_77(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_69(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/35', 1995); +function XMLTypePackageImpl$36(){ +} + +defineClass(1996, 1, $intern_165, XMLTypePackageImpl$36); +_.isInstance = function isInstance_78(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_70(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/36', 1996); +function XMLTypePackageImpl$37(){ +} + +defineClass(1997, 1, $intern_165, XMLTypePackageImpl$37); +_.isInstance = function isInstance_79(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_71(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/37', 1997); +function XMLTypePackageImpl$38(){ +} + +defineClass(1998, 1, $intern_165, XMLTypePackageImpl$38); +_.isInstance = function isInstance_80(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_72(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/38', 1998); +function XMLTypePackageImpl$39(){ +} + +defineClass(1999, 1, $intern_165, XMLTypePackageImpl$39); +_.isInstance = function isInstance_81(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_73(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/39', 1999); +function XMLTypePackageImpl$4(){ +} + +defineClass(1964, 1, $intern_165, XMLTypePackageImpl$4); +_.isInstance = function isInstance_82(instance){ + return instanceOf(instance, 682); +} +; +_.newArrayInstance = function newArrayInstance_74(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, $intern_2, 2120, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/4', 1964); +function XMLTypePackageImpl$40(){ +} + +defineClass(2000, 1, $intern_165, XMLTypePackageImpl$40); +_.isInstance = function isInstance_83(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_75(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/40', 2000); +function XMLTypePackageImpl$41(){ +} + +defineClass(2001, 1, $intern_165, XMLTypePackageImpl$41); +_.isInstance = function isInstance_84(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_76(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/41', 2001); +function XMLTypePackageImpl$42(){ +} + +defineClass(2002, 1, $intern_165, XMLTypePackageImpl$42); +_.isInstance = function isInstance_85(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_77(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/42', 2002); +function XMLTypePackageImpl$43(){ +} + +defineClass(2003, 1, $intern_165, XMLTypePackageImpl$43); +_.isInstance = function isInstance_86(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_78(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/43', 2003); +function XMLTypePackageImpl$44(){ +} + +defineClass(2004, 1, $intern_165, XMLTypePackageImpl$44); +_.isInstance = function isInstance_87(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_79(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/44', 2004); +function XMLTypePackageImpl$45(){ +} + +defineClass(2005, 1, $intern_165, XMLTypePackageImpl$45); +_.isInstance = function isInstance_88(instance){ + return instanceOf(instance, 191); +} +; +_.newArrayInstance = function newArrayInstance_80(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 191, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$45_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/45', 2005); +function XMLTypePackageImpl$46(){ +} + +defineClass(2006, 1, $intern_165, XMLTypePackageImpl$46); +_.isInstance = function isInstance_89(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_81(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$46_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/46', 2006); +function XMLTypePackageImpl$47(){ +} + +defineClass(2007, 1, $intern_165, XMLTypePackageImpl$47); +_.isInstance = function isInstance_90(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_82(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$47_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/47', 2007); +function XMLTypePackageImpl$48(){ +} + +defineClass(2008, 1, $intern_165, XMLTypePackageImpl$48); +_.isInstance = function isInstance_91(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_83(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$48_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/48', 2008); +function XMLTypePackageImpl$49(){ +} + +defineClass(2009, 1, $intern_165, XMLTypePackageImpl$49); +_.isInstance = function isInstance_92(instance){ + return instanceOf(instance, 191); +} +; +_.newArrayInstance = function newArrayInstance_84(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 191, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$49_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/49', 2009); +function XMLTypePackageImpl$5(){ +} + +defineClass(1965, 1, $intern_165, XMLTypePackageImpl$5); +_.isInstance = function isInstance_93(instance){ + return instanceOf(instance, 683); +} +; +_.newArrayInstance = function newArrayInstance_85(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, $intern_2, 2121, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/5', 1965); +function XMLTypePackageImpl$50(){ +} + +defineClass(2010, 1, $intern_165, XMLTypePackageImpl$50); +_.isInstance = function isInstance_94(instance){ + return instanceOf(instance, 168); +} +; +_.newArrayInstance = function newArrayInstance_86(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 168, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$50_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/50', 2010); +function XMLTypePackageImpl$51(){ +} + +defineClass(2011, 1, $intern_165, XMLTypePackageImpl$51); +_.isInstance = function isInstance_95(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_87(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$51_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/51', 2011); +function XMLTypePackageImpl$52(){ +} + +defineClass(2012, 1, $intern_165, XMLTypePackageImpl$52); +_.isInstance = function isInstance_96(instance){ + return instanceOf(instance, 17); +} +; +_.newArrayInstance = function newArrayInstance_88(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 17, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$52_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/52', 2012); +function XMLTypePackageImpl$6(){ +} + +defineClass(1966, 1, $intern_165, XMLTypePackageImpl$6); +_.isInstance = function isInstance_97(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_89(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/6', 1966); +function XMLTypePackageImpl$7(){ +} + +defineClass(1967, 1, $intern_165, XMLTypePackageImpl$7); +_.isInstance = function isInstance_98(instance){ + return instanceOf(instance, 195); +} +; +_.newArrayInstance = function newArrayInstance_90(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 195, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/7', 1967); +function XMLTypePackageImpl$8(){ +} + +defineClass(1968, 1, $intern_165, XMLTypePackageImpl$8); +_.isInstance = function isInstance_99(instance){ + return instanceOfBoolean(instance); +} +; +_.newArrayInstance = function newArrayInstance_91(size_0){ + return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 485, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/8', 1968); +function XMLTypePackageImpl$9(){ +} + +defineClass(1969, 1, $intern_165, XMLTypePackageImpl$9); +_.isInstance = function isInstance_100(instance){ + return instanceOf(instance, 222); +} +; +_.newArrayInstance = function newArrayInstance_92(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 222, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/9', 1969); +function $clinit_DataValue$Base64(){ + $clinit_DataValue$Base64 = emptyMethod; + var i, i0, i1, i2, i3, i4, i5, j, j0; + base64Alphabet = initUnidimensionalArray(B_classLit, $intern_140, 28, 255, 15, 1); + lookUpBase64Alphabet = initUnidimensionalArray(C_classLit, $intern_45, 28, 64, 15, 1); + for (i0 = 0; i0 < 255; i0++) { + base64Alphabet[i0] = -1; + } + for (i1 = 90; i1 >= 65; i1--) { + base64Alphabet[i1] = i1 - 65 << 24 >> 24; + } + for (i2 = 122; i2 >= 97; i2--) { + base64Alphabet[i2] = i2 - 97 + 26 << 24 >> 24; + } + for (i3 = 57; i3 >= 48; i3--) { + base64Alphabet[i3] = i3 - 48 + 52 << 24 >> 24; + } + base64Alphabet[43] = 62; + base64Alphabet[47] = 63; + for (i4 = 0; i4 <= 25; i4++) + lookUpBase64Alphabet[i4] = 65 + i4 & $intern_47; + for (i5 = 26 , j0 = 0; i5 <= 51; ++i5 , j0++) + lookUpBase64Alphabet[i5] = 97 + j0 & $intern_47; + for (i = 52 , j = 0; i <= 61; ++i , j++) + lookUpBase64Alphabet[i] = 48 + j & $intern_47; + lookUpBase64Alphabet[62] = 43; + lookUpBase64Alphabet[63] = 47; +} + +function decode_0(encoded){ + $clinit_DataValue$Base64(); + var b1, b2, b3, b4, base64Data, d1, d2, d3, d4, dataIndex, decodedData, encodedIndex, i, len, numberQuadruple, tmp; + if (encoded == null) + return null; + base64Data = $toCharArray(encoded); + len = removeWhiteSpace(base64Data); + if (len % 4 != 0) { + return null; + } + numberQuadruple = len / 4 | 0; + if (numberQuadruple == 0) + return initUnidimensionalArray(B_classLit, $intern_140, 28, 0, 15, 1); + decodedData = null; + b1 = 0; + b2 = 0; + b3 = 0; + b4 = 0; + d1 = 0; + d2 = 0; + d3 = 0; + d4 = 0; + i = 0; + encodedIndex = 0; + dataIndex = 0; + decodedData = initUnidimensionalArray(B_classLit, $intern_140, 28, numberQuadruple * 3, 15, 1); + for (; i < numberQuadruple - 1; i++) { + if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++]) || !isData(d3 = base64Data[dataIndex++]) || !isData(d4 = base64Data[dataIndex++])) + return null; + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; + } + if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++])) { + return null; + } + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + d3 = base64Data[dataIndex++]; + d4 = base64Data[dataIndex++]; + if (base64Alphabet[d3] == -1 || base64Alphabet[d4] == -1) { + if (d3 == 61 && d4 == 61) { + if ((b2 & 15) != 0) + return null; + tmp = initUnidimensionalArray(B_classLit, $intern_140, 28, i * 3 + 1, 15, 1); + arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex] = (b1 << 2 | b2 >> 4) << 24 >> 24; + return tmp; + } + else if (d3 != 61 && d4 == 61) { + b3 = base64Alphabet[d3]; + if ((b3 & 3) != 0) + return null; + tmp = initUnidimensionalArray(B_classLit, $intern_140, 28, i * 3 + 2, 15, 1); + arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + tmp[encodedIndex] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + return tmp; + } + else { + return null; + } + } + else { + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; + } + return decodedData; +} + +function encode(binaryData){ + $clinit_DataValue$Base64(); + var b1, b2, b3, dataIndex, encodedData, encodedIndex, fewerThan24bits, i, k, l, lengthDataBits, numberQuartet, numberTriplets, val1, val2, val3; + if (binaryData == null) + return null; + lengthDataBits = binaryData.length * 8; + if (lengthDataBits == 0) { + return ''; + } + fewerThan24bits = lengthDataBits % 24; + numberTriplets = lengthDataBits / 24 | 0; + numberQuartet = fewerThan24bits != 0?numberTriplets + 1:numberTriplets; + encodedData = null; + encodedData = initUnidimensionalArray(C_classLit, $intern_45, 28, numberQuartet * 4, 15, 1); + k = 0; + l = 0; + b1 = 0; + b2 = 0; + b3 = 0; + encodedIndex = 0; + dataIndex = 0; + for (i = 0; i < numberTriplets; i++) { + b1 = binaryData[dataIndex++]; + b2 = binaryData[dataIndex++]; + b3 = binaryData[dataIndex++]; + l = (b2 & 15) << 24 >> 24; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; + val3 = (b3 & -128) == 0?b3 >> 6 << 24 >> 24:(b3 >> 6 ^ 252) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2 | val3]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 63]; + } + if (fewerThan24bits == 8) { + b1 = binaryData[dataIndex]; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; + encodedData[encodedIndex++] = 61; + encodedData[encodedIndex++] = 61; + } + else if (fewerThan24bits == 16) { + b1 = binaryData[dataIndex]; + b2 = binaryData[dataIndex + 1]; + l = (b2 & 15) << 24 >> 24; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; + encodedData[encodedIndex++] = 61; + } + return valueOf_8(encodedData, 0, encodedData.length); +} + +function isData(octect){ + return base64Alphabet[octect] != -1; +} + +function removeWhiteSpace(data_0){ + var i, len, newSize; + newSize = 0; + len = data_0.length; + for (i = 0; i < len; i++) { + data_0[i] == 32 || data_0[i] == 13 || data_0[i] == 10 || data_0[i] == 9 || (data_0[newSize++] = data_0[i]); + } + return newSize; +} + +var base64Alphabet, lookUpBase64Alphabet; +function $clinit_DataValue$HexBin(){ + $clinit_DataValue$HexBin = emptyMethod; + var i, i0, i1, i2, i3, i4; + hexNumberTable = initUnidimensionalArray(B_classLit, $intern_140, 28, 255, 15, 1); + lookUpHexAlphabet = initUnidimensionalArray(C_classLit, $intern_45, 28, 16, 15, 1); + for (i0 = 0; i0 < 255; i0++) { + hexNumberTable[i0] = -1; + } + for (i1 = 57; i1 >= 48; i1--) { + hexNumberTable[i1] = i1 - 48 << 24 >> 24; + } + for (i2 = 70; i2 >= 65; i2--) { + hexNumberTable[i2] = i2 - 65 + 10 << 24 >> 24; + } + for (i3 = 102; i3 >= 97; i3--) { + hexNumberTable[i3] = i3 - 97 + 10 << 24 >> 24; + } + for (i4 = 0; i4 < 10; i4++) + lookUpHexAlphabet[i4] = 48 + i4 & $intern_47; + for (i = 10; i <= 15; i++) + lookUpHexAlphabet[i] = 65 + i - 10 & $intern_47; +} + +function decode_1(encoded){ + $clinit_DataValue$HexBin(); + var binaryData, decodedData, i, lengthData, lengthDecode, temp1, temp2; + if (encoded == null) + return null; + lengthData = encoded.length; + if (lengthData % 2 != 0) + return null; + binaryData = $toCharArray(encoded); + lengthDecode = lengthData / 2 | 0; + decodedData = initUnidimensionalArray(B_classLit, $intern_140, 28, lengthDecode, 15, 1); + for (i = 0; i < lengthDecode; i++) { + temp1 = hexNumberTable[binaryData[i * 2]]; + if (temp1 == -1) + return null; + temp2 = hexNumberTable[binaryData[i * 2 + 1]]; + if (temp2 == -1) + return null; + decodedData[i] = (temp1 << 4 | temp2) << 24 >> 24; + } + return decodedData; +} + +function encode_0(binaryData){ + $clinit_DataValue$HexBin(); + var encodedData, i, lengthData, lengthEncode, temp; + if (binaryData == null) + return null; + lengthData = binaryData.length; + lengthEncode = lengthData * 2; + encodedData = initUnidimensionalArray(C_classLit, $intern_45, 28, lengthEncode, 15, 1); + for (i = 0; i < lengthData; i++) { + temp = binaryData[i]; + temp < 0 && (temp += 256); + encodedData[i * 2] = lookUpHexAlphabet[temp >> 4]; + encodedData[i * 2 + 1] = lookUpHexAlphabet[temp & 15]; + } + return valueOf_8(encodedData, 0, encodedData.length); +} + +var hexNumberTable, lookUpHexAlphabet; +function $clinit_DataValue$XMLChar(){ + $clinit_DataValue$XMLChar = emptyMethod; + CHARS = initUnidimensionalArray(B_classLit, $intern_140, 28, $intern_64, 15, 1); + CHARS[9] = 35; + CHARS[10] = 19; + CHARS[13] = 19; + CHARS[32] = 51; + CHARS[33] = 49; + CHARS[34] = 33; + fill_0(CHARS, 35, 38, 49); + CHARS[38] = 1; + fill_0(CHARS, 39, 45, 49); + fill_0(CHARS, 45, 47, -71); + CHARS[47] = 49; + fill_0(CHARS, 48, 58, -71); + CHARS[58] = 61; + CHARS[59] = 49; + CHARS[60] = 1; + CHARS[61] = 49; + CHARS[62] = 33; + fill_0(CHARS, 63, 65, 49); + fill_0(CHARS, 65, 91, -3); + fill_0(CHARS, 91, 93, 33); + CHARS[93] = 1; + CHARS[94] = 33; + CHARS[95] = -3; + CHARS[96] = 33; + fill_0(CHARS, 97, 123, -3); + fill_0(CHARS, 123, 183, 33); + CHARS[183] = -87; + fill_0(CHARS, 184, 192, 33); + fill_0(CHARS, 192, 215, -19); + CHARS[215] = 33; + fill_0(CHARS, 216, 247, -19); + CHARS[247] = 33; + fill_0(CHARS, 248, 306, -19); + fill_0(CHARS, 306, 308, 33); + fill_0(CHARS, 308, 319, -19); + fill_0(CHARS, 319, 321, 33); + fill_0(CHARS, 321, 329, -19); + CHARS[329] = 33; + fill_0(CHARS, 330, 383, -19); + CHARS[383] = 33; + fill_0(CHARS, 384, 452, -19); + fill_0(CHARS, 452, 461, 33); + fill_0(CHARS, 461, 497, -19); + fill_0(CHARS, 497, 500, 33); + fill_0(CHARS, 500, 502, -19); + fill_0(CHARS, 502, 506, 33); + fill_0(CHARS, 506, 536, -19); + fill_0(CHARS, 536, 592, 33); + fill_0(CHARS, 592, 681, -19); + fill_0(CHARS, 681, 699, 33); + fill_0(CHARS, 699, 706, -19); + fill_0(CHARS, 706, 720, 33); + fill_0(CHARS, 720, 722, -87); + fill_0(CHARS, 722, 768, 33); + fill_0(CHARS, 768, 838, -87); + fill_0(CHARS, 838, 864, 33); + fill_0(CHARS, 864, 866, -87); + fill_0(CHARS, 866, 902, 33); + CHARS[902] = -19; + CHARS[903] = -87; + fill_0(CHARS, 904, 907, -19); + CHARS[907] = 33; + CHARS[908] = -19; + CHARS[909] = 33; + fill_0(CHARS, 910, 930, -19); + CHARS[930] = 33; + fill_0(CHARS, 931, 975, -19); + CHARS[975] = 33; + fill_0(CHARS, 976, 983, -19); + fill_0(CHARS, 983, 986, 33); + CHARS[986] = -19; + CHARS[987] = 33; + CHARS[988] = -19; + CHARS[989] = 33; + CHARS[990] = -19; + CHARS[991] = 33; + CHARS[992] = -19; + CHARS[993] = 33; + fill_0(CHARS, 994, 1012, -19); + fill_0(CHARS, 1012, 1025, 33); + fill_0(CHARS, 1025, 1037, -19); + CHARS[1037] = 33; + fill_0(CHARS, 1038, 1104, -19); + CHARS[1104] = 33; + fill_0(CHARS, 1105, 1117, -19); + CHARS[1117] = 33; + fill_0(CHARS, 1118, 1154, -19); + CHARS[1154] = 33; + fill_0(CHARS, 1155, 1159, -87); + fill_0(CHARS, 1159, 1168, 33); + fill_0(CHARS, 1168, 1221, -19); + fill_0(CHARS, 1221, 1223, 33); + fill_0(CHARS, 1223, 1225, -19); + fill_0(CHARS, 1225, 1227, 33); + fill_0(CHARS, 1227, 1229, -19); + fill_0(CHARS, 1229, 1232, 33); + fill_0(CHARS, 1232, 1260, -19); + fill_0(CHARS, 1260, 1262, 33); + fill_0(CHARS, 1262, 1270, -19); + fill_0(CHARS, 1270, 1272, 33); + fill_0(CHARS, 1272, 1274, -19); + fill_0(CHARS, 1274, 1329, 33); + fill_0(CHARS, 1329, 1367, -19); + fill_0(CHARS, 1367, 1369, 33); + CHARS[1369] = -19; + fill_0(CHARS, 1370, 1377, 33); + fill_0(CHARS, 1377, 1415, -19); + fill_0(CHARS, 1415, 1425, 33); + fill_0(CHARS, 1425, 1442, -87); + CHARS[1442] = 33; + fill_0(CHARS, 1443, 1466, -87); + CHARS[1466] = 33; + fill_0(CHARS, 1467, 1470, -87); + CHARS[1470] = 33; + CHARS[1471] = -87; + CHARS[1472] = 33; + fill_0(CHARS, 1473, 1475, -87); + CHARS[1475] = 33; + CHARS[1476] = -87; + fill_0(CHARS, 1477, 1488, 33); + fill_0(CHARS, 1488, 1515, -19); + fill_0(CHARS, 1515, 1520, 33); + fill_0(CHARS, 1520, 1523, -19); + fill_0(CHARS, 1523, 1569, 33); + fill_0(CHARS, 1569, 1595, -19); + fill_0(CHARS, 1595, 1600, 33); + CHARS[1600] = -87; + fill_0(CHARS, 1601, 1611, -19); + fill_0(CHARS, 1611, 1619, -87); + fill_0(CHARS, 1619, 1632, 33); + fill_0(CHARS, 1632, 1642, -87); + fill_0(CHARS, 1642, 1648, 33); + CHARS[1648] = -87; + fill_0(CHARS, 1649, 1720, -19); + fill_0(CHARS, 1720, 1722, 33); + fill_0(CHARS, 1722, 1727, -19); + CHARS[1727] = 33; + fill_0(CHARS, 1728, 1743, -19); + CHARS[1743] = 33; + fill_0(CHARS, 1744, 1748, -19); + CHARS[1748] = 33; + CHARS[1749] = -19; + fill_0(CHARS, 1750, 1765, -87); + fill_0(CHARS, 1765, 1767, -19); + fill_0(CHARS, 1767, 1769, -87); + CHARS[1769] = 33; + fill_0(CHARS, 1770, 1774, -87); + fill_0(CHARS, 1774, 1776, 33); + fill_0(CHARS, 1776, 1786, -87); + fill_0(CHARS, 1786, 2305, 33); + fill_0(CHARS, 2305, 2308, -87); + CHARS[2308] = 33; + fill_0(CHARS, 2309, 2362, -19); + fill_0(CHARS, 2362, 2364, 33); + CHARS[2364] = -87; + CHARS[2365] = -19; + fill_0(CHARS, 2366, 2382, -87); + fill_0(CHARS, 2382, 2385, 33); + fill_0(CHARS, 2385, 2389, -87); + fill_0(CHARS, 2389, 2392, 33); + fill_0(CHARS, 2392, 2402, -19); + fill_0(CHARS, 2402, 2404, -87); + fill_0(CHARS, 2404, 2406, 33); + fill_0(CHARS, 2406, 2416, -87); + fill_0(CHARS, 2416, 2433, 33); + fill_0(CHARS, 2433, 2436, -87); + CHARS[2436] = 33; + fill_0(CHARS, 2437, 2445, -19); + fill_0(CHARS, 2445, 2447, 33); + fill_0(CHARS, 2447, 2449, -19); + fill_0(CHARS, 2449, 2451, 33); + fill_0(CHARS, 2451, 2473, -19); + CHARS[2473] = 33; + fill_0(CHARS, 2474, 2481, -19); + CHARS[2481] = 33; + CHARS[2482] = -19; + fill_0(CHARS, 2483, 2486, 33); + fill_0(CHARS, 2486, 2490, -19); + fill_0(CHARS, 2490, 2492, 33); + CHARS[2492] = -87; + CHARS[2493] = 33; + fill_0(CHARS, 2494, 2501, -87); + fill_0(CHARS, 2501, 2503, 33); + fill_0(CHARS, 2503, 2505, -87); + fill_0(CHARS, 2505, 2507, 33); + fill_0(CHARS, 2507, 2510, -87); + fill_0(CHARS, 2510, 2519, 33); + CHARS[2519] = -87; + fill_0(CHARS, 2520, 2524, 33); + fill_0(CHARS, 2524, 2526, -19); + CHARS[2526] = 33; + fill_0(CHARS, 2527, 2530, -19); + fill_0(CHARS, 2530, 2532, -87); + fill_0(CHARS, 2532, 2534, 33); + fill_0(CHARS, 2534, 2544, -87); + fill_0(CHARS, 2544, 2546, -19); + fill_0(CHARS, 2546, 2562, 33); + CHARS[2562] = -87; + fill_0(CHARS, 2563, 2565, 33); + fill_0(CHARS, 2565, 2571, -19); + fill_0(CHARS, 2571, 2575, 33); + fill_0(CHARS, 2575, 2577, -19); + fill_0(CHARS, 2577, 2579, 33); + fill_0(CHARS, 2579, 2601, -19); + CHARS[2601] = 33; + fill_0(CHARS, 2602, 2609, -19); + CHARS[2609] = 33; + fill_0(CHARS, 2610, 2612, -19); + CHARS[2612] = 33; + fill_0(CHARS, 2613, 2615, -19); + CHARS[2615] = 33; + fill_0(CHARS, 2616, 2618, -19); + fill_0(CHARS, 2618, 2620, 33); + CHARS[2620] = -87; + CHARS[2621] = 33; + fill_0(CHARS, 2622, 2627, -87); + fill_0(CHARS, 2627, 2631, 33); + fill_0(CHARS, 2631, 2633, -87); + fill_0(CHARS, 2633, 2635, 33); + fill_0(CHARS, 2635, 2638, -87); + fill_0(CHARS, 2638, 2649, 33); + fill_0(CHARS, 2649, 2653, -19); + CHARS[2653] = 33; + CHARS[2654] = -19; + fill_0(CHARS, 2655, 2662, 33); + fill_0(CHARS, 2662, 2674, -87); + fill_0(CHARS, 2674, 2677, -19); + fill_0(CHARS, 2677, 2689, 33); + fill_0(CHARS, 2689, 2692, -87); + CHARS[2692] = 33; + fill_0(CHARS, 2693, 2700, -19); + CHARS[2700] = 33; + CHARS[2701] = -19; + CHARS[2702] = 33; + fill_0(CHARS, 2703, 2706, -19); + CHARS[2706] = 33; + fill_0(CHARS, 2707, 2729, -19); + CHARS[2729] = 33; + fill_0(CHARS, 2730, 2737, -19); + CHARS[2737] = 33; + fill_0(CHARS, 2738, 2740, -19); + CHARS[2740] = 33; + fill_0(CHARS, 2741, 2746, -19); + fill_0(CHARS, 2746, 2748, 33); + CHARS[2748] = -87; + CHARS[2749] = -19; + fill_0(CHARS, 2750, 2758, -87); + CHARS[2758] = 33; + fill_0(CHARS, 2759, 2762, -87); + CHARS[2762] = 33; + fill_0(CHARS, 2763, 2766, -87); + fill_0(CHARS, 2766, 2784, 33); + CHARS[2784] = -19; + fill_0(CHARS, 2785, 2790, 33); + fill_0(CHARS, 2790, 2800, -87); + fill_0(CHARS, 2800, 2817, 33); + fill_0(CHARS, 2817, 2820, -87); + CHARS[2820] = 33; + fill_0(CHARS, 2821, 2829, -19); + fill_0(CHARS, 2829, 2831, 33); + fill_0(CHARS, 2831, 2833, -19); + fill_0(CHARS, 2833, 2835, 33); + fill_0(CHARS, 2835, 2857, -19); + CHARS[2857] = 33; + fill_0(CHARS, 2858, 2865, -19); + CHARS[2865] = 33; + fill_0(CHARS, 2866, 2868, -19); + fill_0(CHARS, 2868, 2870, 33); + fill_0(CHARS, 2870, 2874, -19); + fill_0(CHARS, 2874, 2876, 33); + CHARS[2876] = -87; + CHARS[2877] = -19; + fill_0(CHARS, 2878, 2884, -87); + fill_0(CHARS, 2884, 2887, 33); + fill_0(CHARS, 2887, 2889, -87); + fill_0(CHARS, 2889, 2891, 33); + fill_0(CHARS, 2891, 2894, -87); + fill_0(CHARS, 2894, 2902, 33); + fill_0(CHARS, 2902, 2904, -87); + fill_0(CHARS, 2904, 2908, 33); + fill_0(CHARS, 2908, 2910, -19); + CHARS[2910] = 33; + fill_0(CHARS, 2911, 2914, -19); + fill_0(CHARS, 2914, 2918, 33); + fill_0(CHARS, 2918, 2928, -87); + fill_0(CHARS, 2928, 2946, 33); + fill_0(CHARS, 2946, 2948, -87); + CHARS[2948] = 33; + fill_0(CHARS, 2949, 2955, -19); + fill_0(CHARS, 2955, 2958, 33); + fill_0(CHARS, 2958, 2961, -19); + CHARS[2961] = 33; + fill_0(CHARS, 2962, 2966, -19); + fill_0(CHARS, 2966, 2969, 33); + fill_0(CHARS, 2969, 2971, -19); + CHARS[2971] = 33; + CHARS[2972] = -19; + CHARS[2973] = 33; + fill_0(CHARS, 2974, 2976, -19); + fill_0(CHARS, 2976, 2979, 33); + fill_0(CHARS, 2979, 2981, -19); + fill_0(CHARS, 2981, 2984, 33); + fill_0(CHARS, 2984, 2987, -19); + fill_0(CHARS, 2987, 2990, 33); + fill_0(CHARS, 2990, 2998, -19); + CHARS[2998] = 33; + fill_0(CHARS, 2999, 3002, -19); + fill_0(CHARS, 3002, 3006, 33); + fill_0(CHARS, 3006, 3011, -87); + fill_0(CHARS, 3011, 3014, 33); + fill_0(CHARS, 3014, 3017, -87); + CHARS[3017] = 33; + fill_0(CHARS, 3018, 3022, -87); + fill_0(CHARS, 3022, 3031, 33); + CHARS[3031] = -87; + fill_0(CHARS, 3032, 3047, 33); + fill_0(CHARS, 3047, 3056, -87); + fill_0(CHARS, 3056, 3073, 33); + fill_0(CHARS, 3073, 3076, -87); + CHARS[3076] = 33; + fill_0(CHARS, 3077, 3085, -19); + CHARS[3085] = 33; + fill_0(CHARS, 3086, 3089, -19); + CHARS[3089] = 33; + fill_0(CHARS, 3090, 3113, -19); + CHARS[3113] = 33; + fill_0(CHARS, 3114, 3124, -19); + CHARS[3124] = 33; + fill_0(CHARS, 3125, 3130, -19); + fill_0(CHARS, 3130, 3134, 33); + fill_0(CHARS, 3134, 3141, -87); + CHARS[3141] = 33; + fill_0(CHARS, 3142, 3145, -87); + CHARS[3145] = 33; + fill_0(CHARS, 3146, 3150, -87); + fill_0(CHARS, 3150, 3157, 33); + fill_0(CHARS, 3157, 3159, -87); + fill_0(CHARS, 3159, 3168, 33); + fill_0(CHARS, 3168, 3170, -19); + fill_0(CHARS, 3170, 3174, 33); + fill_0(CHARS, 3174, 3184, -87); + fill_0(CHARS, 3184, 3202, 33); + fill_0(CHARS, 3202, 3204, -87); + CHARS[3204] = 33; + fill_0(CHARS, 3205, 3213, -19); + CHARS[3213] = 33; + fill_0(CHARS, 3214, 3217, -19); + CHARS[3217] = 33; + fill_0(CHARS, 3218, 3241, -19); + CHARS[3241] = 33; + fill_0(CHARS, 3242, 3252, -19); + CHARS[3252] = 33; + fill_0(CHARS, 3253, 3258, -19); + fill_0(CHARS, 3258, 3262, 33); + fill_0(CHARS, 3262, 3269, -87); + CHARS[3269] = 33; + fill_0(CHARS, 3270, 3273, -87); + CHARS[3273] = 33; + fill_0(CHARS, 3274, 3278, -87); + fill_0(CHARS, 3278, 3285, 33); + fill_0(CHARS, 3285, 3287, -87); + fill_0(CHARS, 3287, 3294, 33); + CHARS[3294] = -19; + CHARS[3295] = 33; + fill_0(CHARS, 3296, 3298, -19); + fill_0(CHARS, 3298, 3302, 33); + fill_0(CHARS, 3302, 3312, -87); + fill_0(CHARS, 3312, 3330, 33); + fill_0(CHARS, 3330, 3332, -87); + CHARS[3332] = 33; + fill_0(CHARS, 3333, 3341, -19); + CHARS[3341] = 33; + fill_0(CHARS, 3342, 3345, -19); + CHARS[3345] = 33; + fill_0(CHARS, 3346, 3369, -19); + CHARS[3369] = 33; + fill_0(CHARS, 3370, 3386, -19); + fill_0(CHARS, 3386, 3390, 33); + fill_0(CHARS, 3390, 3396, -87); + fill_0(CHARS, 3396, 3398, 33); + fill_0(CHARS, 3398, 3401, -87); + CHARS[3401] = 33; + fill_0(CHARS, 3402, 3406, -87); + fill_0(CHARS, 3406, 3415, 33); + CHARS[3415] = -87; + fill_0(CHARS, 3416, 3424, 33); + fill_0(CHARS, 3424, 3426, -19); + fill_0(CHARS, 3426, 3430, 33); + fill_0(CHARS, 3430, 3440, -87); + fill_0(CHARS, 3440, 3585, 33); + fill_0(CHARS, 3585, 3631, -19); + CHARS[3631] = 33; + CHARS[3632] = -19; + CHARS[3633] = -87; + fill_0(CHARS, 3634, 3636, -19); + fill_0(CHARS, 3636, 3643, -87); + fill_0(CHARS, 3643, 3648, 33); + fill_0(CHARS, 3648, 3654, -19); + fill_0(CHARS, 3654, 3663, -87); + CHARS[3663] = 33; + fill_0(CHARS, 3664, 3674, -87); + fill_0(CHARS, 3674, 3713, 33); + fill_0(CHARS, 3713, 3715, -19); + CHARS[3715] = 33; + CHARS[3716] = -19; + fill_0(CHARS, 3717, 3719, 33); + fill_0(CHARS, 3719, 3721, -19); + CHARS[3721] = 33; + CHARS[3722] = -19; + fill_0(CHARS, 3723, 3725, 33); + CHARS[3725] = -19; + fill_0(CHARS, 3726, 3732, 33); + fill_0(CHARS, 3732, 3736, -19); + CHARS[3736] = 33; + fill_0(CHARS, 3737, 3744, -19); + CHARS[3744] = 33; + fill_0(CHARS, 3745, 3748, -19); + CHARS[3748] = 33; + CHARS[3749] = -19; + CHARS[3750] = 33; + CHARS[3751] = -19; + fill_0(CHARS, 3752, 3754, 33); + fill_0(CHARS, 3754, 3756, -19); + CHARS[3756] = 33; + fill_0(CHARS, 3757, 3759, -19); + CHARS[3759] = 33; + CHARS[3760] = -19; + CHARS[3761] = -87; + fill_0(CHARS, 3762, 3764, -19); + fill_0(CHARS, 3764, 3770, -87); + CHARS[3770] = 33; + fill_0(CHARS, 3771, 3773, -87); + CHARS[3773] = -19; + fill_0(CHARS, 3774, 3776, 33); + fill_0(CHARS, 3776, 3781, -19); + CHARS[3781] = 33; + CHARS[3782] = -87; + CHARS[3783] = 33; + fill_0(CHARS, 3784, 3790, -87); + fill_0(CHARS, 3790, 3792, 33); + fill_0(CHARS, 3792, 3802, -87); + fill_0(CHARS, 3802, 3864, 33); + fill_0(CHARS, 3864, 3866, -87); + fill_0(CHARS, 3866, 3872, 33); + fill_0(CHARS, 3872, 3882, -87); + fill_0(CHARS, 3882, 3893, 33); + CHARS[3893] = -87; + CHARS[3894] = 33; + CHARS[3895] = -87; + CHARS[3896] = 33; + CHARS[3897] = -87; + fill_0(CHARS, 3898, 3902, 33); + fill_0(CHARS, 3902, 3904, -87); + fill_0(CHARS, 3904, 3912, -19); + CHARS[3912] = 33; + fill_0(CHARS, 3913, 3946, -19); + fill_0(CHARS, 3946, 3953, 33); + fill_0(CHARS, 3953, 3973, -87); + CHARS[3973] = 33; + fill_0(CHARS, 3974, 3980, -87); + fill_0(CHARS, 3980, 3984, 33); + fill_0(CHARS, 3984, 3990, -87); + CHARS[3990] = 33; + CHARS[3991] = -87; + CHARS[3992] = 33; + fill_0(CHARS, 3993, 4014, -87); + fill_0(CHARS, 4014, 4017, 33); + fill_0(CHARS, 4017, 4024, -87); + CHARS[4024] = 33; + CHARS[4025] = -87; + fill_0(CHARS, 4026, 4256, 33); + fill_0(CHARS, 4256, 4294, -19); + fill_0(CHARS, 4294, 4304, 33); + fill_0(CHARS, 4304, 4343, -19); + fill_0(CHARS, 4343, 4352, 33); + CHARS[4352] = -19; + CHARS[4353] = 33; + fill_0(CHARS, 4354, 4356, -19); + CHARS[4356] = 33; + fill_0(CHARS, 4357, 4360, -19); + CHARS[4360] = 33; + CHARS[4361] = -19; + CHARS[4362] = 33; + fill_0(CHARS, 4363, 4365, -19); + CHARS[4365] = 33; + fill_0(CHARS, 4366, 4371, -19); + fill_0(CHARS, 4371, 4412, 33); + CHARS[4412] = -19; + CHARS[4413] = 33; + CHARS[4414] = -19; + CHARS[4415] = 33; + CHARS[4416] = -19; + fill_0(CHARS, 4417, 4428, 33); + CHARS[4428] = -19; + CHARS[4429] = 33; + CHARS[4430] = -19; + CHARS[4431] = 33; + CHARS[4432] = -19; + fill_0(CHARS, 4433, 4436, 33); + fill_0(CHARS, 4436, 4438, -19); + fill_0(CHARS, 4438, 4441, 33); + CHARS[4441] = -19; + fill_0(CHARS, 4442, 4447, 33); + fill_0(CHARS, 4447, 4450, -19); + CHARS[4450] = 33; + CHARS[4451] = -19; + CHARS[4452] = 33; + CHARS[4453] = -19; + CHARS[4454] = 33; + CHARS[4455] = -19; + CHARS[4456] = 33; + CHARS[4457] = -19; + fill_0(CHARS, 4458, 4461, 33); + fill_0(CHARS, 4461, 4463, -19); + fill_0(CHARS, 4463, 4466, 33); + fill_0(CHARS, 4466, 4468, -19); + CHARS[4468] = 33; + CHARS[4469] = -19; + fill_0(CHARS, 4470, 4510, 33); + CHARS[4510] = -19; + fill_0(CHARS, 4511, 4520, 33); + CHARS[4520] = -19; + fill_0(CHARS, 4521, 4523, 33); + CHARS[4523] = -19; + fill_0(CHARS, 4524, 4526, 33); + fill_0(CHARS, 4526, 4528, -19); + fill_0(CHARS, 4528, 4535, 33); + fill_0(CHARS, 4535, 4537, -19); + CHARS[4537] = 33; + CHARS[4538] = -19; + CHARS[4539] = 33; + fill_0(CHARS, 4540, 4547, -19); + fill_0(CHARS, 4547, 4587, 33); + CHARS[4587] = -19; + fill_0(CHARS, 4588, 4592, 33); + CHARS[4592] = -19; + fill_0(CHARS, 4593, 4601, 33); + CHARS[4601] = -19; + fill_0(CHARS, 4602, 7680, 33); + fill_0(CHARS, 7680, 7836, -19); + fill_0(CHARS, 7836, 7840, 33); + fill_0(CHARS, 7840, 7930, -19); + fill_0(CHARS, 7930, 7936, 33); + fill_0(CHARS, 7936, 7958, -19); + fill_0(CHARS, 7958, 7960, 33); + fill_0(CHARS, 7960, 7966, -19); + fill_0(CHARS, 7966, 7968, 33); + fill_0(CHARS, 7968, 8006, -19); + fill_0(CHARS, 8006, 8008, 33); + fill_0(CHARS, 8008, 8014, -19); + fill_0(CHARS, 8014, 8016, 33); + fill_0(CHARS, 8016, 8024, -19); + CHARS[8024] = 33; + CHARS[8025] = -19; + CHARS[8026] = 33; + CHARS[8027] = -19; + CHARS[8028] = 33; + CHARS[8029] = -19; + CHARS[8030] = 33; + fill_0(CHARS, 8031, 8062, -19); + fill_0(CHARS, 8062, 8064, 33); + fill_0(CHARS, 8064, 8117, -19); + CHARS[8117] = 33; + fill_0(CHARS, 8118, 8125, -19); + CHARS[8125] = 33; + CHARS[8126] = -19; + fill_0(CHARS, 8127, 8130, 33); + fill_0(CHARS, 8130, 8133, -19); + CHARS[8133] = 33; + fill_0(CHARS, 8134, 8141, -19); + fill_0(CHARS, 8141, 8144, 33); + fill_0(CHARS, 8144, 8148, -19); + fill_0(CHARS, 8148, 8150, 33); + fill_0(CHARS, 8150, 8156, -19); + fill_0(CHARS, 8156, 8160, 33); + fill_0(CHARS, 8160, 8173, -19); + fill_0(CHARS, 8173, 8178, 33); + fill_0(CHARS, 8178, 8181, -19); + CHARS[8181] = 33; + fill_0(CHARS, 8182, 8189, -19); + fill_0(CHARS, 8189, 8400, 33); + fill_0(CHARS, 8400, 8413, -87); + fill_0(CHARS, 8413, 8417, 33); + CHARS[8417] = -87; + fill_0(CHARS, 8418, 8486, 33); + CHARS[8486] = -19; + fill_0(CHARS, 8487, 8490, 33); + fill_0(CHARS, 8490, 8492, -19); + fill_0(CHARS, 8492, 8494, 33); + CHARS[8494] = -19; + fill_0(CHARS, 8495, 8576, 33); + fill_0(CHARS, 8576, 8579, -19); + fill_0(CHARS, 8579, 12293, 33); + CHARS[12293] = -87; + CHARS[12294] = 33; + CHARS[12295] = -19; + fill_0(CHARS, 12296, 12321, 33); + fill_0(CHARS, 12321, 12330, -19); + fill_0(CHARS, 12330, 12336, -87); + CHARS[12336] = 33; + fill_0(CHARS, 12337, 12342, -87); + fill_0(CHARS, 12342, 12353, 33); + fill_0(CHARS, 12353, 12437, -19); + fill_0(CHARS, 12437, 12441, 33); + fill_0(CHARS, 12441, 12443, -87); + fill_0(CHARS, 12443, 12445, 33); + fill_0(CHARS, 12445, 12447, -87); + fill_0(CHARS, 12447, 12449, 33); + fill_0(CHARS, 12449, 12539, -19); + CHARS[12539] = 33; + fill_0(CHARS, 12540, 12543, -87); + fill_0(CHARS, 12543, 12549, 33); + fill_0(CHARS, 12549, 12589, -19); + fill_0(CHARS, 12589, 19968, 33); + fill_0(CHARS, 19968, 40870, -19); + fill_0(CHARS, 40870, 44032, 33); + fill_0(CHARS, 44032, 55204, -19); + fill_0(CHARS, 55204, $intern_65, 33); + fill_0(CHARS, 57344, 65534, 33); +} + +var CHARS; +function RegEx$ParseException(mes){ + RuntimeException_0.call(this, mes); +} + +defineClass(55, 63, $intern_44, RegEx$ParseException); +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParseException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParseException', 55); +function $next_16(this$static){ + var ch_0, low, ret; + if (this$static.offset >= this$static.regexlen) { + this$static.chardata = -1; + this$static.nexttoken = 1; + return; + } + ch_0 = $charAt(this$static.regex, this$static.offset++); + this$static.chardata = ch_0; + if (this$static.context == 1) { + switch (ch_0) { + case 92: + ret = 10; + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + this$static.chardata = $charAt(this$static.regex, this$static.offset++); + break; + case 45: + if ((this$static.options_0 & 512) == 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 91) { + ++this$static.offset; + ret = 24; + } + else + ret = 0; + break; + case 91: + if ((this$static.options_0 & 512) != 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 58) { + ++this$static.offset; + ret = 20; + break; + } + + default:if ((ch_0 & 64512) == $intern_65 && this$static.offset < this$static.regexlen) { + low = $charAt(this$static.regex, this$static.offset); + if ((low & 64512) == 56320) { + this$static.chardata = $intern_64 + (ch_0 - $intern_65 << 10) + low - 56320; + ++this$static.offset; + } + } + + ret = 0; + } + this$static.nexttoken = ret; + return; + } + switch (ch_0) { + case 124: + ret = 2; + break; + case 42: + ret = 3; + break; + case 43: + ret = 4; + break; + case 63: + ret = 5; + break; + case 41: + ret = 7; + break; + case 46: + ret = 8; + break; + case 91: + ret = 9; + break; + case 94: + ret = 11; + break; + case 36: + ret = 12; + break; + case 40: + ret = 6; + if (this$static.offset >= this$static.regexlen) + break; + if ($charAt(this$static.regex, this$static.offset) != 63) + break; + if (++this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + ch_0 = $charAt(this$static.regex, this$static.offset++); + switch (ch_0) { + case 58: + ret = 13; + break; + case 61: + ret = 14; + break; + case 33: + ret = 15; + break; + case 91: + ret = 19; + break; + case 62: + ret = 18; + break; + case 60: + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + ch_0 = $charAt(this$static.regex, this$static.offset++); + if (ch_0 == 61) { + ret = 16; + } + else if (ch_0 == 33) { + ret = 17; + } + else + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.3')))); + break; + case 35: + while (this$static.offset < this$static.regexlen) { + ch_0 = $charAt(this$static.regex, this$static.offset++); + if (ch_0 == 41) + break; + } + + if (ch_0 != 41) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.4')))); + ret = 21; + break; + default:if (ch_0 == 45 || 97 <= ch_0 && ch_0 <= 122 || 65 <= ch_0 && ch_0 <= 90) { + --this$static.offset; + ret = 22; + break; + } + else if (ch_0 == 40) { + ret = 23; + break; + } + + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + } + + break; + case 92: + ret = 10; + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + this$static.chardata = $charAt(this$static.regex, this$static.offset++); + break; + default:ret = 0; + } + this$static.nexttoken = ret; +} + +function $parse_3(this$static, regex, options){ + var i, position, ret; + this$static.options_0 = options; + this$static.offset = 0; + this$static.context = 0; + this$static.parennumber = 1; + this$static.regex = regex; + (this$static.options_0 & 16) == 16 && (this$static.regex = stripExtendedComment(this$static.regex)); + this$static.regexlen = this$static.regex.length; + $next_16(this$static); + ret = $parseRegex(this$static); + if (this$static.offset != this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.1')))); + if (this$static.references) { + for (i = 0; i < this$static.references.arrayList.array.length; i++) { + position = castTo($elementAt(this$static.references, i), 592); + if (this$static.parennumber <= position.refNumber) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.2')))); + } + this$static.references.arrayList.array.length = 0; + } + return ret; +} + +function $parseAtom(this$static){ + var ch_0, ch2, high, sur, tok; + ch_0 = this$static.nexttoken; + tok = null; + switch (ch_0) { + case 6: + return this$static.processParen(); + case 13: + return this$static.processParen2(); + case 23: + return this$static.processCondition(); + case 22: + return this$static.processModifiers(); + case 18: + return this$static.processIndependent(); + case 8: + $next_16(this$static); + tok = ($clinit_RegEx$Token() , token_dot); + break; + case 9: + return this$static.parseCharacterClass(true); + case 19: + return this$static.parseSetOperations(); + case 10: + switch (this$static.chardata) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + tok = this$static.getTokenForShorthand(this$static.chardata); + $next_16(this$static); + return tok; + case 101: + case 102: + case 110: + case 114: + case 116: + case 117: + case 118: + case 120: + { + ch2 = this$static.decodeEscaped(); + ch2 < $intern_64?(tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2))):(tok = createString_0(decomposeToSurrogates(ch2))); + } + + break; + case 99: + return this$static.processBacksolidus_c(); + case 67: + return this$static.processBacksolidus_C(); + case 105: + return this$static.processBacksolidus_i(); + case 73: + return this$static.processBacksolidus_I(); + case 103: + return this$static.processBacksolidus_g(); + case 88: + return this$static.processBacksolidus_X(); + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return this$static.processBackreference(); + case 80: + case 112: + tok = $processBacksolidus_pP(this$static, this$static.chardata); + if (!tok) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + break; + default:tok = createChar(this$static.chardata); + } + + $next_16(this$static); + break; + case 0: + if (this$static.chardata == 93 || this$static.chardata == 123 || this$static.chardata == 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); + tok = createChar(this$static.chardata); + high = this$static.chardata; + $next_16(this$static); + if ((high & 64512) == $intern_65 && this$static.nexttoken == 0 && (this$static.chardata & 64512) == 56320) { + sur = initUnidimensionalArray(C_classLit, $intern_45, 28, 2, 15, 1); + sur[0] = high & $intern_47; + sur[1] = this$static.chardata & $intern_47; + tok = createParen(createString_0(valueOf_8(sur, 0, sur.length)), 0); + $next_16(this$static); + } + + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); + } + return tok; +} + +function $parseFactor(this$static){ + var ch_0, max_0, min_0, off, tok; + ch_0 = this$static.nexttoken; + switch (ch_0) { + case 11: + return this$static.processCaret(); + case 12: + return this$static.processDollar(); + case 14: + return this$static.processLookahead(); + case 15: + return this$static.processNegativelookahead(); + case 16: + return this$static.processLookbehind(); + case 17: + return this$static.processNegativelookbehind(); + case 21: + $next_16(this$static); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; + case 10: + switch (this$static.chardata) { + case 65: + return this$static.processBacksolidus_A(); + case 90: + return this$static.processBacksolidus_Z(); + case 122: + return this$static.processBacksolidus_z(); + case 98: + return this$static.processBacksolidus_b(); + case 66: + return this$static.processBacksolidus_B(); + case 60: + return this$static.processBacksolidus_lt(); + case 62: + return this$static.processBacksolidus_gt(); + } + + } + tok = $parseAtom(this$static); + ch_0 = this$static.nexttoken; + switch (ch_0) { + case 3: + return this$static.processStar(tok); + case 4: + return this$static.processPlus(tok); + case 5: + return this$static.processQuestion(tok); + case 0: + if (this$static.chardata == 123 && this$static.offset < this$static.regexlen) { + off = this$static.offset; + min_0 = 0; + max_0 = -1; + if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + min_0 = ch_0 - 48; + while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + min_0 = min_0 * 10 + ch_0 - 48; + if (min_0 < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); + } + } + else { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.1')))); + } + max_0 = min_0; + if (ch_0 == 44) { + if (off >= this$static.regexlen) { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.3')))); + } + else if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + max_0 = ch_0 - 48; + while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + max_0 = max_0 * 10 + ch_0 - 48; + if (max_0 < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); + } + if (min_0 > max_0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.4')))); + } + else { + max_0 = -1; + } + } + if (ch_0 != 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.2')))); + if (this$static.checkQuestion(off)) { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok)); + this$static.offset = off + 1; + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok)); + this$static.offset = off; + } + tok.setMin(min_0); + tok.setMax(max_0); + $next_16(this$static); + } + + } + return tok; +} + +function $parseRegex(this$static){ + var parent_0, tok; + tok = $parseTerm(this$static); + parent_0 = null; + while (this$static.nexttoken == 2) { + $next_16(this$static); + if (!parent_0) { + parent_0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(parent_0, tok); + tok = parent_0; + } + tok.addChild($parseTerm(this$static)); + } + return tok; +} + +function $parseTerm(this$static){ + var ch_0, concat, tok; + ch_0 = this$static.nexttoken; + if (ch_0 == 2 || ch_0 == 7 || ch_0 == 1) { + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; + } + else { + tok = $parseFactor(this$static); + concat = null; + while ((ch_0 = this$static.nexttoken) != 2 && ch_0 != 7 && ch_0 != 1) { + if (!concat) { + concat = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(1)); + $addChild_0(concat, tok); + tok = concat; + } + $addChild_0(concat, $parseFactor(this$static)); + } + return tok; + } +} + +function $processBacksolidus_pP(this$static, c){ + var nameend, namestart, pname, positive; + $next_16(this$static); + if (this$static.nexttoken != 0 || this$static.chardata != 123) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.2')))); + positive = c == 112; + namestart = this$static.offset; + nameend = $indexOf_0(this$static.regex, 125, namestart); + if (nameend < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.3')))); + pname = $substring_1(this$static.regex, namestart, nameend); + this$static.offset = nameend + 1; + return getRange_1(pname, positive, (this$static.options_0 & 512) == 512); +} + +function RegEx$RegexParser(){ +} + +function hexChar(ch_0){ + if (ch_0 < 48) + return -1; + if (ch_0 > 102) + return -1; + if (ch_0 <= 57) + return ch_0 - 48; + if (ch_0 < 65) + return -1; + if (ch_0 <= 70) + return ch_0 - 65 + 10; + if (ch_0 < 97) + return -1; + return ch_0 - 97 + 10; +} + +defineClass(836, 1, {}, RegEx$RegexParser); +_.checkQuestion = function checkQuestion(off){ + return off < this.regexlen && $charAt(this.regex, off) == 63; +} +; +_.decodeEscaped = function decodeEscaped(){ + var c, uv, uv0, v1, v10; + if (this.nexttoken != 10) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + c = this.chardata; + switch (c) { + case 101: + c = 27; + break; + case 102: + c = 12; + break; + case 110: + c = 10; + break; + case 114: + c = 13; + break; + case 116: + c = 9; + break; + case 120: + $next_16(this); + if (this.nexttoken != 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + if (this.chardata == 123) { + v10 = 0; + uv0 = 0; + do { + $next_16(this); + if (this.nexttoken != 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + if ((v10 = hexChar(this.chardata)) < 0) + break; + if (uv0 > uv0 * 16) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.2')))); + uv0 = uv0 * 16 + v10; + } + while (true); + if (this.chardata != 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.3')))); + if (uv0 > $intern_168) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.4')))); + c = uv0; + } + else { + v10 = 0; + if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv0 = v10; + $next_16(this); + if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv0 = uv0 * 16 + v10; + c = uv0; + } + + break; + case 117: + v1 = 0; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + c = uv; + break; + case 118: + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_16(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + if (uv > $intern_168) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descappe.4')))); + c = uv; + break; + case 65: + case 90: + case 122: + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.5')))); + } + return c; +} +; +_.getTokenForShorthand = function getTokenForShorthand(ch_0){ + var number, tok; + switch (ch_0) { + case 100: + tok = (this.options_0 & 32) == 32?getRange_0('Nd', true):($clinit_RegEx$Token() , token_0to9); + break; + case 68: + tok = (this.options_0 & 32) == 32?getRange_0('Nd', false):($clinit_RegEx$Token() , token_not_0to9); + break; + case 119: + tok = (this.options_0 & 32) == 32?getRange_0('IsWord', true):($clinit_RegEx$Token() , token_wordchars); + break; + case 87: + tok = (this.options_0 & 32) == 32?getRange_0('IsWord', false):($clinit_RegEx$Token() , token_not_wordchars); + break; + case 115: + tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', true):($clinit_RegEx$Token() , token_spaces); + break; + case 83: + tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', false):($clinit_RegEx$Token() , token_not_spaces); + break; + default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); + } + return tok; +} +; +_.parseCharacterClass = function parseCharacterClass(useNrange){ + var base, c, end, firstloop, name_0, nameend, positive, range, rangeend, tok, tok2, type_0; + this.context = 1; + $next_16(this); + base = null; + if (this.nexttoken == 0 && this.chardata == 94) { + $next_16(this); + if (useNrange) { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(5)); + } + else { + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_168); + tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); + } + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + } + firstloop = true; + while ((type_0 = this.nexttoken) != 1) { + if (type_0 == 0 && this.chardata == 93 && !firstloop) + break; + firstloop = false; + c = this.chardata; + end = false; + if (type_0 == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + $mergeRanges(tok, this.getTokenForShorthand(c)); + end = true; + break; + case 105: + case 73: + case 99: + case 67: + c = this.processCIinCharacterClass(tok, c); + c < 0 && (end = true); + break; + case 112: + case 80: + tok2 = $processBacksolidus_pP(this, c); + if (!tok2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + $mergeRanges(tok, tok2); + end = true; + break; + default:c = this.decodeEscaped(); + } + } + else if (type_0 == 20) { + nameend = $indexOf_0(this.regex, 58, this.offset); + if (nameend < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); + positive = true; + if ($charAt(this.regex, this.offset) == 94) { + ++this.offset; + positive = false; + } + name_0 = $substring_1(this.regex, this.offset, nameend); + range = getRange_1(name_0, positive, (this.options_0 & 512) == 512); + if (!range) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.3')))); + $mergeRanges(tok, range); + end = true; + if (nameend + 1 >= this.regexlen || $charAt(this.regex, nameend + 1) != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); + this.offset = nameend + 2; + } + $next_16(this); + if (!end) { + if (this.nexttoken != 0 || this.chardata != 45) { + $addRange(tok, c, c); + } + else { + $next_16(this); + if ((type_0 = this.nexttoken) == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (type_0 == 0 && this.chardata == 93) { + $addRange(tok, c, c); + $addRange(tok, 45, 45); + } + else { + rangeend = this.chardata; + type_0 == 10 && (rangeend = this.decodeEscaped()); + $next_16(this); + $addRange(tok, c, rangeend); + } + } + } + (this.options_0 & $intern_35) == $intern_35 && this.nexttoken == 0 && this.chardata == 44 && $next_16(this); + } + if (this.nexttoken == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (base) { + $subtractRanges(base, tok); + tok = base; + } + $sortRanges(tok); + $compactRanges(tok); + this.context = 0; + $next_16(this); + return tok; +} +; +_.parseSetOperations = function parseSetOperations(){ + var ch_0, t2, tok, type_0; + tok = this.parseCharacterClass(false); + while ((type_0 = this.nexttoken) != 7) { + ch_0 = this.chardata; + if (type_0 == 0 && (ch_0 == 45 || ch_0 == 38) || type_0 == 4) { + $next_16(this); + if (this.nexttoken != 9) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.1')))); + t2 = this.parseCharacterClass(false); + if (type_0 == 4) + $mergeRanges(tok, t2); + else if (ch_0 == 45) + $subtractRanges(tok, t2); + else if (ch_0 == 38) + $intersectRanges(tok, t2); + else + throw toJs(new RuntimeException_0('ASSERT')); + } + else { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.2')))); + } + } + $next_16(this); + return tok; +} +; +_.processBackreference = function processBackreference(){ + var refnum, tok; + refnum = this.chardata - 48; + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$StringToken(12, null, refnum)); + !this.references && (this.references = new Vector); + $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refnum)); + $next_16(this); + return tok; +} +; +_.processBacksolidus_A = function processBacksolidus_A(){ + $next_16(this); + return $clinit_RegEx$Token() , token_stringbeginning; +} +; +_.processBacksolidus_B = function processBacksolidus_B(){ + $next_16(this); + return $clinit_RegEx$Token() , token_not_wordedge; +} +; +_.processBacksolidus_C = function processBacksolidus_C(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_I = function processBacksolidus_I(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_X = function processBacksolidus_X(){ + $next_16(this); + return getCombiningCharacterSequence(); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z(){ + $next_16(this); + return $clinit_RegEx$Token() , token_stringend2; +} +; +_.processBacksolidus_b = function processBacksolidus_b(){ + $next_16(this); + return $clinit_RegEx$Token() , token_wordedge; +} +; +_.processBacksolidus_c = function processBacksolidus_c(){ + var ch2; + if (this.offset >= this.regexlen || ((ch2 = $charAt(this.regex, this.offset++)) & 65504) != 64) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.1')))); + $next_16(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2 - 64); +} +; +_.processBacksolidus_g = function processBacksolidus_g(){ + $next_16(this); + return getGraphemePattern(); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt(){ + $next_16(this); + return $clinit_RegEx$Token() , token_wordend; +} +; +_.processBacksolidus_i = function processBacksolidus_i(){ + var tok; + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 105)); + $next_16(this); + return tok; +} +; +_.processBacksolidus_lt = function processBacksolidus_lt(){ + $next_16(this); + return $clinit_RegEx$Token() , token_wordbeginning; +} +; +_.processBacksolidus_z = function processBacksolidus_z(){ + $next_16(this); + return $clinit_RegEx$Token() , token_stringend; +} +; +_.processCIinCharacterClass = function processCIinCharacterClass(tok, c){ + return this.decodeEscaped(); +} +; +_.processCaret = function processCaret(){ + $next_16(this); + return $clinit_RegEx$Token() , token_linebeginning; +} +; +_.processCondition = function processCondition(){ + var ch_0, condition, noPattern, refno, yesPattern; + if (this.offset + 1 >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.4')))); + refno = -1; + condition = null; + ch_0 = $charAt(this.regex, this.offset); + if (49 <= ch_0 && ch_0 <= 57) { + refno = ch_0 - 48; + !this.references && (this.references = new Vector); + $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refno)); + ++this.offset; + if ($charAt(this.regex, this.offset) != 41) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + ++this.offset; + } + else { + ch_0 == 63 && --this.offset; + $next_16(this); + condition = $parseFactor(this); + switch (condition.type_0) { + case 20: + case 21: + case 22: + case 23: + break; + case 8: + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.5')))); + } + } + $next_16(this); + yesPattern = $parseRegex(this); + noPattern = null; + if (yesPattern.type_0 == 2) { + if (yesPattern.size_2() != 2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.6')))); + noPattern = yesPattern.getChild(1); + yesPattern = yesPattern.getChild(0); + } + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ConditionToken(refno, condition, yesPattern, noPattern); +} +; +_.processDollar = function processDollar(){ + $next_16(this); + return $clinit_RegEx$Token() , token_lineend; +} +; +_.processIndependent = function processIndependent(){ + var tok; + $next_16(this); + tok = createLook(24, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processLookahead = function processLookahead(){ + var tok; + $next_16(this); + tok = createLook(20, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processLookbehind = function processLookbehind(){ + var tok; + $next_16(this); + tok = createLook(22, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processModifiers = function processModifiers(){ + var add_0, ch_0, mask, tok, v; + add_0 = 0; + mask = 0; + ch_0 = -1; + while (this.offset < this.regexlen) { + ch_0 = $charAt(this.regex, this.offset); + v = getOptionValue(ch_0); + if (v == 0) + break; + add_0 |= v; + ++this.offset; + } + if (this.offset >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); + if (ch_0 == 45) { + ++this.offset; + while (this.offset < this.regexlen) { + ch_0 = $charAt(this.regex, this.offset); + v = getOptionValue(ch_0); + if (v == 0) + break; + mask |= v; + ++this.offset; + } + if (this.offset >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); + } + if (ch_0 == 58) { + ++this.offset; + $next_16(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + } + else if (ch_0 == 41) { + ++this.offset; + $next_16(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + } + else + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.3')))); + return tok; +} +; +_.processNegativelookahead = function processNegativelookahead(){ + var tok; + $next_16(this); + tok = createLook(21, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processNegativelookbehind = function processNegativelookbehind(){ + var tok; + $next_16(this); + tok = createLook(23, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processParen = function processParen(){ + var p, tok; + $next_16(this); + p = this.parennumber++; + tok = createParen($parseRegex(this), p); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processParen2 = function processParen2(){ + var tok; + $next_16(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processPlus = function processPlus(tok){ + $next_16(this); + if (this.nexttoken == 5) { + $next_16(this); + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok))); + } + else + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); +} +; +_.processQuestion = function processQuestion(tok){ + var par; + $next_16(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + if (this.nexttoken == 5) { + $next_16(this); + $addChild_0(par, (null , token_empty)); + $addChild_0(par, tok); + } + else { + $addChild_0(par, tok); + $addChild_0(par, (null , token_empty)); + } + return par; +} +; +_.processStar = function processStar(tok){ + $next_16(this); + if (this.nexttoken == 5) { + $next_16(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok); + } + else + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); +} +; +_.chardata = 0; +_.context = 0; +_.nexttoken = 0; +_.offset = 0; +_.options_0 = 0; +_.parennumber = 1; +_.references = null; +_.regexlen = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser', 836); +function $decodeEscaped(this$static){ + var c; + if (this$static.nexttoken != 10) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + c = this$static.chardata; + switch (c) { + case 110: + c = 10; + break; + case 114: + c = 13; + break; + case 116: + c = 9; + break; + case 92: + case 124: + case 46: + case 94: + case 45: + case 63: + case 42: + case 43: + case 123: + case 125: + case 40: + case 41: + case 91: + case 93: + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); + } + return c; +} + +function $getTokenForShorthand(ch_0){ + var number; + switch (ch_0) { + case 100: + return getRange('xml:isDigit', true); + case 68: + return getRange('xml:isDigit', false); + case 119: + return getRange('xml:isWord', true); + case 87: + return getRange('xml:isWord', false); + case 115: + return getRange('xml:isSpace', true); + case 83: + return getRange('xml:isSpace', false); + case 99: + return getRange('xml:isNameChar', true); + case 67: + return getRange('xml:isNameChar', false); + case 105: + return getRange('xml:isInitialNameChar', true); + case 73: + return getRange('xml:isInitialNameChar', false); + default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); + } +} + +function $parseCharacterClass(this$static){ + var base, c, end, firstloop, range2, rangeend, tok, tok2, type_0; + this$static.context = 1; + $next_16(this$static); + base = null; + if (this$static.nexttoken == 0 && this$static.chardata == 94) { + $next_16(this$static); + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_168); + tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + } + firstloop = true; + while ((type_0 = this$static.nexttoken) != 1) { + if (type_0 == 0 && this$static.chardata == 93 && !firstloop) { + if (base) { + $subtractRanges(base, tok); + tok = base; + } + break; + } + c = this$static.chardata; + end = false; + if (type_0 == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + $mergeRanges(tok, $getTokenForShorthand(c)); + end = true; + break; + case 105: + case 73: + case 99: + case 67: + c = ($mergeRanges(tok, $getTokenForShorthand(c)) , -1); + c < 0 && (end = true); + break; + case 112: + case 80: + tok2 = $processBacksolidus_pP(this$static, c); + if (!tok2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + $mergeRanges(tok, tok2); + end = true; + break; + default:c = $decodeEscaped(this$static); + } + } + else if (type_0 == 24 && !firstloop) { + if (base) { + $subtractRanges(base, tok); + tok = base; + } + range2 = $parseCharacterClass(this$static); + $subtractRanges(tok, range2); + if (this$static.nexttoken != 0 || this$static.chardata != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.5')))); + break; + } + $next_16(this$static); + if (!end) { + if (type_0 == 0) { + if (c == 91) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); + if (c == 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); + if (c == 45 && !firstloop && this$static.chardata != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + if (this$static.nexttoken != 0 || this$static.chardata != 45 || c == 45 && firstloop) { + $addRange(tok, c, c); + } + else { + $next_16(this$static); + if ((type_0 = this$static.nexttoken) == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (type_0 == 0 && this$static.chardata == 93) { + $addRange(tok, c, c); + $addRange(tok, 45, 45); + } + else if (type_0 == 0 && this$static.chardata == 93 || type_0 == 24) { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + else { + rangeend = this$static.chardata; + if (type_0 == 0) { + if (rangeend == 91) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); + if (rangeend == 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); + if (rangeend == 45) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + else + type_0 == 10 && (rangeend = $decodeEscaped(this$static)); + $next_16(this$static); + if (c > rangeend) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.3')))); + $addRange(tok, c, rangeend); + } + } + } + firstloop = false; + } + if (this$static.nexttoken == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + $sortRanges(tok); + $compactRanges(tok); + this$static.context = 0; + $next_16(this$static); + return tok; +} + +function RegEx$ParserForXMLSchema(){ + RegEx$RegexParser.call(this); +} + +function getRange(name_0, positive){ + var tok, tok0; + if (!ranges_0) { + ranges_0 = new HashMap; + ranges2 = new HashMap; + tok0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '\t\n\r\r '); + $putStringValue(ranges_0, 'xml:isSpace', tok0); + $putStringValue(ranges2, 'xml:isSpace', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); + $putStringValue(ranges_0, 'xml:isDigit', tok0); + $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); + $putStringValue(ranges_0, 'xml:isDigit', tok0); + $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $mergeRanges(tok0, castTo($getStringValue(ranges_0, 'xml:isDigit'), 122)); + $putStringValue(ranges_0, 'xml:isWord', tok0); + $putStringValue(ranges2, 'xml:isWord', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $putStringValue(ranges_0, 'xml:isNameChar', tok0); + $putStringValue(ranges2, 'xml:isNameChar', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $addRange(tok0, 95, 95); + $addRange(tok0, 58, 58); + $putStringValue(ranges_0, 'xml:isInitialNameChar', tok0); + $putStringValue(ranges2, 'xml:isInitialNameChar', complementRanges(tok0)); + } + tok = positive?castTo($getStringValue(ranges_0, name_0), 138):castTo($getStringValue(ranges2, name_0), 138); + return tok; +} + +function setupRange(range, src_0){ + var i, len; + len = src_0.length; + for (i = 0; i < len; i += 2) + $addRange(range, (checkCriticalStringElementIndex(i, src_0.length) , src_0.charCodeAt(i)), (checkCriticalStringElementIndex(i + 1, src_0.length) , src_0.charCodeAt(i + 1))); +} + +defineClass(1947, 836, {}, RegEx$ParserForXMLSchema); +_.checkQuestion = function checkQuestion_0(off){ + return false; +} +; +_.decodeEscaped = function decodeEscaped_0(){ + return $decodeEscaped(this); +} +; +_.getTokenForShorthand = function getTokenForShorthand_0(ch_0){ + return $getTokenForShorthand(ch_0); +} +; +_.parseCharacterClass = function parseCharacterClass_0(useNrange){ + return $parseCharacterClass(this); +} +; +_.parseSetOperations = function parseSetOperations_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBackreference = function processBackreference_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_A = function processBacksolidus_A_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_B = function processBacksolidus_B_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_C = function processBacksolidus_C_0(){ + $next_16(this); + return $getTokenForShorthand(67); +} +; +_.processBacksolidus_I = function processBacksolidus_I_0(){ + $next_16(this); + return $getTokenForShorthand(73); +} +; +_.processBacksolidus_X = function processBacksolidus_X_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_b = function processBacksolidus_b_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_c = function processBacksolidus_c_0(){ + $next_16(this); + return $getTokenForShorthand(99); +} +; +_.processBacksolidus_g = function processBacksolidus_g_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_i = function processBacksolidus_i_0(){ + $next_16(this); + return $getTokenForShorthand(105); +} +; +_.processBacksolidus_lt = function processBacksolidus_lt_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_z = function processBacksolidus_z_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processCIinCharacterClass = function processCIinCharacterClass_0(tok, c){ + return $mergeRanges(tok, $getTokenForShorthand(c)) , -1; +} +; +_.processCaret = function processCaret_0(){ + $next_16(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 94); +} +; +_.processCondition = function processCondition_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processDollar = function processDollar_0(){ + $next_16(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 36); +} +; +_.processIndependent = function processIndependent_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processLookahead = function processLookahead_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processLookbehind = function processLookbehind_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processModifiers = function processModifiers_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processNegativelookahead = function processNegativelookahead_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processNegativelookbehind = function processNegativelookbehind_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processParen = function processParen_0(){ + var tok; + $next_16(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_16(this); + return tok; +} +; +_.processParen2 = function processParen2_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processPlus = function processPlus_0(tok){ + $next_16(this); + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); +} +; +_.processQuestion = function processQuestion_0(tok){ + var par; + $next_16(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(par, tok); + $addChild_0(par, (null , token_empty)); + return par; +} +; +_.processStar = function processStar_0(tok){ + $next_16(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); +} +; +var ranges_0 = null, ranges2 = null; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParserForXMLSchema_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParserForXMLSchema', 1947); +function createOptionString(options){ + var sb; + sb = new StringBuffer_0; + (options & 256) != 0 && (sb.string += 'F' , sb); + (options & 128) != 0 && (sb.string += 'H' , sb); + (options & 512) != 0 && (sb.string += 'X' , sb); + (options & 2) != 0 && (sb.string += 'i' , sb); + (options & 8) != 0 && (sb.string += 'm' , sb); + (options & 4) != 0 && (sb.string += 's' , sb); + (options & 32) != 0 && (sb.string += 'u' , sb); + (options & 64) != 0 && (sb.string += 'w' , sb); + (options & 16) != 0 && (sb.string += 'x' , sb); + (options & $intern_35) != 0 && (sb.string += ',' , sb); + return $intern(sb.string); +} + +function decomposeToSurrogates(ch_0){ + var chs; + chs = initUnidimensionalArray(C_classLit, $intern_45, 28, 2, 15, 1); + ch_0 -= $intern_64; + chs[0] = (ch_0 >> 10) + $intern_65 & $intern_47; + chs[1] = (ch_0 & 1023) + 56320 & $intern_47; + return valueOf_8(chs, 0, chs.length); +} + +function getOptionValue(ch_0){ + var ret; + ret = 0; + switch (ch_0) { + case 105: + ret = 2; + break; + case 109: + ret = 8; + break; + case 115: + ret = 4; + break; + case 120: + ret = 16; + break; + case 117: + ret = 32; + break; + case 119: + ret = 64; + break; + case 70: + ret = 256; + break; + case 72: + ret = 128; + break; + case 88: + ret = 512; + break; + case 44: + ret = $intern_35; + } + return ret; +} + +function parseOptions(){ + var i, options, v; + options = 0; + for (i = 0; i < 'X'.length; i++) { + v = getOptionValue((checkCriticalStringElementIndex(i, 'X'.length) , 'X'.charCodeAt(i))); + if (v == 0) + throw toJs(new RegEx$ParseException((checkCriticalStringElementIndex(i, 'X'.length + 1) , 'Unknown Option: ' + 'X'.substr(i)))); + options |= v; + } + return options; +} + +function quoteMeta(literal){ + var buffer, ch_0, i, len; + len = literal.length; + buffer = null; + for (i = 0; i < len; i++) { + ch_0 = (checkCriticalStringElementIndex(i, literal.length) , literal.charCodeAt(i)); + if ($indexOf_1('.*+?{[()|\\^$', fromCodePoint(ch_0)) >= 0) { + if (!buffer) { + buffer = new StringBuffer_0; + i > 0 && $append_3(buffer, (checkCriticalStringBounds(0, i, literal.length) , literal.substr(0, i))); + } + buffer.string += '\\'; + $append(buffer, ch_0 & $intern_47); + } + else + !!buffer && $append(buffer, ch_0 & $intern_47); + } + return buffer?buffer.string:literal; +} + +function stripExtendedComment(regex){ + var buffer, ch_0, len, next, offset; + len = regex.length; + buffer = new StringBuffer_0; + offset = 0; + while (offset < len) { + ch_0 = $charAt(regex, offset++); + if (ch_0 == 9 || ch_0 == 10 || ch_0 == 12 || ch_0 == 13 || ch_0 == 32) + continue; + if (ch_0 == 35) { + while (offset < len) { + ch_0 = $charAt(regex, offset++); + if (ch_0 == 13 || ch_0 == 10) + break; + } + continue; + } + if (ch_0 == 92 && offset < len) { + if ((next = (checkCriticalStringElementIndex(offset, regex.length) , regex.charCodeAt(offset))) == 35 || next == 9 || next == 10 || next == 12 || next == 13 || next == 32) { + $append(buffer, next & $intern_47); + ++offset; + } + else { + buffer.string += '\\'; + $append(buffer, next & $intern_47); + ++offset; + } + } + else + $append(buffer, ch_0 & $intern_47); + } + return buffer.string; +} + +function $clinit_RegEx$Token(){ + $clinit_RegEx$Token = emptyMethod; + token_empty = new RegEx$Token(7); + token_linebeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 94)); + ++tokens_0; + new RegEx$Token$CharToken(8, 64); + token_lineend = (++tokens_0 , new RegEx$Token$CharToken(8, 36)); + token_stringbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 65)); + token_stringend = (++tokens_0 , new RegEx$Token$CharToken(8, 122)); + token_stringend2 = (++tokens_0 , new RegEx$Token$CharToken(8, 90)); + token_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 98)); + token_not_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 66)); + token_wordbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 60)); + token_wordend = (++tokens_0 , new RegEx$Token$CharToken(8, 62)); + token_dot = new RegEx$Token(11); + token_0to9 = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_0to9, 48, 57); + token_wordchars = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_wordchars, 48, 57); + $addRange(token_wordchars, 65, 90); + $addRange(token_wordchars, 95, 95); + $addRange(token_wordchars, 97, 122); + token_spaces = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_spaces, 9, 9); + $addRange(token_spaces, 10, 10); + $addRange(token_spaces, 12, 12); + $addRange(token_spaces, 13, 13); + $addRange(token_spaces, 32, 32); + token_not_0to9 = complementRanges(token_0to9); + token_not_wordchars = complementRanges(token_wordchars); + token_not_spaces = complementRanges(token_spaces); + categories = new HashMap; + categories2 = new HashMap; + categoryNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Cn', 'Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Me', 'Mc', 'Nd', 'Nl', 'No', 'Zs', 'Zl', 'Zp', 'Cc', 'Cf', null, 'Co', 'Cs', 'Pd', 'Ps', 'Pe', 'Pc', 'Po', 'Sm', 'Sc', 'Sk', 'So', 'Pi', 'Pf', 'L', 'M', 'N', 'Z', 'C', 'P', 'S']); + blockNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Basic Latin', 'Latin-1 Supplement', 'Latin Extended-A', 'Latin Extended-B', 'IPA Extensions', 'Spacing Modifier Letters', 'Combining Diacritical Marks', 'Greek', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul Jamo', 'Ethiopic', 'Cherokee', 'Unified Canadian Aboriginal Syllabics', 'Ogham', 'Runic', 'Khmer', 'Mongolian', 'Latin Extended Additional', 'Greek Extended', 'General Punctuation', 'Superscripts and Subscripts', 'Currency Symbols', 'Combining Marks for Symbols', 'Letterlike Symbols', 'Number Forms', 'Arrows', 'Mathematical Operators', 'Miscellaneous Technical', 'Control Pictures', 'Optical Character Recognition', 'Enclosed Alphanumerics', 'Box Drawing', 'Block Elements', 'Geometric Shapes', 'Miscellaneous Symbols', 'Dingbats', 'Braille Patterns', 'CJK Radicals Supplement', 'Kangxi Radicals', 'Ideographic Description Characters', 'CJK Symbols and Punctuation', 'Hiragana', 'Katakana', 'Bopomofo', 'Hangul Compatibility Jamo', 'Kanbun', 'Bopomofo Extended', 'Enclosed CJK Letters and Months', 'CJK Compatibility', 'CJK Unified Ideographs Extension A', 'CJK Unified Ideographs', 'Yi Syllables', 'Yi Radicals', 'Hangul Syllables', 'Private Use', 'CJK Compatibility Ideographs', 'Alphabetic Presentation Forms', 'Arabic Presentation Forms-A', 'Combining Half Marks', 'CJK Compatibility Forms', 'Small Form Variants', 'Arabic Presentation Forms-B', 'Specials', 'Halfwidth and Fullwidth Forms', 'Old Italic', 'Gothic', 'Deseret', 'Byzantine Musical Symbols', 'Musical Symbols', 'Mathematical Alphanumeric Symbols', 'CJK Unified Ideographs Extension B', 'CJK Compatibility Ideographs Supplement', 'Tags']); + nonBMPBlockRanges = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_49, 28, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); +} + +function RegEx$Token(type_0){ + this.type_0 = type_0; +} + +function createChar(ch_0){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$CharToken(0, ch_0); +} + +function createClosure(tok){ + ++tokens_0; + return new RegEx$Token$ClosureToken(3, tok); +} + +function createConcat(tok1, tok2){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ConcatToken(tok1, tok2); +} + +function createLook(type_0, child){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ParenToken(type_0, child, 0); +} + +function createModifierGroup(child, add_0, mask){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ModifierToken(child, add_0, mask); +} + +function createParen(child, pnumber){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ParenToken(6, child, pnumber); +} + +function createString_0(str){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$StringToken(10, str, 0); +} + +function getCombiningCharacterSequence(){ + $clinit_RegEx$Token(); + var foo; + if (token_ccs) + return token_ccs; + foo = createClosure(getRange_0('M', true)); + foo = createConcat(getRange_0('M', false), foo); + token_ccs = foo; + return token_ccs; +} + +function getGraphemePattern(){ + $clinit_RegEx$Token(); + var base_char, combiner_wo_virama, foo, i, left, virama; + if (token_grapheme) + return token_grapheme; + base_char = (++tokens_0 , new RegEx$RangeToken(4)); + $mergeRanges(base_char, getRange_0('ASSIGNED', true)); + $subtractRanges(base_char, getRange_0('M', true)); + $subtractRanges(base_char, getRange_0('C', true)); + virama = (++tokens_0 , new RegEx$RangeToken(4)); + for (i = 0; i < 11; i++) { + $addRange(virama, i, i); + } + combiner_wo_virama = (++tokens_0 , new RegEx$RangeToken(4)); + $mergeRanges(combiner_wo_virama, getRange_0('M', true)); + $addRange(combiner_wo_virama, 4448, 4607); + $addRange(combiner_wo_virama, 65438, 65439); + left = (++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(left, base_char); + $addChild_0(left, token_empty); + foo = (++tokens_0 , new RegEx$Token$UnionToken(2)); + foo.addChild(createConcat(virama, getRange_0('L', true))); + foo.addChild(combiner_wo_virama); + foo = (++tokens_0 , new RegEx$Token$ClosureToken(3, foo)); + foo = (++tokens_0 , new RegEx$Token$ConcatToken(left, foo)); + token_grapheme = foo; + return token_grapheme; +} + +function getRange_0(name_0, positive){ + $clinit_RegEx$Token(); + var all, buffer, ci, i, i0, location_0, n, oldLength, r1, ranges, rend, rstart, tok; + if ($size_2(categories) == 0) { + ranges = initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit, $intern_16, 122, categoryNames.length, 0, 1); + for (i0 = 0; i0 < ranges.length; i0++) { + ranges[i0] = (++tokens_0 , new RegEx$RangeToken(4)); + } + buffer = new StringBuffer_0; + for (i = 0; i < blockNames.length; i++) { + r1 = (++tokens_0 , new RegEx$RangeToken(4)); + if (i < 84) { + location_0 = i * 2; + rstart = (checkCriticalStringElementIndex(location_0, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0)); + rend = (checkCriticalStringElementIndex(location_0 + 1, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0 + 1)); + $addRange(r1, rstart, rend); + } + else { + location_0 = (i - 84) * 2; + $addRange(r1, nonBMPBlockRanges[location_0], nonBMPBlockRanges[location_0 + 1]); + } + n = blockNames[i]; + $equals_5(n, 'Specials') && $addRange(r1, 65520, 65533); + if ($equals_5(n, 'Private Use')) { + $addRange(r1, 983040, 1048573); + $addRange(r1, 1048576, 1114109); + } + $putStringValue(categories, n, r1); + $putStringValue(categories2, n, complementRanges(r1)); + oldLength = buffer.string.length; + 0 < oldLength?(buffer.string = $substring_1(buffer.string, 0, 0)):0 > oldLength && (buffer.string += valueOf_7(initUnidimensionalArray(C_classLit, $intern_45, 28, -oldLength, 15, 1))); + buffer.string += 'Is'; + if ($indexOf_1(n, fromCodePoint(32)) >= 0) { + for (ci = 0; ci < n.length; ci++) { + checkCriticalStringElementIndex(ci, n.length); + n.charCodeAt(ci) != 32 && $append(buffer, (checkCriticalStringElementIndex(ci, n.length) , n.charCodeAt(ci))); + } + } + else { + buffer.string += '' + n; + } + setAlias(buffer.string, n, true); + } + setAlias('ASSIGNED', 'Cn', false); + setAlias('UNASSIGNED', 'Cn', true); + all = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(all, 0, $intern_168); + $putStringValue(categories, 'ALL', all); + $putStringValue(categories2, 'ALL', complementRanges(all)); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'ASSIGNED', 'ASSIGNED'); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'UNASSIGNED', 'UNASSIGNED'); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'ALL', 'ALL'); + } + tok = positive?castTo($getStringValue(categories, name_0), 138):castTo($getStringValue(categories2, name_0), 138); + return tok; +} + +function getRange_1(name_0, positive, xs){ + $clinit_RegEx$Token(); + var range; + range = getRange_0(name_0, positive); + xs && !!range && isRegisterNonXS(name_0) && (range = null); + return range; +} + +function isRegisterNonXS(name_0){ + if (!nonxs) + return false; + return $hasStringValue(nonxs, name_0); +} + +function setAlias(newName, name_0, positive){ + var t1, t2; + t1 = castTo($getStringValue(categories, name_0), 122); + t2 = castTo($getStringValue(categories2, name_0), 122); + if (positive) { + $putStringValue(categories, newName, t1); + $putStringValue(categories2, newName, t2); + } + else { + $putStringValue(categories2, newName, t1); + $putStringValue(categories, newName, t2); + } +} + +defineClass(122, 1, $intern_169, RegEx$Token); +_.addChild = function addChild(tok){ + throw toJs(new RuntimeException_0('Not supported.')); +} +; +_.getChar = function getChar(){ + return -1; +} +; +_.getChild = function getChild(index_0){ + return null; +} +; +_.getString = function getString(){ + return null; +} +; +_.setMax = function setMax(max_0){ +} +; +_.setMin = function setMin(min_0){ +} +; +_.size_2 = function size_82(){ + return 0; +} +; +_.toString_0 = function toString_162(){ + return this.toString_1(0); +} +; +_.toString_1 = function toString_163(options){ + return this.type_0 == 11?'.':''; +} +; +_.type_0 = 0; +var blockNames, categories, categories2, categoryNames, nonBMPBlockRanges, nonxs = null, token_0to9, token_ccs = null, token_dot, token_empty, token_grapheme = null, token_linebeginning, token_lineend, token_not_0to9, token_not_spaces, token_not_wordchars, token_not_wordedge, token_spaces, token_stringbeginning, token_stringend, token_stringend2, token_wordbeginning, token_wordchars, token_wordedge, token_wordend, tokens_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token', 122); +function $addRange(this$static, start_0, end){ + var pos, r1, r2, temp; + if (start_0 <= end) { + r1 = start_0; + r2 = end; + } + else { + r1 = end; + r2 = start_0; + } + pos = 0; + if (this$static.ranges == null) { + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_49, 28, 2, 15, 1); + this$static.ranges[0] = r1; + this$static.ranges[1] = r2; + this$static.sorted = true; + } + else { + pos = this$static.ranges.length; + if (this$static.ranges[pos - 1] + 1 == r1) { + this$static.ranges[pos - 1] = r2; + return; + } + temp = initUnidimensionalArray(I_classLit, $intern_49, 28, pos + 2, 15, 1); + arraycopy(this$static.ranges, 0, temp, 0, pos); + this$static.ranges = temp; + this$static.ranges[pos - 1] >= r1 && (this$static.sorted = false , this$static.compacted = false); + this$static.ranges[pos++] = r1; + this$static.ranges[pos] = r2; + this$static.sorted || $sortRanges(this$static); + } +} + +function $compactRanges(this$static){ + var base, baseend, result, target; + if (this$static.ranges == null || this$static.ranges.length <= 2) + return; + if (this$static.compacted) + return; + base = 0; + target = 0; + while (target < this$static.ranges.length) { + if (base != target) { + this$static.ranges[base] = this$static.ranges[target++]; + this$static.ranges[base + 1] = this$static.ranges[target++]; + } + else + target += 2; + baseend = this$static.ranges[base + 1]; + while (target < this$static.ranges.length) { + if (baseend + 1 < this$static.ranges[target]) + break; + if (baseend + 1 == this$static.ranges[target]) { + this$static.ranges[base + 1] = this$static.ranges[target + 1]; + baseend = this$static.ranges[base + 1]; + target += 2; + } + else if (baseend >= this$static.ranges[target + 1]) { + target += 2; + } + else if (baseend < this$static.ranges[target + 1]) { + this$static.ranges[base + 1] = this$static.ranges[target + 1]; + baseend = this$static.ranges[base + 1]; + target += 2; + } + else { + throw toJs(new RuntimeException_0('Token#compactRanges(): Internel Error: [' + this$static.ranges[base] + ',' + this$static.ranges[base + 1] + '] [' + this$static.ranges[target] + ',' + this$static.ranges[target + 1] + ']')); + } + } + base += 2; + } + if (base != this$static.ranges.length) { + result = initUnidimensionalArray(I_classLit, $intern_49, 28, base, 15, 1); + arraycopy(this$static.ranges, 0, result, 0, base); + this$static.ranges = result; + } + this$static.compacted = true; +} + +function $intersectRanges(this$static, token){ + var result, src1, src1begin, src1end, src2, src2begin, src2end, tok, wp; + tok = token; + if (tok.ranges == null || this$static.ranges == null) + return; + $sortRanges(this$static); + $compactRanges(this$static); + $sortRanges(tok); + $compactRanges(tok); + result = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.ranges.length + tok.ranges.length, 15, 1); + wp = 0; + src1 = 0; + src2 = 0; + while (src1 < this$static.ranges.length && src2 < tok.ranges.length) { + src1begin = this$static.ranges[src1]; + src1end = this$static.ranges[src1 + 1]; + src2begin = tok.ranges[src2]; + src2end = tok.ranges[src2 + 1]; + if (src1end < src2begin) { + src1 += 2; + } + else if (src1end >= src2begin && src1begin <= src2end) { + if (src2begin <= src1begin && src1end <= src2end) { + result[wp++] = src1begin; + result[wp++] = src1end; + src1 += 2; + } + else if (src2begin <= src1begin) { + result[wp++] = src1begin; + result[wp++] = src2end; + this$static.ranges[src1] = src2end + 1; + src2 += 2; + } + else if (src1end <= src2end) { + result[wp++] = src2begin; + result[wp++] = src1end; + src1 += 2; + } + else { + result[wp++] = src2begin; + result[wp++] = src2end; + this$static.ranges[src1] = src2end + 1; + } + } + else if (src2end < src1begin) { + src2 += 2; + } + else { + throw toJs(new RuntimeException_0('Token#intersectRanges(): Internal Error: [' + this$static.ranges[src1] + ',' + this$static.ranges[src1 + 1] + '] & [' + tok.ranges[src2] + ',' + tok.ranges[src2 + 1] + ']')); + } + } + while (src1 < this$static.ranges.length) { + result[wp++] = this$static.ranges[src1++]; + result[wp++] = this$static.ranges[src1++]; + } + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_49, 28, wp, 15, 1); + arraycopy(result, 0, this$static.ranges, 0, wp); +} + +function $mergeRanges(this$static, token){ + var i, j, k, result, tok; + tok = castTo(token, 138); + $sortRanges(this$static); + $sortRanges(tok); + if (tok.ranges == null) + return; + this$static.sorted = true; + if (this$static.ranges == null) { + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_49, 28, tok.ranges.length, 15, 1); + arraycopy(tok.ranges, 0, this$static.ranges, 0, tok.ranges.length); + return; + } + result = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.ranges.length + tok.ranges.length, 15, 1); + for (i = 0 , j = 0 , k = 0; i < this$static.ranges.length || j < tok.ranges.length;) { + if (i >= this$static.ranges.length) { + result[k++] = tok.ranges[j++]; + result[k++] = tok.ranges[j++]; + } + else if (j >= tok.ranges.length) { + result[k++] = this$static.ranges[i++]; + result[k++] = this$static.ranges[i++]; + } + else if (tok.ranges[j] < this$static.ranges[i] || tok.ranges[j] === this$static.ranges[i] && tok.ranges[j + 1] < this$static.ranges[i + 1]) { + result[k++] = tok.ranges[j++]; + result[k++] = tok.ranges[j++]; + } + else { + result[k++] = this$static.ranges[i++]; + result[k++] = this$static.ranges[i++]; + } + } + this$static.ranges = result; +} + +function $sortRanges(this$static){ + var i, j, tmp; + if (this$static.sorted) + return; + if (this$static.ranges == null) + return; + for (i = this$static.ranges.length - 4; i >= 0; i -= 2) { + for (j = 0; j <= i; j += 2) { + if (this$static.ranges[j] > this$static.ranges[j + 2] || this$static.ranges[j] === this$static.ranges[j + 2] && this$static.ranges[j + 1] > this$static.ranges[j + 3]) { + tmp = this$static.ranges[j + 2]; + this$static.ranges[j + 2] = this$static.ranges[j]; + this$static.ranges[j] = tmp; + tmp = this$static.ranges[j + 3]; + this$static.ranges[j + 3] = this$static.ranges[j + 1]; + this$static.ranges[j + 1] = tmp; + } + } + } + this$static.sorted = true; +} + +function $subtractRanges(this$static, token){ + var result, src_0, srcbegin, srcend, sub_0, subbegin, subend, tok, wp; + if (token.type_0 == 5) { + $intersectRanges(this$static, token); + return; + } + tok = token; + if (tok.ranges == null || this$static.ranges == null) + return; + $sortRanges(this$static); + $compactRanges(this$static); + $sortRanges(tok); + $compactRanges(tok); + result = initUnidimensionalArray(I_classLit, $intern_49, 28, this$static.ranges.length + tok.ranges.length, 15, 1); + wp = 0; + src_0 = 0; + sub_0 = 0; + while (src_0 < this$static.ranges.length && sub_0 < tok.ranges.length) { + srcbegin = this$static.ranges[src_0]; + srcend = this$static.ranges[src_0 + 1]; + subbegin = tok.ranges[sub_0]; + subend = tok.ranges[sub_0 + 1]; + if (srcend < subbegin) { + result[wp++] = this$static.ranges[src_0++]; + result[wp++] = this$static.ranges[src_0++]; + } + else if (srcend >= subbegin && srcbegin <= subend) { + if (subbegin <= srcbegin && srcend <= subend) { + src_0 += 2; + } + else if (subbegin <= srcbegin) { + this$static.ranges[src_0] = subend + 1; + sub_0 += 2; + } + else if (srcend <= subend) { + result[wp++] = srcbegin; + result[wp++] = subbegin - 1; + src_0 += 2; + } + else { + result[wp++] = srcbegin; + result[wp++] = subbegin - 1; + this$static.ranges[src_0] = subend + 1; + sub_0 += 2; + } + } + else if (subend < srcbegin) { + sub_0 += 2; + } + else { + throw toJs(new RuntimeException_0('Token#subtractRanges(): Internal Error: [' + this$static.ranges[src_0] + ',' + this$static.ranges[src_0 + 1] + '] - [' + tok.ranges[sub_0] + ',' + tok.ranges[sub_0 + 1] + ']')); + } + } + while (src_0 < this$static.ranges.length) { + result[wp++] = this$static.ranges[src_0++]; + result[wp++] = this$static.ranges[src_0++]; + } + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_49, 28, wp, 15, 1); + arraycopy(result, 0, this$static.ranges, 0, wp); +} + +function RegEx$RangeToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.sorted = false; + this.compacted = false; +} + +function complementRanges(token){ + $clinit_RegEx$Token(); + var i, last, len, ret, tok, wp; + if (token.type_0 != 4 && token.type_0 != 5) + throw toJs(new IllegalArgumentException_0('Token#complementRanges(): must be RANGE: ' + token.type_0)); + tok = token; + $sortRanges(tok); + $compactRanges(tok); + len = tok.ranges.length + 2; + tok.ranges[0] == 0 && (len -= 2); + last = tok.ranges[tok.ranges.length - 1]; + last == $intern_168 && (len -= 2); + ret = (++tokens_0 , new RegEx$RangeToken(4)); + ret.ranges = initUnidimensionalArray(I_classLit, $intern_49, 28, len, 15, 1); + wp = 0; + if (tok.ranges[0] > 0) { + ret.ranges[wp++] = 0; + ret.ranges[wp++] = tok.ranges[0] - 1; + } + for (i = 1; i < tok.ranges.length - 2; i += 2) { + ret.ranges[wp++] = tok.ranges[i] + 1; + ret.ranges[wp++] = tok.ranges[i + 1] - 1; + } + if (last != $intern_168) { + ret.ranges[wp++] = last + 1; + ret.ranges[wp] = $intern_168; + } + ret.compacted = true; + return ret; +} + +function escapeCharInCharClass(ch_0){ + var number, pre, ret; + switch (ch_0) { + case 91: + case 93: + case 45: + case 94: + case 44: + case 92: + ret = '\\' + String.fromCharCode(ch_0 & $intern_47); + break; + case 12: + ret = '\\f'; + break; + case 10: + ret = '\\n'; + break; + case 13: + ret = '\\r'; + break; + case 9: + ret = '\\t'; + break; + case 27: + ret = '\\e'; + break; + default:if (ch_0 < 32) { + pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); + ret = '\\x' + $substring_1(pre, pre.length - 2, pre.length); + } + else if (ch_0 >= $intern_64) { + pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); + ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); + } + else + ret = '' + String.fromCharCode(ch_0 & $intern_47); + } + return ret; +} + +defineClass(138, 122, {3:1, 138:1, 122:1}, RegEx$RangeToken); +_.toString_1 = function toString_164(options){ + var i, ret, sb; + if (this.type_0 == 4) { + if (this == token_dot) + ret = '.'; + else if (this == token_0to9) + ret = '\\d'; + else if (this == token_wordchars) + ret = '\\w'; + else if (this == token_spaces) + ret = '\\s'; + else { + sb = new StringBuffer; + sb.string += '['; + for (i = 0; i < this.ranges.length; i += 2) { + (options & $intern_35) != 0 && i > 0 && (sb.string += ',' , sb); + if (this.ranges[i] === this.ranges[i + 1]) { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + } + else { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + sb.string += '-'; + $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); + } + } + sb.string += ']'; + ret = sb.string; + } + } + else { + if (this == token_not_0to9) + ret = '\\D'; + else if (this == token_not_wordchars) + ret = '\\W'; + else if (this == token_not_spaces) + ret = '\\S'; + else { + sb = new StringBuffer; + sb.string += '[^'; + for (i = 0; i < this.ranges.length; i += 2) { + (options & $intern_35) != 0 && i > 0 && (sb.string += ',' , sb); + if (this.ranges[i] === this.ranges[i + 1]) { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + } + else { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + sb.string += '-'; + $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); + } + } + sb.string += ']'; + ret = sb.string; + } + } + return ret; +} +; +_.compacted = false; +_.sorted = false; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RangeToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RangeToken', 138); +function RegEx$RegexParser$ReferencePosition(n){ + this.refNumber = n; +} + +defineClass(592, 1, {592:1}, RegEx$RegexParser$ReferencePosition); +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser$ReferencePosition_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser/ReferencePosition', 592); +function $setPattern(this$static, newPattern, options){ + var rp; + this$static.regex = newPattern; + this$static.options_0 = options; + rp = (this$static.options_0 & 512) == 512?new RegEx$ParserForXMLSchema:new RegEx$RegexParser; + this$static.tokentree = $parse_3(rp, this$static.regex, this$static.options_0); +} + +function RegEx$RegularExpression(regex){ + $setPattern(this, regex, parseOptions()); +} + +defineClass(591, 1, {3:1, 591:1}, RegEx$RegularExpression); +_.equals_0 = function equals_226(obj){ + var r; + if (obj == null) + return false; + if (!instanceOf(obj, 591)) + return false; + r = castTo(obj, 591); + return $equals_5(this.regex, r.regex) && this.options_0 == r.options_0; +} +; +_.hashCode_1 = function hashCode_86(){ + return $hashCode_2(this.regex + '/' + createOptionString(this.options_0)); +} +; +_.toString_0 = function toString_165(){ + return this.tokentree.toString_1(this.options_0); +} +; +_.options_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegularExpression_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegularExpression', 591); +function RegEx$Token$CharToken(type_0, ch_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.chardata = ch_0; +} + +defineClass(228, 122, $intern_169, RegEx$Token$CharToken); +_.getChar = function getChar_0(){ + return this.chardata; +} +; +_.toString_1 = function toString_166(options){ + var number, pre, ret; + switch (this.type_0) { + case 0: + switch (this.chardata) { + case 124: + case 42: + case 43: + case 63: + case 40: + case 41: + case 46: + case 91: + case 123: + case 92: + ret = '\\' + charToString(this.chardata & $intern_47); + break; + case 12: + ret = '\\f'; + break; + case 10: + ret = '\\n'; + break; + case 13: + ret = '\\r'; + break; + case 9: + ret = '\\t'; + break; + case 27: + ret = '\\e'; + break; + default:if (this.chardata >= $intern_64) { + pre = (number = this.chardata >>> 0 , '0' + number.toString(16)); + ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); + } + else + ret = '' + charToString(this.chardata & $intern_47); + } + + break; + case 8: + this == token_linebeginning || this == token_lineend?(ret = '' + charToString(this.chardata & $intern_47)):(ret = '\\' + charToString(this.chardata & $intern_47)); + break; + default:ret = null; + } + return ret; +} +; +_.chardata = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$CharToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/CharToken', 228); +function RegEx$Token$ClosureToken(type_0, tok){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.child = tok; + this.min_0 = -1; + this.max_0 = -1; +} + +defineClass(318, 122, $intern_169, RegEx$Token$ClosureToken); +_.getChild = function getChild_0(index_0){ + return this.child; +} +; +_.setMax = function setMax_0(max_0){ + this.max_0 = max_0; +} +; +_.setMin = function setMin_0(min_0){ + this.min_0 = min_0; +} +; +_.size_2 = function size_83(){ + return 1; +} +; +_.toString_1 = function toString_167(options){ + var ret; + if (this.type_0 == 3) { + if (this.min_0 < 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '*'; + } + else if (this.min_0 == this.max_0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + '}'; + } + else if (this.min_0 >= 0 && this.max_0 >= 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}'; + } + else if (this.min_0 >= 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',}'; + } + else + throw toJs(new RuntimeException_0('Token#toString(): CLOSURE ' + this.min_0 + ', ' + this.max_0)); + } + else { + if (this.min_0 < 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '*?'; + } + else if (this.min_0 == this.max_0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + '}?'; + } + else if (this.min_0 >= 0 && this.max_0 >= 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}?'; + } + else if (this.min_0 >= 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',}?'; + } + else + throw toJs(new RuntimeException_0('Token#toString(): NONGREEDYCLOSURE ' + this.min_0 + ', ' + this.max_0)); + } + return ret; +} +; +_.max_0 = 0; +_.min_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ClosureToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ClosureToken', 318); +function RegEx$Token$ConcatToken(t1, t2){ + RegEx$Token.call(this, 1); + this.child = t1; + this.child2 = t2; +} + +defineClass(837, 122, $intern_169, RegEx$Token$ConcatToken); +_.getChild = function getChild_1(index_0){ + return index_0 == 0?this.child:this.child2; +} +; +_.size_2 = function size_84(){ + return 2; +} +; +_.toString_1 = function toString_168(options){ + var ret; + this.child2.type_0 == 3 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+'):this.child2.type_0 == 9 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+?'):(ret = this.child.toString_1(options) + ('' + this.child2.toString_1(options))); + return ret; +} +; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConcatToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConcatToken', 837); +function RegEx$Token$ConditionToken(refno, cond, yespat, nopat){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, 26); + this.refNumber = refno; + this.condition = cond; + this.yes = yespat; + this.no = nopat; +} + +defineClass(1945, 122, $intern_169, RegEx$Token$ConditionToken); +_.getChild = function getChild_2(index_0){ + if (index_0 == 0) + return this.yes; + if (index_0 == 1) + return this.no; + throw toJs(new RuntimeException_0('Internal Error: ' + index_0)); +} +; +_.size_2 = function size_85(){ + return !this.no?1:2; +} +; +_.toString_1 = function toString_169(options){ + var ret; + this.refNumber > 0?(ret = '(?(' + this.refNumber + ')'):this.condition.type_0 == 8?(ret = '(?(' + this.condition + ')'):(ret = '(?' + this.condition); + !this.no?(ret += this.yes + ')'):(ret += this.yes + '|' + this.no + ')'); + return ret; +} +; +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConditionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConditionToken', 1945); +function RegEx$Token$ModifierToken(tok, add_0, mask){ + RegEx$Token.call(this, 25); + this.child = tok; + this.add_0 = add_0; + this.mask = mask; +} + +defineClass(1946, 122, $intern_169, RegEx$Token$ModifierToken); +_.getChild = function getChild_3(index_0){ + return this.child; +} +; +_.size_2 = function size_86(){ + return 1; +} +; +_.toString_1 = function toString_170(options){ + return '(?' + (this.add_0 == 0?'':createOptionString(this.add_0)) + (this.mask == 0?'':createOptionString(this.mask)) + ':' + this.child.toString_1(options) + ')'; +} +; +_.add_0 = 0; +_.mask = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ModifierToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ModifierToken', 1946); +function RegEx$Token$ParenToken(type_0, tok, paren){ + RegEx$Token.call(this, type_0); + this.child = tok; + this.parennumber = paren; +} + +defineClass(838, 122, $intern_169, RegEx$Token$ParenToken); +_.getChild = function getChild_4(index_0){ + return this.child; +} +; +_.size_2 = function size_87(){ + return 1; +} +; +_.toString_1 = function toString_171(options){ + var ret; + ret = null; + switch (this.type_0) { + case 6: + this.parennumber == 0?(ret = '(?:' + this.child.toString_1(options) + ')'):(ret = '(' + this.child.toString_1(options) + ')'); + break; + case 20: + ret = '(?=' + this.child.toString_1(options) + ')'; + break; + case 21: + ret = '(?!' + this.child.toString_1(options) + ')'; + break; + case 22: + ret = '(?<=' + this.child.toString_1(options) + ')'; + break; + case 23: + ret = '(?' + this.child.toString_1(options) + ')'; + } + return ret; +} +; +_.parennumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ParenToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ParenToken', 838); +function RegEx$Token$StringToken(type_0, str, n){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.string = str; + this.refNumber = n; +} + +defineClass(530, 122, {3:1, 122:1, 530:1}, RegEx$Token$StringToken); +_.getString = function getString_0(){ + return this.string; +} +; +_.toString_1 = function toString_172(options){ + return this.type_0 == 12?'\\' + this.refNumber:quoteMeta(this.string); +} +; +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$StringToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/StringToken', 530); +function $addChild_0(this$static, tok){ + var buffer, ch_0, i, nextMaxLength, previous, size_0; + if (!tok) + return; + !this$static.children && (this$static.children = new Vector); + if (this$static.type_0 == 2) { + $addElement(this$static.children, tok); + return; + } + if (tok.type_0 == 1) { + for (i = 0; i < tok.size_2(); i++) + $addChild_0(this$static, tok.getChild(i)); + return; + } + size_0 = this$static.children.arrayList.array.length; + if (size_0 == 0) { + $addElement(this$static.children, tok); + return; + } + previous = castTo($elementAt(this$static.children, size_0 - 1), 122); + if (!((previous.type_0 == 0 || previous.type_0 == 10) && (tok.type_0 == 0 || tok.type_0 == 10))) { + $addElement(this$static.children, tok); + return; + } + nextMaxLength = tok.type_0 == 0?2:tok.getString().length; + if (previous.type_0 == 0) { + buffer = new StringBuffer_0; + ch_0 = previous.getChar(); + ch_0 >= $intern_64?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_47); + previous = (++tokens_0 , new RegEx$Token$StringToken(10, null, 0)); + $setElementAt(this$static.children, previous, size_0 - 1); + } + else { + buffer = (previous.getString().length + nextMaxLength , new StringBuffer_0); + $append_3(buffer, previous.getString()); + } + if (tok.type_0 == 0) { + ch_0 = tok.getChar(); + ch_0 >= $intern_64?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_47); + } + else { + $append_3(buffer, tok.getString()); + } + castTo(previous, 530).string = buffer.string; +} + +function RegEx$Token$UnionToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); +} + +defineClass(477, 122, $intern_169, RegEx$Token$UnionToken); +_.addChild = function addChild_0(tok){ + $addChild_0(this, tok); +} +; +_.getChild = function getChild_5(index_0){ + return castTo($elementAt(this.children, index_0), 122); +} +; +_.size_2 = function size_88(){ + return !this.children?0:this.children.arrayList.array.length; +} +; +_.toString_1 = function toString_173(options){ + var ch_0, ch2, i, ret, sb; + if (this.type_0 == 1) { + if (this.children.arrayList.array.length == 2) { + ch_0 = castTo($elementAt(this.children, 0), 122); + ch2 = castTo($elementAt(this.children, 1), 122); + ch2.type_0 == 3 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+'):ch2.type_0 == 9 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+?'):(ret = ch_0.toString_1(options) + ('' + ch2.toString_1(options))); + } + else { + sb = new StringBuffer; + for (i = 0; i < this.children.arrayList.array.length; i++) { + $append_3(sb, castTo($elementAt(this.children, i), 122).toString_1(options)); + } + ret = sb.string; + } + return ret; + } + if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 1), 122).type_0 == 7) { + ret = castTo($elementAt(this.children, 0), 122).toString_1(options) + '?'; + } + else if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 0), 122).type_0 == 7) { + ret = castTo($elementAt(this.children, 1), 122).toString_1(options) + '??'; + } + else { + sb = new StringBuffer; + $append_3(sb, castTo($elementAt(this.children, 0), 122).toString_1(options)); + for (i = 1; i < this.children.arrayList.array.length; i++) { + sb.string += '|'; + $append_3(sb, castTo($elementAt(this.children, i), 122).toString_1(options)); + } + ret = sb.string; + } + return ret; +} +; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$UnionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/UnionToken', 477); +function normalize(value_0, collapse){ + var buffer, c, i, length_0, offset, skipSpace, valueArray; + if (value_0 == null) { + return null; + } + length_0 = value_0.length; + if (length_0 == 0) { + return ''; + } + valueArray = initUnidimensionalArray(C_classLit, $intern_45, 28, length_0, 15, 1); + checkCriticalStringBounds(0, length_0, value_0.length); + checkCriticalStringBounds(0, length_0, valueArray.length); + $getChars0(value_0, 0, length_0, valueArray, 0); + buffer = null; + skipSpace = collapse; + for (i = 0 , offset = 0; i < length_0; i++) { + c = valueArray[i]; + $clinit_DataValue$XMLChar(); + if (c <= 32 && (CHARS[c] & 2) != 0) { + if (skipSpace) { + !buffer && (buffer = new StringBuffer_1(value_0)); + $deleteCharAt(buffer, i - offset++); + } + else { + skipSpace = collapse; + if (c != 32) { + !buffer && (buffer = new StringBuffer_1(value_0)); + $replace0(buffer, i - offset, i - offset + 1, String.fromCharCode(32)); + } + } + } + else { + skipSpace = false; + } + } + if (skipSpace) { + if (!buffer) { + return checkCriticalStringBounds(0, length_0 - 1, value_0.length) , value_0.substr(0, length_0 - 1); + } + else { + length_0 = buffer.string.length; + return length_0 > 0?$substring_1(buffer.string, 0, length_0 - 1):''; + } + } + else { + return !buffer?value_0:buffer.string; + } +} + +function XMLTypeUtil$PatternMatcherImpl(pattern){ + this.regularExpression = new RegEx$RegularExpression(pattern); +} + +defineClass(527, 1, {600:1}, XMLTypeUtil$PatternMatcherImpl); +_.toString_0 = function toString_174(){ + return this.regularExpression.regex; +} +; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeUtil$PatternMatcherImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeUtil/PatternMatcherImpl', 527); +function $clinit_XMLTypeValidator(){ + $clinit_XMLTypeValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_12 = new XMLTypeValidator; + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 381, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_170, 600, 0, [new XMLTypeUtil$PatternMatcherImpl('[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 381, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_170, 600, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 381, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_170, 600, 0, [new XMLTypeUtil$PatternMatcherImpl('[\\i-[:]][\\c-[:]]*')]), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_170, 600, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + new BigInteger_3('-1'); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 381, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_170, 600, 0, [new XMLTypeUtil$PatternMatcherImpl('\\c+')])]); + new BigInteger_3('0'); + new BigInteger_3('0'); + new BigInteger_3('1'); + new BigInteger_3('0'); + new BigInteger_3('18446744073709551615'); +} + +function XMLTypeValidator(){ +} + +defineClass(1707, 1527, {}, XMLTypeValidator); +var INSTANCE_12; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeValidator_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeValidator', 1707); +function $clinit_ExclusiveRange(){ + $clinit_ExclusiveRange = emptyMethod; + EMPTY_LIST_ITERATOR = new ExclusiveRange$1; +} + +function ExclusiveRange(end){ + $clinit_ExclusiveRange(); + this.first = 0; + this.last = end - 1; + this.step = 1; +} + +defineClass(270, 1, $intern_23, ExclusiveRange); +_.forEach_0 = function forEach_41(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_91(){ + return (this.last - this.first) * this.step < 0?EMPTY_LIST_ITERATOR:new ExclusiveRange$RangeIterator(this); +} +; +_.first = 0; +_.last = 0; +_.step = 0; +var EMPTY_LIST_ITERATOR; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange', 270); +function $add_35(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_17(){ + throw toJs(new NoSuchElementException); +} + +function $previous_1(){ + throw toJs(new NoSuchElementException); +} + +function $set_19(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$1(){ +} + +defineClass(1084, 1, $intern_14, ExclusiveRange$1); +_.add_1 = function add_73(e){ + castTo(e, 17); + $add_35(); +} +; +_.forEachRemaining = function forEachRemaining_61(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_51(){ + return $next_17(); +} +; +_.previous_0 = function previous_12(){ + return $previous_1(); +} +; +_.set_1 = function set_45(e){ + castTo(e, 17); + $set_19(); +} +; +_.hasNext_0 = function hasNext_52(){ + return false; +} +; +_.hasPrevious = function hasPrevious_12(){ + return false; +} +; +_.nextIndex_0 = function nextIndex_12(){ + return -1; +} +; +_.previousIndex = function previousIndex_11(){ + return -1; +} +; +_.remove = function remove_133(){ + throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); +} +; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$1_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/1', 1084); +function $add_36(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_18(this$static){ + var value_0; + if (!(this$static.this$01.step < 0?this$static.next_0 >= this$static.this$01.last:this$static.next_0 <= this$static.this$01.last)) { + throw toJs(new NoSuchElementException); + } + value_0 = this$static.next_0; + this$static.next_0 += this$static.this$01.step; + ++this$static.nextIndex; + return valueOf_3(value_0); +} + +function $previous_2(this$static){ + if (this$static.nextIndex <= 0) + throw toJs(new NoSuchElementException); + --this$static.nextIndex; + this$static.next_0 -= this$static.this$01.step; + return valueOf_3(this$static.next_0); +} + +function $set_20(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$RangeIterator(this$0){ + this.this$01 = this$0; + this.next_0 = this.this$01.first; +} + +defineClass(258, 1, $intern_14, ExclusiveRange$RangeIterator); +_.add_1 = function add_74(e){ + castTo(e, 17); + $add_36(); +} +; +_.forEachRemaining = function forEachRemaining_62(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_52(){ + return $next_18(this); +} +; +_.previous_0 = function previous_13(){ + return $previous_2(this); +} +; +_.set_1 = function set_46(e){ + castTo(e, 17); + $set_20(); +} +; +_.hasNext_0 = function hasNext_53(){ + return this.this$01.step < 0?this.next_0 >= this.this$01.last:this.next_0 <= this.this$01.last; +} +; +_.hasPrevious = function hasPrevious_13(){ + return this.nextIndex > 0; +} +; +_.nextIndex_0 = function nextIndex_13(){ + return this.nextIndex; +} +; +_.previousIndex = function previousIndex_12(){ + return this.nextIndex - 1; +} +; +_.remove = function remove_134(){ + throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); +} +; +_.next_0 = 0; +_.nextIndex = 0; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$RangeIterator_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/RangeIterator', 258); +function forEach_42(iterable, procedure){ + forEach_44(new AbstractEList$EIterator(iterable), procedure); +} + +function isEmpty_35(iterable){ + if (iterable) + return iterable.isEmpty(); + return !iterable.iterator_0().hasNext_0(); +} + +function isNullOrEmpty(iterable){ + return !iterable || isEmpty_35(iterable); +} + +function forEach_43(iterator, procedure){ + while (iterator.data_0 == null && !iterator.includeRoot?$hasAnyChildren(iterator):iterator.data_0 == null || iterator.size_0 != 0 && castTo(iterator.data_0[iterator.size_0 - 1], 51).hasNext_0()) { + $apply_28(procedure, $next_13(iterator)); + } +} + +function forEach_44(iterator, procedure){ + var i; + i = 0; + while (iterator.cursor != iterator.this$01_2.size_1()) { + $apply_29(procedure, $doNext(iterator), valueOf_3(i)); + i != $intern_0 && ++i; + } +} + +var C_classLit = createForPrimitive('char', 'C'); +var I_classLit = createForPrimitive('int', 'I'); +var Z_classLit = createForPrimitive('boolean', 'Z'); +var J_classLit = createForPrimitive('long', 'J'); +var B_classLit = createForPrimitive('byte', 'B'); +var D_classLit = createForPrimitive('double', 'D'); +var F_classLit = createForPrimitive('float', 'F'); +var S_classLit = createForPrimitive('short', 'S'); +var Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit = createForInterface('org.eclipse.elk.core.labels', 'ILabelManager'); +var Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit = createForInterface('org.eclipse.emf.common.util', 'DiagnosticChain'); +var Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'ResourceSet'); +var Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit = createForClass('org.eclipse.emf.common.util', 'InvocationTargetException', null); +var $entry = ($clinit_Impl() , entry_2); +var gwtOnLoad = gwtOnLoad = gwtOnLoad_0; +addInitFunctions(init); +setGwtProperty('permProps', [[['locale', 'default'], ['user.agent', 'gecko1_8']], [['locale', 'default'], ['user.agent', 'safari']]]); + +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); diff --git a/lib/elk-worker.min.js b/lib/elk-worker.min.js new file mode 100644 index 0000000..d391c58 --- /dev/null +++ b/lib/elk-worker.min.js @@ -0,0 +1,6401 @@ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function hh(){} +function lq(){} +function Nq(){} +function ir(){} +function Ws(){} +function Zw(){} +function jx(){} +function rx(){} +function sx(){} +function My(){} +function bA(){} +function mA(){} +function tA(){} +function aB(){} +function dB(){} +function jB(){} +function dC(){} +function keb(){} +function geb(){} +function oeb(){} +function iob(){} +function Job(){} +function Rob(){} +function apb(){} +function ipb(){} +function nrb(){} +function wrb(){} +function Brb(){} +function Prb(){} +function ltb(){} +function svb(){} +function xvb(){} +function zvb(){} +function $xb(){} +function Gzb(){} +function NAb(){} +function VAb(){} +function rBb(){} +function RBb(){} +function TBb(){} +function XBb(){} +function ZBb(){} +function _Bb(){} +function bCb(){} +function dCb(){} +function fCb(){} +function jCb(){} +function rCb(){} +function uCb(){} +function wCb(){} +function yCb(){} +function ACb(){} +function ECb(){} +function FEb(){} +function IEb(){} +function KEb(){} +function MEb(){} +function gFb(){} +function FFb(){} +function JFb(){} +function xGb(){} +function AGb(){} +function YGb(){} +function oHb(){} +function tHb(){} +function xHb(){} +function pIb(){} +function BJb(){} +function kLb(){} +function mLb(){} +function oLb(){} +function qLb(){} +function FLb(){} +function JLb(){} +function KMb(){} +function MMb(){} +function OMb(){} +function YMb(){} +function MNb(){} +function ONb(){} +function aOb(){} +function eOb(){} +function xOb(){} +function BOb(){} +function DOb(){} +function FOb(){} +function IOb(){} +function MOb(){} +function POb(){} +function UOb(){} +function ZOb(){} +function cPb(){} +function gPb(){} +function nPb(){} +function qPb(){} +function tPb(){} +function wPb(){} +function CPb(){} +function qQb(){} +function GQb(){} +function bRb(){} +function gRb(){} +function kRb(){} +function pRb(){} +function wRb(){} +function xSb(){} +function TSb(){} +function VSb(){} +function XSb(){} +function ZSb(){} +function _Sb(){} +function tTb(){} +function DTb(){} +function FTb(){} +function FXb(){} +function hXb(){} +function hWb(){} +function mWb(){} +function CVb(){} +function XXb(){} +function $Xb(){} +function bYb(){} +function lYb(){} +function FYb(){} +function XYb(){} +function aZb(){} +function SZb(){} +function ZZb(){} +function Z_b(){} +function j_b(){} +function j$b(){} +function b$b(){} +function f$b(){} +function n$b(){} +function K_b(){} +function V_b(){} +function b0b(){} +function l0b(){} +function X1b(){} +function _1b(){} +function x3b(){} +function r4b(){} +function w4b(){} +function A4b(){} +function E4b(){} +function I4b(){} +function M4b(){} +function o5b(){} +function q5b(){} +function w5b(){} +function A5b(){} +function E5b(){} +function h6b(){} +function j6b(){} +function l6b(){} +function q6b(){} +function v6b(){} +function y6b(){} +function G6b(){} +function K6b(){} +function N6b(){} +function P6b(){} +function R6b(){} +function b7b(){} +function f7b(){} +function j7b(){} +function n7b(){} +function C7b(){} +function H7b(){} +function J7b(){} +function L7b(){} +function N7b(){} +function P7b(){} +function a8b(){} +function c8b(){} +function e8b(){} +function g8b(){} +function i8b(){} +function m8b(){} +function Z8b(){} +function f9b(){} +function i9b(){} +function o9b(){} +function C9b(){} +function F9b(){} +function K9b(){} +function Q9b(){} +function aac(){} +function bac(){} +function eac(){} +function mac(){} +function pac(){} +function rac(){} +function tac(){} +function xac(){} +function Aac(){} +function Dac(){} +function Iac(){} +function Oac(){} +function Uac(){} +function Ucc(){} +function scc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ncc(){} +function Wcc(){} +function ydc(){} +function Adc(){} +function Gdc(){} +function Ldc(){} +function Zdc(){} +function fec(){} +function Dec(){} +function Gec(){} +function Kec(){} +function efc(){} +function jfc(){} +function nfc(){} +function Bfc(){} +function Ifc(){} +function Lfc(){} +function Rfc(){} +function Ufc(){} +function Zfc(){} +function cgc(){} +function egc(){} +function ggc(){} +function igc(){} +function kgc(){} +function Dgc(){} +function Hgc(){} +function Lgc(){} +function Ngc(){} +function Pgc(){} +function Vgc(){} +function Ygc(){} +function chc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function mhc(){} +function rhc(){} +function uhc(){} +function whc(){} +function yhc(){} +function Ahc(){} +function Chc(){} +function Ghc(){} +function Nhc(){} +function Phc(){} +function Rhc(){} +function Thc(){} +function $hc(){} +function aic(){} +function cic(){} +function eic(){} +function jic(){} +function nic(){} +function pic(){} +function ric(){} +function vic(){} +function yic(){} +function Dic(){} +function Ric(){} +function Zic(){} +function bjc(){} +function djc(){} +function jjc(){} +function njc(){} +function rjc(){} +function tjc(){} +function zjc(){} +function Djc(){} +function Fjc(){} +function Ljc(){} +function Pjc(){} +function Rjc(){} +function fkc(){} +function Kkc(){} +function Mkc(){} +function Okc(){} +function Qkc(){} +function Skc(){} +function Ukc(){} +function Wkc(){} +function clc(){} +function elc(){} +function klc(){} +function mlc(){} +function olc(){} +function qlc(){} +function wlc(){} +function ylc(){} +function Alc(){} +function Jlc(){} +function Joc(){} +function poc(){} +function roc(){} +function toc(){} +function voc(){} +function Boc(){} +function Foc(){} +function Hoc(){} +function Loc(){} +function Noc(){} +function Poc(){} +function qnc(){} +function unc(){} +function upc(){} +function kpc(){} +function mpc(){} +function opc(){} +function qpc(){} +function ypc(){} +function Cpc(){} +function Mpc(){} +function Qpc(){} +function dqc(){} +function jqc(){} +function Aqc(){} +function Eqc(){} +function Gqc(){} +function Sqc(){} +function arc(){} +function lrc(){} +function zrc(){} +function Hrc(){} +function bsc(){} +function dsc(){} +function fsc(){} +function ksc(){} +function msc(){} +function Asc(){} +function Csc(){} +function Esc(){} +function Ksc(){} +function Nsc(){} +function Ssc(){} +function CCc(){} +function tGc(){} +function aHc(){} +function gHc(){} +function nIc(){} +function PJc(){} +function XKc(){} +function fLc(){} +function hLc(){} +function lLc(){} +function eNc(){} +function IOc(){} +function MOc(){} +function WOc(){} +function YOc(){} +function $Oc(){} +function cPc(){} +function iPc(){} +function mPc(){} +function oPc(){} +function qPc(){} +function sPc(){} +function wPc(){} +function APc(){} +function FPc(){} +function HPc(){} +function NPc(){} +function PPc(){} +function TPc(){} +function VPc(){} +function ZPc(){} +function _Pc(){} +function bQc(){} +function dQc(){} +function SQc(){} +function hRc(){} +function HRc(){} +function HSc(){} +function pSc(){} +function xSc(){} +function zSc(){} +function BSc(){} +function DSc(){} +function FSc(){} +function CTc(){} +function ITc(){} +function KTc(){} +function MTc(){} +function XTc(){} +function ZTc(){} +function jVc(){} +function lVc(){} +function zVc(){} +function IVc(){} +function KVc(){} +function KWc(){} +function uWc(){} +function xWc(){} +function AWc(){} +function QWc(){} +function UWc(){} +function qXc(){} +function KXc(){} +function OXc(){} +function SXc(){} +function $Xc(){} +function mYc(){} +function rYc(){} +function zYc(){} +function DYc(){} +function FYc(){} +function HYc(){} +function JYc(){} +function cZc(){} +function gZc(){} +function iZc(){} +function pZc(){} +function tZc(){} +function vZc(){} +function AZc(){} +function GZc(){} +function l_c(){} +function l1c(){} +function b1c(){} +function d1c(){} +function h1c(){} +function n1c(){} +function r1c(){} +function v1c(){} +function x1c(){} +function D1c(){} +function H1c(){} +function L1c(){} +function R1c(){} +function V1c(){} +function Z1c(){} +function Z0c(){} +function a0c(){} +function c0c(){} +function e0c(){} +function k0c(){} +function o0c(){} +function b2c(){} +function l2c(){} +function p2c(){} +function Y2c(){} +function _2c(){} +function A3c(){} +function F3c(){} +function I3c(){} +function K3c(){} +function M3c(){} +function Q3c(){} +function U3c(){} +function c5c(){} +function D5c(){} +function G5c(){} +function J5c(){} +function N5c(){} +function V5c(){} +function p6c(){} +function s6c(){} +function H6c(){} +function K6c(){} +function _7c(){} +function h8c(){} +function j8c(){} +function o8c(){} +function r8c(){} +function u8c(){} +function R8c(){} +function X8c(){} +function o9c(){} +function s9c(){} +function x9c(){} +function Qad(){} +function rcd(){} +function Xcd(){} +function vdd(){} +function Tdd(){} +function _dd(){} +function qed(){} +function sed(){} +function ved(){} +function Hed(){} +function Zed(){} +function bfd(){} +function ifd(){} +function Gfd(){} +function Ifd(){} +function Igd(){} +function agd(){} +function dgd(){} +function pgd(){} +function Hgd(){} +function Kgd(){} +function Mgd(){} +function Ogd(){} +function Qgd(){} +function Sgd(){} +function Ugd(){} +function Wgd(){} +function Ygd(){} +function $gd(){} +function ahd(){} +function chd(){} +function ehd(){} +function ghd(){} +function ihd(){} +function khd(){} +function mhd(){} +function ohd(){} +function qhd(){} +function shd(){} +function Shd(){} +function lkd(){} +function znd(){} +function Jpd(){} +function jrd(){} +function Mrd(){} +function Qrd(){} +function Urd(){} +function Yrd(){} +function Yud(){} +function eud(){} +function asd(){} +function Lsd(){} +function btd(){} +function dtd(){} +function jtd(){} +function otd(){} +function ztd(){} +function Xxd(){} +function $yd(){} +function rzd(){} +function Rzd(){} +function KAd(){} +function hCd(){} +function _Cd(){} +function _Sd(){} +function OSd(){} +function BDd(){} +function BId(){} +function JId(){} +function YHd(){} +function fLd(){} +function cPd(){} +function hQd(){} +function AQd(){} +function kUd(){} +function VUd(){} +function pVd(){} +function W$d(){} +function Z$d(){} +function a_d(){} +function i_d(){} +function v_d(){} +function y_d(){} +function f1d(){} +function L5d(){} +function v6d(){} +function b8d(){} +function e8d(){} +function h8d(){} +function k8d(){} +function n8d(){} +function q8d(){} +function t8d(){} +function w8d(){} +function z8d(){} +function X9d(){} +function _9d(){} +function Mae(){} +function cbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function $ce(){} +function bde(){} +function ede(){} +function hde(){} +function kde(){} +function nde(){} +function qde(){} +function tde(){} +function wde(){} +function Hie(){} +function rke(){} +function rne(){} +function Ene(){} +function Gne(){} +function Jne(){} +function Mne(){} +function Pne(){} +function Sne(){} +function Vne(){} +function Yne(){} +function _ne(){} +function yme(){} +function coe(){} +function foe(){} +function ioe(){} +function loe(){} +function ooe(){} +function roe(){} +function uoe(){} +function xoe(){} +function Aoe(){} +function Doe(){} +function Goe(){} +function Joe(){} +function Moe(){} +function Poe(){} +function Soe(){} +function Voe(){} +function Yoe(){} +function _oe(){} +function cpe(){} +function fpe(){} +function ipe(){} +function lpe(){} +function ope(){} +function rpe(){} +function upe(){} +function xpe(){} +function Ape(){} +function Dpe(){} +function Gpe(){} +function Jpe(){} +function Mpe(){} +function Ppe(){} +function Spe(){} +function Vpe(){} +function Ype(){} +function _pe(){} +function cqe(){} +function fqe(){} +function iqe(){} +function lqe(){} +function oqe(){} +function rqe(){} +function uqe(){} +function Tqe(){} +function sue(){} +function Cue(){} +function A2b(a){} +function J3d(a){} +function zl(){wb()} +function z7b(){s7b()} +function ZHb(){YHb()} +function fSb(){eSb()} +function vSb(){tSb()} +function PUb(){OUb()} +function AVb(){yVb()} +function RVb(){QVb()} +function fWb(){dWb()} +function N5b(){H5b()} +function $9b(){U9b()} +function Lcc(){Hcc()} +function pdc(){Zcc()} +function pec(){iec()} +function pGc(){nGc()} +function jGc(){gGc()} +function YGc(){SGc()} +function cGc(){_Fc()} +function NFc(){KFc()} +function xgc(){sgc()} +function xHc(){tHc()} +function pHc(){lHc()} +function IHc(){CHc()} +function XHc(){RHc()} +function boc(){Mnc()} +function yqc(){mqc()} +function Pzc(){Ozc()} +function ACc(){yCc()} +function aKc(){YJc()} +function FLc(){DLc()} +function DNc(){ANc()} +function TNc(){JNc()} +function iQc(){gQc()} +function WRc(){TRc()} +function C$c(){B$c()} +function J0c(){B0c()} +function x0c(){r0c()} +function j_c(){h_c()} +function N_c(){H_c()} +function V_c(){R_c()} +function E4c(){D4c()} +function a5c(){$4c()} +function v7c(){u7c()} +function Z7c(){X7c()} +function pcd(){ncd()} +function Lcd(){Kcd()} +function Vcd(){Tcd()} +function fUd(){TTd()} +function Bfd(){Afd()} +function jkd(){hkd()} +function vmd(){umd()} +function xnd(){vnd()} +function Hpd(){Fpd()} +function HYd(){lYd()} +function yAd(){qAd()} +function gke(){rue()} +function Yxb(a){uFb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function kj(a){this.a=a} +function qj(a){this.a=a} +function Lj(a){this.a=a} +function jh(a){this.a=a} +function th(a){this.a=a} +function Bh(a){this.a=a} +function Xh(a){this.a=a} +function Xn(a){this.a=a} +function Di(a){this.a=a} +function Ki(a){this.a=a} +function Ik(a){this.a=a} +function Qk(a){this.a=a} +function mp(a){this.a=a} +function Lp(a){this.a=a} +function iq(a){this.a=a} +function Eq(a){this.a=a} +function Vq(a){this.a=a} +function Or(a){this.a=a} +function $r(a){this.b=a} +function Aj(a){this.c=a} +function vu(a){this.a=a} +function vw(a){this.a=a} +function gw(a){this.a=a} +function lw(a){this.a=a} +function Iw(a){this.a=a} +function Nw(a){this.a=a} +function Sw(a){this.a=a} +function ex(a){this.a=a} +function fx(a){this.a=a} +function lx(a){this.a=a} +function my(a){this.a=a} +function qy(a){this.a=a} +function Oy(a){this.a=a} +function NB(a){this.a=a} +function XB(a){this.a=a} +function hC(a){this.a=a} +function vC(a){this.a=a} +function MB(){this.a=[]} +function HEb(a,b){a.a=b} +function E2b(a,b){a.a=b} +function F2b(a,b){a.b=b} +function PRb(a,b){a.b=b} +function RRb(a,b){a.b=b} +function QJb(a,b){a.j=b} +function hQb(a,b){a.g=b} +function iQb(a,b){a.i=b} +function _Tb(a,b){a.c=b} +function G2b(a,b){a.c=b} +function H2b(a,b){a.d=b} +function aUb(a,b){a.d=b} +function h3b(a,b){a.k=b} +function O3b(a,b){a.c=b} +function Tmc(a,b){a.c=b} +function Smc(a,b){a.a=b} +function DJc(a,b){a.a=b} +function EJc(a,b){a.f=b} +function NSc(a,b){a.a=b} +function OSc(a,b){a.b=b} +function PSc(a,b){a.d=b} +function QSc(a,b){a.i=b} +function RSc(a,b){a.o=b} +function SSc(a,b){a.r=b} +function yUc(a,b){a.a=b} +function zUc(a,b){a.b=b} +function q3c(a,b){a.e=b} +function r3c(a,b){a.f=b} +function s3c(a,b){a.g=b} +function Y9c(a,b){a.e=b} +function Z9c(a,b){a.f=b} +function kad(a,b){a.f=b} +function Ntd(a,b){a.a=b} +function Otd(a,b){a.b=b} +function BWd(a,b){a.n=b} +function $ee(a,b){a.a=b} +function _ee(a,b){a.c=b} +function ife(a,b){a.c=b} +function Efe(a,b){a.c=b} +function hfe(a,b){a.a=b} +function Dfe(a,b){a.a=b} +function jfe(a,b){a.d=b} +function Ffe(a,b){a.d=b} +function kfe(a,b){a.e=b} +function Gfe(a,b){a.e=b} +function lfe(a,b){a.g=b} +function Hfe(a,b){a.f=b} +function Ife(a,b){a.j=b} +function wme(a,b){a.a=b} +function Fme(a,b){a.a=b} +function xme(a,b){a.b=b} +function gmc(a){a.b=a.a} +function Lg(a){a.c=a.d.d} +function fgb(a){this.a=a} +function zgb(a){this.a=a} +function Xgb(a){this.a=a} +function Xkb(a){this.a=a} +function mkb(a){this.a=a} +function reb(a){this.a=a} +function Seb(a){this.a=a} +function bfb(a){this.a=a} +function Tfb(a){this.a=a} +function blb(a){this.a=a} +function glb(a){this.a=a} +function llb(a){this.a=a} +function Ulb(a){this.a=a} +function _lb(a){this.a=a} +function Plb(a){this.b=a} +function Ppb(a){this.b=a} +function xpb(a){this.b=a} +function mpb(a){this.a=a} +function Yqb(a){this.a=a} +function uqb(a){this.c=a} +function Anb(a){this.c=a} +function zwb(a){this.c=a} +function Dkb(a){this.d=a} +function brb(a){this.a=a} +function Frb(a){this.a=a} +function hsb(a){this.a=a} +function ctb(a){this.a=a} +function cxb(a){this.a=a} +function axb(a){this.a=a} +function exb(a){this.a=a} +function gxb(a){this.a=a} +function wub(a){this.a=a} +function zAb(a){this.a=a} +function JAb(a){this.a=a} +function LAb(a){this.a=a} +function PAb(a){this.a=a} +function VBb(a){this.a=a} +function lCb(a){this.a=a} +function nCb(a){this.a=a} +function pCb(a){this.a=a} +function CCb(a){this.a=a} +function GCb(a){this.a=a} +function bDb(a){this.a=a} +function dDb(a){this.a=a} +function fDb(a){this.a=a} +function uDb(a){this.a=a} +function $Db(a){this.a=a} +function aEb(a){this.a=a} +function eEb(a){this.a=a} +function OEb(a){this.a=a} +function SEb(a){this.a=a} +function SFb(a){this.a=a} +function HFb(a){this.a=a} +function NFb(a){this.a=a} +function WGb(a){this.a=a} +function HJb(a){this.a=a} +function PJb(a){this.a=a} +function kNb(a){this.a=a} +function tOb(a){this.a=a} +function APb(a){this.a=a} +function IQb(a){this.a=a} +function bTb(a){this.a=a} +function dTb(a){this.a=a} +function wTb(a){this.a=a} +function GWb(a){this.a=a} +function UWb(a){this.a=a} +function WWb(a){this.a=a} +function fXb(a){this.a=a} +function jXb(a){this.a=a} +function M0b(a){this.a=a} +function r1b(a){this.a=a} +function D1b(a){this.e=a} +function T3b(a){this.a=a} +function W3b(a){this.a=a} +function _3b(a){this.a=a} +function c4b(a){this.a=a} +function s5b(a){this.a=a} +function u5b(a){this.a=a} +function y5b(a){this.a=a} +function C5b(a){this.a=a} +function Q5b(a){this.a=a} +function S5b(a){this.a=a} +function U5b(a){this.a=a} +function W5b(a){this.a=a} +function l7b(a){this.a=a} +function p7b(a){this.a=a} +function k8b(a){this.a=a} +function L8b(a){this.a=a} +function Rac(a){this.a=a} +function Xac(a){this.a=a} +function $ac(a){this.a=a} +function bbc(a){this.a=a} +function Cdc(a){this.a=a} +function Edc(a){this.a=a} +function Ehc(a){this.a=a} +function khc(a){this.a=a} +function Ihc(a){this.a=a} +function qfc(a){this.a=a} +function tfc(a){this.a=a} +function Wfc(a){this.a=a} +function Fic(a){this.a=a} +function Vic(a){this.a=a} +function fjc(a){this.a=a} +function pjc(a){this.a=a} +function ckc(a){this.a=a} +function hkc(a){this.a=a} +function Ykc(a){this.a=a} +function $kc(a){this.a=a} +function alc(a){this.a=a} +function glc(a){this.a=a} +function ilc(a){this.a=a} +function slc(a){this.a=a} +function Clc(a){this.a=a} +function xoc(a){this.a=a} +function zoc(a){this.a=a} +function spc(a){this.a=a} +function Vqc(a){this.a=a} +function Xqc(a){this.a=a} +function Gsc(a){this.a=a} +function Isc(a){this.a=a} +function JGc(a){this.a=a} +function NGc(a){this.a=a} +function MHc(a){this.a=a} +function JIc(a){this.a=a} +function fJc(a){this.a=a} +function BJc(a){this.a=a} +function dJc(a){this.c=a} +function Trc(a){this.b=a} +function eKc(a){this.a=a} +function IKc(a){this.a=a} +function KKc(a){this.a=a} +function MKc(a){this.a=a} +function yLc(a){this.a=a} +function HMc(a){this.a=a} +function LMc(a){this.a=a} +function PMc(a){this.a=a} +function TMc(a){this.a=a} +function XMc(a){this.a=a} +function ZMc(a){this.a=a} +function aNc(a){this.a=a} +function jNc(a){this.a=a} +function aPc(a){this.a=a} +function gPc(a){this.a=a} +function kPc(a){this.a=a} +function yPc(a){this.a=a} +function CPc(a){this.a=a} +function JPc(a){this.a=a} +function RPc(a){this.a=a} +function XPc(a){this.a=a} +function mRc(a){this.a=a} +function xTc(a){this.a=a} +function CWc(a){this.a=a} +function EWc(a){this.a=a} +function IWc(a){this.a=a} +function OWc(a){this.a=a} +function dXc(a){this.a=a} +function gXc(a){this.a=a} +function EXc(a){this.a=a} +function WXc(a){this.a=a} +function YXc(a){this.a=a} +function aYc(a){this.a=a} +function cYc(a){this.a=a} +function eYc(a){this.a=a} +function iYc(a){this.a=a} +function i0c(a){this.a=a} +function g0c(a){this.a=a} +function P1c(a){this.a=a} +function Sad(a){this.a=a} +function Uad(a){this.a=a} +function Wad(a){this.a=a} +function Yad(a){this.a=a} +function cbd(a){this.a=a} +function ydd(a){this.a=a} +function Kdd(a){this.a=a} +function Mdd(a){this.a=a} +function _ed(a){this.a=a} +function dfd(a){this.a=a} +function Kfd(a){this.a=a} +function prd(a){this.a=a} +function $rd(a){this.a=a} +function csd(a){this.a=a} +function Usd(a){this.a=a} +function Vtd(a){this.a=a} +function wud(a){this.a=a} +function Rud(a){this.f=a} +function LEd(a){this.a=a} +function UEd(a){this.a=a} +function VEd(a){this.a=a} +function WEd(a){this.a=a} +function XEd(a){this.a=a} +function YEd(a){this.a=a} +function ZEd(a){this.a=a} +function $Ed(a){this.a=a} +function _Ed(a){this.a=a} +function aFd(a){this.a=a} +function gFd(a){this.a=a} +function iFd(a){this.a=a} +function jFd(a){this.a=a} +function kFd(a){this.a=a} +function lFd(a){this.a=a} +function nFd(a){this.a=a} +function qFd(a){this.a=a} +function wFd(a){this.a=a} +function xFd(a){this.a=a} +function zFd(a){this.a=a} +function AFd(a){this.a=a} +function BFd(a){this.a=a} +function CFd(a){this.a=a} +function DFd(a){this.a=a} +function MFd(a){this.a=a} +function OFd(a){this.a=a} +function QFd(a){this.a=a} +function SFd(a){this.a=a} +function uGd(a){this.a=a} +function QGd(a){this.a=a} +function jGd(a){this.b=a} +function YOd(a){this.a=a} +function ePd(a){this.a=a} +function kPd(a){this.a=a} +function qPd(a){this.a=a} +function IPd(a){this.a=a} +function w$d(a){this.a=a} +function e_d(a){this.a=a} +function Q_d(a){this.b=a} +function c1d(a){this.a=a} +function c2d(a){this.a=a} +function l5d(a){this.a=a} +function I9d(a){this.a=a} +function L6d(a){this.c=a} +function t7d(a){this.e=a} +function pae(a){this.a=a} +function xae(a){this.a=a} +function Zde(a){this.a=a} +function Sde(a){this.d=a} +function mee(a){this.a=a} +function uje(a){this.a=a} +function Bte(a){this.a=a} +function Wse(a){this.e=a} +function Xsd(){this.a=0} +function Tsb(){akb(this)} +function bnb(){Pmb(this)} +function cHb(){bHb(this)} +function I2b(){A2b(this)} +function s2d(){this.c=d2d} +function Prc(a,b){a.b+=b} +function Uje(a,b){b.Wb(a)} +function UC(a){return a.a} +function nC(a){return a.a} +function BC(a){return a.a} +function TB(a){return a.a} +function _B(a){return a.a} +function Adb(a){return a.e} +function gC(){return null} +function MC(){return null} +function leb(){MId();OId()} +function qMb(a){a.b.Of(a.e)} +function A$b(a){a.b=new Ri} +function A8b(a,b){a.b=b-a.b} +function x8b(a,b){a.a=b-a.a} +function ZEb(a,b){a.push(b)} +function bFb(a,b){a.sort(b)} +function Q5c(a,b){b.jd(a.a)} +function Voc(a,b){Q3b(b,a)} +function tp(a,b,c){a.Yd(c,b)} +function Ss(a,b){a.e=b;b.b=a} +function im(a){_l();this.a=a} +function xq(a){_l();this.a=a} +function Gq(a){_l();this.a=a} +function Xq(a){tm();this.a=a} +function gA(a){fA();eA.le(a)} +function vA(){vA=geb;new Tsb} +function xz(){mz.call(this)} +function Ceb(){mz.call(this)} +function ueb(){xz.call(this)} +function yeb(){xz.call(this)} +function Hfb(){xz.call(this)} +function _fb(){xz.call(this)} +function cgb(){xz.call(this)} +function Ngb(){xz.call(this)} +function jib(){xz.call(this)} +function Jrb(){xz.call(this)} +function Srb(){xz.call(this)} +function Dvb(){xz.call(this)} +function Ied(){xz.call(this)} +function R1d(){this.a=this} +function k1d(){this.Bb|=256} +function vWb(){this.b=new Et} +function aFb(a,b){a.length=b} +function dyb(a,b){Rmb(a.a,b)} +function jNb(a,b){LKb(a.c,b)} +function qRc(a,b){Ysb(a.b,b)} +function VOd(a,b){UNd(a.a,b)} +function WOd(a,b){VNd(a.a,b)} +function eZd(a,b){qvd(a.e,b)} +function Cke(a){bge(a.c,a.b)} +function uj(a,b){a.kc().Nb(b)} +function Ufb(a){this.a=Zfb(a)} +function _sb(){this.a=new Tsb} +function $Ab(){this.a=new Tsb} +function xAb(){this.a=new dzb} +function gyb(){this.a=new bnb} +function BIb(){this.a=new bnb} +function GIb(){this.a=new bnb} +function wIb(){this.a=new pIb} +function gJb(){this.a=new DIb} +function TTb(){this.a=new DTb} +function jGb(){this.a=new fGb} +function qGb(){this.a=new kGb} +function q_b(){this.a=new bnb} +function E_b(){this.a=new bnb} +function EZb(){this.a=new bnb} +function J$b(){this.a=new bnb} +function YNb(){this.d=new bnb} +function lXb(){this.a=new RWb} +function y_b(){this.a=new _sb} +function k5b(){this.a=new Tsb} +function E0b(){this.b=new Tsb} +function jHc(){this.b=new bnb} +function ZNc(){this.e=new bnb} +function ahc(){this.a=new boc} +function UQc(){this.d=new bnb} +function uRc(){tRc.call(this)} +function BRc(){tRc.call(this)} +function VOc(){bnb.call(this)} +function web(){ueb.call(this)} +function Fyb(){gyb.call(this)} +function fKb(){RJb.call(this)} +function N$b(){J$b.call(this)} +function P2b(){I2b.call(this)} +function T2b(){P2b.call(this)} +function z3b(){I2b.call(this)} +function C3b(){z3b.call(this)} +function cUc(){aUc.call(this)} +function hUc(){aUc.call(this)} +function mUc(){aUc.call(this)} +function Hdd(){Ddd.call(this)} +function ACd(){$yd.call(this)} +function PCd(){$yd.call(this)} +function Ejd(){Yub.call(this)} +function LQd(){wQd.call(this)} +function lRd(){wQd.call(this)} +function MSd(){Tsb.call(this)} +function VSd(){Tsb.call(this)} +function eTd(){Tsb.call(this)} +function mXd(){HWd.call(this)} +function i1d(){_sb.call(this)} +function A1d(){k1d.call(this)} +function q4d(){dWd.call(this)} +function O5d(){Tsb.call(this)} +function R5d(){dWd.call(this)} +function lae(){Tsb.call(this)} +function Cae(){Tsb.call(this)} +function ome(){kUd.call(this)} +function Hme(){ome.call(this)} +function Nme(){kUd.call(this)} +function Gre(){Tqe.call(this)} +function aUc(){this.a=new _sb} +function nZc(){this.a=new Tsb} +function DZc(){this.a=new bnb} +function Ddd(){this.a=new Tsb} +function Oqd(){this.a=new Yub} +function Oed(){this.j=new bnb} +function obd(){this.a=new nbd} +function wQd(){this.a=new AQd} +function R5c(){this.a=new V5c} +function wb(){wb=geb;vb=new xb} +function Wk(){Wk=geb;Vk=new Xk} +function kl(){kl=geb;jl=new ll} +function ll(){Qk.call(this,'')} +function Xk(){Qk.call(this,'')} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function xh(a){th.call(this,a)} +function $h(a){Wc.call(this,a)} +function Qi(a){Wc.call(this,a)} +function wi(a){$h.call(this,a)} +function Sp(a){$h.call(this,a)} +function Js(a){$h.call(this,a)} +function Jp(a){Xo.call(this,a)} +function Qp(a){Xo.call(this,a)} +function dq(a){ho.call(this,a)} +function Fv(a){uv.call(this,a)} +function aw(a){Tr.call(this,a)} +function cw(a){Tr.call(this,a)} +function _w(a){Tr.call(this,a)} +function Mx(a){Gn.call(this,a)} +function Nx(a){Mx.call(this,a)} +function yz(a){nz.call(this,a)} +function aC(a){yz.call(this,a)} +function uC(){vC.call(this,{})} +function cC(){cC=geb;bC=new dC} +function zs(){zs=geb;ys=new As} +function Az(){Az=geb;zz=new nb} +function $z(){$z=geb;Zz=new bA} +function $A(){$A=geb;ZA=new aB} +function Ovb(a){Kvb();this.a=a} +function FKc(a){jKc();this.a=a} +function zud(a){nud();this.f=a} +function Bud(a){nud();this.f=a} +function Cde(a){KMd();this.a=a} +function Lyb(a){a.b=null;a.c=0} +function kz(a,b){a.e=b;hz(a,b)} +function NYb(a,b){a.a=b;PYb(a)} +function cLb(a,b,c){a.a[b.g]=c} +function zsd(a,b,c){Hsd(c,a,b)} +function shc(a,b){Xmc(b.i,a.n)} +function HCc(a,b){ICc(a).Cd(b)} +function yw(a,b){a.a.ec().Mc(b)} +function ns(a,b){return a.g-b.g} +function AUb(a,b){return a*a/b} +function Heb(a){return uFb(a),a} +function Kfb(a){return uFb(a),a} +function Mfb(a){return uFb(a),a} +function JC(a){return new hC(a)} +function LC(a){return new OC(a)} +function shb(a){return uFb(a),a} +function Chb(a){return uFb(a),a} +function teb(a){yz.call(this,a)} +function veb(a){yz.call(this,a)} +function zeb(a){yz.call(this,a)} +function Aeb(a){nz.call(this,a)} +function Ifb(a){yz.call(this,a)} +function agb(a){yz.call(this,a)} +function dgb(a){yz.call(this,a)} +function Mgb(a){yz.call(this,a)} +function Ogb(a){yz.call(this,a)} +function kib(a){yz.call(this,a)} +function Jed(a){yz.call(this,a)} +function Ked(a){yz.call(this,a)} +function CDd(a){yz.call(this,a)} +function Mle(a){yz.call(this,a)} +function Lqe(a){yz.call(this,a)} +function mob(a){uFb(a);this.a=a} +function yYb(a){sYb(a);return a} +function Nnb(a){Snb(a,a.length)} +function nmb(a){return a.b==a.c} +function Vyb(a){return !!a&&a.b} +function gLb(a){return !!a&&a.k} +function hLb(a){return !!a&&a.j} +function F_b(a,b,c){a.c.Ef(b,c)} +function Ts(a,b){a.be(b);b.ae(a)} +function Fy(a){_l();this.a=Qb(a)} +function Gb(){this.a=WD(Qb(pve))} +function jc(){throw Adb(new jib)} +function jn(){throw Adb(new jib)} +function Hh(){throw Adb(new jib)} +function Xi(){throw Adb(new jib)} +function Xj(){throw Adb(new jib)} +function Yj(){throw Adb(new jib)} +function Qz(){Qz=geb;!!(fA(),eA)} +function Qhb(){reb.call(this,'')} +function Rhb(){reb.call(this,'')} +function bib(){reb.call(this,'')} +function cib(){reb.call(this,'')} +function eib(a){veb.call(this,a)} +function xeb(a){veb.call(this,a)} +function Vgb(a){agb.call(this,a)} +function Lqb(a){xpb.call(this,a)} +function Sqb(a){Lqb.call(this,a)} +function irb(a){Upb.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ri(){Si.call(this,12,3)} +function WC(a,b){return xfb(a,b)} +function cFb(a,b){return dD(a,b)} +function Reb(a,b){return a.a-b.a} +function afb(a,b){return a.a-b.a} +function Wgb(a,b){return a.a-b.a} +function pC(b,a){return a in b.a} +function Vvb(a){return a.a?a.b:0} +function cwb(a){return a.a?a.b:0} +function Fxb(a,b,c){b.Cd(a.a[c])} +function Kxb(a,b,c){b.Pe(a.a[c])} +function uKb(a,b){a.b=new sjd(b)} +function QGb(a,b){a.b=b;return a} +function RGb(a,b){a.c=b;return a} +function SGb(a,b){a.f=b;return a} +function TGb(a,b){a.g=b;return a} +function yJb(a,b){a.a=b;return a} +function zJb(a,b){a.f=b;return a} +function AJb(a,b){a.k=b;return a} +function WNb(a,b){a.a=b;return a} +function XNb(a,b){a.e=b;return a} +function BYb(a,b){a.e=b;return a} +function CYb(a,b){a.f=b;return a} +function BRb(a,b){a.b=true;a.d=b} +function WNc(a,b){return a.b-b.b} +function KSc(a,b){return a.g-b.g} +function pmc(a,b){return a?0:b-1} +function qKc(a,b){return a?0:b-1} +function pKc(a,b){return a?b-1:0} +function uVc(a,b){return a.s-b.s} +function Xed(a,b){return b.rg(a)} +function Xfd(a,b){a.b=b;return a} +function Wfd(a,b){a.a=b;return a} +function Yfd(a,b){a.c=b;return a} +function Zfd(a,b){a.d=b;return a} +function $fd(a,b){a.e=b;return a} +function _fd(a,b){a.f=b;return a} +function mgd(a,b){a.a=b;return a} +function ngd(a,b){a.b=b;return a} +function ogd(a,b){a.c=b;return a} +function Khd(a,b){a.c=b;return a} +function Jhd(a,b){a.b=b;return a} +function Lhd(a,b){a.d=b;return a} +function Mhd(a,b){a.e=b;return a} +function Nhd(a,b){a.f=b;return a} +function Ohd(a,b){a.g=b;return a} +function Phd(a,b){a.a=b;return a} +function Qhd(a,b){a.i=b;return a} +function Rhd(a,b){a.j=b;return a} +function coc(a,b){Mnc();P3b(b,a)} +function bbd(a,b,c){_ad(a.a,b,c)} +function Fjd(a){Zub.call(this,a)} +function TRb(a){SRb.call(this,a)} +function pLc(a){CIc.call(this,a)} +function ILc(a){CIc.call(this,a)} +function gLd(a){ZHd.call(this,a)} +function DPd(a){xPd.call(this,a)} +function FPd(a){xPd.call(this,a)} +function x2b(){y2b.call(this,'')} +function pjd(){this.a=0;this.b=0} +function ATc(){this.b=0;this.a=0} +function lXd(a,b){a.b=0;bWd(a,b)} +function Kqd(a,b){a.k=b;return a} +function Lqd(a,b){a.j=b;return a} +function vfe(a,b){a.c=b;a.b=true} +function Etb(){Etb=geb;Dtb=Gtb()} +function bvd(){bvd=geb;avd=OAd()} +function dvd(){dvd=geb;cvd=aCd()} +function MId(){MId=geb;LId=ygd()} +function jTd(){jTd=geb;iTd=Qae()} +function Ole(){Ole=geb;Nle=vne()} +function Qle(){Qle=geb;Ple=Cne()} +function mfb(a){return a.e&&a.e()} +function FD(a){return a.l|a.m<<22} +function Oc(a,b){return a.c._b(b)} +function En(a,b){return Wv(a.b,b)} +function Vd(a){return !a?null:a.d} +function Vv(a){return !a?null:a.g} +function $v(a){return !a?null:a.i} +function nfb(a){lfb(a);return a.o} +function Khb(a,b){a.a+=b;return a} +function Lhb(a,b){a.a+=b;return a} +function Ohb(a,b){a.a+=b;return a} +function Uhb(a,b){a.a+=b;return a} +function _wb(a,b){while(a.Bd(b));} +function atb(a){this.a=new Usb(a)} +function $tb(){throw Adb(new jib)} +function qpb(){throw Adb(new jib)} +function rpb(){throw Adb(new jib)} +function spb(){throw Adb(new jib)} +function vpb(){throw Adb(new jib)} +function Opb(){throw Adb(new jib)} +function yAb(a){this.a=new ezb(a)} +function H2c(){this.a=new Wed(s0)} +function TVc(){this.b=new Wed(H$)} +function l6c(){this.a=new Wed(V0)} +function $ad(){this.b=new Wed(I1)} +function nbd(){this.b=new Wed(I1)} +function T2c(a){this.a=0;this.b=a} +function Bib(a){tib();vib(this,a)} +function QDb(a){LCb(a);return a.a} +function dvb(a){return a.b!=a.d.c} +function AMc(a,b){return a.d[b.p]} +function ued(a,b){return ned(a,b)} +function $Eb(a,b,c){a.splice(b,c)} +function ixb(a,b){while(a.Re(b));} +function NKb(a){a.c?MKb(a):OKb(a)} +function mQd(){throw Adb(new jib)} +function nQd(){throw Adb(new jib)} +function oQd(){throw Adb(new jib)} +function pQd(){throw Adb(new jib)} +function qQd(){throw Adb(new jib)} +function rQd(){throw Adb(new jib)} +function sQd(){throw Adb(new jib)} +function tQd(){throw Adb(new jib)} +function uQd(){throw Adb(new jib)} +function vQd(){throw Adb(new jib)} +function zue(){throw Adb(new Dvb)} +function Aue(){throw Adb(new Dvb)} +function oue(a){this.a=new Dte(a)} +function Dte(a){Cte(this,a,sse())} +function cve(a){return !a||bve(a)} +function Cqe(a){return xqe[a]!=-1} +function Yz(){Nz!=0&&(Nz=0);Pz=-1} +function beb(){_db==null&&(_db=[])} +function eg(a,b){zf.call(this,a,b)} +function gg(a,b){eg.call(this,a,b)} +function Nj(a,b){this.a=a;this.b=b} +function hk(a,b){this.a=a;this.b=b} +function nk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function xk(a,b){this.a=a;this.b=b} +function zk(a,b){this.a=a;this.b=b} +function Kk(a,b){this.a=a;this.b=b} +function ne(a,b){this.e=a;this.d=b} +function Hf(a,b){this.b=a;this.c=b} +function cp(a,b){this.b=a;this.a=b} +function Cp(a,b){this.b=a;this.a=b} +function qr(a,b){this.b=a;this.a=b} +function Rr(a,b){this.b=a;this.a=b} +function vr(a,b){this.a=a;this.b=b} +function su(a,b){this.a=a;this.b=b} +function Hu(a,b){this.a=a;this.f=b} +function gp(a,b){this.g=a;this.i=b} +function qs(a,b){this.f=a;this.g=b} +function Gv(a,b){this.b=a;this.c=b} +function Wc(a){Lb(a.dc());this.c=a} +function Ex(a,b){this.a=a;this.b=b} +function ey(a,b){this.a=a;this.b=b} +function pv(a){this.a=RD(Qb(a),15)} +function uv(a){this.a=RD(Qb(a),15)} +function nw(a){this.a=RD(Qb(a),85)} +function rf(a){this.b=RD(Qb(a),85)} +function Tr(a){this.b=RD(Qb(a),51)} +function uB(){this.q=new $wnd.Date} +function CC(a,b){this.a=a;this.b=b} +function Bt(a,b){return Ujb(a.b,b)} +function tpb(a,b){return a.b.Hc(b)} +function upb(a,b){return a.b.Ic(b)} +function wpb(a,b){return a.b.Qc(b)} +function Pqb(a,b){return a.b.Hc(b)} +function pqb(a,b){return a.c.uc(b)} +function rqb(a,b){return pb(a.c,b)} +function Zsb(a,b){return a.a._b(b)} +function Xp(a,b){return a>b&&b0} +function Ldb(a,b){return Ddb(a,b)<0} +function Urb(a,b){return Bsb(a.a,b)} +function Beb(a,b){oz.call(this,a,b)} +function Qx(a){Px();ho.call(this,a)} +function Lnb(a,b){Pnb(a,a.length,b)} +function Mnb(a,b){Rnb(a,a.length,b)} +function Ktb(a,b){return a.a.get(b)} +function bub(a,b){return Ujb(a.e,b)} +function Zxb(a){return uFb(a),false} +function zw(a){this.a=RD(Qb(a),229)} +function $wb(a){Swb.call(this,a,21)} +function dAb(a,b){qs.call(this,a,b)} +function yBb(a,b){qs.call(this,a,b)} +function ssb(a,b){this.b=a;this.a=b} +function xlb(a,b){this.d=a;this.e=b} +function jEb(a,b){this.a=a;this.b=b} +function pEb(a,b){this.a=a;this.b=b} +function vEb(a,b){this.a=a;this.b=b} +function BEb(a,b){this.a=a;this.b=b} +function TFb(a,b){this.a=a;this.b=b} +function QEb(a,b){this.b=a;this.a=b} +function sHb(a,b){this.b=a;this.a=b} +function EHb(a,b){qs.call(this,a,b)} +function MHb(a,b){qs.call(this,a,b)} +function jIb(a,b){qs.call(this,a,b)} +function $Jb(a,b){qs.call(this,a,b)} +function FKb(a,b){qs.call(this,a,b)} +function wLb(a,b){qs.call(this,a,b)} +function nOb(a,b){qs.call(this,a,b)} +function kPb(a,b){this.b=a;this.a=b} +function JPb(a,b){qs.call(this,a,b)} +function fRb(a,b){this.b=a;this.a=b} +function JRb(a,b){qs.call(this,a,b)} +function OTb(a,b){this.b=a;this.a=b} +function UUb(a,b){qs.call(this,a,b)} +function BWb(a,b){qs.call(this,a,b)} +function tXb(a,b){qs.call(this,a,b)} +function XEb(a,b,c){a.splice(b,0,c)} +function pr(a,b,c){a.Mb(c)&&b.Cd(c)} +function lEb(a,b,c){b.Pe(a.a.Ye(c))} +function rEb(a,b,c){b.Dd(a.a.Ze(c))} +function xEb(a,b,c){b.Cd(a.a.Kb(c))} +function eYb(a,b){return Csb(a.c,b)} +function cGb(a,b){return Csb(a.e,b)} +function qZb(a,b){qs.call(this,a,b)} +function V$b(a,b){qs.call(this,a,b)} +function s3b(a,b){qs.call(this,a,b)} +function Q8b(a,b){qs.call(this,a,b)} +function icc(a,b){qs.call(this,a,b)} +function xec(a,b){qs.call(this,a,b)} +function gic(a,b){this.a=a;this.b=b} +function Xic(a,b){this.a=a;this.b=b} +function h4b(a,b){this.a=a;this.b=b} +function vjc(a,b){this.a=a;this.b=b} +function xjc(a,b){this.a=a;this.b=b} +function Hjc(a,b){this.a=a;this.b=b} +function hjc(a,b){this.b=a;this.a=b} +function Jjc(a,b){this.b=a;this.a=b} +function _Yb(a,b){this.b=a;this.a=b} +function eZb(a,b){this.c=a;this.d=b} +function Q1b(a,b){this.e=a;this.d=b} +function Tjc(a,b){this.a=a;this.b=b} +function ulc(a,b){this.a=a;this.b=b} +function Elc(a,b){this.a=a;this.b=b} +function fqc(a,b){this.b=a;this.a=b} +function smc(a,b){this.b=b;this.c=a} +function fnc(a,b){qs.call(this,a,b)} +function Cnc(a,b){qs.call(this,a,b)} +function koc(a,b){qs.call(this,a,b)} +function ktc(a,b){qs.call(this,a,b)} +function ctc(a,b){qs.call(this,a,b)} +function utc(a,b){qs.call(this,a,b)} +function Ftc(a,b){qs.call(this,a,b)} +function Rtc(a,b){qs.call(this,a,b)} +function _tc(a,b){qs.call(this,a,b)} +function iuc(a,b){qs.call(this,a,b)} +function vuc(a,b){qs.call(this,a,b)} +function Duc(a,b){qs.call(this,a,b)} +function Puc(a,b){qs.call(this,a,b)} +function _uc(a,b){qs.call(this,a,b)} +function pvc(a,b){qs.call(this,a,b)} +function yvc(a,b){qs.call(this,a,b)} +function Hvc(a,b){qs.call(this,a,b)} +function Pvc(a,b){qs.call(this,a,b)} +function dxc(a,b){qs.call(this,a,b)} +function bDc(a,b){qs.call(this,a,b)} +function nDc(a,b){qs.call(this,a,b)} +function yDc(a,b){qs.call(this,a,b)} +function LDc(a,b){qs.call(this,a,b)} +function bEc(a,b){qs.call(this,a,b)} +function lEc(a,b){qs.call(this,a,b)} +function tEc(a,b){qs.call(this,a,b)} +function CEc(a,b){qs.call(this,a,b)} +function LEc(a,b){qs.call(this,a,b)} +function UEc(a,b){qs.call(this,a,b)} +function mFc(a,b){qs.call(this,a,b)} +function vFc(a,b){qs.call(this,a,b)} +function EFc(a,b){qs.call(this,a,b)} +function SKc(a,b){qs.call(this,a,b)} +function cNc(a,b){this.b=a;this.a=b} +function tNc(a,b){qs.call(this,a,b)} +function QOc(a,b){this.a=a;this.b=b} +function ePc(a,b){this.a=a;this.b=b} +function LPc(a,b){this.a=a;this.b=b} +function xQc(a,b){qs.call(this,a,b)} +function FQc(a,b){qs.call(this,a,b)} +function MQc(a,b){this.a=a;this.b=b} +function FMc(a,b){dMc();return b!=a} +function Uvb(a){sFb(a.a);return a.b} +function qYb(a){rYb(a,a.c);return a} +function Itb(){Etb();return new Dtb} +function _ec(){Rec();this.a=new e6b} +function lSc(){dSc();this.a=new _sb} +function aRc(){WQc();this.b=new _sb} +function xRc(a,b){this.b=a;this.d=b} +function nVc(a,b){this.a=a;this.b=b} +function pVc(a,b){this.a=a;this.b=b} +function GWc(a,b){this.a=a;this.b=b} +function IXc(a,b){this.b=a;this.a=b} +function gTc(a,b){qs.call(this,a,b)} +function eVc(a,b){qs.call(this,a,b)} +function $Vc(a,b){qs.call(this,a,b)} +function XYc(a,b){qs.call(this,a,b)} +function MZc(a,b){qs.call(this,a,b)} +function t_c(a,b){qs.call(this,a,b)} +function B_c(a,b){qs.call(this,a,b)} +function z2c(a,b){qs.call(this,a,b)} +function h3c(a,b){qs.call(this,a,b)} +function $3c(a,b){qs.call(this,a,b)} +function i4c(a,b){qs.call(this,a,b)} +function l5c(a,b){qs.call(this,a,b)} +function v5c(a,b){qs.call(this,a,b)} +function g6c(a,b){qs.call(this,a,b)} +function A6c(a,b){qs.call(this,a,b)} +function a7c(a,b){qs.call(this,a,b)} +function B8c(a,b){qs.call(this,a,b)} +function d9c(a,b){qs.call(this,a,b)} +function D9c(a,b){qs.call(this,a,b)} +function tad(a,b){qs.call(this,a,b)} +function hbd(a,b){qs.call(this,a,b)} +function Nbd(a,b){qs.call(this,a,b)} +function Ybd(a,b){qs.call(this,a,b)} +function ndd(a,b){qs.call(this,a,b)} +function z1c(a,b){this.b=a;this.a=b} +function B1c(a,b){this.b=a;this.a=b} +function d2c(a,b){this.b=a;this.a=b} +function f2c(a,b){this.b=a;this.a=b} +function m9c(a,b){this.a=a;this.b=b} +function xed(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function rjd(a,b){this.a=a;this.b=b} +function Sjd(a,b){qs.call(this,a,b)} +function Zhd(a,b){qs.call(this,a,b)} +function lid(a,b){qs.call(this,a,b)} +function vkd(a,b){qs.call(this,a,b)} +function Gmd(a,b){qs.call(this,a,b)} +function Pmd(a,b){qs.call(this,a,b)} +function Zmd(a,b){qs.call(this,a,b)} +function jnd(a,b){qs.call(this,a,b)} +function Gnd(a,b){qs.call(this,a,b)} +function Rnd(a,b){qs.call(this,a,b)} +function eod(a,b){qs.call(this,a,b)} +function qod(a,b){qs.call(this,a,b)} +function Eod(a,b){qs.call(this,a,b)} +function Qod(a,b){qs.call(this,a,b)} +function upd(a,b){qs.call(this,a,b)} +function Rpd(a,b){qs.call(this,a,b)} +function eqd(a,b){qs.call(this,a,b)} +function nqd(a,b){qs.call(this,a,b)} +function vqd(a,b){qs.call(this,a,b)} +function Hrd(a,b){qs.call(this,a,b)} +function esd(a,b){this.a=a;this.b=b} +function gsd(a,b){this.a=a;this.b=b} +function isd(a,b){this.a=a;this.b=b} +function Osd(a,b){this.a=a;this.b=b} +function Qsd(a,b){this.a=a;this.b=b} +function Ssd(a,b){this.a=a;this.b=b} +function Ptd(a,b){this.a=a;this.b=b} +function JEd(a,b){this.a=a;this.b=b} +function KEd(a,b){this.a=a;this.b=b} +function MEd(a,b){this.a=a;this.b=b} +function NEd(a,b){this.a=a;this.b=b} +function QEd(a,b){this.a=a;this.b=b} +function REd(a,b){this.a=a;this.b=b} +function SEd(a,b){this.b=a;this.a=b} +function TEd(a,b){this.b=a;this.a=b} +function bFd(a,b){this.b=a;this.a=b} +function dFd(a,b){this.b=a;this.a=b} +function fFd(a,b){this.a=a;this.b=b} +function hFd(a,b){this.a=a;this.b=b} +function utd(a,b){qs.call(this,a,b)} +function sFd(a,b){this.a=a;this.b=b} +function uFd(a,b){this.a=a;this.b=b} +function bGd(a,b){qs.call(this,a,b)} +function uId(a,b){this.f=a;this.c=b} +function Ofd(a,b){return Csb(a.g,b)} +function Tqc(a,b){return Csb(b.b,a)} +function HPd(a,b){return QNd(a.a,b)} +function Idd(a,b){return -a.b.af(b)} +function IId(a,b){!!a&&Zjb(CId,a,b)} +function yWd(a,b){a.i=null;zWd(a,b)} +function kEd(a,b,c){pDd(b,KDd(a,c))} +function lEd(a,b,c){pDd(b,KDd(a,c))} +function mFd(a,b){vEd(a.a,RD(b,58))} +function _Mc(a,b){GMc(a.a,RD(b,12))} +function KTd(a,b){this.a=a;this.b=b} +function NTd(a,b){this.a=a;this.b=b} +function B5d(a,b){this.a=a;this.b=b} +function Z6d(a,b){this.a=a;this.b=b} +function Ble(a,b){this.a=a;this.b=b} +function afe(a,b){this.d=a;this.b=b} +function wfe(a,b){this.e=a;this.a=b} +function Eke(a,b){this.b=a;this.c=b} +function zNd(a,b){this.i=a;this.g=b} +function kZd(a,b){this.d=a;this.e=b} +function ave(a,b){eve(new dMd(a),b)} +function Dke(a){return pge(a.c,a.b)} +function Wd(a){return !a?null:a.md()} +function dE(a){return a==null?null:a} +function bE(a){return typeof a===jve} +function $D(a){return typeof a===hve} +function _D(a){return typeof a===ive} +function Gdb(a,b){return Ddb(a,b)==0} +function Jdb(a,b){return Ddb(a,b)>=0} +function Pdb(a,b){return Ddb(a,b)!=0} +function ar(a,b){return zr(a.Kc(),b)} +function Qm(a,b){return a.Rd().Xb(b)} +function kg(a){ig(a);return a.d.gc()} +function fE(a){CFb(a==null);return a} +function Mhb(a,b){a.a+=''+b;return a} +function Nhb(a,b){a.a+=''+b;return a} +function Whb(a,b){a.a+=''+b;return a} +function Yhb(a,b){a.a+=''+b;return a} +function Zhb(a,b){a.a+=''+b;return a} +function Vhb(a,b){return a.a+=''+b,a} +function Pfb(a){return ''+(uFb(a),a)} +function Vsb(a){akb(this);Ld(this,a)} +function YFc(){RFc();UFc.call(this)} +function pxb(a,b){kxb.call(this,a,b)} +function txb(a,b){kxb.call(this,a,b)} +function xxb(a,b){kxb.call(this,a,b)} +function Oub(a,b){Pub(a,b,a.c.b,a.c)} +function Nub(a,b){Pub(a,b,a.a,a.a.a)} +function Iob(a){tFb(a,0);return null} +function Xvb(){this.b=0;this.a=false} +function dwb(){this.b=0;this.a=false} +function Et(){this.b=new Usb(Sv(12))} +function pMb(){pMb=geb;oMb=ss(nMb())} +function ncc(){ncc=geb;mcc=ss(lcc())} +function aZc(){aZc=geb;_Yc=ss($Yc())} +function WA(){WA=geb;vA();VA=new Tsb} +function hjd(a){a.a=0;a.b=0;return a} +function qfd(a,b){a.a=b.g+1;return a} +function yNd(a,b){aMd.call(this,a,b)} +function lGd(a,b){kGd.call(this,a,b)} +function N$d(a,b){zNd.call(this,a,b)} +function Whe(a,b){Q2d.call(this,a,b)} +function She(a,b){Phe.call(this,a,b)} +function RRd(a,b){PRd();Zjb(ORd,a,b)} +function sB(a,b){a.q.setTime(Xdb(b))} +function Xz(a){$wnd.clearTimeout(a)} +function cr(a){return Qb(a),new Dl(a)} +function mb(a,b){return dE(a)===dE(b)} +function Mw(a,b){return a.a.a.a.cc(b)} +function qeb(a,b){return zhb(a.a,0,b)} +function SSb(a){return MSb(RD(a,74))} +function Nfb(a){return eE((uFb(a),a))} +function Ofb(a){return eE((uFb(a),a))} +function gD(a){return hD(a.l,a.m,a.h)} +function egb(a,b){return hgb(a.a,b.a)} +function ygb(a,b){return Agb(a.a,b.a)} +function Sfb(a,b){return Qfb(a.a,b.a)} +function qhb(a,b){return a.indexOf(b)} +function nOc(a,b){return a.j[b.p]==2} +function cz(a,b){return a==b?0:a?1:-1} +function AB(a){return a<10?'0'+a:''+a} +function Kdb(a){return typeof a===ive} +function oZb(a){return a==jZb||a==mZb} +function pZb(a){return a==jZb||a==kZb} +function ELb(a,b){return hgb(a.g,b.g)} +function Q4b(a){return Wmb(a.b.b,a,0)} +function Q2b(){J2b.call(this,0,0,0,0)} +function Iub(){ctb.call(this,new gub)} +function Znb(a,b){Wnb(a,0,a.length,b)} +function Eyb(a,b){Rmb(a.a,b);return b} +function Fkc(a,b){lkc();return b.a+=a} +function Hkc(a,b){lkc();return b.a+=a} +function Gkc(a,b){lkc();return b.c+=a} +function ied(a,b){Rmb(a.c,b);return a} +function Ped(a,b){ofd(a.a,b);return a} +function ttb(a){this.a=Itb();this.b=a} +function Ntb(a){this.a=Itb();this.b=a} +function sjd(a){this.a=a.a;this.b=a.b} +function Dl(a){this.a=a;zl.call(this)} +function Gl(a){this.a=a;zl.call(this)} +function Tid(){Uid.call(this,0,0,0,0)} +function vfd(a){return ofd(new ufd,a)} +function Ksd(a){return iyd(RD(a,123))} +function Mvd(a){return a.vh()&&a.wh()} +function Dod(a){return a!=zod&&a!=Aod} +function Dmd(a){return a==ymd||a==zmd} +function Emd(a){return a==Bmd||a==xmd} +function xDc(a){return a==tDc||a==sDc} +function yrc(a,b){return hgb(a.g,b.g)} +function Yfe(a,b){return new Phe(b,a)} +function Zfe(a,b){return new Phe(b,a)} +function lr(a){return Dr(a.b.Kc(),a.a)} +function IXd(a,b){yXd(a,b);zXd(a,a.D)} +function Uxd(a,b,c){Vxd(a,b);Wxd(a,c)} +function zyd(a,b,c){Cyd(a,b);Ayd(a,c)} +function Byd(a,b,c){Dyd(a,b);Eyd(a,c)} +function Gzd(a,b,c){Hzd(a,b);Izd(a,c)} +function Nzd(a,b,c){Ozd(a,b);Pzd(a,c)} +function eh(a,b,c){bh.call(this,a,b,c)} +function zId(a){uId.call(this,a,true)} +function nAb(){dAb.call(this,'Tail',3)} +function iAb(){dAb.call(this,'Head',1)} +function ejb(a){Pib();fjb.call(this,a)} +function A3b(a){J2b.call(this,a,a,a,a)} +function Pmb(a){a.c=$C(jJ,rve,1,0,5,1)} +function yRb(a){a.b&&CRb(a);return a.a} +function zRb(a){a.b&&CRb(a);return a.c} +function mBb(a,b){if(dBb){return}a.b=b} +function YCb(a,b){return a[a.length]=b} +function _Cb(a,b){return a[a.length]=b} +function l5b(a,b){return NGd(b,MCd(a))} +function m5b(a,b){return NGd(b,MCd(a))} +function DDd(a,b){return lp(Co(a.d),b)} +function EDd(a,b){return lp(Co(a.g),b)} +function FDd(a,b){return lp(Co(a.j),b)} +function mGd(a,b){kGd.call(this,a.b,b)} +function s0d(a,b){WGd(tYd(a.a),v0d(b))} +function B4d(a,b){WGd(o4d(a.a),E4d(b))} +function Asd(a,b,c){Byd(c,c.i+a,c.j+b)} +function eFc(a,b,c){bD(a.c[b.g],b.g,c)} +function zVd(a,b,c){RD(a.c,71).Gi(b,c)} +function LMd(a,b,c){bD(a,b,c);return c} +function DJb(a){Umb(a.Sf(),new HJb(a))} +function Gvb(a){return a!=null?tb(a):0} +function aOd(a){return a==null?0:tb(a)} +function iue(a){Vse();Wse.call(this,a)} +function Ug(a){this.a=a;Og.call(this,a)} +function Zy(){Zy=geb;$wnd.Math.log(2)} +function s7d(){s7d=geb;r7d=($Sd(),ZSd)} +function FRc(){FRc=geb;ERc=new Zrb(u3)} +function Hde(){Hde=geb;new Ide;new bnb} +function Ide(){new Tsb;new Tsb;new Tsb} +function yue(){throw Adb(new kib(bMe))} +function Nue(){throw Adb(new kib(bMe))} +function Bue(){throw Adb(new kib(cMe))} +function Que(){throw Adb(new kib(cMe))} +function Gp(a){this.a=a;rf.call(this,a)} +function Np(a){this.a=a;rf.call(this,a)} +function Sq(a,b){tm();this.a=a;this.b=b} +function Jh(a,b){Qb(b);Ih(a).Jc(new jx)} +function _mb(a,b){Ynb(a.c,a.c.length,b)} +function xnb(a){return a.ab?1:0} +function Kgb(a,b){return Ddb(a,b)>0?a:b} +function hD(a,b,c){return {l:a,m:b,h:c}} +function Mvb(a,b){a.a!=null&&_Mc(b,a.a)} +function Lhc(a){Y0b(a,null);Z0b(a,null)} +function xkc(a,b,c){return Zjb(a.g,c,b)} +function bFc(a,b,c){return _Ec(b,c,a.c)} +function jOc(a,b,c){return Zjb(a.k,c,b)} +function pOc(a,b,c){qOc(a,b,c);return c} +function FOc(a,b){dOc();return b.n.b+=a} +function lUb(a){VTb.call(this);this.b=a} +function y2b(a){v2b.call(this);this.a=a} +function kAb(){dAb.call(this,'Range',2)} +function $Fb(a){this.b=a;this.a=new bnb} +function WQb(a){this.b=new gRb;this.a=a} +function Lub(a){a.a=new svb;a.c=new svb} +function nrc(a){a.a=new Tsb;a.d=new Tsb} +function $Sc(a){_Sc(a,null);aTc(a,null)} +function a2d(a,b){return xA(a.a,b,null)} +function Cdd(a,b){return Zjb(a.a,b.a,b)} +function ajd(a){return new rjd(a.a,a.b)} +function Pid(a){return new rjd(a.c,a.d)} +function Qid(a){return new rjd(a.c,a.d)} +function Ake(a,b){return Tfe(a.c,a.b,b)} +function ZD(a,b){return a!=null&&QD(a,b)} +function br(a,b){return Jr(a.Kc(),b)!=-1} +function Hr(a){return a.Ob()?a.Pb():null} +function _p(a){this.b=(yob(),new uqb(a))} +function zke(a){this.a=a;Tsb.call(this)} +function Uhe(){Q2d.call(this,null,null)} +function Yhe(){p3d.call(this,null,null)} +function As(){qs.call(this,'INSTANCE',0)} +function dXb(){_Wb();this.a=new Wed(UP)} +function Hhb(a){return Ihb(a,0,a.length)} +function Rv(a,b){return new ew(a.Kc(),b)} +function $sb(a,b){return a.a.Bc(b)!=null} +function hZd(a,b){sLd(a);a.Gc(RD(b,15))} +function ONd(a,b,c){a.c.bd(b,RD(c,136))} +function eOd(a,b,c){a.c.Ui(b,RD(c,136))} +function eub(a,b){if(a.c){rub(b);qub(b)}} +function oB(a,b){a.q.setHours(b);mB(a,b)} +function vTb(a,b){Zid(b,a.a.a.a,a.a.a.b)} +function tKb(a,b,c,d){bD(a.a[b.g],c.g,d)} +function oKb(a,b,c){return a.a[b.g][c.g]} +function AIc(a,b){return a.e[b.c.p][b.p]} +function TIc(a,b){return a.c[b.c.p][b.p]} +function pJc(a,b){return a.a[b.c.p][b.p]} +function mOc(a,b){return a.j[b.p]=AOc(b)} +function wAb(a,b){return a.a.Bc(b)!=null} +function wXc(a,b){return Kfb(UD(b.a))<=a} +function xXc(a,b){return Kfb(UD(b.a))>=a} +function vhd(a,b){return jhb(a.f,b.Pg())} +function cjd(a,b){return a.a*b.a+a.b*b.b} +function Wsd(a,b){return a.a0?b/(a*a):b*100} +function FUb(a,b){return a>0?b*b/a:b*b*100} +function $5b(a,b){return RD(cub(a.a,b),34)} +function doc(a,b){Mnc();return Rc(a,b.e,b)} +function NCc(a,b,c){GCc();return c.Mg(a,b)} +function L0c(a){B0c();return a.e.a+a.f.a/2} +function N0c(a,b,c){B0c();return c.e.a-a*b} +function V0c(a){B0c();return a.e.b+a.f.b/2} +function X0c(a,b,c){B0c();return c.e.b-a*b} +function _tb(a){a.d=new tub(a);a.e=new Tsb} +function x3c(){this.a=new Tp;this.b=new Tp} +function hmc(a){this.c=a;this.a=1;this.b=1} +function C$b(a){z$b();A$b(this);this.Ff(a)} +function Efd(a,b,c){Afd();a.pf(b)&&c.Cd(a)} +function Red(a,b,c){return Rmb(b,Ted(a,c))} +function Zid(a,b,c){a.a+=b;a.b+=c;return a} +function jjd(a,b,c){a.a*=b;a.b*=c;return a} +function mjd(a,b){a.a=b.a;a.b=b.b;return a} +function fjd(a){a.a=-a.a;a.b=-a.b;return a} +function njd(a,b,c){a.a-=b;a.b-=c;return a} +function Gjd(a){Yub.call(this);zjd(this,a)} +function Dbd(){qs.call(this,'GROW_TREE',0)} +function WRb(){qs.call(this,'POLYOMINO',0)} +function SVd(a,b,c){DVd.call(this,a,b,c,2)} +function r0d(a,b,c){VGd(tYd(a.a),b,v0d(c))} +function e3d(a,b){N2d();Q2d.call(this,a,b)} +function D3d(a,b){j3d();p3d.call(this,a,b)} +function F3d(a,b){j3d();D3d.call(this,a,b)} +function H3d(a,b){j3d();p3d.call(this,a,b)} +function PNd(a,b){return a.c.Fc(RD(b,136))} +function A4d(a,b,c){VGd(o4d(a.a),b,E4d(c))} +function Ard(a){this.c=a;Dyd(a,0);Eyd(a,0)} +function Z8d(a,b){s7d();N8d.call(this,a,b)} +function _8d(a,b){s7d();Z8d.call(this,a,b)} +function b9d(a,b){s7d();Z8d.call(this,a,b)} +function n9d(a,b){s7d();N8d.call(this,a,b)} +function d9d(a,b){s7d();b9d.call(this,a,b)} +function p9d(a,b){s7d();n9d.call(this,a,b)} +function v9d(a,b){s7d();N8d.call(this,a,b)} +function lge(a,b,c){return b.zl(a.e,a.c,c)} +function nge(a,b,c){return b.Al(a.e,a.c,c)} +function Wee(a,b,c){return tfe(Pee(a,b),c)} +function Age(a,b){return Vvd(a.e,RD(b,54))} +function _me(a){return a==null?null:Bqe(a)} +function dne(a){return a==null?null:Iqe(a)} +function gne(a){return a==null?null:jeb(a)} +function hne(a){return a==null?null:jeb(a)} +function TD(a){CFb(a==null||$D(a));return a} +function UD(a){CFb(a==null||_D(a));return a} +function WD(a){CFb(a==null||bE(a));return a} +function lfb(a){if(a.o!=null){return}Bfb(a)} +function lFb(a){if(!a){throw Adb(new _fb)}} +function pFb(a){if(!a){throw Adb(new yeb)}} +function sFb(a){if(!a){throw Adb(new Dvb)}} +function yFb(a){if(!a){throw Adb(new cgb)}} +function zmb(a){if(!a){throw Adb(new Jrb)}} +function jQd(){jQd=geb;iQd=new LQd;new lRd} +function u2c(){u2c=geb;t2c=new jGd('root')} +function d6d(){HWd.call(this);this.Bb|=txe} +function Pg(a,b){this.d=a;Lg(this);this.b=b} +function WCb(a,b){NCb.call(this,a);this.a=b} +function oDb(a,b){NCb.call(this,a);this.a=b} +function bh(a,b,c){lg.call(this,a,b,c,null)} +function fh(a,b,c){lg.call(this,a,b,c,null)} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Uf(a,b){this.a=a;Mf.call(this,a,b)} +function wB(a){this.q=new $wnd.Date(Xdb(a))} +function OPb(a){if(a>8){return 0}return a+1} +function iBb(a,b){if(dBb){return}Rmb(a.a,b)} +function P5b(a,b){H5b();return n2b(b.d.i,a)} +function qdc(a,b){Zcc();return new xdc(b,a)} +function HAb(a,b,c){return a.Ne(b,c)<=0?c:b} +function IAb(a,b,c){return a.Ne(b,c)<=0?b:c} +function rgd(a,b){return RD(cub(a.b,b),143)} +function tgd(a,b){return RD(cub(a.c,b),233)} +function amc(a){return RD(Vmb(a.a,a.b),294)} +function Mid(a){return new rjd(a.c,a.d+a.a)} +function Jeb(a){return (uFb(a),a)?1231:1237} +function EPc(a){return dOc(),xDc(RD(a,203))} +function RMb(){RMb=geb;QMb=xsb((Qpd(),Ppd))} +function YQb(a,b){b.a?ZQb(a,b):wAb(a.a,b.b)} +function aJd(a,b,c){++a.j;a.tj();$Gd(a,b,c)} +function $Id(a,b,c){++a.j;a.qj(b,a.Zi(b,c))} +function B2d(a,b,c){var d;d=a.fd(b);d.Rb(c)} +function Bzd(a,b,c){c=xvd(a,b,6,c);return c} +function izd(a,b,c){c=xvd(a,b,3,c);return c} +function KCd(a,b,c){c=xvd(a,b,9,c);return c} +function SKb(a,b){Ivb(b,Pye);a.f=b;return a} +function bOd(a,b){return (b&lve)%a.d.length} +function Bke(a,b,c){return age(a.c,a.b,b,c)} +function ZLd(a,b){this.c=a;ZHd.call(this,b)} +function w0d(a,b){this.a=a;Q_d.call(this,b)} +function F4d(a,b){this.a=a;Q_d.call(this,b)} +function kGd(a,b){jGd.call(this,a);this.a=b} +function U6d(a,b){L6d.call(this,a);this.a=b} +function S9d(a,b){L6d.call(this,a);this.a=b} +function jQb(a){gQb.call(this,0,0);this.f=a} +function _hb(a,b,c){a.a+=Ihb(b,0,c);return a} +function _A(a){!a.a&&(a.a=new jB);return a.a} +function qlb(a,b){var c;c=a.e;a.e=b;return c} +function Clb(a,b){var c;c=b;return !!a.Fe(c)} +function Keb(a,b){Geb();return a==b?0:a?1:-1} +function Ikb(a,b){a.a.bd(a.b,b);++a.b;a.c=-1} +function hg(a){a.b?hg(a.b):a.f.c.zc(a.e,a.d)} +function aub(a){akb(a.e);a.d.b=a.d;a.d.a=a.d} +function VDb(a,b,c){xDb();HEb(a,b.Ve(a.a,c))} +function Xrb(a,b,c){return Wrb(a,RD(b,22),c)} +function WEb(a,b){return cFb(new Array(b),a)} +function Fgb(a){return Ydb(Udb(a,32))^Ydb(a)} +function XD(a){return String.fromCharCode(a)} +function Dz(a){return a==null?null:a.message} +function Rz(a,b,c){return a.apply(b,c);var d} +function Btb(a,b){var c;c=a[Jxe];c.call(a,b)} +function Ctb(a,b){var c;c=a[Jxe];c.call(a,b)} +function O5b(a,b){H5b();return !n2b(b.d.i,a)} +function R2b(a,b,c,d){J2b.call(this,a,b,c,d)} +function TJb(){RJb.call(this);this.a=new pjd} +function v2b(){this.n=new pjd;this.o=new pjd} +function kGb(){this.b=new pjd;this.c=new bnb} +function cUb(){this.a=new bnb;this.b=new bnb} +function kWb(){this.a=new DTb;this.b=new vWb} +function e6b(){this.b=new gub;this.a=new gub} +function jIc(){this.b=new _sb;this.a=new _sb} +function vYc(){this.b=new Tsb;this.a=new Tsb} +function fWc(){this.b=new TVc;this.a=new IVc} +function Yhc(){this.a=new yqc;this.b=new Sqc} +function lNc(){this.a=new bnb;this.d=new bnb} +function RJb(){this.n=new z3b;this.i=new Tid} +function hq(a){this.a=(dk(a,iwe),new cnb(a))} +function oq(a){this.a=(dk(a,iwe),new cnb(a))} +function tLd(a){return a<100?null:new gLd(a)} +function Lac(a,b){return a.n.a=(uFb(b),b)+10} +function Mac(a,b){return a.n.a=(uFb(b),b)+10} +function DYd(a,b){return b==a||PHd(sYd(b),a)} +function nae(a,b){return Zjb(a.a,b,'')==null} +function Hee(a,b){var c;c=b.qi(a.a);return c} +function $id(a,b){a.a+=b.a;a.b+=b.b;return a} +function ojd(a,b){a.a-=b.a;a.b-=b.b;return a} +function sfd(a){aFb(a.j.c,0);a.a=-1;return a} +function rCd(a,b,c){c=xvd(a,b,11,c);return c} +function SDd(a,b,c){c!=null&&Kzd(b,uEd(a,c))} +function TDd(a,b,c){c!=null&&Lzd(b,uEd(a,c))} +function G5d(a,b,c,d){C5d.call(this,a,b,c,d)} +function oie(a,b,c,d){C5d.call(this,a,b,c,d)} +function sie(a,b,c,d){oie.call(this,a,b,c,d)} +function Nie(a,b,c,d){Iie.call(this,a,b,c,d)} +function Pie(a,b,c,d){Iie.call(this,a,b,c,d)} +function Vie(a,b,c,d){Iie.call(this,a,b,c,d)} +function Tie(a,b,c,d){Pie.call(this,a,b,c,d)} +function $ie(a,b,c,d){Pie.call(this,a,b,c,d)} +function Yie(a,b,c,d){Vie.call(this,a,b,c,d)} +function bje(a,b,c,d){$ie.call(this,a,b,c,d)} +function Dje(a,b,c,d){wje.call(this,a,b,c,d)} +function aMd(a,b){veb.call(this,HJe+a+NIe+b)} +function Hje(a,b){return a.jk().wi().ri(a,b)} +function Ije(a,b){return a.jk().wi().ti(a,b)} +function Lfb(a,b){return uFb(a),dE(a)===dE(b)} +function lhb(a,b){return uFb(a),dE(a)===dE(b)} +function mEb(a,b){return a.b.Bd(new pEb(a,b))} +function sEb(a,b){return a.b.Bd(new vEb(a,b))} +function yEb(a,b){return a.b.Bd(new BEb(a,b))} +function Bk(a,b){return a.e=RD(a.d.Kb(b),159)} +function uhb(a,b,c){return a.lastIndexOf(b,c)} +function wWb(a,b,c){return Qfb(a[b.a],a[c.a])} +function TWb(a,b){return pQb(b,(yCc(),gAc),a)} +function Lpc(a,b){return hgb(b.a.d.p,a.a.d.p)} +function Kpc(a,b){return hgb(a.a.d.p,b.a.d.p)} +function zTc(a,b){return Qfb(a.c-a.s,b.c-b.s)} +function qWc(a,b){return Qfb(a.b.e.a,b.b.e.a)} +function sWc(a,b){return Qfb(a.c.e.a,b.c.e.a)} +function $2b(a){return !a.c?-1:Wmb(a.c.a,a,0)} +function Cod(a){return a==vod||a==xod||a==wod} +function CMd(a,b){this.c=a;nMd.call(this,a,b)} +function fq(a,b,c){this.a=a;qc.call(this,b,c)} +function YDb(a){this.c=a;xxb.call(this,Sve,0)} +function rk(a,b,c){this.c=b;this.b=c;this.a=a} +function DMc(a){dMc();this.d=a;this.a=new wmb} +function ho(a){_l();this.a=(yob(),new Lqb(a))} +function Xmc(a,b){Dmd(a.f)?Ymc(a,b):Zmc(a,b)} +function Lxb(a,b){Mxb.call(this,a,a.length,b)} +function nBb(a,b){if(dBb){return}!!b&&(a.d=b)} +function ZNd(a,b){return ZD(b,15)&&_Gd(a.c,b)} +function AVd(a,b,c){return RD(a.c,71).Wk(b,c)} +function BVd(a,b,c){return RD(a.c,71).Xk(b,c)} +function mge(a,b,c){return lge(a,RD(b,343),c)} +function oge(a,b,c){return nge(a,RD(b,343),c)} +function Ige(a,b,c){return Hge(a,RD(b,343),c)} +function Kge(a,b,c){return Jge(a,RD(b,343),c)} +function Fn(a,b){return b==null?null:Xv(a.b,b)} +function Qeb(a){return _D(a)?(uFb(a),a):a.ue()} +function Rfb(a){return !isNaN(a)&&!isFinite(a)} +function Zub(a){Lub(this);Xub(this);ye(this,a)} +function dnb(a){Pmb(this);YEb(this.c,0,a.Pc())} +function Fsb(a,b,c){this.a=a;this.b=b;this.c=c} +function Vtb(a,b,c){this.a=a;this.b=b;this.c=c} +function hvb(a,b,c){this.d=a;this.b=c;this.a=b} +function aBb(a){this.a=a;gib();Hdb(Date.now())} +function wzb(a){Ckb(a.a);Yyb(a.c,a.b);a.b=null} +function wvb(){wvb=geb;uvb=new xvb;vvb=new zvb} +function KMd(){KMd=geb;JMd=$C(jJ,rve,1,0,5,1)} +function TTd(){TTd=geb;STd=$C(jJ,rve,1,0,5,1)} +function yUd(){yUd=geb;xUd=$C(jJ,rve,1,0,5,1)} +function _l(){_l=geb;new im((yob(),yob(),vob))} +function gAb(a){cAb();return ws((qAb(),pAb),a)} +function zBb(a){xBb();return ws((CBb(),BBb),a)} +function FHb(a){DHb();return ws((IHb(),HHb),a)} +function NHb(a){LHb();return ws((QHb(),PHb),a)} +function kIb(a){iIb();return ws((nIb(),mIb),a)} +function _Jb(a){ZJb();return ws((cKb(),bKb),a)} +function GKb(a){EKb();return ws((JKb(),IKb),a)} +function xLb(a){vLb();return ws((ALb(),zLb),a)} +function mMb(a){hMb();return ws((pMb(),oMb),a)} +function oOb(a){mOb();return ws((rOb(),qOb),a)} +function KPb(a){IPb();return ws((NPb(),MPb),a)} +function KRb(a){IRb();return ws((NRb(),MRb),a)} +function XRb(a){VRb();return ws(($Rb(),ZRb),a)} +function VUb(a){TUb();return ws((YUb(),XUb),a)} +function CWb(a){AWb();return ws((FWb(),EWb),a)} +function uXb(a){sXb();return ws((xXb(),wXb),a)} +function tZb(a){nZb();return ws((wZb(),vZb),a)} +function W$b(a){U$b();return ws((Z$b(),Y$b),a)} +function Mb(a,b){if(!a){throw Adb(new agb(b))}} +function Vb(a){if(!a){throw Adb(new dgb(tve))}} +function rFb(a,b){if(a!=b){throw Adb(new Jrb)}} +function KQb(a,b,c){this.a=a;this.b=b;this.c=c} +function lRb(a,b,c){this.a=a;this.b=b;this.c=c} +function h7b(a,b,c){this.a=a;this.b=b;this.c=c} +function J0b(a,b,c){this.b=a;this.a=b;this.c=c} +function dNb(a,b,c){this.b=a;this.c=b;this.a=c} +function oac(a,b,c){this.a=a;this.b=b;this.c=c} +function F1b(a,b,c){this.e=b;this.b=a;this.d=c} +function Ecc(a,b,c){this.b=a;this.a=b;this.c=c} +function UDb(a,b,c){xDb();a.a.Yd(b,c);return b} +function CJb(a){var b;b=new BJb;b.e=a;return b} +function _Nb(a){var b;b=new YNb;b.b=a;return b} +function U9b(){U9b=geb;S9b=new bac;T9b=new eac} +function Rec(){Rec=geb;Qec=new efc;Pec=new jfc} +function lkc(){lkc=geb;jkc=new Mkc;kkc=new Okc} +function loc(a){joc();return ws((ooc(),noc),a)} +function kcc(a){hcc();return ws((ncc(),mcc),a)} +function yec(a){vec();return ws((Bec(),Aec),a)} +function gnc(a){enc();return ws((jnc(),inc),a)} +function Enc(a){Bnc();return ws((Hnc(),Gnc),a)} +function gpc(a){epc();return ws((jpc(),ipc),a)} +function dtc(a){btc();return ws((gtc(),ftc),a)} +function ltc(a){jtc();return ws((otc(),ntc),a)} +function xtc(a){stc();return ws((Atc(),ztc),a)} +function Gtc(a){Etc();return ws((Jtc(),Itc),a)} +function Utc(a){Ptc();return ws((Xtc(),Wtc),a)} +function auc(a){$tc();return ws((duc(),cuc),a)} +function avc(a){$uc();return ws((dvc(),cvc),a)} +function qvc(a){ovc();return ws((tvc(),svc),a)} +function zvc(a){xvc();return ws((Cvc(),Bvc),a)} +function Ivc(a){Gvc();return ws((Lvc(),Kvc),a)} +function Qvc(a){Ovc();return ws((Tvc(),Svc),a)} +function Quc(a){Ouc();return ws((Tuc(),Suc),a)} +function juc(a){huc();return ws((muc(),luc),a)} +function wuc(a){tuc();return ws((zuc(),yuc),a)} +function Euc(a){Cuc();return ws((Huc(),Guc),a)} +function exc(a){cxc();return ws((hxc(),gxc),a)} +function eDc(a){_Cc();return ws((hDc(),gDc),a)} +function oDc(a){lDc();return ws((rDc(),qDc),a)} +function ADc(a){wDc();return ws((DDc(),CDc),a)} +function ODc(a){JDc();return ws((RDc(),QDc),a)} +function cEc(a){aEc();return ws((fEc(),eEc),a)} +function mEc(a){kEc();return ws((pEc(),oEc),a)} +function uEc(a){sEc();return ws((xEc(),wEc),a)} +function DEc(a){BEc();return ws((GEc(),FEc),a)} +function MEc(a){KEc();return ws((PEc(),OEc),a)} +function VEc(a){TEc();return ws((YEc(),XEc),a)} +function nFc(a){lFc();return ws((qFc(),pFc),a)} +function wFc(a){uFc();return ws((zFc(),yFc),a)} +function FFc(a){DFc();return ws((IFc(),HFc),a)} +function TKc(a){RKc();return ws((WKc(),VKc),a)} +function uNc(a){sNc();return ws((xNc(),wNc),a)} +function yQc(a){wQc();return ws((BQc(),AQc),a)} +function GQc(a){EQc();return ws((JQc(),IQc),a)} +function hTc(a){fTc();return ws((kTc(),jTc),a)} +function fVc(a){dVc();return ws((iVc(),hVc),a)} +function bWc(a){YVc();return ws((eWc(),dWc),a)} +function ZYc(a){WYc();return ws((aZc(),_Yc),a)} +function NZc(a){LZc();return ws((QZc(),PZc),a)} +function u_c(a){s_c();return ws((x_c(),w_c),a)} +function C_c(a){A_c();return ws((F_c(),E_c),a)} +function C2c(a){x2c();return ws((F2c(),E2c),a)} +function j3c(a){g3c();return ws((m3c(),l3c),a)} +function j4c(a){g4c();return ws((m4c(),l4c),a)} +function _3c(a){Y3c();return ws((c4c(),b4c),a)} +function m5c(a){j5c();return ws((p5c(),o5c),a)} +function w5c(a){t5c();return ws((z5c(),y5c),a)} +function h6c(a){f6c();return ws((k6c(),j6c),a)} +function C6c(a){z6c();return ws((F6c(),E6c),a)} +function b7c(a){_6c();return ws((e7c(),d7c),a)} +function E8c(a){z8c();return ws((H8c(),G8c),a)} +function R8b(a){P8b();return ws((U8b(),T8b),a)} +function t3b(a){r3b();return ws((w3b(),v3b),a)} +function g9c(a){b9c();return ws((j9c(),i9c),a)} +function G9c(a){B9c();return ws((J9c(),I9c),a)} +function uad(a){sad();return ws((xad(),wad),a)} +function xbd(a){sbd();return ws((Abd(),zbd),a)} +function ibd(a){gbd();return ws((lbd(),kbd),a)} +function Gbd(a){Cbd();return ws((Jbd(),Ibd),a)} +function Obd(a){Mbd();return ws((Rbd(),Qbd),a)} +function Zbd(a){Xbd();return ws((acd(),_bd),a)} +function fdd(a){_cd();return ws((idd(),hdd),a)} +function qdd(a){ldd();return ws((tdd(),sdd),a)} +function $hd(a){Yhd();return ws((bid(),aid),a)} +function mid(a){kid();return ws((pid(),oid),a)} +function Tjd(a){Rjd();return ws((Wjd(),Vjd),a)} +function wkd(a){ukd();return ws((zkd(),ykd),a)} +function Hmd(a){Cmd();return ws((Kmd(),Jmd),a)} +function Qmd(a){Omd();return ws((Tmd(),Smd),a)} +function $md(a){Ymd();return ws((bnd(),and),a)} +function knd(a){ind();return ws((nnd(),mnd),a)} +function Hnd(a){Fnd();return ws((Knd(),Jnd),a)} +function Snd(a){Pnd();return ws((Vnd(),Und),a)} +function god(a){dod();return ws((jod(),iod),a)} +function rod(a){pod();return ws((uod(),tod),a)} +function Fod(a){Bod();return ws((Iod(),Hod),a)} +function Tod(a){Pod();return ws((Wod(),Vod),a)} +function wpd(a){qpd();return ws((zpd(),ypd),a)} +function Spd(a){Qpd();return ws((Vpd(),Upd),a)} +function fqd(a){dqd();return ws((iqd(),hqd),a)} +function oqd(a){mqd();return ws((rqd(),qqd),a)} +function zsc(a,b){return (uFb(a),a)+(uFb(b),b)} +function wqd(a){uqd();return ws((Eqd(),Dqd),a)} +function Ird(a){Grd();return ws((Lrd(),Krd),a)} +function vtd(a){ttd();return ws((ytd(),xtd),a)} +function dMc(){dMc=geb;bMc=(qpd(),ppd);cMc=Xod} +function uqd(){uqd=geb;sqd=new zqd;tqd=new Bqd} +function wJc(a){!a.e&&(a.e=new bnb);return a.e} +function BTc(a,b){this.c=a;this.a=b;this.b=b-a} +function g8c(a,b,c){this.a=a;this.b=b;this.c=c} +function gud(a,b,c){this.a=a;this.b=b;this.c=c} +function Wdd(a,b,c){this.a=a;this.b=b;this.c=c} +function ced(a,b,c){this.a=a;this.b=b;this.c=c} +function pFd(a,b,c){this.a=a;this.b=b;this.c=c} +function ZPd(a,b,c){this.a=a;this.b=b;this.c=c} +function g7d(a,b,c){this.e=a;this.a=b;this.c=c} +function K7d(a,b,c){s7d();C7d.call(this,a,b,c)} +function f9d(a,b,c){s7d();O8d.call(this,a,b,c)} +function r9d(a,b,c){s7d();O8d.call(this,a,b,c)} +function x9d(a,b,c){s7d();O8d.call(this,a,b,c)} +function h9d(a,b,c){s7d();f9d.call(this,a,b,c)} +function j9d(a,b,c){s7d();f9d.call(this,a,b,c)} +function l9d(a,b,c){s7d();j9d.call(this,a,b,c)} +function t9d(a,b,c){s7d();r9d.call(this,a,b,c)} +function z9d(a,b,c){s7d();x9d.call(this,a,b,c)} +function S2b(a){J2b.call(this,a.d,a.c,a.a,a.b)} +function B3b(a){J2b.call(this,a.d,a.c,a.a,a.b)} +function Og(a){this.d=a;Lg(this);this.b=ed(a.d)} +function cGd(a){aGd();return ws((fGd(),eGd),a)} +function gk(a,b){Qb(a);Qb(b);return new hk(a,b)} +function dr(a,b){Qb(a);Qb(b);return new mr(a,b)} +function hr(a,b){Qb(a);Qb(b);return new sr(a,b)} +function Dr(a,b){Qb(a);Qb(b);return new Rr(a,b)} +function Uub(a){sFb(a.b!=0);return Wub(a,a.a.a)} +function Vub(a){sFb(a.b!=0);return Wub(a,a.c.b)} +function q$d(a){!a.c&&(a.c=new X9d);return a.c} +function cv(a){var b;b=new bnb;xr(b,a);return b} +function Vx(a){var b;b=new _sb;xr(b,a);return b} +function Yx(a){var b;b=new xAb;_q(b,a);return b} +function gv(a){var b;b=new Yub;_q(b,a);return b} +function RD(a,b){CFb(a==null||QD(a,b));return a} +function Mxb(a,b,c){Axb.call(this,b,c);this.a=a} +function kB(a,b){this.c=a;this.b=b;this.a=false} +function hCb(){this.a=';,;';this.b='';this.c=''} +function $Cb(a,b,c){this.b=a;pxb.call(this,b,c)} +function uub(a,b,c){this.c=a;xlb.call(this,b,c)} +function fZb(a,b,c){eZb.call(this,a,b);this.b=c} +function YEb(a,b,c){VEb(c,0,a,b,c.length,false)} +function JYb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function D2b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function XDb(a,b){if(b){a.b=b;a.a=(LCb(b),b.a)}} +function mFb(a,b){if(!a){throw Adb(new agb(b))}} +function zFb(a,b){if(!a){throw Adb(new dgb(b))}} +function qFb(a,b){if(!a){throw Adb(new zeb(b))}} +function zqc(a,b){mqc();return hgb(a.d.p,b.d.p)} +function T0c(a,b){B0c();return Qfb(a.e.b,b.e.b)} +function U0c(a,b){B0c();return Qfb(a.e.a,b.e.a)} +function Xoc(a,b){return hgb(N3b(a.d),N3b(b.d))} +function Izb(a,b){return !!b&&Jzb(a,b.d)?b:null} +function $lc(a,b){return b==(qpd(),ppd)?a.c:a.d} +function Qdb(a){return Edb(yD(Kdb(a)?Wdb(a):a))} +function Nid(a){return new rjd(a.c+a.b,a.d+a.a)} +function GSd(a){return a!=null&&!mSd(a,aSd,bSd)} +function DSd(a,b){return (JSd(a)<<4|JSd(b))&Bwe} +function Rid(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function y8b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function B8b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function u6d(a,b){var c;c=a.c;t6d(a,b);return c} +function Nqd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function kjd(a,b){gjd(a);a.a*=b;a.b*=b;return a} +function hrc(a,b,c){grc.call(this,b,c);this.d=a} +function PZd(a,b,c){kZd.call(this,a,b);this.c=c} +function Kfe(a,b,c){kZd.call(this,a,b);this.c=c} +function zUd(a){yUd();kUd.call(this);this.ci(a)} +function Yee(){ree();Zee.call(this,(YSd(),XSd))} +function Yse(a){Vse();++Use;return new Hte(0,a)} +function uke(){uke=geb;tke=(yob(),new mpb(eLe))} +function ux(){ux=geb;new wx((kl(),jl),(Wk(),Vk))} +function ugb(){ugb=geb;tgb=$C(bJ,Nve,17,256,0,1)} +function zUb(){this.b=Kfb(UD(iGd((yVb(),sVb))))} +function Pq(a){this.b=a;this.a=gn(this.b.a).Od()} +function mr(a,b){this.b=a;this.a=b;zl.call(this)} +function sr(a,b){this.a=a;this.b=b;zl.call(this)} +function s_d(a,b,c){this.a=a;N$d.call(this,b,c)} +function n_d(a,b,c){this.a=a;N$d.call(this,b,c)} +function sDd(a,b,c){var d;d=new OC(c);sC(a,b,d)} +function _Eb(a,b,c){var d;d=a[b];a[b]=c;return d} +function UEb(a){var b;b=a.slice();return dD(b,a)} +function SJb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function PKb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function QKb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function rub(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Mub(a,b){Pub(a,b,a.c.b,a.c);return true} +function w2b(a){if(a.a){return a.a}return R0b(a)} +function NSb(a){HSb();return JGd(a)==vCd(LGd(a))} +function OSb(a){HSb();return LGd(a)==vCd(JGd(a))} +function l_b(a,b){return k_b(a,new eZb(b.a,b.b))} +function xn(a,b){return fn(),ck(a,b),new zy(a,b)} +function fmc(a,b){return a.c=b){throw Adb(new web)}} +function JDb(a,b){return MDb(a,(uFb(b),new JAb(b)))} +function KDb(a,b){return MDb(a,(uFb(b),new LAb(b)))} +function prc(a,b,c){return qrc(a,RD(b,12),RD(c,12))} +function q4b(a){return J3b(),RD(a,12).g.c.length!=0} +function v4b(a){return J3b(),RD(a,12).e.c.length!=0} +function sdc(a,b){Zcc();return Qfb(b.a.o.a,a.a.o.a)} +function d_d(a,b){(b.Bb&QHe)!=0&&!a.a.o&&(a.a.o=b)} +function T3c(a,b){b.Ug("General 'Rotator",1);S3c(a)} +function MCc(a,b,c){b.qf(c,Kfb(UD(Wjb(a.b,c)))*a.a)} +function yid(a,b,c){tid();return xid(a,b)&&xid(a,c)} +function Rod(a){Pod();return !a.Hc(Lod)&&!a.Hc(Nod)} +function Nrc(a){if(a.e){return Src(a.e)}return null} +function Zdb(a){if(Kdb(a)){return ''+a}return GD(a)} +function XNc(a){var b;b=a;while(b.f){b=b.f}return b} +function HBb(a,b,c){bD(b,0,tCb(b[0],c[0]));return b} +function Gpc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function C5d(a,b,c,d){XZd.call(this,a,b,c);this.b=d} +function N3d(a,b,c,d,e){O3d.call(this,a,b,c,d,e,-1)} +function b4d(a,b,c,d,e){c4d.call(this,a,b,c,d,e,-1)} +function Iie(a,b,c,d){PZd.call(this,a,b,c);this.b=d} +function Xde(a){uId.call(this,a,false);this.a=false} +function Bqd(){vqd.call(this,'LOOKAHEAD_LAYOUT',1)} +function nNd(a){this.b=a;mMd.call(this,a);mNd(this)} +function vNd(a){this.b=a;BMd.call(this,a);uNd(this)} +function J5d(a,b,c){this.a=a;G5d.call(this,b,c,5,6)} +function wje(a,b,c,d){this.b=a;XZd.call(this,b,c,d)} +function Tj(a,b){this.b=a;Aj.call(this,a.b);this.a=b} +function NLc(a){this.a=LLc(a.a);this.b=new dnb(a.b)} +function Fx(a,b){tm();Ex.call(this,a,Pm(new mob(b)))} +function _se(a,b){Vse();++Use;return new aue(a,b,0)} +function bte(a,b){Vse();++Use;return new aue(6,a,b)} +function Ztb(a,b){uFb(b);while(a.Ob()){b.Cd(a.Pb())}} +function Ujb(a,b){return bE(b)?Yjb(a,b):!!qtb(a.f,b)} +function O_d(a,b){return b.Vh()?Vvd(a.b,RD(b,54)):b} +function whb(a,b){return lhb(a.substr(0,b.length),b)} +function Fl(a){return new is(new Il(a.a.length,a.a))} +function Oid(a){return new rjd(a.c+a.b/2,a.d+a.a/2)} +function yD(a){return hD(~a.l&dxe,~a.m&dxe,~a.h&exe)} +function cE(a){return typeof a===gve||typeof a===kve} +function akb(a){a.f=new ttb(a);a.i=new Ntb(a);++a.g} +function Klb(a){if(!a){throw Adb(new Dvb)}return a.d} +function smb(a){var b;b=omb(a);sFb(b!=null);return b} +function tmb(a){var b;b=pmb(a);sFb(b!=null);return b} +function tv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Ysb(a,b){var c;c=a.a.zc(b,a);return c==null} +function rAb(a,b){return a.a.zc(b,(Geb(),Eeb))==null} +function _nb(a){return new SDb(null,$nb(a,a.length))} +function yPb(a,b,c){return zPb(a,RD(b,42),RD(c,176))} +function Wrb(a,b,c){zsb(a.a,b);return _Eb(a.b,b.g,c)} +function fyb(a,b,c){lyb(c,a.a.c.length);$mb(a.a,c,b)} +function Knb(a,b,c,d){nFb(b,c,a.length);Onb(a,b,c,d)} +function Onb(a,b,c,d){var e;for(e=b;e0?$wnd.Math.log(a/b):-100} +function Agb(a,b){return Ddb(a,b)<0?-1:Ddb(a,b)>0?1:0} +function Dge(a,b){hZd(a,ZD(b,160)?b:RD(b,2036).Rl())} +function vFb(a,b){if(a==null){throw Adb(new Ogb(b))}} +function $nb(a,b){return jxb(b,a.length),new Gxb(a,b)} +function hsc(a,b){if(!b){return false}return ye(a,b)} +function Gs(){zs();return cD(WC(RG,1),jwe,549,0,[ys])} +function Xib(a){return a.e==0?a:new cjb(-a.e,a.d,a.a)} +function $Nb(a,b){return Qfb(a.c.c+a.c.b,b.c.c+b.c.b)} +function cvb(a,b){Pub(a.d,b,a.b.b,a.b);++a.a;a.c=null} +function JCb(a,b){!a.c?Rmb(a.b,b):JCb(a.c,b);return a} +function KB(a,b,c){var d;d=JB(a,b);LB(a,b,c);return d} +function Rnb(a,b,c){var d;for(d=0;d=a.g} +function bD(a,b,c){pFb(c==null||VC(a,c));return a[b]=c} +function yhb(a,b){BFb(b,a.length+1);return a.substr(b)} +function yxb(a,b){uFb(b);while(a.c=a){return new rDb}return iDb(a-1)} +function Y2b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function Zx(a){if(ZD(a,616)){return a}return new sy(a)} +function LCb(a){if(!a.c){MCb(a);a.d=true}else{LCb(a.c)}} +function ICb(a){if(!a.c){a.d=true;KCb(a)}else{a.c.$e()}} +function bHb(a){a.b=false;a.c=false;a.d=false;a.a=false} +function uMc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function _vd(a,b){var c;c=a.Ih(b);c>=0?a.ki(c):Tvd(a,b)} +function mtd(a,b){a.c<0||a.b.b0){a=a<<1|(a<0?1:0)}return a} +function BGc(a,b){var c;c=new R4b(a);ZEb(b.c,c);return c} +function FMb(a,b){a.u.Hc((Pod(),Lod))&&DMb(a,b);HMb(a,b)} +function Fvb(a,b){return dE(a)===dE(b)||a!=null&&pb(a,b)} +function Vrb(a,b){return Bsb(a.a,b)?a.b[RD(b,22).g]:null} +function YRb(){VRb();return cD(WC($O,1),jwe,489,0,[URb])} +function ybd(){sbd();return cD(WC(M1,1),jwe,490,0,[rbd])} +function Hbd(){Cbd();return cD(WC(N1,1),jwe,558,0,[Bbd])} +function gdd(){_cd();return cD(WC(V1,1),jwe,539,0,[$cd])} +function iyd(a){!a.n&&(a.n=new C5d(I4,a,1,7));return a.n} +function wCd(a){!a.c&&(a.c=new C5d(K4,a,9,9));return a.c} +function mzd(a){!a.c&&(a.c=new Yie(E4,a,5,8));return a.c} +function lzd(a){!a.b&&(a.b=new Yie(E4,a,4,7));return a.b} +function Sed(a){a.j.c.length=0;Ae(a.c);sfd(a.a);return a} +function Afe(a){a.e==fLe&&Gfe(a,Aee(a.g,a.b));return a.e} +function Bfe(a){a.f==fLe&&Hfe(a,Bee(a.g,a.b));return a.f} +function xBd(a,b,c,d){wBd(a,b,c,false);j1d(a,d);return a} +function oNd(a,b){this.b=a;nMd.call(this,a,b);mNd(this)} +function wNd(a,b){this.b=a;CMd.call(this,a,b);uNd(this)} +function Kmb(a){this.d=a;this.a=this.d.b;this.b=this.d.c} +function oy(a,b){this.b=a;this.c=b;this.a=new Osb(this.b)} +function ihb(a,b){BFb(b,a.length);return a.charCodeAt(b)} +function NDd(a,b){CGd(a,Kfb(vDd(b,'x')),Kfb(vDd(b,'y')))} +function $Dd(a,b){CGd(a,Kfb(vDd(b,'x')),Kfb(vDd(b,'y')))} +function CDb(a,b){MCb(a);return new SDb(a,new hEb(b,a.a))} +function GDb(a,b){MCb(a);return new SDb(a,new zEb(b,a.a))} +function HDb(a,b){MCb(a);return new WCb(a,new nEb(b,a.a))} +function IDb(a,b){MCb(a);return new oDb(a,new tEb(b,a.a))} +function Ty(a,b){return new Ry(RD(Qb(a),50),RD(Qb(b),50))} +function nHb(a,b){return Qfb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function gTb(a,b,c){c.a?Eyd(a,b.b-a.f/2):Dyd(a,b.a-a.g/2)} +function WYb(a,b){return Qfb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function RZb(a,b){NZb();return Qfb((uFb(a),a),(uFb(b),b))} +function wSd(a){return a!=null&&tpb(eSd,a.toLowerCase())} +function Ae(a){var b;for(b=a.Kc();b.Ob();){b.Pb();b.Qb()}} +function Ih(a){var b;b=a.b;!b&&(a.b=b=new Xh(a));return b} +function R0b(a){var b;b=Z5b(a);if(b){return b}return null} +function BSb(a,b){var c,d;c=a/b;d=eE(c);c>d&&++d;return d} +function Ck(a,b,c){var d;d=RD(a.d.Kb(c),159);!!d&&d.Nb(b)} +function Vhc(a,b,c){tqc(a.a,c);Jpc(c);Kqc(a.b,c);bqc(b,c)} +function oNc(a,b,c,d){this.a=a;this.c=b;this.b=c;this.d=d} +function ROc(a,b,c,d){this.c=a;this.b=b;this.a=c;this.d=d} +function uPc(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d} +function Uid(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d} +function GTc(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d} +function t1b(a,b,c,d){this.a=a;this.e=b;this.d=c;this.c=d} +function $td(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function ehb(a,b,c){this.a=ywe;this.d=a;this.b=b;this.c=c} +function fpc(a,b,c,d){qs.call(this,a,b);this.a=c;this.b=d} +function Uwb(a,b){this.d=(uFb(a),a);this.a=16449;this.c=b} +function CIc(a){this.a=new bnb;this.e=$C(kE,Nve,53,a,0,2)} +function ELc(a){a.Ug('No crossing minimization',1);a.Vg()} +function Evb(){yz.call(this,'There is no more element.')} +function OEd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function PEd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function h7d(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function x7d(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function C8d(a,b,c,d){s7d();M7d.call(this,b,c,d);this.a=a} +function J8d(a,b,c,d){s7d();M7d.call(this,b,c,d);this.a=a} +function lwd(a,b,c){var d,e;d=oSd(a);e=b.ti(c,d);return e} +function lBd(a){var b,c;c=(b=new s2d,b);l2d(c,a);return c} +function mBd(a){var b,c;c=(b=new s2d,b);p2d(c,a);return c} +function HDd(a,b){var c;c=Wjb(a.f,b);wEd(b,c);return null} +function uCd(a){!a.b&&(a.b=new C5d(G4,a,12,3));return a.b} +function VD(a){CFb(a==null||cE(a)&&!(a.Tm===keb));return a} +function gz(a){if(a.n){a.e!==rwe&&a.je();a.j=null}return a} +function Ng(a){ig(a.d);if(a.d.d!=a.c){throw Adb(new Jrb)}} +function Bkb(a){sFb(a.b0&&wPd(this)} +function Vg(a,b){this.a=a;Pg.call(this,a,RD(a.d,15).fd(b))} +function lrd(a,b){return Qfb(urd(a)*trd(a),urd(b)*trd(b))} +function mrd(a,b){return Qfb(urd(a)*trd(a),urd(b)*trd(b))} +function n5b(a){return ozd(a)&&Heb(TD(Gxd(a,(yCc(),OAc))))} +function Sfc(a,b){return Rc(a,RD(mQb(b,(yCc(),tBc)),17),b)} +function lic(a,b){RD(mQb(a,(Ywc(),qwc)),15).Fc(b);return b} +function C2b(a,b){a.b=b.b;a.c=b.c;a.d=b.d;a.a=b.a;return a} +function cEb(a,b,c,d){this.b=a;this.c=d;xxb.call(this,b,c)} +function Ulc(a,b,c){a.i=0;a.e=0;if(b==c){return}Qlc(a,b,c)} +function Vlc(a,b,c){a.i=0;a.e=0;if(b==c){return}Rlc(a,b,c)} +function akc(a,b,c){Wjc();return _Gb(RD(Wjb(a.e,b),529),c)} +function nd(a){var b;return b=a.f,!b?(a.f=new ne(a,a.c)):b} +function nTc(a,b){return VTc(a.j,b.s,b.c)+VTc(b.e,a.s,a.c)} +function Rrc(a,b){if(!!a.e&&!a.e.a){Prc(a.e,b);Rrc(a.e,b)}} +function Qrc(a,b){if(!!a.d&&!a.d.a){Prc(a.d,b);Qrc(a.d,b)}} +function krd(a,b){return -Qfb(urd(a)*trd(a),urd(b)*trd(b))} +function gtd(a){return RD(a.ld(),149).Pg()+':'+jeb(a.md())} +function EBd(){BBd(this,new yAd);this.wb=(lTd(),kTd);jTd()} +function G7b(a){this.b=new bnb;Tmb(this.b,this.b);this.a=a} +function WWc(a,b){new Yub;this.a=new Ejd;this.b=a;this.c=b} +function urb(){urb=geb;rrb=new wrb;srb=new wrb;trb=new Brb} +function yob(){yob=geb;vob=new Job;wob=new apb;xob=new ipb} +function FGb(){FGb=geb;CGb=new AGb;EGb=new fHb;DGb=new YGb} +function HSb(){HSb=geb;GSb=new bnb;FSb=new Tsb;ESb=new bnb} +function Rb(a,b){if(a==null){throw Adb(new Ogb(b))}return a} +function tCd(a){!a.a&&(a.a=new C5d(J4,a,10,11));return a.a} +function uYd(a){!a.q&&(a.q=new C5d(s7,a,11,10));return a.q} +function xYd(a){!a.s&&(a.s=new C5d(y7,a,21,17));return a.s} +function er(a){Qb(a);return Er(new is(Mr(a.a.Kc(),new ir)))} +function hfd(a,b){rb(a);rb(b);return ns(RD(a,22),RD(b,22))} +function qDd(a,b,c){var d,e;d=Qeb(c);e=new hC(d);sC(a,b,e)} +function d4d(a,b,c,d,e,f){c4d.call(this,a,b,c,d,e,f?-2:-1)} +function sje(a,b,c,d){kZd.call(this,b,c);this.b=a;this.a=d} +function Ry(a,b){wi.call(this,new ezb(a));this.a=a;this.b=b} +function Gu(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1} +function Dkc(a){lkc();var b;b=RD(a.g,10);b.n.a=a.d.c+b.d.b} +function fA(){fA=geb;var a,b;b=!lA();a=new tA;eA=b?new mA:a} +function Hob(a){yob();return ZD(a,59)?new irb(a):new Upb(a)} +function Ux(a){return ZD(a,16)?new btb(RD(a,16)):Vx(a.Kc())} +function Vi(a){return new ij(a,a.e.Rd().gc()*a.c.Rd().gc())} +function fj(a){return new sj(a,a.e.Rd().gc()*a.c.Rd().gc())} +function Iz(a){return !!a&&!!a.hashCode?a.hashCode():kFb(a)} +function Yjb(a,b){return b==null?!!qtb(a.f,null):Jtb(a.i,b)} +function hYb(a,b){var c;c=$sb(a.a,b);c&&(b.d=null);return c} +function MGb(a,b,c){if(a.f){return a.f.ef(b,c)}return false} +function cFc(a,b,c,d){bD(a.c[b.g],c.g,d);bD(a.c[c.g],b.g,d)} +function fFc(a,b,c,d){bD(a.c[b.g],b.g,c);bD(a.b[b.g],b.g,d)} +function sXc(a,b,c){return Kfb(UD(c.a))<=a&&Kfb(UD(c.b))>=b} +function yJc(a,b){this.g=a;this.d=cD(WC(jR,1),WAe,10,0,[b])} +function lHb(a){this.c=a;this.b=new yAb(RD(Qb(new oHb),50))} +function UYb(a){this.c=a;this.b=new yAb(RD(Qb(new XYb),50))} +function $Qb(a){this.b=a;this.a=new yAb(RD(Qb(new bRb),50))} +function tRc(){this.b=new _sb;this.d=new Yub;this.e=new Fyb} +function VTb(){this.c=new pjd;this.d=new pjd;this.e=new pjd} +function a1b(){this.a=new Ejd;this.b=(dk(3,iwe),new cnb(3))} +function i7d(a,b){this.e=a;this.a=jJ;this.b=pje(b);this.c=b} +function Vid(a){this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a} +function VLd(a,b,c,d,e,f){this.a=a;NKd.call(this,b,c,d,e,f)} +function aLd(a,b,c,d,e,f){this.a=a;NKd.call(this,b,c,d,e,f)} +function fge(a,b,c,d,e,f,g){return new lle(a.e,b,c,d,e,f,g)} +function xhb(a,b,c){return c>=0&&lhb(a.substr(c,b.length),b)} +function hGd(a,b){return ZD(b,149)&&lhb(a.b,RD(b,149).Pg())} +function Tde(a,b){return a.a?b.Gh().Kc():RD(b.Gh(),71).Ii()} +function Qqb(a,b){var c;c=a.b.Qc(b);Rqb(c,a.b.gc());return c} +function Ivb(a,b){if(a==null){throw Adb(new Ogb(b))}return a} +function zYd(a){if(!a.u){yYd(a);a.u=new w0d(a,a)}return a.u} +function Kx(a){this.a=(yob(),ZD(a,59)?new irb(a):new Upb(a))} +function Uwd(a){var b;b=RD(Ywd(a,16),29);return !b?a.ii():b} +function lz(a,b){var c;c=nfb(a.Rm);return b==null?c:c+': '+b} +function zhb(a,b,c){AFb(b,c,a.length);return a.substr(b,c-b)} +function VKb(a,b){RJb.call(this);KKb(this);this.a=a;this.c=b} +function neb(a){!a?vve:lz(a,a.ie());String.fromCharCode(10)} +function Wz(a){Qz();$wnd.setTimeout(function(){throw a},0)} +function GHb(){DHb();return cD(WC(uN,1),jwe,436,0,[CHb,BHb])} +function OHb(){LHb();return cD(WC(vN,1),jwe,435,0,[JHb,KHb])} +function WUb(){TUb();return cD(WC(BP,1),jwe,432,0,[RUb,SUb])} +function S8b(){P8b();return cD(WC(vS,1),jwe,517,0,[O8b,N8b])} +function Rvc(){Ovc();return cD(WC(lX,1),jwe,429,0,[Mvc,Nvc])} +function buc(){$tc();return cD(WC(cX,1),jwe,428,0,[Ytc,Ztc])} +function mtc(){jtc();return cD(WC($W,1),jwe,431,0,[htc,itc])} +function vEc(){sEc();return cD(WC(xX,1),jwe,430,0,[qEc,rEc])} +function vNc(){sNc();return cD(WC(MY,1),jwe,531,0,[rNc,qNc])} +function D2c(){x2c();return cD(WC(s0,1),jwe,501,0,[v2c,w2c])} +function zQc(){wQc();return cD(WC(FZ,1),jwe,523,0,[vQc,uQc])} +function HQc(){EQc();return cD(WC(GZ,1),jwe,522,0,[CQc,DQc])} +function iTc(){fTc();return cD(WC(b$,1),jwe,528,0,[eTc,dTc])} +function Fuc(){Cuc();return cD(WC(fX,1),jwe,488,0,[Buc,Auc])} +function F8c(){z8c();return cD(WC(l1,1),jwe,491,0,[x8c,y8c])} +function H9c(){B9c();return cD(WC(t1,1),jwe,492,0,[z9c,A9c])} +function D_c(){A_c();return cD(WC(K_,1),jwe,433,0,[z_c,y_c])} +function a4c(){Y3c();return cD(WC(H0,1),jwe,434,0,[W3c,X3c])} +function gVc(){dVc();return cD(WC(w$,1),jwe,465,0,[bVc,cVc])} +function Pbd(){Mbd();return cD(WC(O1,1),jwe,438,0,[Lbd,Kbd])} +function rdd(){ldd();return cD(WC(W1,1),jwe,437,0,[kdd,jdd])} +function xqd(){uqd();return cD(WC(M3,1),jwe,347,0,[sqd,tqd])} +function Jvd(a,b,c,d){return c>=0?a.Uh(b,c,d):a.Ch(null,c,d)} +function ltd(a){if(a.b.b==0){return a.a.sf()}return Uub(a.b)} +function vKd(a){if(a.p!=5)throw Adb(new cgb);return Ydb(a.f)} +function EKd(a){if(a.p!=5)throw Adb(new cgb);return Ydb(a.k)} +function P$d(a){dE(a.a)===dE((lYd(),kYd))&&Q$d(a);return a.a} +function iad(a,b){a.b=b;a.c>0&&a.b>0&&(a.g=Aad(a.c,a.b,a.a))} +function jad(a,b){a.c=b;a.c>0&&a.b>0&&(a.g=Aad(a.c,a.b,a.a))} +function BUc(a,b){yUc(this,new rjd(a.a,a.b));zUc(this,gv(b))} +function Tp(){Sp.call(this,new Usb(Sv(12)));Lb(true);this.a=2} +function eue(a,b,c){Vse();Wse.call(this,a);this.b=b;this.a=c} +function C7d(a,b,c){s7d();t7d.call(this,b);this.a=a;this.b=c} +function qub(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function Tub(a){return a.b==0?null:(sFb(a.b!=0),Wub(a,a.a.a))} +function Xjb(a,b){return b==null?Wd(qtb(a.f,null)):Ktb(a.i,b)} +function bzb(a,b,c,d,e){return new Kzb(a,(cAb(),aAb),b,c,d,e)} +function Fnb(a,b){oFb(b);return Hnb(a,$C(kE,Pwe,28,b,15,1),b)} +function Tx(a,b){Rb(a,'set1');Rb(b,'set2');return new ey(a,b)} +function Kz(a,b){var c=Jz[a.charCodeAt(0)];return c==null?a:c} +function Xyb(a,b){var c,d;c=b;d=new Gzb;Zyb(a,c,d);return d.d} +function EMb(a,b,c,d){var e;e=new TJb;b.a[c.g]=e;Wrb(a.b,d,e)} +function SXb(a,b){var c;c=BXb(a.f,b);return $id(fjd(c),a.f.d)} +function RFb(a){var b;EJb(a.a);DJb(a.a);b=new PJb(a.a);LJb(b)} +function _Mb(a,b){$Mb(a,true);Umb(a.e.Rf(),new dNb(a,true,b))} +function PSb(a,b){HSb();return a==vCd(JGd(b))||a==vCd(LGd(b))} +function R0c(a,b){B0c();return RD(mQb(b,(h_c(),f_c)),17).a==a} +function eE(a){return Math.max(Math.min(a,lve),-2147483648)|0} +function sy(a){this.a=RD(Qb(a),277);this.b=(yob(),new jrb(a))} +function qbd(a,b,c){this.i=new bnb;this.b=a;this.g=b;this.a=c} +function had(a,b,c){this.a=new bnb;this.e=a;this.f=b;this.c=c} +function _9c(a,b,c){this.c=new bnb;this.e=a;this.f=b;this.b=c} +function TKb(a){RJb.call(this);KKb(this);this.a=a;this.c=true} +function ieb(a){function b(){} +;b.prototype=a||{};return new b} +function zfb(a){if(a.Ae()){return null}var b=a.n;return eeb[b]} +function kzd(a){if(a.Db>>16!=3)return null;return RD(a.Cb,27)} +function MCd(a){if(a.Db>>16!=9)return null;return RD(a.Cb,27)} +function Fzd(a){if(a.Db>>16!=6)return null;return RD(a.Cb,74)} +function dVc(){dVc=geb;bVc=new eVc(Nye,0);cVc=new eVc(Oye,1)} +function wQc(){wQc=geb;vQc=new xQc(Oye,0);uQc=new xQc(Nye,1)} +function EQc(){EQc=geb;CQc=new FQc(Zye,0);DQc=new FQc('UP',1)} +function Is(){Is=geb;Hs=ss((zs(),cD(WC(RG,1),jwe,549,0,[ys])))} +function Wx(a){var b;b=new atb(Sv(a.length));zob(b,a);return b} +function B2b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function qmb(a,b){if(kmb(a,b)){Jmb(a);return true}return false} +function qC(a,b){if(b==null){throw Adb(new Ngb)}return rC(a,b)} +function nB(a,b){var c;c=a.q.getHours();a.q.setDate(b);mB(a,c)} +function Xvd(a,b,c){var d;d=a.Ih(b);d>=0?a.bi(d,c):Svd(a,b,c)} +function Lvd(a,b){var c;c=a.Ih(b);return c>=0?a.Wh(c):Rvd(a,b)} +function zo(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Yd(c.g,c.i)}} +function pMc(a,b,c){var d;d=qMc(a,b,c);a.b=new _Lc(d.c.length)} +function HId(a,b,c){EId();!!a&&Zjb(DId,a,b);!!a&&Zjb(CId,a,c)} +function bfc(a,b){Rec();return Geb(),RD(b.a,17).a0} +function sId(a){var b;b=a.d;b=a.bj(a.f);WGd(a,b);return b.Ob()} +function bHd(a,b){var c;c=new Kub(b);Ve(c,a);return new dnb(c)} +function qKd(a){if(a.p!=0)throw Adb(new cgb);return Pdb(a.f,0)} +function zKd(a){if(a.p!=0)throw Adb(new cgb);return Pdb(a.k,0)} +function gBd(a){if(a.Db>>16!=7)return null;return RD(a.Cb,241)} +function xXd(a){if(a.Db>>16!=6)return null;return RD(a.Cb,241)} +function dCd(a){if(a.Db>>16!=7)return null;return RD(a.Cb,167)} +function vCd(a){if(a.Db>>16!=11)return null;return RD(a.Cb,27)} +function uWd(a){if(a.Db>>16!=17)return null;return RD(a.Cb,29)} +function kVd(a){if(a.Db>>16!=3)return null;return RD(a.Cb,155)} +function BDb(a){var b;MCb(a);b=new _sb;return CDb(a,new aEb(b))} +function xfb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.ve(b))} +function qB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);mB(a,c)} +function oz(a,b){ez(this);this.f=b;this.g=a;gz(this);this.je()} +function TQb(a,b){this.a=a;this.c=ajd(this.a);this.b=new Vid(b)} +function aGb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new dnb(c))} +function s$b(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new dnb(c))} +function _Kc(a){this.a=a;this.b=$C(qY,Nve,2043,a.e.length,0,2)} +function fGb(){this.a=new Iub;this.e=new _sb;this.g=0;this.i=0} +function EId(){EId=geb;DId=new Tsb;CId=new Tsb;IId(zK,new JId)} +function KFc(){KFc=geb;JFc=nfd(new ufd,(sXb(),rXb),(hcc(),$bc))} +function RFc(){RFc=geb;QFc=nfd(new ufd,(sXb(),rXb),(hcc(),$bc))} +function gGc(){gGc=geb;fGc=nfd(new ufd,(sXb(),rXb),(hcc(),$bc))} +function ANc(){ANc=geb;zNc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function dOc(){dOc=geb;cOc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function gQc(){gQc=geb;fQc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function WQc(){WQc=geb;VQc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function dZd(a,b,c,d,e,f){return new P3d(a.e,b,a.Lj(),c,d,e,f)} +function $jb(a,b,c){return b==null?rtb(a.f,null,c):Ltb(a.i,b,c)} +function Y0b(a,b){!!a.c&&Ymb(a.c.g,a);a.c=b;!!a.c&&Rmb(a.c.g,a)} +function g3b(a,b){!!a.c&&Ymb(a.c.a,a);a.c=b;!!a.c&&Rmb(a.c.a,a)} +function P3b(a,b){!!a.i&&Ymb(a.i.j,a);a.i=b;!!a.i&&Rmb(a.i.j,a)} +function Z0b(a,b){!!a.d&&Ymb(a.d.e,a);a.d=b;!!a.d&&Rmb(a.d.e,a)} +function _Sc(a,b){!!a.a&&Ymb(a.a.k,a);a.a=b;!!a.a&&Rmb(a.a.k,a)} +function aTc(a,b){!!a.b&&Ymb(a.b.f,a);a.b=b;!!a.b&&Rmb(a.b.f,a)} +function Odd(a,b){Pdd(a,a.b,a.c);RD(a.b.b,68);!!b&&RD(b.b,68).b} +function j2c(a,b){return Qfb(RD(a.c,65).c.e.b,RD(b.c,65).c.e.b)} +function k2c(a,b){return Qfb(RD(a.c,65).c.e.a,RD(b.c,65).c.e.a)} +function YXb(a){NXb();return Geb(),RD(a.a,86).d.e!=0?true:false} +function LXd(a,b){ZD(a.Cb,184)&&(RD(a.Cb,184).tb=null);PAd(a,b)} +function CWd(a,b){ZD(a.Cb,90)&&v$d(yYd(RD(a.Cb,90)),4);PAd(a,b)} +function _5d(a,b){a6d(a,b);ZD(a.Cb,90)&&v$d(yYd(RD(a.Cb,90)),2)} +function JFd(a,b){var c,d;c=b.c;d=c!=null;d&&oDd(a,new OC(b.c))} +function v0d(a){var b,c;c=(jTd(),b=new s2d,b);l2d(c,a);return c} +function E4d(a){var b,c;c=(jTd(),b=new s2d,b);l2d(c,a);return c} +function Fr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function nq(a,b,c){Rmb(a.a,(fn(),ck(b,c),new gp(b,c)));return a} +function rge(a,b){return nke(),wWd(b)?new ole(b,a):new Eke(b,a)} +function ojb(a){Pib();return Ddb(a,0)>=0?jjb(a):Xib(jjb(Odb(a)))} +function Asb(a){var b;b=RD(UEb(a.b),9);return new Fsb(a.a,b,a.c)} +function Qw(a,b){var c;c=RD(Xv(nd(a.a),b),16);return !c?0:c.gc()} +function Zmb(a,b,c){var d;xFb(b,c,a.c.length);d=c-b;$Eb(a.c,b,d)} +function Rkb(a,b,c){xFb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function fgd(a){this.c=new Yub;this.b=a.b;this.d=a.c;this.a=a.a} +function qjd(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function bTc(a,b,c,d){this.c=a;this.d=d;_Sc(this,b);aTc(this,c)} +function Si(a,b){Qi.call(this,new Usb(Sv(a)));dk(b,Mve);this.a=b} +function Ryb(a,b,c){return new Kzb(a,(cAb(),_zb),null,false,b,c)} +function czb(a,b,c){return new Kzb(a,(cAb(),bAb),b,c,null,false)} +function ABb(){xBb();return cD(WC(QL,1),jwe,108,0,[uBb,vBb,wBb])} +function yLb(){vLb();return cD(WC(TN,1),jwe,472,0,[uLb,tLb,sLb])} +function HKb(){EKb();return cD(WC(MN,1),jwe,471,0,[CKb,BKb,DKb])} +function aKb(){ZJb();return cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])} +function DWb(){AWb();return cD(WC(JP,1),jwe,391,0,[yWb,xWb,zWb])} +function moc(){joc();return cD(WC(UV,1),jwe,372,0,[ioc,hoc,goc])} +function ytc(){stc();return cD(WC(_W,1),jwe,322,0,[qtc,ptc,rtc])} +function Htc(){Etc();return cD(WC(aX,1),jwe,351,0,[Btc,Dtc,Ctc])} +function kuc(){huc();return cD(WC(dX,1),jwe,460,0,[fuc,euc,guc])} +function Avc(){xvc();return cD(WC(jX,1),jwe,299,0,[vvc,wvc,uvc])} +function Jvc(){Gvc();return cD(WC(kX,1),jwe,311,0,[Evc,Fvc,Dvc])} +function pDc(){lDc();return cD(WC(sX,1),jwe,390,0,[iDc,jDc,kDc])} +function EEc(){BEc();return cD(WC(yX,1),jwe,463,0,[AEc,yEc,zEc])} +function NEc(){KEc();return cD(WC(zX,1),jwe,387,0,[HEc,IEc,JEc])} +function WEc(){TEc();return cD(WC(AX,1),jwe,349,0,[SEc,QEc,REc])} +function oFc(){lFc();return cD(WC(CX,1),jwe,350,0,[iFc,jFc,kFc])} +function xFc(){uFc();return cD(WC(DX,1),jwe,352,0,[tFc,rFc,sFc])} +function GFc(){DFc();return cD(WC(EX,1),jwe,388,0,[BFc,CFc,AFc])} +function UKc(){RKc();return cD(WC(nY,1),jwe,464,0,[OKc,PKc,QKc])} +function K3b(a){return xjd(cD(WC(l3,1),Nve,8,0,[a.i.n,a.n,a.a]))} +function OZc(){LZc();return cD(WC(F_,1),jwe,392,0,[KZc,JZc,IZc])} +function H_c(){H_c=geb;G_c=nfd(new ufd,(YVc(),WVc),(WYc(),MYc))} +function A_c(){A_c=geb;z_c=new B_c('DFS',0);y_c=new B_c('BFS',1)} +function TQc(a,b,c){var d;d=new SQc;d.b=b;d.a=c;++b.b;Rmb(a.d,d)} +function NTb(a,b,c){var d;d=new sjd(c.d);$id(d,a);CGd(b,d.a,d.b)} +function Nwb(a,b){Mwb(a,Ydb(Cdb(Tdb(b,24),Pxe)),Ydb(Cdb(b,Pxe)))} +function wFb(a,b){if(a<0||a>b){throw Adb(new veb(cye+a+dye+b))}} +function tFb(a,b){if(a<0||a>=b){throw Adb(new veb(cye+a+dye+b))}} +function BFb(a,b){if(a<0||a>=b){throw Adb(new eib(cye+a+dye+b))}} +function Swb(a,b){this.b=(uFb(a),a);this.a=(b&qxe)==0?b|64|Ove:b} +function ODb(a){var b;MCb(a);b=(urb(),urb(),srb);return PDb(a,b)} +function R9c(a,b,c){var d;d=S9c(a,b,false);return d.b<=b&&d.a<=c} +function h9c(){b9c();return cD(WC(o1,1),jwe,439,0,[$8c,a9c,_8c])} +function c7c(){_6c();return cD(WC(a1,1),jwe,394,0,[Z6c,$6c,Y6c])} +function i6c(){f6c();return cD(WC(V0,1),jwe,445,0,[c6c,d6c,e6c])} +function D6c(){z6c();return cD(WC(Z0,1),jwe,456,0,[w6c,y6c,x6c])} +function k4c(){g4c();return cD(WC(I0,1),jwe,393,0,[d4c,e4c,f4c])} +function x5c(){t5c();return cD(WC(N0,1),jwe,300,0,[r5c,s5c,q5c])} +function Ind(){Fnd();return cD(WC(y3,1),jwe,346,0,[Dnd,Cnd,End])} +function jbd(){gbd();return cD(WC(I1,1),jwe,444,0,[dbd,ebd,fbd])} +function Rmd(){Omd();return cD(WC(t3,1),jwe,278,0,[Lmd,Mmd,Nmd])} +function pqd(){mqd();return cD(WC(J3,1),jwe,280,0,[kqd,jqd,lqd])} +function bv(a){Qb(a);return ZD(a,16)?new dnb(RD(a,16)):cv(a.Kc())} +function Hz(a,b){return !!a&&!!a.equals?a.equals(b):dE(a)===dE(b)} +function Cdb(a,b){return Edb(tD(Kdb(a)?Wdb(a):a,Kdb(b)?Wdb(b):b))} +function Rdb(a,b){return Edb(zD(Kdb(a)?Wdb(a):a,Kdb(b)?Wdb(b):b))} +function $db(a,b){return Edb(HD(Kdb(a)?Wdb(a):a,Kdb(b)?Wdb(b):b))} +function xs(a,b){var c;c=(uFb(a),a).g;lFb(!!c);uFb(b);return c(b)} +function rv(a,b){var c,d;d=tv(a,b);c=a.a.fd(d);return new Gv(a,c)} +function CXd(a){if(a.Db>>16!=6)return null;return RD(yvd(a),241)} +function sKd(a){if(a.p!=2)throw Adb(new cgb);return Ydb(a.f)&Bwe} +function BKd(a){if(a.p!=2)throw Adb(new cgb);return Ydb(a.k)&Bwe} +function ynb(a){sFb(a.ad?1:0} +function Hmc(a,b){var c,d;c=Gmc(b);d=c;return RD(Wjb(a.c,d),17).a} +function CMc(a,b,c){var d;d=a.d[b.p];a.d[b.p]=a.d[c.p];a.d[c.p]=d} +function Jqd(a,b,c){var d;if(a.n&&!!b&&!!c){d=new otd;Rmb(a.e,d)}} +function gYb(a,b){Ysb(a.a,b);if(b.d){throw Adb(new yz(jye))}b.d=a} +function Had(a,b){this.a=new bnb;this.d=new bnb;this.f=a;this.c=b} +function RWb(){this.c=new dXb;this.a=new I_b;this.b=new E0b;g0b()} +function med(){hed();this.b=new Tsb;this.a=new Tsb;this.c=new bnb} +function KKd(a,b,c){this.d=a;this.j=b;this.e=c;this.o=-1;this.p=3} +function LKd(a,b,c){this.d=a;this.k=b;this.f=c;this.o=-1;this.p=5} +function S3d(a,b,c,d,e,f){R3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function U3d(a,b,c,d,e,f){T3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function W3d(a,b,c,d,e,f){V3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function Y3d(a,b,c,d,e,f){X3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function $3d(a,b,c,d,e,f){Z3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function a4d(a,b,c,d,e,f){_3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function f4d(a,b,c,d,e,f){e4d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function h4d(a,b,c,d,e,f){g4d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function N7d(a,b,c,d){t7d.call(this,c);this.b=a;this.c=b;this.d=d} +function mfe(a,b){this.f=a;this.a=(ree(),pee);this.c=pee;this.b=b} +function Jfe(a,b){this.g=a;this.d=(ree(),qee);this.a=qee;this.b=b} +function Gme(a,b){!a.c&&(a.c=new Uge(a,0));Fge(a.c,(nme(),fme),b)} +function Oge(a,b){return Pge(a,b,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function lB(a,b){return Agb(Hdb(a.q.getTime()),Hdb(b.q.getTime()))} +function gj(a){return fk(a.e.Rd().gc()*a.c.Rd().gc(),16,new qj(a))} +function CYd(a){return !!a.u&&tYd(a.u.a).i!=0&&!(!!a.n&&d$d(a.n))} +function p4d(a){return !!a.a&&o4d(a.a.a).i!=0&&!(!!a.b&&o5d(a.b))} +function Cxd(a,b){if(b==0){return !!a.o&&a.o.f!=0}return Kvd(a,b)} +function Cc(a,b,c){var d;d=RD(a.Zb().xc(b),16);return !!d&&d.Hc(c)} +function Gc(a,b,c){var d;d=RD(a.Zb().xc(b),16);return !!d&&d.Mc(c)} +function _yb(a,b){var c;c=1-b;a.a[c]=azb(a.a[c],c);return azb(a,b)} +function DFb(a,b){var c,d;d=Cdb(a,yxe);c=Sdb(b,32);return Rdb(c,d)} +function bGb(a,b,c){var d;d=(Qb(a),new dnb(a));_Fb(new aGb(d,b,c))} +function t$b(a,b,c){var d;d=(Qb(a),new dnb(a));r$b(new s$b(d,b,c))} +function vBd(a,b,c,d,e,f){wBd(a,b,c,f);EYd(a,d);FYd(a,e);return a} +function Xhb(a,b,c,d){a.a+=''+zhb(b==null?vve:jeb(b),c,d);return a} +function Jkb(a,b){this.a=a;Dkb.call(this,a);wFb(b,a.gc());this.b=b} +function xmb(a){this.a=$C(jJ,rve,1,mgb($wnd.Math.max(8,a))<<1,5,1)} +function t2b(a){return RD(anb(a,$C(jR,WAe,10,a.c.length,0,1)),199)} +function s2b(a){return RD(anb(a,$C(WQ,VAe,18,a.c.length,0,1)),483)} +function Iyb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function Rib(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function fvb(a){sFb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function sRc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Xub(a.d);aFb(a.e.a.c,0)} +function Z5c(a,b){var c;a.e=new R5c;c=Q2c(b);_mb(c,a.c);$5c(a,c,0)} +function zgd(a,b,c,d){var e;e=new Hgd;e.a=b;e.b=c;e.c=d;Mub(a.a,e)} +function Agd(a,b,c,d){var e;e=new Hgd;e.a=b;e.b=c;e.c=d;Mub(a.b,e)} +function Tb(a,b,c){if(a<0||bc){throw Adb(new veb(Kb(a,b,c)))}} +function Pb(a,b){if(a<0||a>=b){throw Adb(new veb(Ib(a,b)))}return a} +function qz(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Zjc(a){Wjc();if(ZD(a.g,10)){return RD(a.g,10)}return null} +function nx(a){if(Ih(a).dc()){return false}Jh(a,new rx);return true} +function Xdb(a){var b;if(Kdb(a)){b=a;return b==-0.?0:b}return ED(a)} +function lkb(a,b){if(ZD(b,44)){return Jd(a.a,RD(b,44))}return false} +function gsb(a,b){if(ZD(b,44)){return Jd(a.a,RD(b,44))}return false} +function vub(a,b){if(ZD(b,44)){return Jd(a.a,RD(b,44))}return false} +function RCb(a){var b;LCb(a);b=new Prb;ixb(a.a,new fDb(b));return b} +function Vae(){var a,b,c;b=(c=(a=new s2d,a),c);Rmb(Rae,b);return b} +function mDb(a){var b;LCb(a);b=new ltb;ixb(a.a,new uDb(b));return b} +function jDb(a,b){if(a.a<=a.b){b.Dd(a.a++);return true}return false} +function xzb(a){yzb.call(this,a,(cAb(),$zb),null,false,null,false)} +function $Rb(){$Rb=geb;ZRb=ss((VRb(),cD(WC($O,1),jwe,489,0,[URb])))} +function CHc(){CHc=geb;BHc=yx(sgb(1),sgb(4));AHc=yx(sgb(1),sgb(2))} +function yXc(a,b){return new gud(b,njd(ajd(b.e),a,a),(Geb(),true))} +function fv(a){return new cnb((dk(a,lwe),dz(Bdb(Bdb(5,a),a/10|0))))} +function Wi(a){return fk(a.e.Rd().gc()*a.c.Rd().gc(),273,new kj(a))} +function u2b(a){return RD(anb(a,$C(xR,XAe,12,a.c.length,0,1)),2042)} +function COc(a){dOc();return !W0b(a)&&!(!W0b(a)&&a.c.i.c==a.d.i.c)} +function Y_c(a,b){R_c();return RD(mQb(b,(h_c(),W$c)),17).a>=a.gc()} +function q8b(a,b){w8b(b,a);y8b(a.d);y8b(RD(mQb(a,(yCc(),cBc)),214))} +function r8b(a,b){z8b(b,a);B8b(a.d);B8b(RD(mQb(a,(yCc(),cBc)),214))} +function $0b(a,b,c){!!a.d&&Ymb(a.d.e,a);a.d=b;!!a.d&&Qmb(a.d.e,c,a)} +function jPb(a,b,c){return c.f.c.length>0?yPb(a.a,b,c):yPb(a.b,b,c)} +function Uz(a,b,c){var d;d=Sz();try{return Rz(a,b,c)}finally{Vz(d)}} +function wDd(a,b){var c,d;c=qC(a,b);d=null;!!c&&(d=c.pe());return d} +function yDd(a,b){var c,d;c=qC(a,b);d=null;!!c&&(d=c.se());return d} +function xDd(a,b){var c,d;c=JB(a,b);d=null;!!c&&(d=c.se());return d} +function zDd(a,b){var c,d;c=qC(a,b);d=null;!!c&&(d=ADd(c));return d} +function rEd(a,b,c){var d;d=uDd(c);Do(a.g,d,b);Do(a.i,b,c);return b} +function UIc(a,b,c){this.d=new fJc(this);this.e=a;this.i=b;this.f=c} +function Mk(a,b,c,d){this.e=null;this.c=a;this.d=b;this.a=c;this.b=d} +function urc(a,b,c,d){nrc(this);this.c=a;this.e=b;this.f=c;this.b=d} +function MKd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function Vc(a,b,c,d){return ZD(c,59)?new Kg(a,b,c,d):new yg(a,b,c,d)} +function gr(a){if(ZD(a,16)){return RD(a,16).dc()}return !a.Kc().Ob()} +function Wo(a){if(a.e.g!=a.b){throw Adb(new Jrb)}return !!a.c&&a.d>0} +function evb(a){sFb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function imb(a,b){uFb(b);bD(a.a,a.c,b);a.c=a.c+1&a.a.length-1;mmb(a)} +function hmb(a,b){uFb(b);a.b=a.b-1&a.a.length-1;bD(a.a,a.b,b);mmb(a)} +function _je(a){var b;b=a.Gh();this.a=ZD(b,71)?RD(b,71).Ii():b.Kc()} +function px(a){return new Swb(Dob(RD(a.a.md(),16).gc(),a.a.ld()),16)} +function Abd(){Abd=geb;zbd=ss((sbd(),cD(WC(M1,1),jwe,490,0,[rbd])))} +function Jbd(){Jbd=geb;Ibd=ss((Cbd(),cD(WC(N1,1),jwe,558,0,[Bbd])))} +function idd(){idd=geb;hdd=ss((_cd(),cD(WC(V1,1),jwe,539,0,[$cd])))} +function X$b(){U$b();return cD(WC(CQ,1),jwe,389,0,[T$b,R$b,Q$b,S$b])} +function hAb(){cAb();return cD(WC(AL,1),jwe,304,0,[$zb,_zb,aAb,bAb])} +function LPb(){IPb();return cD(WC(DO,1),jwe,332,0,[FPb,EPb,GPb,HPb])} +function LRb(){IRb();return cD(WC(WO,1),jwe,406,0,[FRb,ERb,GRb,HRb])} +function pOb(){mOb();return cD(WC(hO,1),jwe,417,0,[lOb,iOb,jOb,kOb])} +function uZb(){nZb();return cD(WC(lQ,1),jwe,416,0,[jZb,mZb,kZb,lZb])} +function hnc(){enc();return cD(WC(LV,1),jwe,421,0,[anc,bnc,cnc,dnc])} +function zec(){vec();return cD(WC(qT,1),jwe,371,0,[uec,sec,tec,rec])} +function BDc(){wDc();return cD(WC(tX,1),jwe,203,0,[uDc,vDc,tDc,sDc])} +function nEc(){kEc();return cD(WC(wX,1),jwe,284,0,[hEc,gEc,iEc,jEc])} +function Unc(a){var b;return a.j==(qpd(),npd)&&(b=Vnc(a),Csb(b,Xod))} +function qhc(a,b){var c;c=b.a;Y0b(c,b.c.d);Z0b(c,b.d.d);Cjd(c.a,a.n)} +function _5b(a,b){var c;c=RD(cub(a.b,b),67);!c&&(c=new Yub);return c} +function $jc(a){Wjc();if(ZD(a.g,154)){return RD(a.g,154)}return null} +function gRc(a){a.a=null;a.e=null;aFb(a.b.c,0);aFb(a.f.c,0);a.c=null} +function Ovc(){Ovc=geb;Mvc=new Pvc(Kye,0);Nvc=new Pvc('TOP_LEFT',1)} +function sNc(){sNc=geb;rNc=new tNc('UPPER',0);qNc=new tNc('LOWER',1)} +function nWc(a,b){return cjd(new rjd(b.e.a+b.f.a/2,b.e.b+b.f.b/2),a)} +function wqc(a,b){return RD(Lvb(JDb(RD(Qc(a.k,b),15).Oc(),lqc)),113)} +function xqc(a,b){return RD(Lvb(KDb(RD(Qc(a.k,b),15).Oc(),lqc)),113)} +function cWc(){YVc();return cD(WC(H$,1),jwe,405,0,[UVc,VVc,WVc,XVc])} +function v_c(){s_c();return cD(WC(J_,1),jwe,353,0,[r_c,p_c,q_c,o_c])} +function n5c(){j5c();return cD(WC(M0,1),jwe,354,0,[i5c,g5c,h5c,f5c])} +function Tpd(){Qpd();return cD(WC(H3,1),jwe,386,0,[Opd,Ppd,Npd,Mpd])} +function Tnd(){Pnd();return cD(WC(z3,1),jwe,291,0,[Ond,Lnd,Mnd,Nnd])} +function _md(){Ymd();return cD(WC(u3,1),jwe,223,0,[Xmd,Vmd,Umd,Wmd])} +function Jrd(){Grd();return cD(WC(R3,1),jwe,320,0,[Frd,Crd,Erd,Drd])} +function wtd(){ttd();return cD(WC(n4,1),jwe,415,0,[qtd,rtd,ptd,std])} +function GId(a){EId();return Ujb(DId,a)?RD(Wjb(DId,a),341).Qg():null} +function Avd(a,b,c){return b<0?Rvd(a,c):RD(c,69).wk().Bk(a,a.hi(),b)} +function sEd(a,b,c){var d;d=uDd(c);Do(a.j,d,b);Zjb(a.k,b,c);return b} +function qEd(a,b,c){var d;d=uDd(c);Do(a.d,d,b);Zjb(a.e,b,c);return b} +function DGd(a){var b,c;b=(bvd(),c=new rzd,c);!!a&&pzd(b,a);return b} +function WHd(a){var b;b=a.aj(a.i);a.i>0&&hib(a.g,0,b,0,a.i);return b} +function Led(a,b){var c;for(c=a.j.c.length;c>24} +function AKd(a){if(a.p!=1)throw Adb(new cgb);return Ydb(a.k)<<24>>24} +function GKd(a){if(a.p!=7)throw Adb(new cgb);return Ydb(a.k)<<16>>16} +function xKd(a){if(a.p!=7)throw Adb(new cgb);return Ydb(a.f)<<16>>16} +function Wib(a,b){if(b.e==0||a.e==0){return Oib}return Ljb(),Mjb(a,b)} +function Nd(a,b){return dE(b)===dE(a)?'(this Map)':b==null?vve:jeb(b)} +function MFb(a,b,c){return Jfb(UD(Wd(qtb(a.f,b))),UD(Wd(qtb(a.f,c))))} +function wkc(a,b,c){var d;d=RD(Wjb(a.g,c),60);Rmb(a.a.c,new Ptd(b,d))} +function Slc(a,b,c){a.i=0;a.e=0;if(b==c){return}Rlc(a,b,c);Qlc(a,b,c)} +function rTc(a,b,c,d,e){var f;f=mTc(e,c,d);Rmb(b,TSc(e,f));vTc(a,e,b)} +function Jrc(a,b,c,d,e){this.i=a;this.a=b;this.e=c;this.j=d;this.f=e} +function iUb(a,b){VTb.call(this);this.a=a;this.b=b;Rmb(this.a.b,this)} +function rTb(a){this.b=new Tsb;this.c=new Tsb;this.d=new Tsb;this.a=a} +function Dx(a,b){var c;c=new cib;a.Gd(c);c.a+='..';b.Hd(c);return c.a} +function Fsd(a,b){var c;c=b;while(c){Zid(a,c.i,c.j);c=vCd(c)}return a} +function pEd(a,b,c){var d;d=uDd(c);Zjb(a.b,d,b);Zjb(a.c,b,c);return b} +function Kr(a){var b;b=0;while(a.Ob()){a.Pb();b=Bdb(b,1)}return dz(b)} +function oke(a,b){nke();var c;c=RD(a,69).vk();K6d(c,b);return c.xl(b)} +function tC(d,a,b){if(b){var c=b.oe();d.a[a]=c(b)}else{delete d.a[a]}} +function tB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+Owe);mB(a,c)} +function KSd(a,b){return RD(b==null?Wd(qtb(a.f,null)):Ktb(a.i,b),288)} +function hOc(a,b){return a==(r3b(),p3b)&&b==p3b?4:a==p3b||b==p3b?8:32} +function cge(a,b,c){return dge(a,b,c,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function jge(a,b,c){return kge(a,b,c,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function Qge(a,b,c){return Rge(a,b,c,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function jmb(a){if(a.b==a.c){return}a.a=$C(jJ,rve,1,8,5,1);a.b=0;a.c=0} +function Nsb(a){sFb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Xx(a){var b;if(a){return new Kub(a)}b=new Iub;_q(b,a);return b} +function nmc(a,b){var c,d;d=false;do{c=qmc(a,b);d=d|c}while(c);return d} +function Vz(a){a&&aA(($z(),Zz));--Nz;if(a){if(Pz!=-1){Xz(Pz);Pz=-1}}} +function Pwb(a){Hwb();Mwb(this,Ydb(Cdb(Tdb(a,24),Pxe)),Ydb(Cdb(a,Pxe)))} +function IHb(){IHb=geb;HHb=ss((DHb(),cD(WC(uN,1),jwe,436,0,[CHb,BHb])))} +function QHb(){QHb=geb;PHb=ss((LHb(),cD(WC(vN,1),jwe,435,0,[JHb,KHb])))} +function YUb(){YUb=geb;XUb=ss((TUb(),cD(WC(BP,1),jwe,432,0,[RUb,SUb])))} +function U8b(){U8b=geb;T8b=ss((P8b(),cD(WC(vS,1),jwe,517,0,[O8b,N8b])))} +function Tvc(){Tvc=geb;Svc=ss((Ovc(),cD(WC(lX,1),jwe,429,0,[Mvc,Nvc])))} +function duc(){duc=geb;cuc=ss(($tc(),cD(WC(cX,1),jwe,428,0,[Ytc,Ztc])))} +function Huc(){Huc=geb;Guc=ss((Cuc(),cD(WC(fX,1),jwe,488,0,[Buc,Auc])))} +function xEc(){xEc=geb;wEc=ss((sEc(),cD(WC(xX,1),jwe,430,0,[qEc,rEc])))} +function xNc(){xNc=geb;wNc=ss((sNc(),cD(WC(MY,1),jwe,531,0,[rNc,qNc])))} +function otc(){otc=geb;ntc=ss((jtc(),cD(WC($W,1),jwe,431,0,[htc,itc])))} +function F_c(){F_c=geb;E_c=ss((A_c(),cD(WC(K_,1),jwe,433,0,[z_c,y_c])))} +function F2c(){F2c=geb;E2c=ss((x2c(),cD(WC(s0,1),jwe,501,0,[v2c,w2c])))} +function BQc(){BQc=geb;AQc=ss((wQc(),cD(WC(FZ,1),jwe,523,0,[vQc,uQc])))} +function JQc(){JQc=geb;IQc=ss((EQc(),cD(WC(GZ,1),jwe,522,0,[CQc,DQc])))} +function kTc(){kTc=geb;jTc=ss((fTc(),cD(WC(b$,1),jwe,528,0,[eTc,dTc])))} +function iVc(){iVc=geb;hVc=ss((dVc(),cD(WC(w$,1),jwe,465,0,[bVc,cVc])))} +function c4c(){c4c=geb;b4c=ss((Y3c(),cD(WC(H0,1),jwe,434,0,[W3c,X3c])))} +function H8c(){H8c=geb;G8c=ss((z8c(),cD(WC(l1,1),jwe,491,0,[x8c,y8c])))} +function J9c(){J9c=geb;I9c=ss((B9c(),cD(WC(t1,1),jwe,492,0,[z9c,A9c])))} +function Rbd(){Rbd=geb;Qbd=ss((Mbd(),cD(WC(O1,1),jwe,438,0,[Lbd,Kbd])))} +function tdd(){tdd=geb;sdd=ss((ldd(),cD(WC(W1,1),jwe,437,0,[kdd,jdd])))} +function Eqd(){Eqd=geb;Dqd=ss((uqd(),cD(WC(M3,1),jwe,347,0,[sqd,tqd])))} +function Imd(){Cmd();return cD(WC(s3,1),jwe,88,0,[Amd,zmd,ymd,xmd,Bmd])} +function xpd(){qpd();return cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])} +function LSd(a,b,c){return RD(b==null?rtb(a.f,null,c):Ltb(a.i,b,c),288)} +function L6b(a){return (a.k==(r3b(),p3b)||a.k==m3b)&&nQb(a,(Ywc(),cwc))} +function bUb(a){return !!a.c&&!!a.d?kUb(a.c)+'->'+kUb(a.d):'e_'+kFb(a)} +function xgb(a,b){var c,d;uFb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.Cd(c)}} +function jEd(a,b){var c;c=new uC;qDd(c,'x',b.a);qDd(c,'y',b.b);oDd(a,c)} +function mEd(a,b){var c;c=new uC;qDd(c,'x',b.a);qDd(c,'y',b.b);oDd(a,c)} +function Gsd(a,b){var c;c=b;while(c){Zid(a,-c.i,-c.j);c=vCd(c)}return a} +function ZLc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function $mb(a,b,c){var d;d=(tFb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function uIc(a,b,c){a.a.c.length=0;yIc(a,b,c);a.a.c.length==0||rIc(a,b)} +function wo(a){a.i=0;Mnb(a.b,null);Mnb(a.c,null);a.a=null;a.e=null;++a.g} +function gBb(){gBb=geb;dBb=true;bBb=false;cBb=false;fBb=false;eBb=false} +function oBb(a){gBb();if(dBb){return}this.c=a;this.e=true;this.a=new bnb} +function kDb(a,b){this.c=0;this.b=b;txb.call(this,a,17493);this.a=this.c} +function S_b(a){P_b();A$b(this);this.a=new Yub;Q_b(this,a);Mub(this.a,a)} +function m_b(){Pmb(this);this.b=new rjd(oxe,oxe);this.a=new rjd(pxe,pxe)} +function z8c(){z8c=geb;x8c=new B8c(CBe,0);y8c=new B8c('TARGET_WIDTH',1)} +function yDb(a,b){return (MCb(a),QDb(new SDb(a,new hEb(b,a.a)))).Bd(wDb)} +function vXb(){sXb();return cD(WC(UP,1),jwe,367,0,[nXb,oXb,pXb,qXb,rXb])} +function Fnc(){Bnc();return cD(WC(TV,1),jwe,375,0,[xnc,znc,Anc,ync,wnc])} +function Vtc(){Ptc();return cD(WC(bX,1),jwe,348,0,[Ltc,Ktc,Ntc,Otc,Mtc])} +function PDc(){JDc();return cD(WC(uX,1),jwe,323,0,[IDc,FDc,GDc,EDc,HDc])} +function fxc(){cxc();return cD(WC(mX,1),jwe,171,0,[bxc,Zwc,$wc,_wc,axc])} +function k3c(){g3c();return cD(WC(x0,1),jwe,368,0,[e3c,b3c,f3c,c3c,d3c])} +function vad(){sad();return cD(WC(x1,1),jwe,373,0,[oad,nad,qad,pad,rad])} +function $bd(){Xbd();return cD(WC(P1,1),jwe,324,0,[Sbd,Tbd,Wbd,Ubd,Vbd])} +function _hd(){Yhd();return cD(WC(d3,1),jwe,170,0,[Whd,Vhd,Thd,Xhd,Uhd])} +function sod(){pod();return cD(WC(B3,1),jwe,256,0,[mod,ood,kod,lod,nod])} +function Tz(b){Qz();return function(){return Uz(b,this,arguments);var a}} +function W0b(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function Nfd(a,b){if(ZD(b,143)){return lhb(a.c,RD(b,143).c)}return false} +function yYd(a){if(!a.t){a.t=new w$d(a);VGd(new Cde(a),0,a.t)}return a.t} +function jNd(a){this.b=a;dMd.call(this,a);this.a=RD(Ywd(this.b.a,4),129)} +function sNd(a){this.b=a;yMd.call(this,a);this.a=RD(Ywd(this.b.a,4),129)} +function Q3d(a,b,c,d,e){OKd.call(this,b,d,e);J3d(this);this.c=a;this.b=c} +function V3d(a,b,c,d,e){KKd.call(this,b,d,e);J3d(this);this.c=a;this.a=c} +function Z3d(a,b,c,d,e){LKd.call(this,b,d,e);J3d(this);this.c=a;this.a=c} +function g4d(a,b,c,d,e){OKd.call(this,b,d,e);J3d(this);this.c=a;this.a=c} +function ugd(a,b){var c;c=RD(cub(a.d,b),23);return c?c:RD(cub(a.e,b),23)} +function Blb(a,b){var c,d;c=b.ld();d=a.Fe(c);return !!d&&Fvb(d.e,b.md())} +function me(a,b){var c;c=b.ld();return new gp(c,a.e.pc(c,RD(b.md(),16)))} +function ptb(a,b){var c;c=a.a.get(b);return c==null?$C(jJ,rve,1,0,5,1):c} +function khb(a){var b;b=a.length;return lhb(sxe.substr(sxe.length-b,b),a)} +function hs(a){if(gs(a)){a.c=a.a;return a.a.Pb()}else{throw Adb(new Dvb)}} +function $ib(a,b){if(b==0||a.e==0){return a}return b>0?tjb(a,b):qjb(a,-b)} +function Zib(a,b){if(b==0||a.e==0){return a}return b>0?qjb(a,b):tjb(a,-b)} +function Deb(a){Beb.call(this,a==null?vve:jeb(a),ZD(a,82)?RD(a,82):null)} +function Y5d(a){var b;if(!a.c){b=a.r;ZD(b,90)&&(a.c=RD(b,29))}return a.c} +function s0b(a){var b;b=new a1b;kQb(b,a);pQb(b,(yCc(),RAc),null);return b} +function lec(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(r3b(),m3b)&&c.k==m3b} +function fD(a){var b,c,d;b=a&dxe;c=a>>22&dxe;d=a<0?exe:0;return hD(b,c,d)} +function Ky(a){var b,c,d,e;for(c=a,d=0,e=c.length;d=0?a.Lh(d,c,true):Qvd(a,b,c)} +function AXc(a,b,c){return Qfb(cjd(jWc(a),ajd(b.b)),cjd(jWc(a),ajd(c.b)))} +function BXc(a,b,c){return Qfb(cjd(jWc(a),ajd(b.e)),cjd(jWc(a),ajd(c.e)))} +function Kad(a,b){return $wnd.Math.min(bjd(b.a,a.d.d.c),bjd(b.b,a.d.d.c))} +function LHd(a,b){a._i(a.i+1);MHd(a,a.i,a.Zi(a.i,b));a.Mi(a.i++,b);a.Ni()} +function OHd(a){var b,c;++a.j;b=a.g;c=a.i;a.g=null;a.i=0;a.Oi(c,b);a.Ni()} +function yke(a,b,c){var d;d=new zke(a.a);Ld(d,a.a.a);rtb(d.f,b,c);a.a.a=d} +function mKb(a,b,c,d){var e;for(e=0;eb){throw Adb(new veb(Jb(a,b,'index')))}return a} +function Xmb(a,b){var c;c=(tFb(b,a.c.length),a.c[b]);$Eb(a.c,b,1);return c} +function jhb(a,b){var c,d;c=(uFb(a),a);d=(uFb(b),b);return c==d?0:cb.p){return -1}return 0} +function hXd(a){var b;if(!a.a){b=a.r;ZD(b,156)&&(a.a=RD(b,156))}return a.a} +function iOd(a,b,c){var d;++a.e;--a.f;d=RD(a.d[b].gd(c),136);return d.md()} +function fd(a){var b,c;b=a.ld();c=RD(a.md(),16);return gk(c.Nc(),new jh(b))} +function oae(a,b){if(Ujb(a.a,b)){_jb(a.a,b);return true}else{return false}} +function Ui(a,b,c){Pb(b,a.e.Rd().gc());Pb(c,a.c.Rd().gc());return a.a[b][c]} +function _Uc(a,b,c){this.a=a;this.b=b;this.c=c;Rmb(a.t,this);Rmb(b.i,this)} +function lg(a,b,c,d){this.f=a;this.e=b;this.d=c;this.b=d;this.c=!d?null:d.d} +function YWc(){this.b=new Yub;this.a=new Yub;this.b=new Yub;this.a=new Yub} +function ree(){ree=geb;var a,b;pee=(jTd(),b=new k1d,b);qee=(a=new mXd,a)} +function UCb(a){var b;MCb(a);b=new $Cb(a,a.a.e,a.a.d|4);return new WCb(a,b)} +function ADb(a){var b;LCb(a);b=0;while(a.a.Bd(new MEb)){b=Bdb(b,1)}return b} +function zxb(a,b){uFb(b);if(a.c=0,'Initial capacity must not be negative')} +function rid(){rid=geb;qid=new jGd('org.eclipse.elk.labels.labelManager')} +function iec(){iec=geb;hec=new kGd('separateLayerConnections',(vec(),uec))} +function fTc(){fTc=geb;eTc=new gTc('REGULAR',0);dTc=new gTc('CRITICAL',1)} +function Mbd(){Mbd=geb;Lbd=new Nbd('FIXED',0);Kbd=new Nbd('CENTER_NODE',1)} +function jtc(){jtc=geb;htc=new ktc('QUADRATIC',0);itc=new ktc('SCANLINE',1)} +function Atc(){Atc=geb;ztc=ss((stc(),cD(WC(_W,1),jwe,322,0,[qtc,ptc,rtc])))} +function Jtc(){Jtc=geb;Itc=ss((Etc(),cD(WC(aX,1),jwe,351,0,[Btc,Dtc,Ctc])))} +function ooc(){ooc=geb;noc=ss((joc(),cD(WC(UV,1),jwe,372,0,[ioc,hoc,goc])))} +function muc(){muc=geb;luc=ss((huc(),cD(WC(dX,1),jwe,460,0,[fuc,euc,guc])))} +function Cvc(){Cvc=geb;Bvc=ss((xvc(),cD(WC(jX,1),jwe,299,0,[vvc,wvc,uvc])))} +function Lvc(){Lvc=geb;Kvc=ss((Gvc(),cD(WC(kX,1),jwe,311,0,[Evc,Fvc,Dvc])))} +function rDc(){rDc=geb;qDc=ss((lDc(),cD(WC(sX,1),jwe,390,0,[iDc,jDc,kDc])))} +function PEc(){PEc=geb;OEc=ss((KEc(),cD(WC(zX,1),jwe,387,0,[HEc,IEc,JEc])))} +function YEc(){YEc=geb;XEc=ss((TEc(),cD(WC(AX,1),jwe,349,0,[SEc,QEc,REc])))} +function GEc(){GEc=geb;FEc=ss((BEc(),cD(WC(yX,1),jwe,463,0,[AEc,yEc,zEc])))} +function qFc(){qFc=geb;pFc=ss((lFc(),cD(WC(CX,1),jwe,350,0,[iFc,jFc,kFc])))} +function zFc(){zFc=geb;yFc=ss((uFc(),cD(WC(DX,1),jwe,352,0,[tFc,rFc,sFc])))} +function IFc(){IFc=geb;HFc=ss((DFc(),cD(WC(EX,1),jwe,388,0,[BFc,CFc,AFc])))} +function QZc(){QZc=geb;PZc=ss((LZc(),cD(WC(F_,1),jwe,392,0,[KZc,JZc,IZc])))} +function m4c(){m4c=geb;l4c=ss((g4c(),cD(WC(I0,1),jwe,393,0,[d4c,e4c,f4c])))} +function z5c(){z5c=geb;y5c=ss((t5c(),cD(WC(N0,1),jwe,300,0,[r5c,s5c,q5c])))} +function k6c(){k6c=geb;j6c=ss((f6c(),cD(WC(V0,1),jwe,445,0,[c6c,d6c,e6c])))} +function F6c(){F6c=geb;E6c=ss((z6c(),cD(WC(Z0,1),jwe,456,0,[w6c,y6c,x6c])))} +function e7c(){e7c=geb;d7c=ss((_6c(),cD(WC(a1,1),jwe,394,0,[Z6c,$6c,Y6c])))} +function j9c(){j9c=geb;i9c=ss((b9c(),cD(WC(o1,1),jwe,439,0,[$8c,a9c,_8c])))} +function WKc(){WKc=geb;VKc=ss((RKc(),cD(WC(nY,1),jwe,464,0,[OKc,PKc,QKc])))} +function JKb(){JKb=geb;IKb=ss((EKb(),cD(WC(MN,1),jwe,471,0,[CKb,BKb,DKb])))} +function cKb(){cKb=geb;bKb=ss((ZJb(),cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])))} +function ALb(){ALb=geb;zLb=ss((vLb(),cD(WC(TN,1),jwe,472,0,[uLb,tLb,sLb])))} +function CBb(){CBb=geb;BBb=ss((xBb(),cD(WC(QL,1),jwe,108,0,[uBb,vBb,wBb])))} +function FWb(){FWb=geb;EWb=ss((AWb(),cD(WC(JP,1),jwe,391,0,[yWb,xWb,zWb])))} +function Knd(){Knd=geb;Jnd=ss((Fnd(),cD(WC(y3,1),jwe,346,0,[Dnd,Cnd,End])))} +function lbd(){lbd=geb;kbd=ss((gbd(),cD(WC(I1,1),jwe,444,0,[dbd,ebd,fbd])))} +function Tmd(){Tmd=geb;Smd=ss((Omd(),cD(WC(t3,1),jwe,278,0,[Lmd,Mmd,Nmd])))} +function rqd(){rqd=geb;qqd=ss((mqd(),cD(WC(J3,1),jwe,280,0,[kqd,jqd,lqd])))} +function Hxd(a,b){return !a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),QNd(a.o,b)} +function HMb(a,b){var c;if(a.C){c=RD(Vrb(a.b,b),127).n;c.d=a.C.d;c.a=a.C.a}} +function F8b(a){var b,c,d,e;e=a.d;b=a.a;c=a.b;d=a.c;a.d=c;a.a=d;a.b=e;a.c=b} +function cOd(a){!a.g&&(a.g=new hQd);!a.g.b&&(a.g.b=new ePd(a));return a.g.b} +function dOd(a){!a.g&&(a.g=new hQd);!a.g.c&&(a.g.c=new IPd(a));return a.g.c} +function lOd(a){!a.g&&(a.g=new hQd);!a.g.d&&(a.g.d=new kPd(a));return a.g.d} +function YNd(a){!a.g&&(a.g=new hQd);!a.g.a&&(a.g.a=new qPd(a));return a.g.a} +function B9d(a,b,c,d){!!c&&(d=c.Rh(b,BYd(c.Dh(),a.c.uk()),null,d));return d} +function C9d(a,b,c,d){!!c&&(d=c.Th(b,BYd(c.Dh(),a.c.uk()),null,d));return d} +function Cjb(a,b,c,d){var e;e=$C(kE,Pwe,28,b+1,15,1);Djb(e,a,b,c,d);return e} +function $C(a,b,c,d,e,f){var g;g=_C(e,d);e!=10&&cD(WC(a,f),b,c,e,g);return g} +function $fe(a,b,c){var d,e;e=new Phe(b,a);for(d=0;dc||b=0?a.Lh(c,true,true):Qvd(a,b,true)} +function gMc(a,b,c){var d;d=qMc(a,b,c);a.b=new _Lc(d.c.length);return iMc(a,d)} +function Pue(a){if(a.b<=0)throw Adb(new Dvb);--a.b;a.a-=a.c.c;return sgb(a.a)} +function PGd(a){var b;if(!a.a){throw Adb(new Evb)}b=a.a;a.a=vCd(a.a);return b} +function WDb(a){while(!a.a){if(!yEb(a.c,new $Db(a))){return false}}return true} +function Nr(a){var b;Qb(a);if(ZD(a,204)){b=RD(a,204);return b}return new Or(a)} +function Cfd(a){Afd();RD(a.of((umd(),Lld)),181).Fc((Pod(),Mod));a.qf(Kld,null)} +function Afd(){Afd=geb;xfd=new Gfd;zfd=new Ifd;yfd=yn((umd(),Kld),xfd,pld,zfd)} +function Y3c(){Y3c=geb;W3c=new $3c('LEAF_NUMBER',0);X3c=new $3c('NODE_SIZE',1)} +function YLc(a){a.a=$C(kE,Pwe,28,a.b+1,15,1);a.c=$C(kE,Pwe,28,a.b,15,1);a.d=0} +function OZb(a,b){if(a.a.Ne(b.d,a.b)>0){Rmb(a.c,new fZb(b.c,b.d,a.d));a.b=b.d}} +function NHd(a,b){if(a.g==null||b>=a.i)throw Adb(new yNd(b,a.i));return a.g[b]} +function P_d(a,b,c){gHd(a,c);if(c!=null&&!a.fk(c)){throw Adb(new yeb)}return c} +function dD(a,b){XC(b)!=10&&cD(rb(b),b.Sm,b.__elementTypeId$,XC(b),a);return a} +function Wnb(a,b,c,d){var e;d=(urb(),!d?rrb:d);e=a.slice(b,c);Xnb(e,a,b,c,-b,d)} +function zvd(a,b,c,d,e){return b<0?Qvd(a,c,d):RD(c,69).wk().yk(a,a.hi(),b,d,e)} +function J9b(a,b){return Qfb(Kfb(UD(mQb(a,(Ywc(),Jwc)))),Kfb(UD(mQb(b,Jwc))))} +function qAb(){qAb=geb;pAb=ss((cAb(),cD(WC(AL,1),jwe,304,0,[$zb,_zb,aAb,bAb])))} +function cAb(){cAb=geb;$zb=new dAb('All',0);_zb=new iAb;aAb=new kAb;bAb=new nAb} +function EKb(){EKb=geb;CKb=new FKb(Nye,0);BKb=new FKb(Kye,1);DKb=new FKb(Oye,2)} +function Zme(){Zme=geb;qAd();Wme=oxe;Vme=pxe;Yme=new Tfb(oxe);Xme=new Tfb(pxe)} +function rOb(){rOb=geb;qOb=ss((mOb(),cD(WC(hO,1),jwe,417,0,[lOb,iOb,jOb,kOb])))} +function NRb(){NRb=geb;MRb=ss((IRb(),cD(WC(WO,1),jwe,406,0,[FRb,ERb,GRb,HRb])))} +function NPb(){NPb=geb;MPb=ss((IPb(),cD(WC(DO,1),jwe,332,0,[FPb,EPb,GPb,HPb])))} +function Z$b(){Z$b=geb;Y$b=ss((U$b(),cD(WC(CQ,1),jwe,389,0,[T$b,R$b,Q$b,S$b])))} +function wZb(){wZb=geb;vZb=ss((nZb(),cD(WC(lQ,1),jwe,416,0,[jZb,mZb,kZb,lZb])))} +function jnc(){jnc=geb;inc=ss((enc(),cD(WC(LV,1),jwe,421,0,[anc,bnc,cnc,dnc])))} +function Bec(){Bec=geb;Aec=ss((vec(),cD(WC(qT,1),jwe,371,0,[uec,sec,tec,rec])))} +function DDc(){DDc=geb;CDc=ss((wDc(),cD(WC(tX,1),jwe,203,0,[uDc,vDc,tDc,sDc])))} +function pEc(){pEc=geb;oEc=ss((kEc(),cD(WC(wX,1),jwe,284,0,[hEc,gEc,iEc,jEc])))} +function Cuc(){Cuc=geb;Buc=new Duc(LAe,0);Auc=new Duc('IMPROVE_STRAIGHTNESS',1)} +function _i(a,b){var c,d;d=b/a.c.Rd().gc()|0;c=b%a.c.Rd().gc();return Ui(a,d,c)} +function iZd(a){var b;if(a.nl()){for(b=a.i-1;b>=0;--b){QHd(a,b)}}return WHd(a)} +function Nyb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function Oyb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[1]){c=b}return c} +function Hae(a){if(ZD(a,180)){return ''+RD(a,180).a}return a==null?null:jeb(a)} +function Iae(a){if(ZD(a,180)){return ''+RD(a,180).a}return a==null?null:jeb(a)} +function eGb(a,b){if(b.a){throw Adb(new yz(jye))}Ysb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function hEb(a,b){xxb.call(this,b.zd(),b.yd()&-16449);uFb(a);this.a=a;this.c=b} +function zXc(a,b){return new gud(b,Zid(ajd(b.e),b.f.a+a,b.f.b+a),(Geb(),false))} +function EMc(a,b){dMc();return Rmb(a,new Ptd(b,sgb(b.e.c.length+b.g.c.length)))} +function GMc(a,b){dMc();return Rmb(a,new Ptd(b,sgb(b.e.c.length+b.g.c.length)))} +function p5c(){p5c=geb;o5c=ss((j5c(),cD(WC(M0,1),jwe,354,0,[i5c,g5c,h5c,f5c])))} +function x_c(){x_c=geb;w_c=ss((s_c(),cD(WC(J_,1),jwe,353,0,[r_c,p_c,q_c,o_c])))} +function eWc(){eWc=geb;dWc=ss((YVc(),cD(WC(H$,1),jwe,405,0,[UVc,VVc,WVc,XVc])))} +function bnd(){bnd=geb;and=ss((Ymd(),cD(WC(u3,1),jwe,223,0,[Xmd,Vmd,Umd,Wmd])))} +function Vnd(){Vnd=geb;Und=ss((Pnd(),cD(WC(z3,1),jwe,291,0,[Ond,Lnd,Mnd,Nnd])))} +function Vpd(){Vpd=geb;Upd=ss((Qpd(),cD(WC(H3,1),jwe,386,0,[Opd,Ppd,Npd,Mpd])))} +function Lrd(){Lrd=geb;Krd=ss((Grd(),cD(WC(R3,1),jwe,320,0,[Frd,Crd,Erd,Drd])))} +function ytd(){ytd=geb;xtd=ss((ttd(),cD(WC(n4,1),jwe,415,0,[qtd,rtd,ptd,std])))} +function b9c(){b9c=geb;$8c=new d9c(iFe,0);a9c=new d9c(mEe,1);_8c=new d9c(LAe,2)} +function sBb(a,b,c,d,e){uFb(a);uFb(b);uFb(c);uFb(d);uFb(e);return new DBb(a,b,d)} +function fub(a,b){var c;c=RD(_jb(a.e,b),400);if(c){rub(c);return c.e}return null} +function Ymb(a,b){var c;c=Wmb(a,b,0);if(c==-1){return false}Xmb(a,c);return true} +function LDb(a,b,c){var d;LCb(a);d=new IEb;d.a=b;a.a.Nb(new QEb(d,c));return d.a} +function VCb(a){var b;LCb(a);b=$C(iE,vxe,28,0,15,1);ixb(a.a,new dDb(b));return b} +function yc(a){var b;if(!xc(a)){throw Adb(new Dvb)}a.e=1;b=a.d;a.d=null;return b} +function Odb(a){var b;if(Kdb(a)){b=0-a;if(!isNaN(b)){return b}}return Edb(xD(a))} +function Wmb(a,b,c){for(;c=0?Dvd(a,c,true,true):Qvd(a,b,true)} +function Vwd(a){var b;b=SD(Ywd(a,32));if(b==null){Wwd(a);b=SD(Ywd(a,32))}return b} +function Yvd(a){var b;if(!a.Oh()){b=AYd(a.Dh())-a.ji();a.$h().Mk(b)}return a.zh()} +function zQb(a,b){yQb=new kRb;wQb=b;xQb=a;RD(xQb.b,68);BQb(xQb,yQb,null);AQb(xQb)} +function AWb(){AWb=geb;yWb=new BWb('XY',0);xWb=new BWb('X',1);zWb=new BWb('Y',2)} +function vLb(){vLb=geb;uLb=new wLb('TOP',0);tLb=new wLb(Kye,1);sLb=new wLb(Qye,2)} +function Gvc(){Gvc=geb;Evc=new Hvc(LAe,0);Fvc=new Hvc('TOP',1);Dvc=new Hvc(Qye,2)} +function sEc(){sEc=geb;qEc=new tEc('INPUT_ORDER',0);rEc=new tEc('PORT_DEGREE',1)} +function MD(){MD=geb;ID=hD(dxe,dxe,524287);JD=hD(0,0,fxe);KD=fD(1);fD(2);LD=fD(0)} +function wWd(a){var b;if(a.d!=a.r){b=WVd(a);a.e=!!b&&b.lk()==aKe;a.d=b}return a.e} +function UHd(a,b,c){var d;d=a.g[b];MHd(a,b,a.Zi(b,c));a.Ri(b,c,d);a.Ni();return d} +function dHd(a,b){var c;c=a.dd(b);if(c>=0){a.gd(c);return true}else{return false}} +function xr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function cub(a,b){var c;c=RD(Wjb(a.e,b),400);if(c){eub(a,c);return c.e}return null} +function iB(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function JB(d,a){var b=d.a[a];var c=(HC(),GC)[typeof b];return c?c(b):NC(typeof b)} +function EDb(a,b){var c,d;MCb(a);d=new zEb(b,a.a);c=new YDb(d);return new SDb(a,c)} +function mwb(a){var b;b=a.b.c.length==0?null:Vmb(a.b,0);b!=null&&owb(a,0);return b} +function ukc(a,b){var c,d,e;e=b.c.i;c=RD(Wjb(a.f,e),60);d=c.d.c-c.e.c;Bjd(b.a,d,0)} +function XLc(a,b){var c;++a.d;++a.c[b];c=b+1;while(c=0){++b[0]}} +function eEd(a,b){Dyd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function fEd(a,b){Eyd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function gEd(a,b){Cyd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function hEd(a,b){Ayd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function oWc(a,b,c){return cjd(new rjd(c.e.a+c.f.a/2,c.e.b+c.f.b/2),a)==(uFb(b),b)} +function qge(a,b){return ZD(b,102)&&(RD(b,19).Bb&txe)!=0?new She(b,a):new Phe(b,a)} +function sge(a,b){return ZD(b,102)&&(RD(b,19).Bb&txe)!=0?new She(b,a):new Phe(b,a)} +function XC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function Bhb(a,b){return b==(wvb(),wvb(),vvb)?a.toLocaleLowerCase():a.toLowerCase()} +function Mu(a){if(!a.e){throw Adb(new Dvb)}a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function Lu(a){if(!a.c){throw Adb(new Dvb)}a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function Lsb(a){var b;++a.a;for(b=a.c.a.length;a.aa.a[d]&&(d=c)}return d} +function Krc(a){var b;b=RD(mQb(a,(Ywc(),Wvc)),313);if(b){return b.a==a}return false} +function Lrc(a){var b;b=RD(mQb(a,(Ywc(),Wvc)),313);if(b){return b.i==a}return false} +function xXb(){xXb=geb;wXb=ss((sXb(),cD(WC(UP,1),jwe,367,0,[nXb,oXb,pXb,qXb,rXb])))} +function Hnc(){Hnc=geb;Gnc=ss((Bnc(),cD(WC(TV,1),jwe,375,0,[xnc,znc,Anc,ync,wnc])))} +function Xtc(){Xtc=geb;Wtc=ss((Ptc(),cD(WC(bX,1),jwe,348,0,[Ltc,Ktc,Ntc,Otc,Mtc])))} +function RDc(){RDc=geb;QDc=ss((JDc(),cD(WC(uX,1),jwe,323,0,[IDc,FDc,GDc,EDc,HDc])))} +function hxc(){hxc=geb;gxc=ss((cxc(),cD(WC(mX,1),jwe,171,0,[bxc,Zwc,$wc,_wc,axc])))} +function m3c(){m3c=geb;l3c=ss((g3c(),cD(WC(x0,1),jwe,368,0,[e3c,b3c,f3c,c3c,d3c])))} +function xad(){xad=geb;wad=ss((sad(),cD(WC(x1,1),jwe,373,0,[oad,nad,qad,pad,rad])))} +function acd(){acd=geb;_bd=ss((Xbd(),cD(WC(P1,1),jwe,324,0,[Sbd,Tbd,Wbd,Ubd,Vbd])))} +function Kmd(){Kmd=geb;Jmd=ss((Cmd(),cD(WC(s3,1),jwe,88,0,[Amd,zmd,ymd,xmd,Bmd])))} +function bid(){bid=geb;aid=ss((Yhd(),cD(WC(d3,1),jwe,170,0,[Whd,Vhd,Thd,Xhd,Uhd])))} +function uod(){uod=geb;tod=ss((pod(),cD(WC(B3,1),jwe,256,0,[mod,ood,kod,lod,nod])))} +function zpd(){zpd=geb;ypd=ss((qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])))} +function LHb(){LHb=geb;JHb=new MHb('BY_SIZE',0);KHb=new MHb('BY_SIZE_AND_SHAPE',1)} +function TUb(){TUb=geb;RUb=new UUb('EADES',0);SUb=new UUb('FRUCHTERMAN_REINGOLD',1)} +function $tc(){$tc=geb;Ytc=new _tc('READING_DIRECTION',0);Ztc=new _tc('ROTATION',1)} +function CZb(){CZb=geb;zZb=new ZZb;AZb=new b$b;xZb=new f$b;yZb=new j$b;BZb=new n$b} +function dGb(a){this.b=new bnb;this.a=new bnb;this.c=new bnb;this.d=new bnb;this.e=a} +function XZb(a){this.g=a;this.f=new bnb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function UKb(a,b,c){RJb.call(this);KKb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function d6b(a,b,c){var d,e;for(e=new Anb(c);e.a=0&&b0?b-1:b;return Kqd(Lqd(Mqd(Nqd(new Oqd,c),a.n),a.j),a.k)} +function nBd(a){var b,c;c=(b=new q4d,b);WGd((!a.q&&(a.q=new C5d(s7,a,11,10)),a.q),c)} +function ofb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(lfb(a),a.o)} +function dz(a){if(Ddb(a,lve)>0){return lve}if(Ddb(a,qwe)<0){return qwe}return Ydb(a)} +function Sv(a){if(a<3){dk(a,fwe);return a+1}if(a=-0.01&&a.a<=Tye&&(a.a=0);a.b>=-0.01&&a.b<=Tye&&(a.b=0);return a} +function Hid(a){tid();var b,c;c=KEe;for(b=0;bc&&(c=a[b])}return c} +function Zvd(a,b){var c;c=wYd(a.Dh(),b);if(!c){throw Adb(new agb(KHe+b+NHe))}return c} +function NGd(a,b){var c;c=a;while(vCd(c)){c=vCd(c);if(c==b){return true}}return false} +function ix(a,b){var c,d,e;d=b.a.ld();c=RD(b.a.md(),16).gc();for(e=0;ea||a>b){throw Adb(new xeb('fromIndex: 0, toIndex: '+a+Qxe+b))}} +function ZHd(a){if(a<0){throw Adb(new agb('Illegal Capacity: '+a))}this.g=this.aj(a)} +function _y(a,b){Zy();bz(pwe);return $wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)} +function xJc(a,b){var c,d,e,f;for(d=a.d,e=0,f=d.length;e0){a.a/=b;a.b/=b}return a} +function BXd(a){var b;if(a.w){return a.w}else{b=CXd(a);!!b&&!b.Vh()&&(a.w=b);return b}} +function l2d(a,b){var c,d;d=a.a;c=m2d(a,b,null);d!=b&&!a.e&&(c=o2d(a,b,c));!!c&&c.oj()} +function rQc(a,b,c){var d,e;d=b;do{e=Kfb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function heb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function Gae(a){var b;if(a==null){return null}else{b=RD(a,195);return sAd(b,b.length)}} +function QHd(a,b){if(a.g==null||b>=a.i)throw Adb(new yNd(b,a.i));return a.Wi(b,a.g[b])} +function Dob(a,b){yob();var c,d;d=new bnb;for(c=0;c=14&&b<=16)));return a} +function ws(a,b){var c;uFb(b);c=a[':'+b];mFb(!!c,'Enum constant undefined: '+b);return c} +function tfb(a,b,c,d,e,f){var g;g=rfb(a,b);Ffb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function R3d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function T3d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function _3d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function e4d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function X3d(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function iGb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0)){throw Adb(new agb('tolerance ('+a+') must be >= 0'))}return a} +function hOd(a,b){var c;if(ZD(b,44)){return a.c.Mc(b)}else{c=QNd(a,b);jOd(a,b);return c}} +function yBd(a,b,c){YVd(a,b);PAd(a,c);$Vd(a,0);bWd(a,1);aWd(a,true);_Vd(a,true);return a} +function ZGd(a,b){var c;c=a.gc();if(b<0||b>c)throw Adb(new aMd(b,c));return new CMd(a,b)} +function Cad(a,b){a.b=$wnd.Math.max(a.b,b.d);a.e+=b.r+(a.a.c.length==0?0:a.c);Rmb(a.a,b)} +function Jmb(a){yFb(a.c>=0);if(rmb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function Nc(a){var b,c;for(c=a.c.Cc().Kc();c.Ob();){b=RD(c.Pb(),16);b.$b()}a.c.$b();a.d=0} +function Zi(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d=0} +function Iqd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Iqd(a.i,b/a.r*a.i.d)}} +function $Cd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,1,c,a.c))} +function P1d(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,4,c,a.c))} +function jyd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,2,c,a.k))} +function JXd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,2,c,a.D))} +function Kzd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,8,c,a.f))} +function Lzd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,7,c,a.i))} +function fCd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,8,c,a.a))} +function ZCd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,0,c,a.b))} +function s6d(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,0,c,a.b))} +function t6d(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,1,c,a.c))} +function nVd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,1,c,a.d))} +function Cte(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new Gre:new Tqe;a.c=Nqe(d,a.b,a.a)} +function Gge(a,b){return qke(a.e,b)?(nke(),wWd(b)?new ole(b,a):new Eke(b,a)):new Ble(b,a)} +function iDb(a){var b,c;if(0>a){return new rDb}b=a+1;c=new kDb(b,a);return new oDb(null,c)} +function Gob(a,b){yob();var c;c=new Usb(1);bE(a)?$jb(c,a,b):rtb(c.f,a,b);return new uqb(c)} +function pQc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d>0){return RD(Vmb(c.a,d-1),10)}return null} +function TOb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:hwe}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function djd(a,b){var c;if(ZD(b,8)){c=RD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function Ydd(a,b){var c;c=new kRb;RD(b.b,68);RD(b.b,68);RD(b.b,68);Umb(b.a,new ced(a,c,b))} +function gOd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=RD(d.Pb(),44);fOd(a,c.ld(),c.md())}} +function Jzd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,11,c,a.d))} +function zWd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,13,c,a.j))} +function b6d(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,21,c,a.b))} +function YAb(a,b){((gBb(),dBb)?null:b.c).length==0&&iBb(b,new rBb);$jb(a.a,dBb?null:b.c,b)} +function b9b(a,b){b.Ug('Hierarchical port constraint processing',1);c9b(a);e9b(a);b.Vg()} +function joc(){joc=geb;ioc=new koc('START',0);hoc=new koc('MIDDLE',1);goc=new koc('END',2)} +function x2c(){x2c=geb;v2c=new z2c('P1_NODE_PLACEMENT',0);w2c=new z2c('P2_EDGE_ROUTING',1)} +function JVb(){JVb=geb;HVb=new jGd(rAe);IVb=new jGd(sAe);GVb=new jGd(tAe);FVb=new jGd(uAe)} +function tkb(a){var b;rFb(a.f.g,a.d);sFb(a.b);a.c=a.a;b=RD(a.a.Pb(),44);a.b=skb(a);return b} +function P2d(a){var b;if(a.b==null){return j3d(),j3d(),i3d}b=a.ul()?a.tl():a.sl();return b} +function nwb(a,b){var c;c=b==null?-1:Wmb(a.b,b,0);if(c<0){return false}owb(a,c);return true} +function zsb(a,b){var c;uFb(b);c=b.g;if(!a.b[c]){bD(a.b,c,b);++a.c;return true}return false} +function azb(a,b){var c,d;c=1-b;d=a.a[c];a.a[c]=d.a[b];d.a[b]=a;a.b=true;d.b=false;return d} +function xRb(a,b){var c,d;for(d=b.Kc();d.Ob();){c=RD(d.Pb(),272);a.b=true;Ysb(a.e,c);c.b=a}} +function kic(a,b){var c,d;c=RD(mQb(a,(yCc(),IBc)),8);d=RD(mQb(b,IBc),8);return Qfb(c.b,d.b)} +function SPb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=Cdb(Udb(a.n[c][f],Ydb(Sdb(e,1))),3);return d} +function lmb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d0?1:0}return (!a.c&&(a.c=ojb(Hdb(a.f))),a.c).e} +function GXd(a,b){if(b){if(a.B==null){a.B=a.D;a.D=null}}else if(a.B!=null){a.D=a.B;a.B=null}} +function rZb(a,b){nZb();return a==jZb&&b==mZb||a==mZb&&b==jZb||a==lZb&&b==kZb||a==kZb&&b==lZb} +function sZb(a,b){nZb();return a==jZb&&b==kZb||a==jZb&&b==lZb||a==mZb&&b==lZb||a==mZb&&b==kZb} +function zMb(a,b){return Zy(),bz(Tye),$wnd.Math.abs(0-b)<=Tye||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function qsc(a,b){return Kfb(UD(Lvb(MDb(GDb(new SDb(null,new Swb(a.c.b,16)),new Isc(a)),b))))} +function tsc(a,b){return Kfb(UD(Lvb(MDb(GDb(new SDb(null,new Swb(a.c.b,16)),new Gsc(a)),b))))} +function rvc(){ovc();return cD(WC(iX,1),jwe,259,0,[fvc,hvc,ivc,jvc,kvc,lvc,nvc,evc,gvc,mvc])} +function dEc(){aEc();return cD(WC(vX,1),jwe,243,0,[$Dc,VDc,YDc,WDc,XDc,SDc,ZDc,_Dc,TDc,UDc])} +function z3c(a,b){var c;b.Ug('General Compactor',1);c=h4c(RD(Gxd(a,($4c(),I4c)),393));c.Cg(a)} +function T5c(a,b){var c,d;c=RD(Gxd(a,($4c(),P4c)),17);d=RD(Gxd(b,P4c),17);return hgb(c.a,d.a)} +function Bjd(a,b,c){var d,e;for(e=Sub(a,0);e.b!=e.d.c;){d=RD(evb(e),8);d.a+=b;d.b+=c}return a} +function Go(a,b,c){var d;for(d=a.b[c&a.f];d;d=d.b){if(c==d.a&&Hb(b,d.g)){return d}}return null} +function Ho(a,b,c){var d;for(d=a.c[c&a.f];d;d=d.d){if(c==d.f&&Hb(b,d.i)){return d}}return null} +function sjb(a,b,c){var d,e,f;d=0;for(e=0;e>>31}d!=0&&(a[c]=d)} +function yzb(a,b,c,d,e,f){var g;this.c=a;g=new bnb;Syb(a,g,b,a.b,c,d,e,f);this.a=new Jkb(g,0)} +function _5c(){this.c=new T2c(0);this.b=new T2c(FEe);this.d=new T2c(EEe);this.a=new T2c(Gze)} +function kMb(a,b,c,d,e,f,g){qs.call(this,a,b);this.d=c;this.e=d;this.c=e;this.b=f;this.a=dv(g)} +function tBd(a,b,c,d,e,f,g,h,i,j,k,l,m){ABd(a,b,c,d,e,f,g,h,i,j,k,l,m);kXd(a,false);return a} +function H0b(a){if(a.b.c.i.k==(r3b(),m3b)){return RD(mQb(a.b.c.i,(Ywc(),Awc)),12)}return a.b.c} +function I0b(a){if(a.b.d.i.k==(r3b(),m3b)){return RD(mQb(a.b.d.i,(Ywc(),Awc)),12)}return a.b.d} +function nDb(a){var b;b=mDb(a);if(Gdb(b.a,0)){return bwb(),bwb(),awb}return bwb(),new ewb(b.b)} +function SCb(a){var b;b=RCb(a);if(Gdb(b.a,0)){return Tvb(),Tvb(),Svb}return Tvb(),new Yvb(b.b)} +function TCb(a){var b;b=RCb(a);if(Gdb(b.a,0)){return Tvb(),Tvb(),Svb}return Tvb(),new Yvb(b.c)} +function o8b(a){switch(a.g){case 2:return qpd(),ppd;case 4:return qpd(),Xod;default:return a;}} +function p8b(a){switch(a.g){case 1:return qpd(),npd;case 3:return qpd(),Yod;default:return a;}} +function C9c(a){switch(a.g){case 0:return new s9c;case 1:return new x9c;default:return null;}} +function Zcc(){Zcc=geb;Ycc=new kGd('edgelabelcenterednessanalysis.includelabel',(Geb(),Eeb))} +function jKc(){jKc=geb;iKc=mfd(qfd(pfd(pfd(new ufd,(sXb(),pXb),(hcc(),Qbc)),qXb,Gbc),rXb),Pbc)} +function DLc(){DLc=geb;CLc=mfd(qfd(pfd(pfd(new ufd,(sXb(),pXb),(hcc(),Qbc)),qXb,Gbc),rXb),Pbc)} +function lYd(){lYd=geb;iYd=new i1d;kYd=cD(WC(y7,1),lKe,179,0,[]);jYd=cD(WC(s7,1),mKe,62,0,[])} +function P8b(){P8b=geb;O8b=new Q8b('TO_INTERNAL_LTR',0);N8b=new Q8b('TO_INPUT_DIRECTION',1)} +function J3b(){J3b=geb;G3b=new r4b;E3b=new w4b;F3b=new A4b;D3b=new E4b;H3b=new I4b;I3b=new M4b} +function Cac(a,b){b.Ug(iBe,1);LJb(KJb(new PJb((i1b(),new t1b(a,false,false,new _1b)))));b.Vg()} +function M_c(a,b,c){c.Ug('DFS Treeifying phase',1);L_c(a,b);J_c(a,b);a.a=null;a.b=null;c.Vg()} +function Leb(a,b){Geb();return bE(a)?jhb(a,WD(b)):_D(a)?Jfb(a,UD(b)):$D(a)?Ieb(a,TD(b)):a.Fd(b)} +function Ld(a,b){var c,d;uFb(b);for(d=b.vc().Kc();d.Ob();){c=RD(d.Pb(),44);a.zc(c.ld(),c.md())}} +function ege(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!cge(a,b,d.Pb())){return false}}return true} +function S6d(a,b,c,d,e){var f;if(c){f=BYd(b.Dh(),a.c);e=c.Rh(b,-1-(f==-1?d:f),null,e)}return e} +function T6d(a,b,c,d,e){var f;if(c){f=BYd(b.Dh(),a.c);e=c.Th(b,-1-(f==-1?d:f),null,e)}return e} +function Uib(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function fjb(a){uFb(a);if(a.length==0){throw Adb(new Vgb('Zero length BigInteger'))}mjb(this,a)} +function $Hd(a){this.i=a.gc();if(this.i>0){this.g=this.aj(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function dmc(a,b,c){this.g=a;this.d=b;this.e=c;this.a=new bnb;bmc(this);yob();_mb(this.a,null)} +function aad(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Rmb(a.a,b)} +function xid(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.be?(c=e):BFb(b,c+1);a.a=zhb(a.a,0,b)+(''+d)+yhb(a.a,c)} +function ktb(a,b){a.a=Bdb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d=Bdb(a.d,b)} +function wdc(a,b){return b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw Adb(new Dvb)}} +function GRc(a){switch(a.a.g){case 1:return new lSc;case 3:return new VUc;default:return new WRc;}} +function fyd(a,b){switch(b){case 1:return !!a.n&&a.n.i!=0;case 2:return a.k!=null;}return Cxd(a,b)} +function Hdb(a){if(jxe>22);e=a.h+b.h+(d>>22);return hD(c&dxe,d&dxe,e&exe)} +function DD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return hD(c&dxe,d&dxe,e&exe)} +function Jpc(a){var b,c;Hpc(a);for(c=new Anb(a.d);c.ad)throw Adb(new aMd(b,d));a.Si()&&(c=bHd(a,c));return a.Ei(b,c)} +function eQb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){PPb(a,f,g)||TPb(a,f,g,true,false)}}} +function uid(a){tid();var b,c,d;c=$C(l3,Nve,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=Cid(d,a)}return c} +function xD(a){var b,c,d;b=~a.l+1&dxe;c=~a.m+(b==0?1:0)&dxe;d=~a.h+(b==0&&c==0?1:0)&exe;return hD(b,c,d)} +function mgb(a){var b;if(a<0){return qwe}else if(a==0){return 0}else{for(b=hwe;(b&a)==0;b>>=1);return b}} +function zSd(a,b,c){if(a>=128)return false;return a<64?Pdb(Cdb(Sdb(1,a),c),0):Pdb(Cdb(Sdb(1,a-64),b),0)} +function oQb(a,b,c){return c==null?(!a.q&&(a.q=new Tsb),_jb(a.q,b)):(!a.q&&(a.q=new Tsb),Zjb(a.q,b,c)),a} +function pQb(a,b,c){c==null?(!a.q&&(a.q=new Tsb),_jb(a.q,b)):(!a.q&&(a.q=new Tsb),Zjb(a.q,b,c));return a} +function KTb(a){var b,c;c=new gUb;kQb(c,a);pQb(c,(JVb(),HVb),a);b=new Tsb;MTb(a,c,b);LTb(a,c,b);return c} +function cIc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function qmc(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f=0,'Negative initial capacity');mFb(b>=0,'Non-positive load factor');akb(this)} +function iib(a,b,c,d,e){var f,g;g=a.length;f=c.length;if(b<0||d<0||e<0||b+e>g||d+e>f){throw Adb(new ueb)}} +function zob(a,b){yob();var c,d,e,f,g;g=false;for(d=b,e=0,f=d.length;e1||b>=0&&a.b<3} +function nD(a){var b,c,d;b=~a.l+1&dxe;c=~a.m+(b==0?1:0)&dxe;d=~a.h+(b==0&&c==0?1:0)&exe;a.l=b;a.m=c;a.h=d} +function Cob(a){yob();var b,c,d;d=1;for(c=a.Kc();c.Ob();){b=c.Pb();d=31*d+(b!=null?tb(b):0);d=d|0}return d} +function kD(a,b,c,d,e){var f;f=BD(a,b);c&&nD(f);if(e){a=mD(a,b);d?(eD=xD(a)):(eD=hD(a.l,a.m,a.h))}return f} +function Qlc(a,b,c){a.g=Wlc(a,b,(qpd(),Xod),a.b);a.d=Wlc(a,c,Xod,a.b);if(a.g.c==0||a.d.c==0){return}Tlc(a)} +function Rlc(a,b,c){a.g=Wlc(a,b,(qpd(),ppd),a.j);a.d=Wlc(a,c,ppd,a.j);if(a.g.c==0||a.d.c==0){return}Tlc(a)} +function Xyd(a,b){switch(b){case 7:return !!a.e&&a.e.i!=0;case 8:return !!a.d&&a.d.i!=0;}return wyd(a,b)} +function STb(a,b){switch(b.g){case 0:ZD(a.b,641)||(a.b=new tUb);break;case 1:ZD(a.b,642)||(a.b=new zUb);}} +function tbd(a){switch(a.g){case 0:return new _dd;default:throw Adb(new agb(eGe+(a.f!=null?a.f:''+a.g)));}} +function bdd(a){switch(a.g){case 0:return new vdd;default:throw Adb(new agb(eGe+(a.f!=null?a.f:''+a.g)));}} +function LCc(a,b,c){return !QDb(CDb(new SDb(null,new Swb(a.c,16)),new PAb(new gsd(b,c)))).Bd((xDb(),wDb))} +function mWc(a,b){return cjd(jWc(RD(mQb(b,(h_c(),H$c)),88)),new rjd(a.c.e.a-a.b.e.a,a.c.e.b-a.b.e.b))<=0} +function dve(a,b){while(a.g==null&&!a.c?sId(a):a.g==null||a.i!=0&&RD(a.g[a.i-1],51).Ob()){mFd(b,tId(a))}} +function sYb(a){var b,c;for(c=new Anb(a.a.b);c.ad?1:0} +function ICc(a){Rmb(a.c,(hed(),fed));if(_y(a.a,Kfb(UD(iGd((QCc(),OCc)))))){return new asd}return new csd(a)} +function fs(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!nmb(a.b)){a.d=RD(smb(a.b),51)}else{return null}}return a.d} +function BVc(a){switch(a.g){case 1:return EEe;default:case 2:return 0;case 3:return Gze;case 4:return FEe;}} +function fte(){Vse();var a;if(Cse)return Cse;a=Zse(hte('M',true));a=$se(hte('M',false),a);Cse=a;return Cse} +function ttd(){ttd=geb;qtd=new utd('ELK',0);rtd=new utd('JSON',1);ptd=new utd('DOT',2);std=new utd('SVG',3)} +function TEc(){TEc=geb;SEc=new UEc('STACKED',0);QEc=new UEc('REVERSE_STACKED',1);REc=new UEc('SEQUENCED',2)} +function LZc(){LZc=geb;KZc=new MZc(LAe,0);JZc=new MZc('MIDDLE_TO_MIDDLE',1);IZc=new MZc('AVOID_OVERLAP',2)} +function sgc(){sgc=geb;qgc=new Lgc;rgc=new Ngc;pgc=new Dgc;ogc=new Pgc;ngc=new Hgc;mgc=(uFb(ngc),new nrb)} +function vnd(){vnd=geb;tnd=new A3b(15);snd=new mGd((umd(),tld),tnd);und=Qld;ond=Ekd;pnd=kld;rnd=nld;qnd=mld} +function wgd(a,b){var c,d,e,f,g;for(d=b,e=0,f=d.length;e=a.b.c.length){return}jwb(a,2*b+1);c=2*b+2;c0){b.Cd(c);c.i&&zKc(c)}}} +function Ejb(a,b,c){var d;for(d=c-1;d>=0&&a[d]===b[d];d--);return d<0?0:Ldb(Cdb(a[d],yxe),Cdb(b[d],yxe))?-1:1} +function it(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Wp(c);d=$C(UG,ewe,227,e,0,1);this.b=d} +function fQb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(PPb(a,f,g)){return true}}}return false} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=RD(d.Pb(),16);if(c.Hc(b)){return true}}return false} +function iu(a,b,c){var d,e,f,g;uFb(c);g=false;f=a.fd(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function NMd(a,b){var c,d;d=RD(Ywd(a.a,4),129);c=$C(d6,IJe,424,b,0,1);d!=null&&hib(d,0,c,0,d.length);return c} +function hSd(a,b){var c;c=new lSd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Tv(a,b){var c;if(a===b){return true}else if(ZD(b,85)){c=RD(b,85);return Rx(gn(a),c.vc())}return false} +function Vjb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=RD(e.Pb(),44);if(a.Be(b,d.md())){return true}}return false} +function lmc(a,b,c){if(!a.d[b.p][c.p]){kmc(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function vMc(a,b){var c;if(!a||a==b||!nQb(b,(Ywc(),pwc))){return false}c=RD(mQb(b,(Ywc(),pwc)),10);return c!=a} +function Bhe(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.$l()}}} +function Che(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a._l()}}} +function bgb(a){oz.call(this,'The given string does not match the expected format for individual spacings.',a)} +function J6c(a,b){var c;b.Ug('Min Size Preprocessing',1);c=vsd(a);Ixd(a,(X6c(),U6c),c.a);Ixd(a,R6c,c.b);b.Vg()} +function Djd(a){var b,c,d;b=0;d=$C(l3,Nve,8,a.b,0,1);c=Sub(a,0);while(c.b!=c.d.c){d[b++]=RD(evb(c),8)}return d} +function Ajd(a,b,c){var d,e,f;d=new Yub;for(f=Sub(c,0);f.b!=f.d.c;){e=RD(evb(f),8);Mub(d,new sjd(e))}iu(a,b,d)} +function az(a,b){var c;c=Bdb(a,b);if(Ldb($db(a,b),0)|Jdb($db(a,c),0)){return c}return Bdb(Sve,$db(Udb(c,63),1))} +function le(a,b){var c,d;c=RD(a.d.Bc(b),16);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function Dyb(a){var b;b=a.a.c.length;if(b>0){return lyb(b-1,a.a.c.length),Xmb(a.a,b-1)}else{throw Adb(new Srb)}} +function nFb(a,b,c){if(a>b){throw Adb(new agb(_xe+a+aye+b))}if(a<0||b>c){throw Adb(new xeb(_xe+a+bye+b+Qxe+c))}} +function yXd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}JXd(a,b==null?null:(uFb(b),b));!!a.C&&a.hl(null)} +function JCc(a,b){var c;c=iGd((QCc(),OCc))!=null&&b.Sg()!=null?Kfb(UD(b.Sg()))/Kfb(UD(iGd(OCc))):1;Zjb(a.b,b,c)} +function $Lc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(cDEe?a-c>DEe:c-a>DEe} +function vjd(a,b){var c;for(c=0;ce){ead(b.q,e);d=c!=b.q.d}}return d} +function C3c(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function pBd(a,b){var c,d;d=Hvd(a);if(!d){!$Ad&&($Ad=new L5d);c=(gSd(),nSd(b));d=new Sde(c);WGd(d.El(),a)}return d} +function Sc(a,b){var c,d;c=RD(a.c.Bc(b),16);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function tKc(a,b){var c,d;d=Kwb(a.d,1)!=0;c=true;while(c){c=false;c=b.c.mg(b.e,d);c=c|DKc(a,b,d,false);d=!d}yKc(a)} +function omc(a,b,c,d){var e,f;a.a=b;f=d?0:1;a.f=(e=new mmc(a.c,a.a,c,f),new Pmc(c,a.a,e,a.e,a.b,a.c==(RKc(),PKc)))} +function Imb(a){var b;sFb(a.a!=a.b);b=a.d.a[a.a];zmb(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b} +function Vib(a){var b;if(a.c!=0){return a.c}for(b=0;b=a.c.b:a.a<=a.c.b)){throw Adb(new Dvb)}b=a.a;a.a+=a.c.c;++a.b;return sgb(b)} +function h5b(a){var b;b=new y2b(a.a);kQb(b,a);pQb(b,(Ywc(),Awc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function tVc(a){return (qpd(),hpd).Hc(a.j)?Kfb(UD(mQb(a,(Ywc(),Swc)))):xjd(cD(WC(l3,1),Nve,8,0,[a.i.n,a.n,a.a])).b} +function ZJc(a){var b;b=vfd(XJc);RD(mQb(a,(Ywc(),kwc)),21).Hc((ovc(),kvc))&&pfd(b,(sXb(),pXb),(hcc(),Ybc));return b} +function M2c(a){var b,c,d,e;e=new _sb;for(d=new Anb(a);d.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function Jid(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function Vvd(a,b){var c,d,e,f;f=(e=a?Hvd(a):null,Pje((d=b,e?e.Gl():null,d)));if(f==b){c=Hvd(a);!!c&&c.Gl()}return f} +function g2d(a,b,c){var d,e;e=a.f;a.f=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,0,e,b);!c?(c=d):c.nj(d)}return c} +function e2d(a,b,c){var d,e;e=a.b;a.b=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,3,e,b);!c?(c=d):c.nj(d)}return c} +function rAd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,1,e,b);!c?(c=d):c.nj(d)}return c} +function SNd(a){var b,c,d,e;if(a!=null){for(c=0;c=d||b-129&&a<128){return ugb(),b=a+128,c=tgb[b],!c&&(c=tgb[b]=new fgb(a)),c}return new fgb(a)} +function bhb(a){var b,c;if(a>-129&&a<128){return dhb(),b=a+128,c=chb[b],!c&&(c=chb[b]=new Xgb(a)),c}return new Xgb(a)} +function M$b(a,b){var c;if(a.a.c.length>0){c=RD(Vmb(a.a,a.a.c.length-1),579);if(Q_b(c,b)){return}}Rmb(a.a,new S_b(b))} +function Ekc(a){lkc();var b,c;b=a.d.c-a.e.c;c=RD(a.g,154);Umb(c.b,new Ykc(b));Umb(c.c,new $kc(b));xgb(c.i,new alc(b))} +function Mlc(a){var b;b=new bib;b.a+='VerticalSegment ';Yhb(b,a.e);b.a+=' ';Zhb(b,Eb(new Gb,new Anb(a.k)));return b.a} +function Fmc(a,b){var c,d,e;c=0;for(e=b3b(a,b).Kc();e.Ob();){d=RD(e.Pb(),12);c+=mQb(d,(Ywc(),Iwc))!=null?1:0}return c} +function VTc(a,b,c){var d,e,f;d=0;for(f=Sub(a,0);f.b!=f.d.c;){e=Kfb(UD(evb(f)));if(e>c){break}else e>=b&&++d}return d} +function Wv(b,c){Qb(b);try{return b._b(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return false}else throw Adb(a)}} +function Nk(b,c){Qb(b);try{return b.Hc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return false}else throw Adb(a)}} +function Ok(b,c){Qb(b);try{return b.Mc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return false}else throw Adb(a)}} +function Xv(b,c){Qb(b);try{return b.xc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return null}else throw Adb(a)}} +function Yv(b,c){Qb(b);try{return b.Bc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return null}else throw Adb(a)}} +function aMc(a,b){switch(b.g){case 2:case 1:return b3b(a,b);case 3:case 4:return hv(b3b(a,b));}return yob(),yob(),vob} +function QAd(a){var b;if((a.Db&64)!=0)return awd(a);b=new Shb(awd(a));b.a+=' (name: ';Nhb(b,a.zb);b.a+=')';return b.a} +function Fgd(a){var b;b=RD(cub(a.c.c,''),233);if(!b){b=new fgd(ogd(ngd(new pgd,''),'Other'));dub(a.c.c,'',b)}return b} +function hBd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,4,e,b);!c?(c=d):c.nj(d)}return c} +function ZVd(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,8,e,a.r);!c?(c=d):c.nj(d)}return c} +function q5d(a,b,c){var d,e;d=new P3d(a.e,4,13,(e=b.c,e?e:(JTd(),wTd)),null,fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function p5d(a,b,c){var d,e;d=new P3d(a.e,3,13,null,(e=b.c,e?e:(JTd(),wTd)),fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function Oee(a,b){var c,d;c=RD(b,691);d=c.el();!d&&c.fl(d=ZD(b,90)?new afe(a,RD(b,29)):new mfe(a,RD(b,156)));return d} +function KHd(a,b,c){var d;a._i(a.i+1);d=a.Zi(b,c);b!=a.i&&hib(a.g,b,a.g,b+1,a.i-b);bD(a.g,b,d);++a.i;a.Mi(b,c);a.Ni()} +function Hyb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new dib(a.d)):Zhb(a.a,a.b);Xhb(a.a,b.a,b.d.length,c)}return a} +function wib(a,b){var c;a.c=b;a.a=pjb(b);a.a<54&&(a.f=(c=b.d>1?DFb(b.a[0],b.a[1]):DFb(b.a[0],0),Xdb(b.e>0?c:Odb(c))))} +function MDb(a,b){var c;c=new IEb;if(!a.a.Bd(c)){LCb(a);return Kvb(),Kvb(),Jvb}return Kvb(),new Ovb(uFb(LDb(a,c.a,b)))} +function t9b(a,b){var c;if(a.c.length==0){return}c=RD(anb(a,$C(jR,WAe,10,a.c.length,0,1)),199);Znb(c,new F9b);q9b(c,b)} +function z9b(a,b){var c;if(a.c.length==0){return}c=RD(anb(a,$C(jR,WAe,10,a.c.length,0,1)),199);Znb(c,new K9b);q9b(c,b)} +function pb(a,b){return bE(a)?lhb(a,b):_D(a)?Lfb(a,b):$D(a)?(uFb(a),dE(a)===dE(b)):YD(a)?a.Fb(b):aD(a)?mb(a,b):Hz(a,b)} +function Cvd(a,b,c){if(b<0){Tvd(a,c)}else{if(!c.rk()){throw Adb(new agb(KHe+c.xe()+LHe))}RD(c,69).wk().Ek(a,a.hi(),b)}} +function xFb(a,b,c){if(a<0||b>c){throw Adb(new veb(_xe+a+bye+b+', size: '+c))}if(a>b){throw Adb(new agb(_xe+a+aye+b))}} +function oVd(a){var b;if((a.Db&64)!=0)return awd(a);b=new Shb(awd(a));b.a+=' (source: ';Nhb(b,a.d);b.a+=')';return b.a} +function JSd(a){if(a>=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function lMb(a){hMb();var b,c,d,e;for(c=nMb(),d=0,e=c.length;d=0?jjb(a):Xib(jjb(Odb(a)))))} +function G0b(a,b,c,d,e,f){this.e=new bnb;this.f=(BEc(),AEc);Rmb(this.e,a);this.d=b;this.a=c;this.b=d;this.f=e;this.c=f} +function bQb(a,b,c){a.n=YC(lE,[Nve,rxe],[376,28],14,[c,eE($wnd.Math.ceil(b/32))],2);a.o=b;a.p=c;a.j=b-1>>1;a.k=c-1>>1} +function ggb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function C4d(a,b){var c,d;for(d=new dMd(a);d.e!=d.i.gc();){c=RD(bMd(d),142);if(dE(b)===dE(c)){return true}}return false} +function Iee(a,b,c){var d,e,f;f=(e=N5d(a.b,b),e);if(f){d=RD(tfe(Pee(a,f),''),29);if(d){return Ree(a,d,b,c)}}return null} +function Lee(a,b,c){var d,e,f;f=(e=N5d(a.b,b),e);if(f){d=RD(tfe(Pee(a,f),''),29);if(d){return See(a,d,b,c)}}return null} +function IDd(a,b){var c;c=Ao(a.i,b);if(c==null){throw Adb(new CDd('Node did not exist in input.'))}wEd(b,c);return null} +function wvd(a,b){var c;c=wYd(a,b);if(ZD(c,331)){return RD(c,35)}throw Adb(new agb(KHe+b+"' is not a valid attribute"))} +function VGd(a,b,c){var d;d=a.gc();if(b>d)throw Adb(new aMd(b,d));if(a.Si()&&a.Hc(c)){throw Adb(new agb(LIe))}a.Gi(b,c)} +function w7b(a,b){b.Ug('Sort end labels',1);FDb(CDb(EDb(new SDb(null,new Swb(a.b,16)),new H7b),new J7b),new L7b);b.Vg()} +function Cmd(){Cmd=geb;Amd=new Gmd(Sye,0);zmd=new Gmd(Oye,1);ymd=new Gmd(Nye,2);xmd=new Gmd(Zye,3);Bmd=new Gmd('UP',4)} +function gbd(){gbd=geb;dbd=new hbd('P1_STRUCTURE',0);ebd=new hbd('P2_PROCESSING_ORDER',1);fbd=new hbd('P3_EXECUTION',2)} +function r0c(){r0c=geb;q0c=mfd(mfd(rfd(mfd(mfd(rfd(pfd(new ufd,(YVc(),VVc),(WYc(),VYc)),WVc),RYc),TYc),XVc),NYc),UYc)} +function s8b(a){switch(RD(mQb(a,(Ywc(),owc)),311).g){case 1:pQb(a,owc,(Gvc(),Dvc));break;case 2:pQb(a,owc,(Gvc(),Fvc));}} +function bUc(a){switch(a){case 0:return new mUc;case 1:return new cUc;case 2:return new hUc;default:throw Adb(new _fb);}} +function Fmd(a){switch(a.g){case 2:return zmd;case 1:return ymd;case 4:return xmd;case 3:return Bmd;default:return Amd;}} +function UNb(a,b){switch(a.b.g){case 0:case 1:return b;case 2:case 3:return new Uid(b.d,0,b.a,b.b);default:return null;}} +function rpd(a){switch(a.g){case 1:return ppd;case 2:return Yod;case 3:return Xod;case 4:return npd;default:return opd;}} +function spd(a){switch(a.g){case 1:return npd;case 2:return ppd;case 3:return Yod;case 4:return Xod;default:return opd;}} +function tpd(a){switch(a.g){case 1:return Xod;case 2:return npd;case 3:return ppd;case 4:return Yod;default:return opd;}} +function cyd(a,b,c,d){switch(b){case 1:return !a.n&&(a.n=new C5d(I4,a,1,7)),a.n;case 2:return a.k;}return Axd(a,b,c,d)} +function uLd(a,b,c){var d,e;if(a.Pj()){e=a.Qj();d=SHd(a,b,c);a.Jj(a.Ij(7,sgb(c),d,b,e));return d}else{return SHd(a,b,c)}} +function VNd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.ld();c=b.Bi();d=(c&lve)%a.d.length;iOd(a,d,XNd(a,d,c,e))}} +function xWd(a,b){var c;c=(a.Bb&gwe)!=0;b?(a.Bb|=gwe):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,10,c,b))} +function DWd(a,b){var c;c=(a.Bb&qxe)!=0;b?(a.Bb|=qxe):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,12,c,b))} +function EWd(a,b){var c;c=(a.Bb&bKe)!=0;b?(a.Bb|=bKe):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,15,c,b))} +function FWd(a,b){var c;c=(a.Bb&cKe)!=0;b?(a.Bb|=cKe):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,11,c,b))} +function zKc(a){var b;if(a.g){b=a.c.kg()?a.f:a.a;BKc(b.a,a.o,true);BKc(b.a,a.o,false);pQb(a.o,(yCc(),BBc),(Bod(),vod))}} +function Orc(a){var b;if(!a.a){throw Adb(new dgb('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;Qrc(a,b);Rrc(a,b)} +function JDd(a,b){var c;c=Wjb(a.k,b);if(c==null){throw Adb(new CDd('Port did not exist in input.'))}wEd(b,c);return null} +function Jje(a){var b,c;for(c=Kje(BXd(a)).Kc();c.Ob();){b=WD(c.Pb());if(bAd(a,b)){return USd((TSd(),SSd),b)}}return null} +function qJb(a){var b,c;for(c=a.p.a.ec().Kc();c.Ob();){b=RD(c.Pb(),218);if(b.f&&a.b[b.c]<-1.0E-10){return b}}return null} +function Lr(a){var b,c;c=Thb(new bib,91);b=true;while(a.Ob()){b||(c.a+=pve,c);b=false;Yhb(c,a.Pb())}return (c.a+=']',c).a} +function o_b(a){var b,c,d;b=new bnb;for(d=new Anb(a.b);d.ab){return 1}if(a==b){return a==0?Qfb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function pmb(a){var b;b=a.a[a.c-1&a.a.length-1];if(b==null){return null}a.c=a.c-1&a.a.length-1;bD(a.a,a.c,null);return b} +function Dqe(a){var b,c,d;d=0;c=a.length;for(b=0;b=1?zmd:xmd}return c} +function Xhc(a){switch(RD(mQb(a,(yCc(),yAc)),223).g){case 1:return new jqc;case 3:return new arc;default:return new dqc;}} +function MCb(a){if(a.c){MCb(a.c)}else if(a.d){throw Adb(new dgb("Stream already terminated, can't be modified or used"))}} +function Ltb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;++a.b.g}else{++a.d}return d} +function HHc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=RD(e.Pb(),10);if(Be(c,RD(Vmb(b,d.p),16))){return d}}return null} +function u0c(a,b,c){var d;d=0;!!b&&(Emd(a.a)?(d+=b.f.a/2):(d+=b.f.b/2));!!c&&(Emd(a.a)?(d+=c.f.a/2):(d+=c.f.b/2));return d} +function LWb(a,b,c){var d;d=c;!d&&(d=Nqd(new Oqd,0));d.Ug(EAe,2);y0b(a.b,b,d.eh(1));NWb(a,b,d.eh(1));h0b(b,d.eh(1));d.Vg()} +function CGd(a,b,c){var d,e;d=(bvd(),e=new Xxd,e);Vxd(d,b);Wxd(d,c);!!a&&WGd((!a.a&&(a.a=new XZd(D4,a,5)),a.a),d);return d} +function kyd(a){var b;if((a.Db&64)!=0)return awd(a);b=new Shb(awd(a));b.a+=' (identifier: ';Nhb(b,a.k);b.a+=')';return b.a} +function kXd(a,b){var c;c=(a.Bb&QHe)!=0;b?(a.Bb|=QHe):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,18,c,b))} +function a6d(a,b){var c;c=(a.Bb&QHe)!=0;b?(a.Bb|=QHe):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,18,c,b))} +function AWd(a,b){var c;c=(a.Bb&Ove)!=0;b?(a.Bb|=Ove):(a.Bb&=-16385);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,16,c,b))} +function c6d(a,b){var c;c=(a.Bb&txe)!=0;b?(a.Bb|=txe):(a.Bb&=-65537);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,20,c,b))} +function qse(a){var b;b=$C(hE,zwe,28,2,15,1);a-=txe;b[0]=(a>>10)+uxe&Bwe;b[1]=(a&1023)+56320&Bwe;return Ihb(b,0,b.length)} +function Zfb(a){var b;b=Neb(a);if(b>3.4028234663852886E38){return oxe}else if(b<-3.4028234663852886E38){return pxe}return b} +function Bdb(a,b){var c;if(Kdb(a)&&Kdb(b)){c=a+b;if(jxe'+aXc(b.c):'e_'+tb(b),!!a.b&&!!a.c?aXc(a.b)+'->'+aXc(a.c):'e_'+tb(a))} +function rWc(a,b){return lhb(!!b.b&&!!b.c?aXc(b.b)+'->'+aXc(b.c):'e_'+tb(b),!!a.b&&!!a.c?aXc(a.b)+'->'+aXc(a.c):'e_'+tb(a))} +function $y(a,b){Zy();return bz(pwe),$wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b))} +function Ymd(){Ymd=geb;Xmd=new Zmd(Sye,0);Vmd=new Zmd('POLYLINE',1);Umd=new Zmd('ORTHOGONAL',2);Wmd=new Zmd('SPLINES',3)} +function _6c(){_6c=geb;Z6c=new a7c('ASPECT_RATIO_DRIVEN',0);$6c=new a7c('MAX_SCALE_DRIVEN',1);Y6c=new a7c('AREA_DRIVEN',2)} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=zdb(a);if(ZD(a,606)){e=a;throw Adb(new Deb(e))}else throw Adb(a)}return c} +function Im(a){var b,c,d;for(c=0,d=a.length;cb&&d.Ne(a[f-1],a[f])>0;--f){g=a[f];bD(a,f,a[f-1]);bD(a,f-1,g)}}} +function Egd(a,b){var c,d,e,f,g;c=b.f;dub(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb){fvb(c);break}}cvb(c,b)} +function Kic(a,b){var c,d,e;d=Zjc(b);e=Kfb(UD(hFc(d,(yCc(),TBc))));c=$wnd.Math.max(0,e/2-0.5);Iic(b,c,1);Rmb(a,new hjc(b,c))} +function L5c(a,b,c){var d;c.Ug('Straight Line Edge Routing',1);c.dh(b,eFe);d=RD(Gxd(b,(u2c(),t2c)),27);M5c(a,d);c.dh(b,gFe)} +function K9c(a,b){a.n.c.length==0&&Rmb(a.n,new _9c(a.s,a.t,a.i));Rmb(a.b,b);W9c(RD(Vmb(a.n,a.n.c.length-1),209),b);M9c(a,b)} +function Zrb(a){var b;this.a=(b=RD(a.e&&a.e(),9),new Fsb(b,RD(WEb(b,b.length),9),0));this.b=$C(jJ,rve,1,this.a.a.length,5,1)} +function jeb(a){var b;if(Array.isArray(a)&&a.Tm===keb){return nfb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function jD(a,b){if(a.h==fxe&&a.m==0&&a.l==0){b&&(eD=hD(0,0,0));return gD((MD(),KD))}b&&(eD=hD(a.l,a.m,a.h));return hD(0,0,0)} +function _Gb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function IYb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function vyd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return cyd(a,b,c,d)} +function oIb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw Adb(new agb('Node '+b+' not part of edge '+a))}} +function Uvd(a,b){var c;c=wYd(a.Dh(),b);if(ZD(c,102)){return RD(c,19)}throw Adb(new agb(KHe+b+"' is not a valid reference"))} +function Bvd(a,b,c,d){if(b<0){Svd(a,c,d)}else{if(!c.rk()){throw Adb(new agb(KHe+c.xe()+LHe))}RD(c,69).wk().Ck(a,a.hi(),b,d)}} +function ig(a){var b;if(a.b){ig(a.b);if(a.b.d!=a.c){throw Adb(new Jrb)}}else if(a.d.dc()){b=RD(a.f.c.xc(a.e),16);!!b&&(a.d=b)}} +function VMb(a){RMb();var b,c,d,e;b=a.o.b;for(d=RD(RD(Qc(a.r,(qpd(),npd)),21),87).Kc();d.Ob();){c=RD(d.Pb(),117);e=c.e;e.b+=b}} +function SRb(a){var b,c,d;this.a=new Iub;for(d=new Anb(a);d.a=e){return b.c+c}}return b.c+b.b.gc()} +function lQd(a,b){jQd();var c,d,e,f;d=iZd(a);e=b;Wnb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function FFd(a){var b,c,d,e,f;f=HFd(a);c=cve(a.c);d=!c;if(d){e=new MB;sC(f,'knownLayouters',e);b=new QFd(e);xgb(a.c,b)}return f} +function fHd(a){var b,c,d;d=new Qhb;d.a+='[';for(b=0,c=a.gc();b0&&(BFb(b-1,a.length),a.charCodeAt(b-1)==58)&&!mSd(a,aSd,bSd)} +function Sib(a,b){var c;if(dE(a)===dE(b)){return true}if(ZD(b,92)){c=RD(b,92);return a.e==c.e&&a.d==c.d&&Tib(a,c.a)}return false} +function vpd(a){qpd();switch(a.g){case 4:return Yod;case 1:return Xod;case 3:return npd;case 2:return ppd;default:return opd;}} +function jBb(a){var b,c;if(a.b){return a.b}c=dBb?null:a.d;while(c){b=dBb?null:c.b;if(b){return b}c=dBb?null:c.d}return SAb(),RAb} +function LJb(a){var b,c,d;d=Kfb(UD(a.a.of((umd(),cmd))));for(c=new Anb(a.a.Sf());c.a>5;b=a&31;d=$C(kE,Pwe,28,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function BYd(a,b){var c,d,e;c=(a.i==null&&rYd(a),a.i);d=b.Lj();if(d!=-1){for(e=c.length;d=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} +function Dfd(a){Afd();if(RD(a.of((umd(),pld)),181).Hc((dqd(),bqd))){RD(a.of(Lld),181).Fc((Pod(),Ood));RD(a.of(pld),181).Mc(bqd)}} +function ndc(a){var b,c;b=a.d==(btc(),Ysc);c=jdc(a);b&&!c||!b&&c?pQb(a.a,(yCc(),Rzc),(Rjd(),Pjd)):pQb(a.a,(yCc(),Rzc),(Rjd(),Ojd))} +function QCc(){QCc=geb;GCc();OCc=(yCc(),bCc);PCc=dv(cD(WC(V5,1),kEe,149,0,[SBc,TBc,VBc,WBc,ZBc,$Bc,_Bc,aCc,dCc,fCc,UBc,XBc,cCc]))} +function RDb(a,b){var c;c=RD(zDb(a,tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);return c.Qc(__c(c.gc()))} +function nXc(a,b){var c,d;d=new zAb(a.a.ad(b,true));if(d.a.gc()<=1){throw Adb(new Ngb)}c=d.a.ec().Kc();c.Pb();return RD(c.Pb(),40)} +function lQc(a,b,c){var d,e;d=Kfb(a.p[b.i.p])+Kfb(a.d[b.i.p])+b.n.b+b.a.b;e=Kfb(a.p[c.i.p])+Kfb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function XHd(a,b){var c;if(a.i>0){if(b.lengtha.i&&bD(b,a.i,null);return b} +function MXd(a){var b;if((a.Db&64)!=0)return QAd(a);b=new Shb(QAd(a));b.a+=' (instanceClassName: ';Nhb(b,a.D);b.a+=')';return b.a} +function ySd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c0){a._j();d=b==null?0:tb(b);e=(d&lve)%a.d.length;c=XNd(a,e,d,b);return c!=-1}else{return false}} +function Nrb(a,b){var c,d;a.a=Bdb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d+=b;c=b-a.f;d=a.e+c;a.f=d-a.e-c;a.e=d} +function yyd(a,b){switch(b){case 3:Ayd(a,0);return;case 4:Cyd(a,0);return;case 5:Dyd(a,0);return;case 6:Eyd(a,0);return;}hyd(a,b)} +function c3b(a,b){switch(b.g){case 1:return dr(a.j,(J3b(),E3b));case 2:return dr(a.j,(J3b(),G3b));default:return yob(),yob(),vob;}} +function zm(a){tm();var b;b=a.Pc();switch(b.length){case 0:return sm;case 1:return new Dy(Qb(b[0]));default:return new Kx(Im(b));}} +function kMd(b,c){b.Xj();try{b.d.bd(b.e++,c);b.f=b.d.j;b.g=-1}catch(a){a=zdb(a);if(ZD(a,77)){throw Adb(new Jrb)}else throw Adb(a)}} +function a8d(){a8d=geb;$7d=new b8d;T7d=new e8d;U7d=new h8d;V7d=new k8d;W7d=new n8d;X7d=new q8d;Y7d=new t8d;Z7d=new w8d;_7d=new z8d} +function YA(a,b){WA();var c,d;c=_A(($A(),$A(),ZA));d=null;b==c&&(d=RD(Xjb(VA,a),624));if(!d){d=new XA(a);b==c&&$jb(VA,a,d)}return d} +function zDc(a){wDc();var b;(!a.q?(yob(),yob(),wob):a.q)._b((yCc(),iBc))?(b=RD(mQb(a,iBc),203)):(b=RD(mQb(Y2b(a),jBc),203));return b} +function hFc(a,b){var c,d;d=null;if(nQb(a,(yCc(),YBc))){c=RD(mQb(a,YBc),96);c.pf(b)&&(d=c.of(b))}d==null&&(d=mQb(Y2b(a),b));return d} +function Ze(a,b){var c,d,e;if(ZD(b,44)){c=RD(b,44);d=c.ld();e=Xv(a.Rc(),d);return Hb(e,c.md())&&(e!=null||a.Rc()._b(d))}return false} +function $Nd(a,b){var c,d,e;if(a.f>0){a._j();d=b==null?0:tb(b);e=(d&lve)%a.d.length;c=WNd(a,e,d,b);if(c){return c.md()}}return null} +function qLd(a,b,c){var d,e,f;if(a.Pj()){d=a.i;f=a.Qj();KHd(a,d,b);e=a.Ij(3,null,b,d,f);!c?(c=e):c.nj(e)}else{KHd(a,a.i,b)}return c} +function f$d(a,b,c){var d,e;d=new P3d(a.e,4,10,(e=b.c,ZD(e,90)?RD(e,29):(JTd(),zTd)),null,fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function e$d(a,b,c){var d,e;d=new P3d(a.e,3,10,null,(e=b.c,ZD(e,90)?RD(e,29):(JTd(),zTd)),fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function SMb(a){RMb();var b;b=new sjd(RD(a.e.of((umd(),nld)),8));if(a.B.Hc((dqd(),Ypd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function jjb(a){Pib();var b,c;c=Ydb(a);b=Ydb(Udb(a,32));if(b!=0){return new bjb(c,b)}if(c>10||c<0){return new ajb(1,c)}return Lib[c]} +function Mdb(a,b){var c;if(Kdb(a)&&Kdb(b)){c=a%b;if(jxe=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Qyb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.Ne(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function rmc(a,b,c,d){var e,f,g;e=false;if(Lmc(a.f,c,d)){Omc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function Nqc(a,b,c){var d,e,f,g;e=RD(Wjb(a.b,c),183);d=0;for(g=new Anb(b.j);g.a>5;b&=31;e=a.d+c+(b==0?0:1);d=$C(kE,Pwe,28,e,15,1);rjb(d,a.a,c,b);f=new cjb(a.e,e,d);Rib(f);return f} +function zGc(a,b){var c,d,e;for(d=new is(Mr(a3b(a).a.Kc(),new ir));gs(d);){c=RD(hs(d),18);e=c.d.i;if(e.c==b){return false}}return true} +function _Ec(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=UD(hFc(a,d));f=UD(hFc(b,d));return $wnd.Math.max((uFb(e),e),(uFb(f),f))} +function lA(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function sGb(a,b){return Zy(),Zy(),bz(pwe),($wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b)))>0} +function uGb(a,b){return Zy(),Zy(),bz(pwe),($wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b)))<0} +function tGb(a,b){return Zy(),Zy(),bz(pwe),($wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b)))<=0} +function Efb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c0&&this.b>0&&(this.g=Aad(this.c,this.b,this.a))} +function rC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(HC(),GC)[typeof c];var e=d?d(c):NC(typeof c);return e} +function uDd(a){var b,c,d;d=null;b=uIe in a.a;c=!b;if(c){throw Adb(new CDd('Every element must have an id.'))}d=tDd(qC(a,uIe));return d} +function Qqe(a){var b,c;c=Rqe(a);b=null;while(a.c==2){Mqe(a);if(!b){b=(Vse(),Vse(),++Use,new iue(2));hue(b,c);c=b}c.Jm(Rqe(a))}return c} +function jOd(a,b){var c,d,e;a._j();d=b==null?0:tb(b);e=(d&lve)%a.d.length;c=WNd(a,e,d,b);if(c){hOd(a,c);return c.md()}else{return null}} +function Qib(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function UHc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw Adb(new agb('Input edge is not connected to the input port.'))} +function Fae(a){if(mhb(FGe,a)){return Geb(),Feb}else if(mhb(GGe,a)){return Geb(),Eeb}else{throw Adb(new agb('Expecting true or false'))}} +function jFb(a){switch(typeof(a)){case jve:return ohb(a);case ive:return Nfb(a);case hve:return Jeb(a);default:return a==null?0:kFb(a);}} +function mfd(a,b){if(a.a<0){throw Adb(new dgb('Did not call before(...) or after(...) before calling add(...).'))}tfd(a,a.a,b);return a} +function FId(a){EId();if(ZD(a,162)){return RD(Wjb(CId,zK),295).Rg(a)}if(Ujb(CId,rb(a))){return RD(Wjb(CId,rb(a)),295).Rg(a)}return null} +function Wwd(a){var b,c;if((a.Db&32)==0){c=(b=RD(Ywd(a,16),29),AYd(!b?a.ii():b)-AYd(a.ii()));c!=0&&$wd(a,32,$C(jJ,rve,1,c,5,1))}return a} +function $wd(a,b,c){var d;if((a.Db&b)!=0){if(c==null){Zwd(a,b)}else{d=Xwd(a,b);d==-1?(a.Eb=c):bD(SD(a.Eb),d,c)}}else c!=null&&Twd(a,b,c)} +function tTc(a,b,c,d){var e,f;if(b.c.length==0){return}e=pTc(c,d);f=oTc(b);FDb(PDb(new SDb(null,new Swb(f,1)),new CTc),new GTc(a,c,e,d))} +function rmb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;zmb(c=f){umb(a,b);return -1}else{vmb(a,b);return 1}} +function Hvd(a){var b,c,d;d=a.Jh();if(!d){b=0;for(c=a.Ph();c;c=c.Ph()){if(++b>wxe){return c.Qh()}d=c.Jh();if(!!d||c==a){break}}}return d} +function Ue(a,b){var c;if(dE(b)===dE(a)){return true}if(!ZD(b,21)){return false}c=RD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function kNc(a,b){if(a.eb.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function mhb(a,b){uFb(a);if(b==null){return false}if(lhb(a,b)){return true}return a.length==b.length&&lhb(a.toLowerCase(),b.toLowerCase())} +function Hgb(a){var b,c;if(Ddb(a,-129)>0&&Ddb(a,128)<0){return Jgb(),b=Ydb(a)+128,c=Igb[b],!c&&(c=Igb[b]=new zgb(a)),c}return new zgb(a)} +function U$b(){U$b=geb;T$b=new V$b(LAe,0);R$b=new V$b('INSIDE_PORT_SIDE_GROUPS',1);Q$b=new V$b('GROUP_MODEL_ORDER',2);S$b=new V$b(MAe,3)} +function ufe(a){var b;a.b||vfe(a,(b=Hee(a.e,a.a),!b||!lhb(GGe,$Nd((!b.b&&(b.b=new SVd((JTd(),FTd),C8,b)),b.b),'qualified'))));return a.c} +function BA(a,b){var c,d;c=(BFb(b,a.length),a.charCodeAt(b));d=b+1;while(d2000){Oz=a;Pz=$wnd.setTimeout(Yz,10)}}if(Nz++==0){_z(($z(),Zz));return true}return false} +function lBb(a,b,c){var d;(bBb?(jBb(a),true):cBb?(SAb(),true):fBb?(SAb(),true):eBb&&(SAb(),false))&&(d=new aBb(b),d.b=c,hBb(a,d),undefined)} +function oNb(a,b){var c;c=!a.A.Hc((Qpd(),Ppd))||a.q==(Bod(),wod);a.u.Hc((Pod(),Lod))?c?mNb(a,b):qNb(a,b):a.u.Hc(Nod)&&(c?nNb(a,b):rNb(a,b))} +function Bed(a){var b;if(dE(Gxd(a,(umd(),Xkd)))===dE((Fnd(),Dnd))){if(!vCd(a)){Ixd(a,Xkd,End)}else{b=RD(Gxd(vCd(a),Xkd),346);Ixd(a,Xkd,b)}}} +function _fc(a){var b,c;if(nQb(a.d.i,(yCc(),tBc))){b=RD(mQb(a.c.i,tBc),17);c=RD(mQb(a.d.i,tBc),17);return hgb(b.a,c.a)>0}else{return false}} +function g_b(a,b,c){return new Uid($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function _mc(a){var b;this.d=new bnb;this.j=new pjd;this.g=new pjd;b=a.g.b;this.f=RD(mQb(Y2b(b),(yCc(),rAc)),88);this.e=Kfb(UD(k2b(b,ZBc)))} +function onc(a){this.d=new bnb;this.e=new gub;this.c=$C(kE,Pwe,28,(qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])).length,15,1);this.b=a} +function $pc(a,b,c){var d;d=c[a.g][b];switch(a.g){case 1:case 3:return new rjd(0,d);case 2:case 4:return new rjd(d,0);default:return null;}} +function Ced(b,c,d){var e,f;f=RD(ltd(c.f),205);try{f.rf(b,d);mtd(c.f,f)}catch(a){a=zdb(a);if(ZD(a,103)){e=a;throw Adb(e)}else throw Adb(a)}} +function tEd(a,b,c){var d,e,f,g,h,i;d=null;h=vgd(ygd(),b);f=null;if(h){e=null;i=zhd(h,c);g=null;i!=null&&(g=a.qf(h,i));e=g;f=e}d=f;return d} +function sSd(a,b,c,d){var e;e=a.length;if(b>=e)return e;for(b=b>0?b:0;bd&&bD(b,d,null);return b} +function lob(a,b){var c,d;d=a.a.length;b.lengthd&&bD(b,d,null);return b} +function Bde(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,ZD(d,99)?RD(d,99).th():null);if(Jnb(b,c)){$wd(a.a,4,c);return}}$wd(a.a,4,RD(b,129))} +function mne(a){var b;if(a==null)return null;b=Hqe(nue(a,true));if(b==null){throw Adb(new Mle("Invalid hexBinary value: '"+a+"'"))}return b} +function wA(a,b,c){var d;if(b.a.length>0){Rmb(a.b,new kB(b.a,c));d=b.a.length;0d&&(b.a+=Hhb($C(hE,zwe,28,-d,15,1)))}} +function yIb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new Anb(CIb(b));e.a=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=0?a.Wh(e):Rvd(a,d)):c<0?Rvd(a,d):RD(d,69).wk().Bk(a,a.hi(),c)} +function Fxd(a){var b,c,d;d=(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),a.o);for(c=d.c.Kc();c.e!=c.i.gc();){b=RD(c.Yj(),44);b.md()}return dOd(d)} +function iGd(a){var b;if(ZD(a.a,4)){b=FId(a.a);if(b==null){throw Adb(new dgb(HGe+a.b+"'. "+DGe+(lfb(b6),b6.k)+EGe))}return b}else{return a.a}} +function iSd(a,b){var c,d;if(a.j.length!=b.j.length)return false;for(c=0,d=a.j.length;c=64&&b<128&&(e=Rdb(e,Sdb(1,b-64)))}return e} +function k2b(a,b){var c,d;d=null;if(nQb(a,(umd(),amd))){c=RD(mQb(a,amd),96);c.pf(b)&&(d=c.of(b))}d==null&&!!Y2b(a)&&(d=mQb(Y2b(a),b));return d} +function i0b(a,b){var c;c=RD(mQb(a,(yCc(),RAc)),75);if(br(b,f0b)){if(!c){c=new Ejd;pQb(a,RAc,c)}else{Xub(c)}}else !!c&&pQb(a,RAc,null);return c} +function tSb(){tSb=geb;sSb=(umd(),Yld);mSb=Ukd;hSb=Dkd;nSb=tld;qSb=(YHb(),UHb);pSb=SHb;rSb=WHb;oSb=RHb;jSb=(eSb(),aSb);iSb=_Rb;kSb=cSb;lSb=dSb} +function PZb(a){NZb();this.c=new bnb;this.d=a;switch(a.g){case 0:case 2:this.a=Fob(MZb);this.b=oxe;break;case 3:case 1:this.a=MZb;this.b=pxe;}} +function c9b(a){var b;if(!Cod(RD(mQb(a,(yCc(),BBc)),101))){return}b=a.b;d9b((tFb(0,b.c.length),RD(b.c[0],30)));d9b(RD(Vmb(b,b.c.length-1),30))} +function ohc(a,b){b.Ug('Self-Loop post-processing',1);FDb(CDb(CDb(EDb(new SDb(null,new Swb(a.b,16)),new uhc),new whc),new yhc),new Ahc);b.Vg()} +function xrd(a,b,c){var d,e;if(a.c){Dyd(a.c,a.c.i+b);Eyd(a.c,a.c.j+c)}else{for(e=new Anb(a.b);e.a=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function JDc(){JDc=geb;IDc=new LDc(mEe,0);FDc=new LDc(BBe,1);GDc=new LDc('LINEAR_SEGMENTS',2);EDc=new LDc('BRANDES_KOEPF',3);HDc=new LDc(lEe,4)} +function IRb(){IRb=geb;FRb=new JRb(_ye,0);ERb=new JRb(aze,1);GRb=new JRb(bze,2);HRb=new JRb(cze,3);FRb.a=false;ERb.a=true;GRb.a=false;HRb.a=true} +function IPb(){IPb=geb;FPb=new JPb(_ye,0);EPb=new JPb(aze,1);GPb=new JPb(bze,2);HPb=new JPb(cze,3);FPb.a=false;EPb.a=true;GPb.a=false;HPb.a=true} +function Ivd(a,b,c,d){var e;if(c>=0){return a.Sh(b,c,d)}else{!!a.Ph()&&(d=(e=a.Fh(),e>=0?a.Ah(d):a.Ph().Th(a,-1-e,null,d)));return a.Ch(b,c,d)}} +function Zyd(a,b){switch(b){case 7:!a.e&&(a.e=new Yie(G4,a,7,4));sLd(a.e);return;case 8:!a.d&&(a.d=new Yie(G4,a,8,5));sLd(a.d);return;}yyd(a,b)} +function Ixd(a,b,c){c==null?(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),jOd(a.o,b)):(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),fOd(a.o,b,c));return a} +function Aob(a,b){yob();var c,d,e,f;c=a;f=b;if(ZD(a,21)&&!ZD(b,21)){c=b;f=a}for(e=c.Kc();e.Ob();){d=e.Pb();if(f.Hc(d)){return false}}return true} +function qTc(a,b,c,d){if(b.ac.b){return true}}}return false} +function QD(a,b){if(bE(a)){return !!PD[b]}else if(a.Sm){return !!a.Sm[b]}else if(_D(a)){return !!OD[b]}else if($D(a)){return !!ND[b]}return false} +function udc(a){var b;b=a.a;do{b=RD(hs(new is(Mr(Z2b(b).a.Kc(),new ir))),18).c.i;b.k==(r3b(),o3b)&&a.b.Fc(b)}while(b.k==(r3b(),o3b));a.b=hv(a.b)} +function UGc(a,b){var c,d,e;e=a;for(d=new is(Mr(Z2b(b).a.Kc(),new ir));gs(d);){c=RD(hs(d),18);!!c.c.i.c&&(e=$wnd.Math.max(e,c.c.i.c.p))}return e} +function INb(a,b){var c,d,e;e=0;d=RD(RD(Qc(a.r,b),21),87).Kc();while(d.Ob()){c=RD(d.Pb(),117);e+=c.d.d+c.b.Mf().b+c.d.a;d.Ob()&&(e+=a.w)}return e} +function AMb(a,b){var c,d,e;e=0;d=RD(RD(Qc(a.r,b),21),87).Kc();while(d.Ob()){c=RD(d.Pb(),117);e+=c.d.b+c.b.Mf().a+c.d.c;d.Ob()&&(e+=a.w)}return e} +function O2c(a){var b,c,d,e;d=0;e=Q2c(a);if(e.c.length==0){return 1}else{for(c=new Anb(e);c.a=0?a.Lh(g,c,true):Qvd(a,f,c)):RD(f,69).wk().yk(a,a.hi(),e,c,d)} +function aNb(a,b,c,d){var e,f;f=b.pf((umd(),ild))?RD(b.of(ild),21):a.j;e=lMb(f);if(e==(hMb(),gMb)){return}if(c&&!jMb(e)){return}LKb(cNb(a,e,d),b)} +function Y6b(a){switch(a.g){case 1:return mOb(),lOb;case 3:return mOb(),iOb;case 2:return mOb(),kOb;case 4:return mOb(),jOb;default:return null;}} +function kmc(a,b,c){if(a.e){switch(a.b){case 1:Ulc(a.c,b,c);break;case 0:Vlc(a.c,b,c);}}else{Slc(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function LLc(a){var b,c;if(a==null){return null}c=$C(jR,Nve,199,a.length,0,2);for(b=0;b=0)return e;if(a.ol()){for(d=0;d=e)throw Adb(new aMd(b,e));if(a.Si()){d=a.dd(c);if(d>=0&&d!=b){throw Adb(new agb(LIe))}}return a.Xi(b,c)} +function wx(a,b){this.a=RD(Qb(a),253);this.b=RD(Qb(b),253);if(a.Ed(b)>0||a==(Wk(),Vk)||b==(kl(),jl)){throw Adb(new agb('Invalid range: '+Dx(a,b)))}} +function p_b(a){var b,c;this.b=new bnb;this.c=a;this.a=false;for(c=new Anb(a.a);c.a0);if((b&-b)==b){return eE(b*Kwb(a,31)*4.6566128730773926E-10)}do{c=Kwb(a,31);d=c%b}while(c-d+(b-1)<0);return eE(d)} +function d2b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function Onc(a,b,c,d){var e,f;for(e=b;e1&&(f=xIb(a,b));return f} +function yqd(a){var b;b=Kfb(UD(Gxd(a,(umd(),lmd))))*$wnd.Math.sqrt((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a).i);return new rjd(b,b/Kfb(UD(Gxd(a,kmd))))} +function Dzd(a){var b;if(!!a.f&&a.f.Vh()){b=RD(a.f,54);a.f=RD(Vvd(a,b),84);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,8,b,a.f))}return a.f} +function Ezd(a){var b;if(!!a.i&&a.i.Vh()){b=RD(a.i,54);a.i=RD(Vvd(a,b),84);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,7,b,a.i))}return a.i} +function Z5d(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=RD(Vvd(a,b),19);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,21,b,a.b))}return a.b} +function UNd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Bi();_Nd(a,a.f+1);e=(d&lve)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.dk());c.Fc(b);++a.f}} +function Mge(a,b,c){var d;if(b.tk()){return false}else if(b.Ik()!=-2){d=b.ik();return d==null?c==null:pb(d,c)}else return b.qk()==a.e.Dh()&&c==null} +function Io(){var a;dk(16,fwe);a=Wp(16);this.b=$C(XF,ewe,303,a,0,1);this.c=$C(XF,ewe,303,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function j3b(a){v2b.call(this);this.k=(r3b(),p3b);this.j=(dk(6,iwe),new cnb(6));this.b=(dk(2,iwe),new cnb(2));this.d=new T2b;this.f=new C3b;this.a=a} +function wgc(a){var b,c;if(a.c.length<=1){return}b=tgc(a,(qpd(),npd));vgc(a,RD(b.a,17).a,RD(b.b,17).a);c=tgc(a,ppd);vgc(a,RD(c.a,17).a,RD(c.b,17).a)} +function vHc(a,b,c){var d,e;e=a.a.b;for(d=e.c.length;d102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function ck(a,b){if(a==null){throw Adb(new Ogb('null key in entry: null='+b))}else if(b==null){throw Adb(new Ogb('null value in entry: '+a+'=null'))}} +function Cr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(dE(c)===dE(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function aLb(a,b){var c;c=cD(WC(iE,1),vxe,28,15,[gKb(a.a[0],b),gKb(a.a[1],b),gKb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function bLb(a,b){var c;c=cD(WC(iE,1),vxe,28,15,[hKb(a.a[0],b),hKb(a.a[1],b),hKb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function vIc(a,b,c){if(!Cod(RD(mQb(b,(yCc(),BBc)),101))){uIc(a,b,e3b(b,c));uIc(a,b,e3b(b,(qpd(),npd)));uIc(a,b,e3b(b,Yod));yob();_mb(b.j,new JIc(a))}} +function sUc(a){var b,c;a.c||vUc(a);c=new Ejd;b=new Anb(a.a);ynb(b);while(b.a0&&(BFb(0,b.length),b.charCodeAt(0)==43)?(BFb(1,b.length+1),b.substr(1)):b))} +function qne(a){var b;return a==null?null:new ejb((b=nue(a,true),b.length>0&&(BFb(0,b.length),b.charCodeAt(0)==43)?(BFb(1,b.length+1),b.substr(1)):b))} +function Syb(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.a[0];!!i&&Syb(a,b,c,i,e,f,g,h);Tyb(a,c,d.d,e,f,g,h)&&b.Fc(d);j=d.a[1];!!j&&Syb(a,b,c,j,e,f,g,h)} +function PPb(b,c,d){try{return Gdb(SPb(b,c,d),1)}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function QPb(b,c,d){try{return Gdb(SPb(b,c,d),0)}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function RPb(b,c,d){try{return Gdb(SPb(b,c,d),2)}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function lMd(b,c){if(b.g==-1){throw Adb(new cgb)}b.Xj();try{b.d.hd(b.g,c);b.f=b.d.j}catch(a){a=zdb(a);if(ZD(a,77)){throw Adb(new Jrb)}else throw Adb(a)}} +function Y7b(a){var b,c,d,e,f;for(d=new Anb(a.b);d.af&&bD(b,f,null);return b} +function av(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function vsc(a){var b,c,d;d=a.f;a.n=$C(iE,vxe,28,d,15,1);a.d=$C(iE,vxe,28,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function rKb(a,b){var c;c=cD(WC(iE,1),vxe,28,15,[qKb(a,(ZJb(),WJb),b),qKb(a,XJb,b),qKb(a,YJb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function cQb(b,c,d){var e;try{TPb(b,c+b.j,d+b.k,false,true)}catch(a){a=zdb(a);if(ZD(a,77)){e=a;throw Adb(new veb(e.g+ize+c+pve+d+').'))}else throw Adb(a)}} +function dQb(b,c,d){var e;try{TPb(b,c+b.j,d+b.k,true,false)}catch(a){a=zdb(a);if(ZD(a,77)){e=a;throw Adb(new veb(e.g+ize+c+pve+d+').'))}else throw Adb(a)}} +function u8b(a){var b;if(!nQb(a,(yCc(),dBc))){return}b=RD(mQb(a,dBc),21);if(b.Hc((dod(),Xnd))){b.Mc(Xnd);b.Fc(Znd)}else if(b.Hc(Znd)){b.Mc(Znd);b.Fc(Xnd)}} +function v8b(a){var b;if(!nQb(a,(yCc(),dBc))){return}b=RD(mQb(a,dBc),21);if(b.Hc((dod(),cod))){b.Mc(cod);b.Fc(aod)}else if(b.Hc(aod)){b.Mc(aod);b.Fc(cod)}} +function oqc(a,b,c,d){var e,f,g,h;a.a==null&&rqc(a,b);g=b.b.j.c.length;f=c.d.p;h=d.d.p;e=h-1;e<0&&(e=g-1);return f<=e?a.a[e]-a.a[f]:a.a[g-1]-a.a[f]+a.a[e]} +function Cud(a){var b,c;if(!a.b){a.b=fv(RD(a.f,27).kh().i);for(c=new dMd(RD(a.f,27).kh());c.e!=c.i.gc();){b=RD(bMd(c),135);Rmb(a.b,new Bud(b))}}return a.b} +function Dud(a){var b,c;if(!a.e){a.e=fv(wCd(RD(a.f,27)).i);for(c=new dMd(wCd(RD(a.f,27)));c.e!=c.i.gc();){b=RD(bMd(c),123);Rmb(a.e,new Rud(b))}}return a.e} +function yud(a){var b,c;if(!a.a){a.a=fv(tCd(RD(a.f,27)).i);for(c=new dMd(tCd(RD(a.f,27)));c.e!=c.i.gc();){b=RD(bMd(c),27);Rmb(a.a,new Fud(a,b))}}return a.a} +function DXd(b){var c;if(!b.C&&(b.D!=null||b.B!=null)){c=EXd(b);if(c){b.hl(c)}else{try{b.hl(null)}catch(a){a=zdb(a);if(!ZD(a,63))throw Adb(a)}}}return b.C} +function xMb(a){switch(a.q.g){case 5:uMb(a,(qpd(),Yod));uMb(a,npd);break;case 4:vMb(a,(qpd(),Yod));vMb(a,npd);break;default:wMb(a,(qpd(),Yod));wMb(a,npd);}} +function GNb(a){switch(a.q.g){case 5:DNb(a,(qpd(),Xod));DNb(a,ppd);break;case 4:ENb(a,(qpd(),Xod));ENb(a,ppd);break;default:FNb(a,(qpd(),Xod));FNb(a,ppd);}} +function G$b(a,b){var c,d,e;e=new pjd;for(d=a.Kc();d.Ob();){c=RD(d.Pb(),36);w$b(c,e.a,0);e.a+=c.f.a+b;e.b=$wnd.Math.max(e.b,c.f.b)}e.b>0&&(e.b+=b);return e} +function I$b(a,b){var c,d,e;e=new pjd;for(d=a.Kc();d.Ob();){c=RD(d.Pb(),36);w$b(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function l2b(a){var b,c,d;d=lve;for(c=new Anb(a.a);c.a>16==6){return a.Cb.Th(a,5,t7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?a.ii():c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function kA(a){fA();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function pgb(a){var b;b=(wgb(),vgb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function mmb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=mgb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=WEb(a.a,c);lmb(a,b,d);a.a=b;a.b=0}else{aFb(a.a,c)}a.c=d} +function uNb(a,b){var c;c=a.b;return c.pf((umd(),Gld))?c.ag()==(qpd(),ppd)?-c.Mf().a-Kfb(UD(c.of(Gld))):b+Kfb(UD(c.of(Gld))):c.ag()==(qpd(),ppd)?-c.Mf().a:b} +function X2b(a){var b;if(a.b.c.length!=0&&!!RD(Vmb(a.b,0),72).a){return RD(Vmb(a.b,0),72).a}b=R0b(a);if(b!=null){return b}return ''+(!a.c?-1:Wmb(a.c.a,a,0))} +function M3b(a){var b;if(a.f.c.length!=0&&!!RD(Vmb(a.f,0),72).a){return RD(Vmb(a.f,0),72).a}b=R0b(a);if(b!=null){return b}return ''+(!a.i?-1:Wmb(a.i.j,a,0))} +function skc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function Qud(a){var b,c;if(!a.b){a.b=fv(RD(a.f,123).kh().i);for(c=new dMd(RD(a.f,123).kh());c.e!=c.i.gc();){b=RD(bMd(c),135);Rmb(a.b,new Bud(b))}}return a.b} +function aHd(a,b){var c,d,e;if(b.dc()){return jQd(),jQd(),iQd}else{c=new ZLd(a,b.gc());for(e=new dMd(a);e.e!=e.i.gc();){d=bMd(e);b.Hc(d)&&WGd(c,d)}return c}} +function Axd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),a.o):(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),dOd(a.o))}return Dvd(a,b,c,d)} +function rBd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&dxe;a.m=d&dxe;a.h=e&exe;return true} +function Tyb(a,b,c,d,e,f,g){var h,i;if(b.Te()&&(i=a.a.Ne(c,d),i<0||!e&&i==0)){return false}if(b.Ue()&&(h=a.a.Ne(c,f),h>0||!g&&h==0)){return false}return true} +function Agc(a,b){sgc();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Cgc(b,rgc)-Cgc(a,rgc);case 4:return Cgc(a,qgc)-Cgc(b,qgc);}return 0} +function uuc(a){switch(a.g){case 0:return nuc;case 1:return ouc;case 2:return puc;case 3:return quc;case 4:return ruc;case 5:return suc;default:return null;}} +function cBd(a,b,c){var d,e;d=(e=new R5d,YVd(e,b),PAd(e,c),WGd((!a.c&&(a.c=new C5d(u7,a,12,10)),a.c),e),e);$Vd(d,0);bWd(d,1);aWd(d,true);_Vd(d,true);return d} +function THd(a,b){var c,d;if(b>=a.i)throw Adb(new yNd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&hib(a.g,b+1,a.g,b,d);bD(a.g,--a.i,null);a.Qi(b,c);a.Ni();return c} +function sWd(a,b){var c,d;if(a.Db>>16==17){return a.Cb.Th(a,21,h7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?a.ii():c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function _Fb(a){var b,c,d,e;yob();_mb(a.c,a.a);for(e=new Anb(a.c);e.ac.a.c.length)){throw Adb(new agb('index must be >= 0 and <= layer node count'))}!!a.c&&Ymb(a.c.a,a);a.c=c;!!c&&Qmb(c.a,b,a)} +function Gac(a,b){var c,d,e;for(d=new is(Mr(W2b(a).a.Kc(),new ir));gs(d);){c=RD(hs(d),18);e=RD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function RQc(a,b){this.c=new Tsb;this.a=a;this.b=b;this.d=RD(mQb(a,(Ywc(),Qwc)),312);dE(mQb(a,(yCc(),eBc)))===dE((Cuc(),Auc))?(this.e=new BRc):(this.e=new uRc)} +function ftd(a,b){var c,d;d=null;if(a.pf((umd(),amd))){c=RD(a.of(amd),96);c.pf(b)&&(d=c.of(b))}d==null&&!!a.Tf()&&(d=a.Tf().of(b));d==null&&(d=iGd(b));return d} +function ku(b,c){var d,e;d=b.fd(c);try{e=d.Pb();d.Qb();return e}catch(a){a=zdb(a);if(ZD(a,112)){throw Adb(new veb("Can't remove element "+c))}else throw Adb(a)}} +function GA(a,b){var c,d,e;d=new uB;e=new vB(d.q.getFullYear()-Owe,d.q.getMonth(),d.q.getDate());c=FA(a,b,e);if(c==0||c0?b:0);++c}return new rjd(d,e)} +function Czd(a,b){var c,d;if(a.Db>>16==6){return a.Cb.Th(a,6,G4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),hvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function cCd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Th(a,1,H4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),jvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function LCd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.Th(a,9,J4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),lvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function M1d(a,b){var c,d;if(a.Db>>16==5){return a.Cb.Th(a,9,m7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),tTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function qBd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Th(a,6,t7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),CTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function iVd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.Th(a,0,p7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),mTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function IEd(){this.a=new BDd;this.g=new Io;this.j=new Io;this.b=new Tsb;this.d=new Io;this.i=new Io;this.k=new Tsb;this.c=new Tsb;this.e=new Tsb;this.f=new Tsb} +function kQd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;ewxe){return Oje(a,d)}if(d==a){return true}}}return false} +function yNb(a){tNb();switch(a.q.g){case 5:vNb(a,(qpd(),Yod));vNb(a,npd);break;case 4:wNb(a,(qpd(),Yod));wNb(a,npd);break;default:xNb(a,(qpd(),Yod));xNb(a,npd);}} +function CNb(a){tNb();switch(a.q.g){case 5:zNb(a,(qpd(),Xod));zNb(a,ppd);break;case 4:ANb(a,(qpd(),Xod));ANb(a,ppd);break;default:BNb(a,(qpd(),Xod));BNb(a,ppd);}} +function RTb(a){var b,c;b=RD(mQb(a,(yVb(),mVb)),17);if(b){c=b.a;c==0?pQb(a,(JVb(),IVb),new Owb):pQb(a,(JVb(),IVb),new Pwb(c))}else{pQb(a,(JVb(),IVb),new Pwb(1))}} +function b2b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function wec(a,b){switch(a.g){case 0:return b==(cxc(),$wc)?sec:tec;case 1:return b==(cxc(),$wc)?sec:rec;case 2:return b==(cxc(),$wc)?rec:tec;default:return rec;}} +function Fad(a,b){var c,d,e;Ymb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=fFe;for(d=new Anb(a.a);d.a>16==3){return a.Cb.Th(a,12,J4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),gvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function sCd(a,b){var c,d;if(a.Db>>16==11){return a.Cb.Th(a,10,J4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),kvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function n4d(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Th(a,11,h7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),ATd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function Q5d(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Th(a,12,s7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),DTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function WVd(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.Vh()){b=RD(a.r,54);a.r=RD(Vvd(a,b),142);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,8,b,a.r))}return a.r} +function pKb(a,b,c){var d;d=cD(WC(iE,1),vxe,28,15,[sKb(a,(ZJb(),WJb),b,c),sKb(a,XJb,b,c),sKb(a,YJb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function ddc(a,b){var c,d,e;e=kdc(a,b);if(e.c.length==0){return}_mb(e,new Gdc);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function YHb(){YHb=geb;XHb=(iIb(),fIb);WHb=new lGd(Aye,XHb);VHb=(LHb(),KHb);UHb=new lGd(Bye,VHb);THb=(DHb(),CHb);SHb=new lGd(Cye,THb);RHb=new lGd(Dye,(Geb(),true))} +function Iic(a,b,c){var d,e;d=b*c;if(ZD(a.g,154)){e=$jc(a);if(e.f.d){e.f.a||(a.d.a+=d+Tye)}else{a.d.d-=d+Tye;a.d.a+=d+Tye}}else if(ZD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function _pc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new Anb(b.d);h.a0?a.b:0);++c}b.b=d;b.e=e} +function Fo(a){var b,c,d;d=a.b;if(Xp(a.i,d.length)){c=d.length*2;a.b=$C(XF,ewe,303,c,0,1);a.c=$C(XF,ewe,303,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){Bo(a,b,b)}++a.g}} +function VPb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);ijd(a,$wnd.Math.min(h,i));return a} +function OAd(){qAd();var b,c;try{c=RD(M5d((YSd(),XSd),$He),2113);if(c){return c}}catch(a){a=zdb(a);if(ZD(a,103)){b=a;UId((Hde(),b))}else throw Adb(a)}return new KAd} +function Qae(){qAd();var b,c;try{c=RD(M5d((YSd(),XSd),AKe),2040);if(c){return c}}catch(a){a=zdb(a);if(ZD(a,103)){b=a;UId((Hde(),b))}else throw Adb(a)}return new Mae} +function vne(){Zme();var b,c;try{c=RD(M5d((YSd(),XSd),dLe),2122);if(c){return c}}catch(a){a=zdb(a);if(ZD(a,103)){b=a;UId((Hde(),b))}else throw Adb(a)}return new rne} +function f2d(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,4,e,b);!c?(c=d):c.nj(d)}e!=b&&(b?(c=o2d(a,k2d(a,b),c)):(c=o2d(a,a.a,c)));return c} +function DB(){uB.call(this);this.e=-1;this.a=false;this.p=qwe;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=qwe} +function hHb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Qfb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function XQb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Qfb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function RYb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Qfb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function _Wb(){_Wb=geb;YWb=nfd(pfd(pfd(pfd(new ufd,(sXb(),qXb),(hcc(),Dbc)),qXb,Hbc),rXb,Obc),rXb,rbc);$Wb=pfd(pfd(new ufd,qXb,hbc),qXb,sbc);ZWb=nfd(new ufd,rXb,ubc)} +function J6b(a){var b,c,d,e,f;b=RD(mQb(a,(Ywc(),cwc)),85);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=RD(d.Pb(),314);e=c.i;e.c+=f.a;e.d+=f.b;c.c?MKb(c):OKb(c)}pQb(a,cwc,null)} +function Wpc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function CNc(a,b,c){var d,e;c.Ug('Interactive node placement',1);a.a=RD(mQb(b,(Ywc(),Qwc)),312);for(e=new Anb(b.b);e.a0){g=(f&lve)%a.d.length;e=WNd(a,g,f,b);if(e){h=e.nd(c);return h}}d=a.ck(f,b,c);a.c.Fc(d);return null} +function Tee(a,b){var c,d,e,f;switch(Oee(a,b).Kl()){case 3:case 2:{c=mYd(b);for(e=0,f=c.i;e=0;d--){if(lhb(a[d].d,b)||lhb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Fdb(a,b){var c;if(Kdb(a)&&Kdb(b)){c=a/b;if(jxe0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function CVc(a){var b;b=RD(mQb(RD(ju(a.b,0),40),(h_c(),T$c)),107);pQb(a,(q$c(),SZc),new rjd(0,0));FVc(new YWc,a,b.b+b.c-Kfb(UD(mQb(a,ZZc))),b.d+b.a-Kfb(UD(mQb(a,_Zc))))} +function pDd(a,b){var c,d;d=false;if(bE(b)){d=true;oDd(a,new OC(WD(b)))}if(!d){if(ZD(b,242)){d=true;oDd(a,(c=Qeb(RD(b,242)),new hC(c)))}}if(!d){throw Adb(new Aeb(tIe))}} +function g$d(a,b,c,d){var e,f,g;e=new P3d(a.e,1,10,(g=b.c,ZD(g,90)?RD(g,29):(JTd(),zTd)),(f=c.c,ZD(f,90)?RD(f,29):(JTd(),zTd)),fZd(a,b),false);!d?(d=e):d.nj(e);return d} +function _2b(a){var b,c;switch(RD(mQb(Y2b(a),(yCc(),QAc)),429).g){case 0:b=a.n;c=a.o;return new rjd(b.a+c.a/2,b.b+c.b/2);case 1:return new sjd(a.n);default:return null;}} +function Ouc(){Ouc=geb;Luc=new Puc(LAe,0);Kuc=new Puc('LEFTUP',1);Nuc=new Puc('RIGHTUP',2);Juc=new Puc('LEFTDOWN',3);Muc=new Puc('RIGHTDOWN',4);Iuc=new Puc('BALANCED',5)} +function dKc(a,b,c){var d,e,f;d=Qfb(a.a[b.p],a.a[c.p]);if(d==0){e=RD(mQb(b,(Ywc(),qwc)),15);f=RD(mQb(c,qwc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function k5c(a){switch(a.g){case 1:return new K3c;case 2:return new M3c;case 3:return new I3c;case 0:return null;default:throw Adb(new agb(mFe+(a.f!=null?a.f:''+a.g)));}} +function gyd(a,b,c){switch(b){case 1:!a.n&&(a.n=new C5d(I4,a,1,7));sLd(a.n);!a.n&&(a.n=new C5d(I4,a,1,7));YGd(a.n,RD(c,16));return;case 2:jyd(a,WD(c));return;}Dxd(a,b,c)} +function xyd(a,b,c){switch(b){case 3:Ayd(a,Kfb(UD(c)));return;case 4:Cyd(a,Kfb(UD(c)));return;case 5:Dyd(a,Kfb(UD(c)));return;case 6:Eyd(a,Kfb(UD(c)));return;}gyd(a,b,c)} +function dBd(a,b,c){var d,e,f;f=(d=new R5d,d);e=XVd(f,b,null);!!e&&e.oj();PAd(f,c);WGd((!a.c&&(a.c=new C5d(u7,a,12,10)),a.c),f);$Vd(f,0);bWd(f,1);aWd(f,true);_Vd(f,true)} +function M5d(a,b){var c,d,e;c=Ktb(a.i,b);if(ZD(c,241)){e=RD(c,241);e.zi()==null&&undefined;return e.wi()}else if(ZD(c,507)){d=RD(c,2037);e=d.b;return e}else{return null}} +function aj(a,b,c,d){var e,f;Qb(b);Qb(c);f=RD(Fn(a.d,b),17);Ob(!!f,'Row %s not in %s',b,a.e);e=RD(Fn(a.b,c),17);Ob(!!e,'Column %s not in %s',c,a.c);return cj(a,f.a,e.a,d)} +function ZC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=_C(h,k);d!=10&&cD(WC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=RD(i,15);e.Wb(Sje(a,f))}else{e.Wb(Rje(a,RD(i,58)))}}}} +function ceb(b,c,d,e){beb();var f=_db;$moduleName=c;$moduleBase=d;ydb=e;function g(){for(var a=0;a0){return false}}return true} +function okc(a){var b,c,d,e,f;for(d=new vkb((new mkb(a.b)).a);d.b;){c=tkb(d);b=RD(c.ld(),10);f=RD(RD(c.md(),42).a,10);e=RD(RD(c.md(),42).b,8);$id(hjd(b.n),$id(ajd(f.n),e))}} +function Roc(a){switch(RD(mQb(a.b,(yCc(),BAc)),387).g){case 1:FDb(GDb(EDb(new SDb(null,new Swb(a.d,16)),new kpc),new mpc),new opc);break;case 2:Toc(a);break;case 0:Soc(a);}} +function SVc(a,b,c){var d,e,f;d=c;!d&&(d=new Oqd);d.Ug('Layout',a.a.c.length);for(f=new Anb(a.a);f.aAEe){return c}else e>-1.0E-6&&++c}return c} +function n2d(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=Jvd(a.b,a,-4,c));!!b&&(c=Ivd(b,a,-4,c));c=e2d(a,b,c);!!c&&c.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,b,b))} +function q2d(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=Jvd(a.f,a,-1,c));!!b&&(c=Ivd(b,a,-1,c));c=g2d(a,b,c);!!c&&c.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,0,b,b))} +function Lge(a,b,c,d){var e,f,g,h;if(Mvd(a.e)){e=b.Lk();h=b.md();f=c.md();g=fge(a,1,e,h,f,e.Jk()?kge(a,e,f,ZD(e,102)&&(RD(e,19).Bb&txe)!=0):-1,true);d?d.nj(g):(d=g)}return d} +function bne(a){var b,c,d;if(a==null)return null;c=RD(a,15);if(c.dc())return '';d=new Qhb;for(b=c.Kc();b.Ob();){Nhb(d,(nme(),WD(b.Pb())));d.a+=' '}return qeb(d,d.a.length-1)} +function fne(a){var b,c,d;if(a==null)return null;c=RD(a,15);if(c.dc())return '';d=new Qhb;for(b=c.Kc();b.Ob();){Nhb(d,(nme(),WD(b.Pb())));d.a+=' '}return qeb(d,d.a.length-1)} +function QIc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Jfb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function RVc(a,b,c){c.Ug('Tree layout',1);Sed(a.b);Ved(a.b,(YVc(),UVc),UVc);Ved(a.b,VVc,VVc);Ved(a.b,WVc,WVc);Ved(a.b,XVc,XVc);a.a=Qed(a.b,b);SVc(a,b,c.eh(1));c.Vg();return b} +function ZDd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new vue(f);for(h=(c.b-c.a)*c.c<0?(uue(),tue):new Rue(c);h.Ob();){g=RD(h.Pb(),17);e=xDd(b,g.a);d=new aFd(a);$Dd(d.a,e)}}} +function oEd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new vue(f);for(h=(c.b-c.a)*c.c<0?(uue(),tue):new Rue(c);h.Ob();){g=RD(h.Pb(),17);e=xDd(b,g.a);d=new LEd(a);NDd(d.a,e)}}} +function ESd(b){var c;if(b!=null&&b.length>0&&ihb(b,b.length-1)==33){try{c=nSd(zhb(b,0,b.length-1));return c.e==null}catch(a){a=zdb(a);if(!ZD(a,33))throw Adb(a)}}return false} +function u0b(a,b,c){var d,e,f;d=Y2b(b);e=i2b(d);f=new R3b;P3b(f,b);switch(c.g){case 1:Q3b(f,spd(vpd(e)));break;case 2:Q3b(f,vpd(e));}pQb(f,(yCc(),ABc),UD(mQb(a,ABc)));return f} +function jdc(a){var b,c;b=RD(hs(new is(Mr(Z2b(a.a).a.Kc(),new ir))),18);c=RD(hs(new is(Mr(a3b(a.a).a.Kc(),new ir))),18);return Heb(TD(mQb(b,(Ywc(),Nwc))))||Heb(TD(mQb(c,Nwc)))} +function Bnc(){Bnc=geb;xnc=new Cnc('ONE_SIDE',0);znc=new Cnc('TWO_SIDES_CORNER',1);Anc=new Cnc('TWO_SIDES_OPPOSING',2);ync=new Cnc('THREE_SIDES',3);wnc=new Cnc('FOUR_SIDES',4)} +function Usc(a,b){var c,d,e,f;f=new bnb;e=0;d=b.Kc();while(d.Ob()){c=sgb(RD(d.Pb(),17).a+e);while(c.a=a.f){break}ZEb(f.c,c)}return f} +function iIc(a,b){var c,d,e,f,g;for(f=new Anb(b.a);f.a0&&Xlc(this,this.c-1,(qpd(),Xod));this.c0&&a[0].length>0&&(this.c=Heb(TD(mQb(Y2b(a[0][0]),(Ywc(),rwc)))));this.a=$C(aY,Nve,2117,a.length,0,2);this.b=$C(dY,Nve,2118,a.length,0,2);this.d=new Ks} +function TOc(a){if(a.c.length==0){return false}if((tFb(0,a.c.length),RD(a.c[0],18)).c.i.k==(r3b(),o3b)){return true}return yDb(GDb(new SDb(null,new Swb(a,16)),new WOc),new YOc)} +function I5c(a,b){var c,d,e,f,g,h,i;h=Q2c(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new Anb(h);d.a=0){c=Fdb(a,ixe);d=Mdb(a,ixe)}else{b=Udb(a,1);c=Fdb(b,500000000);d=Mdb(b,500000000);d=Bdb(Sdb(d,1),Cdb(a,1))}return Rdb(Sdb(d,32),Cdb(c,yxe))} +function fTb(a,b,c){var d,e;d=(sFb(b.b!=0),RD(Wub(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Sub(b,0);cvb(e,d);return b} +function Vpc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=$pc(g,i.d[g.g],c);e=$id(ajd(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Pub(d,h,d.c.b,d.c)} +function YNc(a,b,c){var d,e,f,g;g=Wmb(a.e,b,0);f=new ZNc;f.b=c;d=new Jkb(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Wib(d,c));c.d==1?(c=Wib(c,c)):(c=new djb(Tjb(c.a,c.d,$C(kE,Pwe,28,c.d<<1,15,1))))}d=Wib(d,c);return d} +function Hwb(){Hwb=geb;var a,b,c,d;Ewb=$C(iE,vxe,28,25,15,1);Fwb=$C(iE,vxe,28,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){Fwb[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){Ewb[a]=c;c*=0.5}} +function a5b(a){var b,c;if(Heb(TD(Gxd(a,(yCc(),NAc))))){for(c=new is(Mr(zGd(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),74);if(ozd(b)){if(Heb(TD(Gxd(b,OAc)))){return true}}}}return false} +function Qmc(a,b){var c,d,e;if(Ysb(a.f,b)){b.b=a;d=b.c;Wmb(a.j,d,0)!=-1||Rmb(a.j,d);e=b.d;Wmb(a.j,e,0)!=-1||Rmb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new _mc(a));Wmc(a.i,c)}}} +function Xpc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&lhb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return JA(a,c,d)}if(b>=0&&lhb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return JA(a,c,d)}return JA(a,c,d)} +function Zmc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new Anb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<0&&hib(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;e>4&15;f=a[d]&15;g[e++]=oAd[c];g[e++]=oAd[f]}return Ihb(g,0,g.length)}} +function Fhb(a){var b,c;if(a>=txe){b=uxe+(a-txe>>10&1023)&Bwe;c=56320+(a-txe&1023)&Bwe;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&Bwe)}} +function UMb(a,b){RMb();var c,d,e,f;e=RD(RD(Qc(a.r,b),21),87);if(e.gc()>=2){d=RD(e.Kc().Pb(),117);c=a.u.Hc((Pod(),Kod));f=a.u.Hc(Ood);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function v3c(a,b,c,d,e){var f,g,h;f=w3c(a,b,c,d,e);h=false;while(!f){n3c(a,e,true);h=true;f=w3c(a,b,c,d,e)}h&&n3c(a,e,false);g=N2c(e);if(g.c.length!=0){!!a.d&&a.d.Gg(g);v3c(a,e,c,d,g)}} +function ind(){ind=geb;gnd=new jnd(LAe,0);end=new jnd('DIRECTED',1);hnd=new jnd('UNDIRECTED',2);cnd=new jnd('ASSOCIATION',3);fnd=new jnd('GENERALIZATION',4);dnd=new jnd('DEPENDENCY',5)} +function nsd(a,b){var c;if(!MCd(a)){throw Adb(new dgb(sHe))}c=MCd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function Jge(a,b,c){var d,e,f;d=b.Lk();f=b.md();e=d.Jk()?fge(a,4,d,f,null,kge(a,d,f,ZD(d,102)&&(RD(d,19).Bb&txe)!=0),true):fge(a,d.tk()?2:1,d,f,d.ik(),-1,true);c?c.nj(e):(c=e);return c} +function lwb(a,b){var c,d;uFb(b);d=a.b.c.length;Rmb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.Ne(Vmb(a.b,d),b)<=0){$mb(a.b,c,b);return true}$mb(a.b,c,Vmb(a.b,d))}$mb(a.b,d,b);return true} +function sKb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function A8c(a){switch(a.g){case 0:return new o8c;case 1:return new u8c;default:throw Adb(new agb('No implementation is available for the width approximator '+(a.f!=null?a.f:''+a.g)));}} +function rDd(a,b,c,d){var e;e=false;if(bE(d)){e=true;sDd(b,c,WD(d))}if(!e){if($D(d)){e=true;rDd(a,b,c,d)}}if(!e){if(ZD(d,242)){e=true;qDd(b,c,RD(d,242))}}if(!e){throw Adb(new Aeb(tIe))}} +function uee(a,b){var c,d,e;c=b.qi(a.a);if(c){e=$Nd((!c.b&&(c.b=new SVd((JTd(),FTd),C8,c)),c.b),rKe);if(e!=null){for(d=1;d<(lke(),hke).length;++d){if(lhb(hke[d],e)){return d}}}}return 0} +function vee(a,b){var c,d,e;c=b.qi(a.a);if(c){e=$Nd((!c.b&&(c.b=new SVd((JTd(),FTd),C8,c)),c.b),rKe);if(e!=null){for(d=1;d<(lke(),ike).length;++d){if(lhb(ike[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uFb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.Ne(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function zIb(a){var b,c,d,e;b=new bnb;c=$C(xdb,Hye,28,a.a.c.length,16,1);Snb(c,c.length);for(e=new Anb(a.a);e.a0&&O9b((tFb(0,c.c.length),RD(c.c[0],30)),a);c.c.length>1&&O9b(RD(Vmb(c,c.c.length-1),30),a);b.Vg()} +function Sod(a){Pod();var b,c;b=ysb(Lod,cD(WC(D3,1),jwe,279,0,[Nod]));if(dy(Tx(b,a))>1){return false}c=ysb(Kod,cD(WC(D3,1),jwe,279,0,[Jod,Ood]));if(dy(Tx(c,a))>1){return false}return true} +function FBd(a,b){var c;c=Xjb((YSd(),XSd),a);ZD(c,507)?$jb(XSd,a,new B5d(this,b)):$jb(XSd,a,this);BBd(this,b);if(b==(jTd(),iTd)){this.wb=RD(this,2038);RD(b,2040)}else{this.wb=(lTd(),kTd)}} +function Lae(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=Awe?'error':d>=900?'warn':d>=800?'info':'log');eFb(c,a.a);!!a.b&&fFb(b,c,a.b,'Exception: ',true)} +function mQb(a,b){var c,d;d=(!a.q&&(a.q=new Tsb),Wjb(a.q,b));if(d!=null){return d}c=b.Sg();ZD(c,4)&&(c==null?(!a.q&&(a.q=new Tsb),_jb(a.q,b)):(!a.q&&(a.q=new Tsb),Zjb(a.q,b,c)),a);return c} +function sXb(){sXb=geb;nXb=new tXb('P1_CYCLE_BREAKING',0);oXb=new tXb('P2_LAYERING',1);pXb=new tXb('P3_NODE_ORDERING',2);qXb=new tXb('P4_NODE_PLACEMENT',3);rXb=new tXb('P5_EDGE_ROUTING',4)} +function KZb(a,b){CZb();var c;if(a.c==b.c){if(a.b==b.b||rZb(a.b,b.b)){c=oZb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return hgb(a.b.g,b.b.g)}else{return Qfb(a.c,b.c)}} +function E3c(a,b){var c,d,e;if(p3c(a,b)){return true}for(d=new Anb(b);d.a=e||b<0)throw Adb(new veb(MIe+b+NIe+e));if(c>=e||c<0)throw Adb(new veb(OIe+c+NIe+e));b!=c?(d=(f=a.Cj(c),a.qj(b,f),f)):(d=a.xj(c));return d} +function Lje(a){var b,c,d;d=a;if(a){b=0;for(c=a.Eh();c;c=c.Eh()){if(++b>wxe){return Lje(c)}d=c;if(c==a){throw Adb(new dgb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new Jyb(pve,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();Gyb(d,dE(b)===dE(a)?'(this Collection)':b==null?vve:jeb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function p3c(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;c1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function Mnc(){Mnc=geb;Jnc=cD(WC(E3,1),NAe,64,0,[(qpd(),Yod),Xod,npd]);Inc=cD(WC(E3,1),NAe,64,0,[Xod,npd,ppd]);Knc=cD(WC(E3,1),NAe,64,0,[npd,ppd,Yod]);Lnc=cD(WC(E3,1),NAe,64,0,[ppd,Yod,Xod])} +function Upc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?tpd(e):rpd(e);f=$pc(e,k.d[e.g],c);j=$pc(i,k.d[i.g],c);Mub(d,$id(f,j));e=i}} +function OJc(a,b,c,d){var e,f,g,h,i;g=hMc(a.a,b,c);h=RD(g.a,17).a;f=RD(g.b,17).a;if(d){i=RD(mQb(b,(Ywc(),Iwc)),10);e=RD(mQb(c,Iwc),10);if(!!i&&!!e){Slc(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function OLc(a){var b,c,d,e,f,g,h,i,j;this.a=LLc(a);this.b=new bnb;for(c=a,d=0,e=c.length;damc(a.d).c){a.i+=a.g.c;cmc(a.d)}else if(amc(a.d).c>amc(a.g).c){a.e+=a.d.c;cmc(a.g)}else{a.i+=_lc(a.g);a.e+=_lc(a.d);cmc(a.g);cmc(a.d)}}} +function vTc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new bTc((fTc(),dTc),b,f,1);new bTc(dTc,f,g,1);for(e=new Anb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function I8c(a,b,c,d,e){var f,g;g=false;f=RD(Vmb(c.b,0),27);while(V8c(a,b,f,d,e)){g=true;T9c(c,f);if(c.b.c.length==0){break}f=RD(Vmb(c.b,0),27)}c.b.c.length==0&&Fad(c.j,c);g&&gad(b.q);return g} +function Eid(a,b){tid();var c,d,e,f;if(b.b<2){return false}f=Sub(b,0);c=RD(evb(f),8);d=c;while(f.b!=f.d.c){e=RD(evb(f),8);if(Did(a,d,e)){return true}d=e}if(Did(a,d,c)){return true}return false} +function Bxd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),BVd(a.o,b,d)}return f=RD(vYd((e=RD(Ywd(a,16),29),!e?a.ii():e),c),69),f.wk().Ak(a,Wwd(a),c-AYd(a.ii()),b,d)} +function BBd(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=RD(a.sb,54).Th(a,1,n7,c));!!b&&(c=RD(b,54).Rh(a,1,n7,c));c=hBd(a,b,c);!!c&&c.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,4,b,b))} +function YDd(a,b){var c,d,e,f;if(b){e=vDd(b,'x');c=new ZEd(a);Hzd(c.a,(uFb(e),e));f=vDd(b,'y');d=new $Ed(a);Izd(d.a,(uFb(f),f))}else{throw Adb(new CDd('All edge sections need an end point.'))}} +function WDd(a,b){var c,d,e,f;if(b){e=vDd(b,'x');c=new WEd(a);Ozd(c.a,(uFb(e),e));f=vDd(b,'y');d=new XEd(a);Pzd(d.a,(uFb(f),f))}else{throw Adb(new CDd('All edge sections need a start point.'))}} +function hBb(a,b){var c,d,e,f,g,h,i;for(d=kBb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw Adb(new agb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:Bid(a)/(Bid(b)*Bid(a-b))} +function msd(a,b){var c,d,e,f;c=new zId(a);while(c.g==null&&!c.c?sId(c):c.g==null||c.i!=0&&RD(c.g[c.i-1],51).Ob()){f=RD(tId(c),58);if(ZD(f,167)){d=RD(f,167);for(e=0;e>4];b[c*2+1]=Fqe[f&15]}return Ihb(b,0,b.length)} +function sn(a){fn();var b,c,d;d=a.c.length;switch(d){case 0:return en;case 1:b=RD(Ir(new Anb(a)),44);return xn(b.ld(),b.md());default:c=RD(anb(a,$C(UK,Zve,44,a.c.length,0,1)),173);return new Mx(c);}} +function KWb(a){var b,c,d,e,f,g;b=new wmb;c=new wmb;hmb(b,a);hmb(c,a);while(c.b!=c.c){e=RD(smb(c),36);for(g=new Anb(e.a);g.a0&&uLc(a,c,b);return e}return rLc(a,b,c)} +function $4c(){$4c=geb;R4c=(umd(),Qld);Y4c=fmd;K4c=kld;L4c=nld;M4c=pld;J4c=ild;N4c=sld;Q4c=Lld;H4c=(D4c(),o4c);I4c=p4c;T4c=v4c;W4c=y4c;U4c=w4c;V4c=x4c;O4c=r4c;P4c=t4c;S4c=u4c;X4c=z4c;Z4c=B4c;G4c=n4c} +function P9c(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(R9c(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function Ipc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function oOc(a,b,c){var d,e,f;for(e=new is(Mr(W2b(c).a.Kc(),new ir));gs(e);){d=RD(hs(e),18);if(!(!W0b(d)&&!(!W0b(d)&&d.c.i.c==d.d.i.c))){continue}f=gOc(a,d,c,new VOc);f.c.length>1&&(ZEb(b.c,f),true)}} +function _id(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function LFd(a){if(ZD(a,143)){return EFd(RD(a,143))}else if(ZD(a,233)){return FFd(RD(a,233))}else if(ZD(a,23)){return GFd(RD(a,23))}else{throw Adb(new agb(wIe+Fe(new mob(cD(WC(jJ,1),rve,1,5,[a])))))}} +function ujb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function ZQc(a,b,c,d){var e,f,g;if(b.k==(r3b(),o3b)){for(f=new is(Mr(Z2b(b).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);g=e.c.i.k;if(g==o3b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function CD(a,b){var c,d,e,f;b&=63;c=a.h&exe;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return hD(d&dxe,e&dxe,f&exe)} +function mmc(a,b,c,d){var e;this.b=d;this.e=a==(RKc(),PKc);e=b[c];this.d=YC(xdb,[Nve,Hye],[183,28],16,[e.length,e.length],2);this.a=YC(kE,[Nve,Pwe],[53,28],15,[e.length,e.length],2);this.c=new Ylc(b,c)} +function Rmc(a){var b,c,d;a.k=new Si((qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])).length,a.j.c.length);for(d=new Anb(a.j);d.a=c){_cc(a,b,d.p);return true}}return false} +function EA(a,b,c,d){var e,f,g,h,i,j;g=c.length;f=0;e=-1;j=Bhb((BFb(b,a.length+1),a.substr(b)),(wvb(),uvb));for(h=0;hf&&whb(j,Bhb(c[h],uvb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function gCd(a){var b;if((a.Db&64)!=0)return Fyd(a);b=new dib(FHe);!a.a||Zhb(Zhb((b.a+=' "',b),a.a),'"');Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function xge(a,b,c){var d,e,f,g,h;h=pke(a.e.Dh(),b);e=RD(a.g,124);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',cD(WC(jJ,1),rve,1,5,[sgb(b),sgb(a)]))} +function dA(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&aGc(a,f,c))}}b.p=0} +function Ahd(a){var b;this.c=new Yub;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=RD(mfb(d3),9),new Fsb(b,RD(WEb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Thb(Zhb(new dib('Predicates.'),'and'),40);c=true;for(e=new Dkb(a);e.b0?h[g-1]:$C(jR,WAe,10,0,0,1);e=h[g];j=g=0?a.ki(e):Tvd(a,d)}else{throw Adb(new agb(KHe+d.xe()+LHe))}}else{Cvd(a,c,d)}} +function ADd(a){var b,c;c=null;b=false;if(ZD(a,211)){b=true;c=RD(a,211).a}if(!b){if(ZD(a,263)){b=true;c=''+RD(a,263).a}}if(!b){if(ZD(a,493)){b=true;c=''+RD(a,493).a}}if(!b){throw Adb(new Aeb(tIe))}return c} +function gge(a,b,c){var d,e,f,g,h,i;i=pke(a.e.Dh(),b);d=0;h=a.i;e=RD(a.g,124);for(g=0;g=a.d.b.c.length){b=new R4b(a.d);b.p=d.p-1;Rmb(a.d.b,b);c=new R4b(a.d);c.p=d.p;Rmb(a.d.b,c)}g3b(d,RD(Vmb(a.d.b,d.p),30))}} +function DVc(a,b,c){var d,e,f;if(!a.b[b.g]){a.b[b.g]=true;d=c;!d&&(d=new YWc);Mub(d.b,b);for(f=a.a[b.g].Kc();f.Ob();){e=RD(f.Pb(),65);e.b!=b&&DVc(a,e.b,d);e.c!=b&&DVc(a,e.c,d);Mub(d.a,e)}return d}return null} +function iMb(a){switch(a.g){case 0:case 1:case 2:return qpd(),Yod;case 3:case 4:case 5:return qpd(),npd;case 6:case 7:case 8:return qpd(),ppd;case 9:case 10:case 11:return qpd(),Xod;default:return qpd(),opd;}} +function SOc(a,b){var c;if(a.c.length==0){return false}c=zDc((tFb(0,a.c.length),RD(a.c[0],18)).c.i);dOc();if(c==(wDc(),tDc)||c==sDc){return true}return yDb(GDb(new SDb(null,new Swb(a,16)),new $Oc),new aPc(b))} +function KDd(a,b){if(ZD(b,207)){return EDd(a,RD(b,27))}else if(ZD(b,193)){return FDd(a,RD(b,123))}else if(ZD(b,452)){return DDd(a,RD(b,166))}else{throw Adb(new agb(wIe+Fe(new mob(cD(WC(jJ,1),rve,1,5,[b])))))}} +function Ou(a,b,c){var d,e;this.f=a;d=RD(Wjb(a.b,b),260);e=!d?0:d.a;Sb(c,e);if(c>=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){Lu(this)}}this.b=b;this.a=null} +function iHb(a,b){var c,d;b.a?jHb(a,b):(c=RD(vAb(a.b,b.b),60),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=RD(uAb(a.b,b.b),60),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),wAb(a.b,b.b),undefined)} +function wMb(a,b){var c,d;c=RD(Vrb(a.b,b),127);if(RD(RD(Qc(a.r,b),21),87).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((Qpd(),Ppd))&&BMb(a,b);d=AMb(a,b);BLb(a,b)==(pod(),mod)&&(d+=2*a.w);c.a.a=d} +function FNb(a,b){var c,d;c=RD(Vrb(a.b,b),127);if(RD(RD(Qc(a.r,b),21),87).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((Qpd(),Ppd))&&JNb(a,b);d=INb(a,b);BLb(a,b)==(pod(),mod)&&(d+=2*a.w);c.a.b=d} +function VQb(a,b){var c,d,e,f;f=new bnb;for(d=new Anb(b);d.ad&&(BFb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||bc.a&&(d.Hc((ukd(),okd))?(e=(b.a-c.a)/2):d.Hc(qkd)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((ukd(),skd))?(f=(b.b-c.b)/2):d.Hc(rkd)&&(f=b.b-c.b));Isd(a,e,f)} +function ABd(a,b,c,d,e,f,g,h,i,j,k,l,m){ZD(a.Cb,90)&&v$d(yYd(RD(a.Cb,90)),4);PAd(a,c);a.f=g;DWd(a,h);FWd(a,i);xWd(a,j);EWd(a,k);aWd(a,l);AWd(a,m);_Vd(a,true);$Vd(a,e);a.Zk(f);YVd(a,b);d!=null&&(a.i=null,zWd(a,d))} +function Jb(a,b,c){if(a<0){return hc(qve,cD(WC(jJ,1),rve,1,5,[c,sgb(a)]))}else if(b<0){throw Adb(new agb(sve+b))}else{return hc('%s (%s) must not be greater than size (%s)',cD(WC(jJ,1),rve,1,5,[c,sgb(a),sgb(b)]))}} +function Xnb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Unb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Xnb(b,a,i,j,-e,f);Xnb(b,a,j,h,-e,f);if(f.Ne(a[j-1],a[j])<=0){while(c=0?a.bi(f,c):Svd(a,e,c)}else{throw Adb(new agb(KHe+e.xe()+LHe))}}else{Bvd(a,d,e,c)}} +function n3d(a){var b,c;if(a.f){while(a.n>0){b=RD(a.k.Xb(a.n-1),76);c=b.Lk();if(ZD(c,102)&&(RD(c,19).Bb&QHe)!=0&&(!a.e||c.pk()!=C4||c.Lj()!=0)&&b.md()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Pje(b){var c,d,e,f;d=RD(b,54)._h();if(d){try{e=null;c=N5d((YSd(),XSd),jSd(kSd(d)));if(c){f=c.ai();!!f&&(e=f.Fl(Chb(d.e)))}if(!!e&&e!=b){return Pje(e)}}catch(a){a=zdb(a);if(!ZD(a,63))throw Adb(a)}}return b} +function P3c(a,b,c){var d,e,f;c.Ug('Remove overlaps',1);c.dh(b,eFe);d=RD(Gxd(b,(u2c(),t2c)),27);a.f=d;a.a=u5c(RD(Gxd(b,($4c(),X4c)),300));e=UD(Gxd(b,(umd(),fmd)));s3c(a,(uFb(e),e));f=Q2c(d);O3c(a,b,f,c);c.dh(b,gFe)} +function Ded(a){var b,c,d;if(Heb(TD(Gxd(a,(umd(),$kd))))){d=new bnb;for(c=new is(Mr(zGd(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),74);ozd(b)&&Heb(TD(Gxd(b,_kd)))&&(ZEb(d.c,b),true)}return d}else{return yob(),yob(),vob}} +function KC(a){if(!a){return cC(),bC}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=GC[typeof b];return c?c(b):NC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new NB(a)}else{return new vC(a)}} +function IMb(a,b,c){var d,e,f;f=a.o;d=RD(Vrb(a.p,c),252);e=d.i;e.b=ZKb(d);e.a=YKb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}$Kb(d);_Kb(d)} +function JMb(a,b,c){var d,e,f;f=a.o;d=RD(Vrb(a.p,c),252);e=d.i;e.b=ZKb(d);e.a=YKb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}$Kb(d);_Kb(d)} +function nkc(a,b){var c,d,e,f,g;if(b.dc()){return}e=RD(b.Xb(0),131);if(b.gc()==1){mkc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Oeb(c,qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){e=a;throw Adb(new RSd(e))}else throw Adb(a)}}d=(!b.a&&(b.a=new Zde(b)),b.a);return f=0?RD(QHd(d,f),58):null} +function Ib(a,b){if(a<0){return hc(qve,cD(WC(jJ,1),rve,1,5,['index',sgb(a)]))}else if(b<0){throw Adb(new agb(sve+b))}else{return hc('%s (%s) must be less than size (%s)',cD(WC(jJ,1),rve,1,5,['index',sgb(a),sgb(b)]))}} +function cob(a){var b,c,d,e,f;if(a==null){return vve}f=new Jyb(pve,'[',']');for(c=a,d=0,e=c.length;d=0?a.Lh(c,true,true):Qvd(a,e,true),160));RD(d,220).Zl(b)}else{throw Adb(new agb(KHe+b.xe()+LHe))}} +function Cib(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=eE($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return Dib(Hdb(a))} +function oTc(a){var b,c,d,e,f,g,h;f=new Iub;for(c=new Anb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function B5c(a,b,c){c.Ug('Eades radial',1);c.dh(b,gFe);a.d=RD(Gxd(b,(u2c(),t2c)),27);a.c=Kfb(UD(Gxd(b,($4c(),S4c))));a.e=u5c(RD(Gxd(b,X4c),300));a.a=Z3c(RD(Gxd(b,Z4c),434));a.b=k5c(RD(Gxd(b,O4c),354));C5c(a);c.dh(b,gFe)} +function t8c(a,b){b.Ug('Target Width Setter',1);if(Hxd(a,(X7c(),W7c))){Ixd(a,(X6c(),W6c),UD(Gxd(a,W7c)))}else{throw Adb(new Jed('A target width has to be set if the TargetWidthWidthApproximator should be used.'))}b.Vg()} +function _8b(a,b){var c,d,e;d=new j3b(a);kQb(d,b);pQb(d,(Ywc(),gwc),b);pQb(d,(yCc(),BBc),(Bod(),wod));pQb(d,Rzc,(Rjd(),Njd));h3b(d,(r3b(),m3b));c=new R3b;P3b(c,d);Q3b(c,(qpd(),ppd));e=new R3b;P3b(e,d);Q3b(e,Xod);return d} +function ttc(a){switch(a.g){case 0:return new FKc((RKc(),OKc));case 1:return new aKc;case 2:return new FLc;default:throw Adb(new agb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function THc(a,b){var c,d,e,f,g;a.c[b.p]=true;Rmb(a.a,b);for(g=new Anb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?Hh():g<0&&Rw(a,b,-g);return true}else{return false}} +function YKb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=aLb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Vvb(SCb(HDb(CDb(_nb(a.a),new oLb),new qLb)))}return h>0?h+a.n.d+a.n.a:0} +function ZKb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Vvb(SCb(HDb(CDb(_nb(a.a),new kLb),new mLb)))}else{g=bLb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function UOc(a){var b,c;if(a.c.length!=2){throw Adb(new dgb('Order only allowed for two paths.'))}b=(tFb(0,a.c.length),RD(a.c[0],18));c=(tFb(1,a.c.length),RD(a.c[1],18));if(b.d.i!=c.c.i){a.c.length=0;ZEb(a.c,c);ZEb(a.c,b)}} +function O8c(a,b,c){var d;zyd(c,b.g,b.f);Byd(c,b.i,b.j);for(d=0;d<(!b.a&&(b.a=new C5d(J4,b,10,11)),b.a).i;d++){O8c(a,RD(QHd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a),d),27),RD(QHd((!c.a&&(c.a=new C5d(J4,c,10,11)),c.a),d),27))}} +function DMb(a,b){var c,d,e,f;f=RD(Vrb(a.b,b),127);c=f.a;for(e=RD(RD(Qc(a.r,b),21),87).Kc();e.Ob();){d=RD(e.Pb(),117);!!d.c&&(c.a=$wnd.Math.max(c.a,QKb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function ETb(a,b){var c,d,e;c=RD(mQb(b,(yVb(),lVb)),17).a-RD(mQb(a,lVb),17).a;if(c==0){d=ojd(ajd(RD(mQb(a,(JVb(),FVb)),8)),RD(mQb(a,GVb),8));e=ojd(ajd(RD(mQb(b,FVb),8)),RD(mQb(b,GVb),8));return Qfb(d.a*d.b,e.a*e.b)}return c} +function JVc(a,b){var c,d,e;c=RD(mQb(b,(h_c(),X$c)),17).a-RD(mQb(a,X$c),17).a;if(c==0){d=ojd(ajd(RD(mQb(a,(q$c(),RZc)),8)),RD(mQb(a,SZc),8));e=ojd(ajd(RD(mQb(b,RZc),8)),RD(mQb(b,SZc),8));return Qfb(d.a*d.b,e.a*e.b)}return c} +function _0b(a){var b,c;c=new bib;c.a+='e_';b=S0b(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Zhb((c.a+=' ',c),M3b(a.c));Zhb(Yhb((c.a+='[',c),a.c.i),']');Zhb((c.a+=SAe,c),M3b(a.d));Zhb(Yhb((c.a+='[',c),a.d.i),']')}return c.a} +function ZVc(a){switch(a.g){case 0:return new N_c;case 1:return new V_c;case 2:return new x0c;case 3:return new J0c;default:throw Adb(new agb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function qsd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function MDd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new vue(e);for(h=(d.b-d.a)*d.c<0?(uue(),tue):new Rue(d);h.Ob();){g=RD(h.Pb(),17);f=xDd(c,g.a);kIe in f.a||lIe in f.a?yEd(a,f,b):EEd(a,f,b);OGd(RD(Wjb(a.b,uDd(f)),74))}}} +function jXd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=WVd(a);if(!!b&&(nke(),b.lk()==aKe)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function Sqe(a,b){var c,d,e,f;Mqe(a);if(a.c!=0||a.a!=123)throw Adb(new Lqe(TId((Hde(),eJe))));f=b==112;d=a.d;c=phb(a.i,125,d);if(c<0)throw Adb(new Lqe(TId((Hde(),fJe))));e=zhb(a.i,d,c);a.d=c+1;return ite(e,f,(a.e&512)==512)} +function YTb(a){var b,c,d,e,f,g,h;d=a.a.c.length;if(d>0){g=a.c.d;h=a.d.d;e=ijd(ojd(new rjd(h.a,h.b),g),1/(d+1));f=new rjd(g.a,g.b);for(c=new Anb(a.a);c.a=0&&f=0?a.Lh(c,true,true):Qvd(a,e,true),160));return RD(d,220).Wl(b)}else{throw Adb(new agb(KHe+b.xe()+NHe))}} +function _ae(){Tae();var a;if(Sae)return RD(N5d((YSd(),XSd),AKe),2038);RRd(UK,new hde);abe();a=RD(ZD(Xjb((YSd(),XSd),AKe),560)?Xjb(XSd,AKe):new $ae,560);Sae=true;Yae(a);Zae(a);Zjb((hTd(),gTd),a,new cbe);$jb(XSd,AKe,a);return a} +function Vfe(a,b){var c,d,e,f;a.j=-1;if(Mvd(a.e)){c=a.i;f=a.i!=0;LHd(a,b);d=new P3d(a.e,3,a.c,null,b,c,f);e=b.zl(a.e,a.c,null);e=Hge(a,b,e);if(!e){qvd(a.e,d)}else{e.nj(d);e.oj()}}else{LHd(a,b);e=b.zl(a.e,a.c,null);!!e&&e.oj()}} +function HA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BFb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BFb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function mPb(a){var b,c,d,e,f;e=RD(a.a,17).a;f=RD(a.b,17).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new Ptd(sgb(c),sgb(d))} +function YPb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw Adb(new veb(MIe+b+NIe+a.i));if(c>=a.i)throw Adb(new veb(OIe+c+NIe+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-qxe;b=d>>16&4;c+=b;a<<=b;d=a-Ove;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function RSb(a){HSb();var b,c,d,e;GSb=new bnb;FSb=new Tsb;ESb=new bnb;b=(!a.a&&(a.a=new C5d(J4,a,10,11)),a.a);JSb(b);for(e=new dMd(b);e.e!=e.i.gc();){d=RD(bMd(e),27);if(Wmb(GSb,d,0)==-1){c=new bnb;Rmb(ESb,c);KSb(d,c)}}return ESb} +function sTb(a,b,c){var d,e,f,g;a.a=c.b.d;if(ZD(b,326)){e=IGd(RD(b,74),false,false);f=ssd(e);d=new wTb(a);xgb(f,d);lsd(f,e);b.of((umd(),cld))!=null&&xgb(RD(b.of(cld),75),d)}else{g=RD(b,422);g.rh(g.nh()+a.a.a);g.sh(g.oh()+a.a.b)}} +function hWc(a,b){var c,d,e;e=new bnb;for(d=Sub(b.a,0);d.b!=d.d.c;){c=RD(evb(d),65);c.c.g==a.g&&dE(mQb(c.b,(h_c(),f_c)))!==dE(mQb(c.c,f_c))&&!yDb(new SDb(null,new Swb(e,16)),new IWc(c))&&(ZEb(e.c,c),true)}_mb(e,new KWc);return e} +function fUb(a,b,c){var d,e,f,g;if(ZD(b,153)&&ZD(c,153)){f=RD(b,153);g=RD(c,153);return a.a[f.a][g.a]+a.a[g.a][f.a]}else if(ZD(b,250)&&ZD(c,250)){d=RD(b,250);e=RD(c,250);if(d.a==e.a){return RD(mQb(e.a,(yVb(),lVb)),17).a}}return 0} +function q9b(a,b){var c,d,e,f,g,h,i,j;j=Kfb(UD(mQb(b,(yCc(),fCc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=ejd(ojd(new rjd(g.c+g.b/2,g.d+g.a/2),new rjd(f.c+f.b/2,f.d+f.a/2)));return -(oRb(f,g)-1)*h} +function ysd(a,b,c){var d;FDb(new SDb(null,(!c.a&&(c.a=new C5d(F4,c,6,6)),new Swb(c.a,16))),new Qsd(a,b));FDb(new SDb(null,(!c.n&&(c.n=new C5d(I4,c,1,7)),new Swb(c.n,16))),new Ssd(a,b));d=RD(Gxd(c,(umd(),cld)),75);!!d&&Bjd(d,a,b)} +function Qvd(a,b,c){var d,e,f;f=Eee((lke(),jke),a.Dh(),b);if(f){nke();RD(f,69).xk()||(f=zfe(Qee(jke,f)));e=(d=a.Ih(f),RD(d>=0?a.Lh(d,true,true):Qvd(a,f,true),160));return RD(e,220).Sl(b,c)}else{throw Adb(new agb(KHe+b.xe()+NHe))}} +function WNd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new BTc(i.c,g);Qmb(a,d++,e)}h=j+c;if(h<=i.a){f=new BTc(h,i.a);wFb(d,a.c.length);XEb(a.c,d,f)}}} +function mZc(a,b,c){var d,e,f,g,h,i;if(!b.dc()){e=new Yub;for(i=b.Kc();i.Ob();){h=RD(i.Pb(),40);Zjb(a.a,sgb(h.g),sgb(c));for(g=(d=Sub((new dXc(h)).a.d,0),new gXc(d));dvb(g.a);){f=RD(evb(g.a),65).c;Pub(e,f,e.c.b,e.c)}}mZc(a,e,c+1)}} +function Ude(a){var b;if(!a.c&&a.g==null){a.d=a.bj(a.f);WGd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=RD(a.g[a.i-1],51)}}if(b==a.b&&null.Vm>=null.Um()){tId(a);return Ude(a)}else{return b.Ob()}} +function t_b(a){this.a=a;if(a.c.i.k==(r3b(),m3b)){this.c=a.c;this.d=RD(mQb(a.c.i,(Ywc(),hwc)),64)}else if(a.d.i.k==m3b){this.c=a.d;this.d=RD(mQb(a.d.i,(Ywc(),hwc)),64)}else{throw Adb(new agb('Edge '+a+' is not an external edge.'))}} +function O1d(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,e,a.b));if(!b){PAd(a,null);Q1d(a,0);P1d(a,null)}else if(b!=a){PAd(a,b.zb);Q1d(a,b.d);c=(d=b.c,d==null?b.zb:d);P1d(a,c==null||lhb(c,b.zb)?null:c)}} +function hj(a,b){var c;this.e=(tm(),Qb(a),tm(),zm(a));this.c=(Qb(b),zm(b));Lb(this.e.Rd().dc()==this.c.Rd().dc());this.d=Uv(this.e);this.b=Uv(this.c);c=YC(jJ,[Nve,rve],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2);this.a=c;Zi(this)} +function Lz(b){var c=(!Jz&&(Jz=Mz()),Jz);var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return Kz(a,c)});return '"'+d+'"'} +function VEb(a,b,c,d,e,f){var g,h,i,j,k;if(e==0){return}if(dE(a)===dE(c)){a=a.slice(b,b+e);b=0}i=c;for(h=b,j=b+e;h=g)throw Adb(new aMd(b,g));e=c[b];if(g==1){d=null}else{d=$C(d6,IJe,424,g-1,0,1);hib(c,0,d,0,b);f=g-b-1;f>0&&hib(c,b+1,d,b,f)}Bde(a,d);Ade(a,b,e);return e} +function l3d(a){var b,c;if(a.f){while(a.n0?(f=vpd(c)):(f=spd(vpd(c)))}Ixd(b,GBc,f)} +function agc(a,b){var c;b.Ug('Partition preprocessing',1);c=RD(zDb(CDb(EDb(CDb(new SDb(null,new Swb(a.a,16)),new egc),new ggc),new igc),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);FDb(c.Oc(),new kgc);b.Vg()} +function Uoc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&_mb(g,new ypc);e=g.c.length/2|0;for(d=0;d0&&uLc(a,c,b);return f}else if(d.a!=null){uLc(a,b,c);return -1}else if(e.a!=null){uLc(a,c,b);return 1}return 0} +function EVc(a,b){var c,d,e,f,g;e=b.b.b;a.a=$C(QK,Ize,15,e,0,1);a.b=$C(xdb,Hye,28,e,16,1);for(g=Sub(b.b,0);g.b!=g.d.c;){f=RD(evb(g),40);a.a[f.g]=new Yub}for(d=Sub(b.a,0);d.b!=d.d.c;){c=RD(evb(d),65);a.a[c.b.g].Fc(c);a.a[c.c.g].Fc(c)}} +function SJd(a,b){var c,d,e,f;if(a.Pj()){c=a.Ej();f=a.Qj();++a.j;a.qj(c,a.Zi(c,b));d=a.Ij(3,null,b,c,f);if(a.Mj()){e=a.Nj(b,null);if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}else{a.Jj(d)}}else{_Id(a,b);if(a.Mj()){e=a.Nj(b,null);!!e&&e.oj()}}} +function oLd(a,b,c){var d,e,f;if(a.Pj()){f=a.Qj();KHd(a,b,c);d=a.Ij(3,null,c,b,f);if(a.Mj()){e=a.Nj(c,null);a.Tj()&&(e=a.Uj(c,e));if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}else{a.Jj(d)}}else{KHd(a,b,c);if(a.Mj()){e=a.Nj(c,null);!!e&&e.oj()}}} +function bge(a,b){var c,d,e,f,g;g=pke(a.e.Dh(),b);e=new YHd;c=RD(a.g,124);for(f=a.i;--f>=0;){d=c[f];g.am(d.Lk())&&WGd(e,d)}!wLd(a,e)&&Mvd(a.e)&&eZd(a,b.Jk()?fge(a,6,b,(yob(),vob),null,-1,false):fge(a,b.tk()?2:1,b,null,null,-1,false))} +function _7b(a,b){var c,d,e,f,g;if(a.a==($uc(),Yuc)){return true}f=b.a.c;c=b.a.c+b.a.b;if(b.j){d=b.A;g=d.c.c.a-d.o.a/2;e=f-(d.n.a+d.o.a);if(e>g){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function bRc(a){WQc();var b,c,d,e,f,g,h;c=new gub;for(e=new Anb(a.e.b);e.a1?(a.e*=Kfb(a.a)):(a.f/=Kfb(a.a));uRb(a);vRb(a);rRb(a);pQb(a.b,(tSb(),lSb),a.g)} +function n9b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new Anb(a);f.a=0?a.Ah(null):a.Ph().Th(a,-1-b,null,null));a.Bh(RD(e,54),c);!!d&&d.oj();a.vh()&&a.wh()&&c>-1&&qvd(a,new N3d(a,9,c,f,e));return e}}}return f} +function stb(a,b){var c,d,e,f,g;f=a.b.Ce(b);d=(c=a.a.get(f),c==null?$C(jJ,rve,1,0,5,1):c);for(g=0;g>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Uib(a);if(e>16)),15).dd(f);if(h0){!(Dmd(a.a.c)&&b.n.d)&&!(Emd(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(Dmd(a.a.c)&&b.n.a)&&!(Emd(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function c7b(a){var b,c,d,e,f;e=new bnb;f=d7b(a,e);b=RD(mQb(a,(Ywc(),Iwc)),10);if(b){for(d=new Anb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?exe:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?exe:0;f=d?dxe:0;e=c>>b-44}return hD(e&dxe,f&dxe,g&exe)} +function ORb(a){var b,c,d,e,f,g;this.c=new bnb;this.d=a;d=oxe;e=oxe;b=pxe;c=pxe;for(g=Sub(a,0);g.b!=g.d.c;){f=RD(evb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new Uid(d,e,b-d,c-e)} +function Udc(a,b){var c,d,e,f,g,h;for(f=new Anb(a.b);f.a0&&ZD(b,44)){a.a._j();j=RD(b,44);i=j.ld();f=i==null?0:tb(i);g=bOd(a.a,f);c=a.a.d[g];if(c){d=RD(c.g,379);k=c.i;for(h=0;h=2){c=e.Kc();b=UD(c.Pb());while(c.Ob()){f=b;b=UD(c.Pb());d=$wnd.Math.min(d,(uFb(b),b)-(uFb(f),f))}}return d} +function iWc(a,b){var c,d,e;e=new bnb;for(d=Sub(b.a,0);d.b!=d.d.c;){c=RD(evb(d),65);c.b.g==a.g&&!lhb(c.b.c,IEe)&&dE(mQb(c.b,(h_c(),f_c)))!==dE(mQb(c.c,f_c))&&!yDb(new SDb(null,new Swb(e,16)),new OWc(c))&&(ZEb(e.c,c),true)}_mb(e,new QWc);return e} +function $u(a,b){var c,d,e;if(dE(b)===dE(Qb(a))){return true}if(!ZD(b,15)){return false}d=RD(b,15);e=a.gc();if(e!=d.gc()){return false}if(ZD(d,59)){for(c=0;c0&&(e=c);for(g=new Anb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new Ptd(sgb(b),sgb(c))} +function nNc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(sNc(),rNc)&&b.d==qNc){return -1}else if(a.d==qNc&&b.d==rNc){return 1}return 0} +function ARc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=lQc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} +function X9c(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new Anb(a.c);l.a>24}return g} +function Bfb(a){if(a.ze()){var b=a.c;b.Ae()?(a.o='['+b.n):!b.ze()?(a.o='[L'+b.xe()+';'):(a.o='['+b.xe());a.b=b.we()+'[]';a.k=b.ye()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=Efb('.',[c,Efb('$',d)]);a.b=Efb('.',[c,Efb('.',d)]);a.k=d[d.length-1]} +function hJb(a,b){var c,d,e,f,g;g=null;for(f=new Anb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function nKc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} +function awd(a){var b,c;c=new dib(nfb(a.Rm));c.a+='@';Zhb(c,(b=tb(a)>>>0,b.toString(16)));if(a.Vh()){c.a+=' (eProxyURI: ';Yhb(c,a._h());if(a.Kh()){c.a+=' eClass: ';Yhb(c,a.Kh())}c.a+=')'}else if(a.Kh()){c.a+=' (eClass: ';Yhb(c,a.Kh());c.a+=')'}return c.a} +function KGb(a){var b,c,d,e;if(a.e){throw Adb(new dgb((lfb(lN),lye+lN.k+mye)))}a.d==(Cmd(),Amd)&&JGb(a,ymd);for(c=new Anb(a.a.a);c.a>24}return c} +function cNb(a,b,c){var d,e,f;e=RD(Vrb(a.i,b),314);if(!e){e=new UKb(a.d,b,c);Wrb(a.i,b,e);if(jMb(b)){tKb(a.a,b.c,b.b,e)}else{f=iMb(b);d=RD(Vrb(a.p,f),252);switch(f.g){case 1:case 3:e.j=true;cLb(d,b.b,e);break;case 4:case 2:e.k=true;cLb(d,b.c,e);}}}return e} +function Ndc(a,b){var c,d,e,f,g,h,i,j,k;i=ev(a.c-a.b&a.a.length-1);j=null;k=null;for(f=new Kmb(a);f.a!=f.b;){e=RD(Imb(f),10);c=(h=RD(mQb(e,(Ywc(),vwc)),12),!h?null:h.i);d=(g=RD(mQb(e,wwc),12),!g?null:g.i);if(j!=c||k!=d){Rdc(i,b);j=c;k=d}ZEb(i.c,e)}Rdc(i,b)} +function Rge(a,b,c,d){var e,f,g,h,i,j;h=new YHd;i=pke(a.e.Dh(),b);e=RD(a.g,124);nke();if(RD(b,69).xk()){for(g=0;g=0){return e}else{f=1;for(h=new Anb(b.j);h.a=0){return e}else{f=1;for(h=new Anb(b.j);h.a0&&b.Ne((tFb(e-1,a.c.length),RD(a.c[e-1],10)),f)>0){$mb(a,e,(tFb(e-1,a.c.length),RD(a.c[e-1],10)));--e}tFb(e,a.c.length);a.c[e]=f}c.a=new Tsb;c.b=new Tsb} +function yhd(a,b,c){var d,e,f,g,h,i,j,k;k=(d=RD(b.e&&b.e(),9),new Fsb(d,RD(WEb(d,d.length),9),0));i=vhb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g=0){if(!b){b=new Rhb;d>0&&Nhb(b,(AFb(0,d,a.length),a.substr(0,d)))}b.a+='\\';Jhb(b,c&Bwe)}else !!b&&Jhb(b,c&Bwe)}return b?b.a:a} +function MYb(a){var b,c,d;for(c=new Anb(a.a.a.b);c.a0){!(Dmd(a.a.c)&&b.n.d)&&!(Emd(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(Dmd(a.a.c)&&b.n.a)&&!(Emd(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Ydc(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(qpd(),Yod)||b==Xod){Odc(RD(omb(a),15),(Pnd(),Lnd));Odc(RD(omb(a),15),Mnd)}else{Odc(RD(omb(a),15),(Pnd(),Mnd));Odc(RD(omb(a),15),Lnd)}}else{for(e=new Kmb(a);e.a!=e.b;){d=RD(Imb(e),15);Odc(d,c)}}} +function HGd(a,b){var c,d,e,f,g,h,i;e=cv(new QGd(a));h=new Jkb(e,e.c.length);f=cv(new QGd(b));i=new Jkb(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sFb(h.b>0),RD(h.a.Xb(h.c=--h.b),27));d=(sFb(i.b>0),RD(i.a.Xb(i.c=--i.b),27));if(c==d){g=c}else{break}}return g} +function Dmc(a,b,c){var d,e,f,g;if(Hmc(a,b)>Hmc(a,c)){d=b3b(c,(qpd(),Xod));a.d=d.dc()?0:L3b(RD(d.Xb(0),12));g=b3b(b,ppd);a.b=g.dc()?0:L3b(RD(g.Xb(0),12))}else{e=b3b(c,(qpd(),ppd));a.d=e.dc()?0:L3b(RD(e.Xb(0),12));f=b3b(b,Xod);a.b=f.dc()?0:L3b(RD(f.Xb(0),12))}} +function wNb(a,b){var c,d,e,f;c=a.o.a;for(f=RD(RD(Qc(a.r,b),21),87).Kc();f.Ob();){e=RD(f.Pb(),117);e.e.a=c*Kfb(UD(e.b.of(sNb)));e.e.b=(d=e.b,d.pf((umd(),Gld))?d.ag()==(qpd(),Yod)?-d.Mf().b-Kfb(UD(d.of(Gld))):Kfb(UD(d.of(Gld))):d.ag()==(qpd(),Yod)?-d.Mf().b:0)}} +function Mhc(a,b){var c,d,e,f;b.Ug('Self-Loop pre-processing',1);for(d=new Anb(a.a);d.aa.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=lTc(a,b,f,h);i=yTc((tFb(d,b.c.length),RD(b.c[d],339)));wTc(b,d,c)}return i} +function _Ad(a,b,c){var d,e,f,g,h,i,j;g=(f=new pVd,f);nVd(g,(uFb(b),b));j=(!g.b&&(g.b=new SVd((JTd(),FTd),C8,g)),g.b);for(i=1;i0&&ASb(this,e)}} +function zTb(a,b,c,d,e,f){var g,h,i;if(!e[b.a]){e[b.a]=true;g=d;!g&&(g=new gUb);Rmb(g.e,b);for(i=f[b.a].Kc();i.Ob();){h=RD(i.Pb(),290);if(h.d==c||h.c==c){continue}h.c!=b&&zTb(a,h.c,b,g,e,f);h.d!=b&&zTb(a,h.d,b,g,e,f);Rmb(g.c,h);Tmb(g.d,h.b)}return g}return null} +function v7b(a){var b,c,d,e,f,g,h;b=0;for(e=new Anb(a.e);e.a=2} +function _qc(a,b,c,d,e){var f,g,h,i,j,k;f=a.c.d.j;g=RD(ju(c,0),8);for(k=1;k1){return false}b=ysb(Xnd,cD(WC(A3,1),jwe,95,0,[Wnd,Znd]));if(dy(Tx(b,a))>1){return false}d=ysb(cod,cD(WC(A3,1),jwe,95,0,[bod,aod]));if(dy(Tx(d,a))>1){return false}return true} +function $Uc(a,b,c){var d,e,f;for(f=new Anb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Mub(b,d.b)}}for(e=new Anb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Mub(c,d.a)}}} +function tId(a){var b,c,d,e,f;if(a.g==null){a.d=a.bj(a.f);WGd(a,a.d);if(a.c){f=a.f;return f}}b=RD(a.g[a.i-1],51);e=b.Pb();a.e=b;c=a.bj(e);if(c.Ob()){a.d=c;WGd(a,c)}else{a.d=null;while(!b.Ob()){bD(a.g,--a.i,null);if(a.i==0){break}d=RD(a.g[a.i-1],51);b=d}}return e} +function Rfe(a,b){var c,d,e,f,g,h;d=b;e=d.Lk();if(qke(a.e,e)){if(e.Si()&&cge(a,e,d.md())){return false}}else{h=pke(a.e.Dh(),e);c=RD(a.g,124);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function Kwb(a,b){var c,d,e,f,g,h;f=a.a*Mxe+a.b*1502;h=a.b*Mxe+11;c=$wnd.Math.floor(h*Nxe);f+=c;h-=c*Oxe;f%=Oxe;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*Ewb[b])}else{e=a.a*(1<=2147483648&&(d-=4294967296);return d}} +function uSc(a,b,c){var d,e,f,g,h,i,j;f=new bnb;j=new Yub;g=new Yub;vSc(a,j,g,b);tSc(a,j,g,b,c);for(i=new Anb(a);i.ad.b.g&&(ZEb(f.c,d),true)}}return f} +function jed(a,b,c){var d,e,f,g,h,i;h=a.c;for(g=(!c.q?(yob(),yob(),wob):c.q).vc().Kc();g.Ob();){f=RD(g.Pb(),44);d=!QDb(CDb(new SDb(null,new Swb(h,16)),new PAb(new xed(b,f)))).Bd((xDb(),wDb));if(d){i=f.md();if(ZD(i,4)){e=FId(i);e!=null&&(i=e)}b.qf(RD(f.ld(),149),i)}}} +function mbd(a,b,c){var d,e;Sed(a.b);Ved(a.b,(gbd(),dbd),(_cd(),$cd));Ved(a.b,ebd,b.g);Ved(a.b,fbd,b.a);a.a=Qed(a.b,b);c.Ug('Compaction by shrinking a tree',a.a.c.length);if(b.i.c.length>1){for(e=new Anb(a.a);e.a=0?a.Lh(d,true,true):Qvd(a,f,true),160));RD(e,220).Xl(b,c)}else{throw Adb(new agb(KHe+b.xe()+LHe))}} +function k2d(a,b){var c,d,e,f,g;if(!b){return null}else{f=ZD(a.Cb,90)||ZD(a.Cb,102);g=!f&&ZD(a.Cb,331);for(d=new dMd((!b.a&&(b.a=new iae(b,o7,b)),b.a));d.e!=d.i.gc();){c=RD(bMd(d),89);e=i2d(c);if(f?ZD(e,90):g?ZD(e,156):!!e){return e}}return f?(JTd(),zTd):(JTd(),wTd)}} +function W8b(a,b){var c,d,e,f;b.Ug('Resize child graph to fit parent.',1);for(d=new Anb(a.b);d.a=2*b&&Rmb(c,new BTc(g[d-1]+b,g[d]-b))}return c} +function dEd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new vue(f);for(h=(d.b-d.a)*d.c<0?(uue(),tue):new Rue(d);h.Ob();){g=RD(h.Pb(),17);e=xDd(c,g.a);!!e&&(i=null,j=sEd(a,(k=(bvd(),l=new PCd,l),!!b&&NCd(k,b),k),e),jyd(j,zDd(e,uIe)),GEd(e,j),HEd(e,j),CEd(a,e,j))}}} +function sYd(a){var b,c,d,e,f,g;if(!a.j){g=new f1d;b=iYd;f=b.a.zc(a,b);if(f==null){for(d=new dMd(zYd(a));d.e!=d.i.gc();){c=RD(bMd(d),29);e=sYd(c);YGd(g,e);WGd(g,c)}b.a.Bc(a)!=null}VHd(g);a.j=new N$d((RD(QHd(xYd((lTd(),kTd).o),11),19),g.i),g.g);yYd(a).b&=-33}return a.j} +function lne(a){var b,c,d,e;if(a==null){return null}else{d=nue(a,true);e=mLe.length;if(lhb(d.substr(d.length-e,e),mLe)){c=d.length;if(c==4){b=(BFb(0,d.length),d.charCodeAt(0));if(b==43){return Yme}else if(b==45){return Xme}}else if(c==3){return Yme}}return new Ufb(d)}} +function pD(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ogb(c)}if(b==0&&d!=0&&c==0){return ogb(d)+22}if(b!=0&&d==0&&c==0){return ogb(b)+44}return -1} +function yo(a,b){var c,d,e,f,g;e=b.a&a.f;f=null;for(d=a.b[e];true;d=d.b){if(d==b){!f?(a.b[e]=b.b):(f.b=b.b);break}f=d}g=b.f&a.f;f=null;for(c=a.c[g];true;c=c.d){if(c==b){!f?(a.c[g]=b.d):(f.d=b.d);break}f=c}!b.e?(a.a=b.c):(b.e.c=b.c);!b.c?(a.e=b.e):(b.c.e=b.e);--a.i;++a.g} +function Dt(a,b){var c;b.d?(b.d.b=b.b):(a.a=b.b);b.b?(b.b.d=b.d):(a.e=b.d);if(!b.e&&!b.c){c=RD(Hvb(RD(_jb(a.b,b.a),260)),260);c.a=0;++a.c}else{c=RD(Hvb(RD(Wjb(a.b,b.a),260)),260);--c.a;!b.e?(c.b=RD(Hvb(b.c),511)):(b.e.c=b.c);!b.c?(c.c=RD(Hvb(b.e),511)):(b.c.e=b.e)}--a.d} +function XPb(a){var b,c,d,e,f,g,h,i,j,k;c=a.o;b=a.p;g=lve;e=qwe;h=lve;f=qwe;for(j=0;j0);f.a.Xb(f.c=--f.b);Ikb(f,e);sFb(f.b3&&UA(a,0,b-3)}} +function eXb(a){var b,c,d,e;if(dE(mQb(a,(yCc(),IAc)))===dE((Fnd(),Cnd))){return !a.e&&dE(mQb(a,gAc))!==dE((xvc(),uvc))}d=RD(mQb(a,hAc),299);e=Heb(TD(mQb(a,nAc)))||dE(mQb(a,oAc))===dE((stc(),ptc));b=RD(mQb(a,fAc),17).a;c=a.a.c.length;return !e&&d!=(xvc(),uvc)&&(b==0||b>c)} +function Rnc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+Qzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Czd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,6,d));d=Bzd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,6,b,b))} +function pzd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+qzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?jzd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,12,d));d=izd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,b,b))} +function NCd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+OCd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?LCd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,9,d));d=KCd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,9,b,b))} +function tWd(b){var c,d,e,f,g;e=WVd(b);g=b.j;if(g==null&&!!e){return b.Jk()?null:e.ik()}else if(ZD(e,156)){d=e.jk();if(d){f=d.wi();if(f!=b.i){c=RD(e,156);if(c.nk()){try{b.g=f.ti(c,g)}catch(a){a=zdb(a);if(ZD(a,82)){b.g=null}else throw Adb(a)}}b.i=f}}return b.g}return null} +function nRb(a){var b;b=new bnb;Rmb(b,new TFb(new rjd(a.c,a.d),new rjd(a.c+a.b,a.d)));Rmb(b,new TFb(new rjd(a.c,a.d),new rjd(a.c,a.d+a.a)));Rmb(b,new TFb(new rjd(a.c+a.b,a.d+a.a),new rjd(a.c+a.b,a.d)));Rmb(b,new TFb(new rjd(a.c+a.b,a.d+a.a),new rjd(a.c,a.d+a.a)));return b} +function ic(b){var c,d,e;if(b==null){return vve}try{return jeb(b)}catch(a){a=zdb(a);if(ZD(a,103)){c=a;e=nfb(rb(b))+'@'+(d=(gib(),jFb(b))>>>0,d.toString(16));lBb(pBb(),(SAb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+nfb(c.Rm)+'>'}else throw Adb(a)}} +function mTb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=RD(f.Pb(),74);d=RD(Wjb(a.b,e),272);!d&&(vCd(JGd(e))==vCd(LGd(e))?lTb(a,e,c):JGd(e)==vCd(LGd(e))?Wjb(a.c,e)==null&&Wjb(a.b,LGd(e))!=null&&oTb(a,e,c,false):Wjb(a.d,e)==null&&Wjb(a.b,JGd(e))!=null&&oTb(a,e,c,true))}} +function Pfc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=RD(e.Pb(),10);h=new R3b;P3b(h,d);Q3b(h,(qpd(),Xod));pQb(h,(Ywc(),Hwc),(Geb(),true));for(g=b.Kc();g.Ob();){f=RD(g.Pb(),10);i=new R3b;P3b(i,f);Q3b(i,ppd);pQb(i,Hwc,true);c=new a1b;pQb(c,Hwc,true);Y0b(c,h);Z0b(c,i)}}} +function Pqc(a,b,c,d){var e,f,g,h;e=Nqc(a,b,c);f=Nqc(a,c,b);g=RD(Wjb(a.c,b),118);h=RD(Wjb(a.c,c),118);if(e1){b=eJb((c=new gJb,++a.b,c),a.d);for(h=Sub(f,0);h.b!=h.d.c;){g=RD(evb(h),125);rIb(uIb(tIb(vIb(sIb(new wIb,1),0),b),g))}}} +function isc(a,b,c){var d,e,f,g,h;c.Ug('Breaking Point Removing',1);a.a=RD(mQb(b,(yCc(),yAc)),223);for(f=new Anb(b.b);f.a>16!=11&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+zCd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?sCd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,10,d));d=rCd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,11,b,b))} +function C0b(a){var b,c,d,e;for(d=new vkb((new mkb(a.b)).a);d.b;){c=tkb(d);e=RD(c.ld(),12);b=RD(c.md(),10);pQb(b,(Ywc(),Awc),e);pQb(e,Iwc,b);pQb(e,nwc,(Geb(),true));Q3b(e,RD(mQb(b,hwc),64));mQb(b,hwc);pQb(e.i,(yCc(),BBc),(Bod(),yod));RD(mQb(Y2b(e.i),kwc),21).Fc((ovc(),kvc))}} +function X7b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new Anb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=$C(D6,KJe,66,2*i+4,0,1);for(f=0;f=9223372036854775807){return MD(),ID}e=false;if(a<0){e=true;a=-a}d=0;if(a>=hxe){d=eE(a/hxe);a-=d*hxe}c=0;if(a>=gxe){c=eE(a/gxe);a-=c*gxe}b=eE(a);f=hD(b,c,d);e&&nD(f);return f} +function KCb(a){var b,c,d,e,f;f=new bnb;Umb(a.b,new SEb(f));a.b.c.length=0;if(f.c.length!=0){b=(tFb(0,f.c.length),RD(f.c[0],82));for(c=1,d=f.c.length;c=-b&&d==b){return new Ptd(sgb(c-1),sgb(d))}return new Ptd(sgb(c),sgb(d-1))} +function lcc(){hcc();return cD(WC(YS,1),jwe,81,0,[nbc,kbc,obc,Ebc,Xbc,Ibc,bcc,Nbc,Vbc,zbc,Rbc,Mbc,Wbc,vbc,dcc,ebc,Qbc,Zbc,Fbc,Ybc,fcc,Tbc,fbc,Ubc,gcc,_bc,ecc,Gbc,sbc,Hbc,Dbc,ccc,ibc,qbc,Kbc,hbc,Lbc,Bbc,wbc,Obc,ybc,lbc,jbc,Cbc,xbc,Pbc,acc,gbc,Sbc,Abc,Jbc,tbc,rbc,$bc,pbc,ubc,mbc])} +function Cmc(a,b,c){a.d=0;a.b=0;b.k==(r3b(),q3b)&&c.k==q3b&&RD(mQb(b,(Ywc(),Awc)),10)==RD(mQb(c,Awc),10)&&(Gmc(b).j==(qpd(),Yod)?Dmc(a,b,c):Dmc(a,c,b));b.k==q3b&&c.k==o3b?Gmc(b).j==(qpd(),Yod)?(a.d=1):(a.b=1):c.k==q3b&&b.k==o3b&&(Gmc(c).j==(qpd(),Yod)?(a.b=1):(a.d=1));Imc(a,b,c)} +function EFd(a){var b,c,d,e,f,g,h,i,j,k,l;l=HFd(a);b=a.a;i=b!=null;i&&sDd(l,'category',a.a);e=cve(new Xkb(a.d));g=!e;if(g){j=new MB;sC(l,'knownOptions',j);c=new MFd(j);xgb(new Xkb(a.d),c)}f=cve(a.g);h=!f;if(h){k=new MB;sC(l,'supportedFeatures',k);d=new OFd(k);xgb(a.g,d)}return l} +function Ly(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new hq(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+gCd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cCd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=RD(b,54).Rh(a,1,H4,d));d=bCd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,7,b,b))} +function lVd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+oVd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?iVd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=RD(b,54).Rh(a,0,p7,d));d=hVd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,b,b))} +function Mjb(a,b){Ljb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Qjb(a,b)}g=(a.d&-2)<<4;j=$ib(a,g);k=$ib(b,g);d=Gjb(a,Zib(j,g));e=Gjb(b,Zib(k,g));i=Mjb(j,k);c=Mjb(d,e);f=Mjb(Gjb(j,d),Gjb(e,k));f=Bjb(Bjb(f,i),c);f=Zib(f,g);i=Zib(i,g<<1);return Bjb(Bjb(i,f),c)} +function _Cc(){_Cc=geb;ZCc=new bDc(lEe,0);WCc=new bDc('LONGEST_PATH',1);XCc=new bDc('LONGEST_PATH_SOURCE',2);TCc=new bDc('COFFMAN_GRAHAM',3);VCc=new bDc(BBe,4);$Cc=new bDc('STRETCH_WIDTH',5);YCc=new bDc('MIN_WIDTH',6);SCc=new bDc('BF_MODEL_ORDER',7);UCc=new bDc('DF_MODEL_ORDER',8)} +function AKc(a,b,c){var d,e,f,g,h;g=aMc(a,c);h=$C(jR,WAe,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=RD(f.Pb(),12);Heb(TD(mQb(e,(Ywc(),nwc))))&&(h[d++]=RD(mQb(e,Iwc),10))}if(d=0;f+=c?1:-1){g=g|b.c.lg(i,f,c,d&&!Heb(TD(mQb(b.j,(Ywc(),jwc))))&&!Heb(TD(mQb(b.j,(Ywc(),Owc)))));g=g|b.q.ug(i,f,c);g=g|CKc(a,i[f],c,d)}Ysb(a.c,b);return g} +function F6b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=u2b(a.j),l=0,m=k.length;l1&&(a.a=true);QQb(RD(c.b,68),$id(ajd(RD(b.b,68).c),ijd(ojd(ajd(RD(c.b,68).a),RD(b.b,68).a),e)));Odd(a,b);Qdd(a,c)}} +function tYb(a){var b,c,d,e,f,g,h;for(f=new Anb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}yob();_mb(a.j,new Lfc)} +function zic(a){var b,c;c=null;b=RD(Vmb(a.g,0),18);do{c=b.d.i;if(nQb(c,(Ywc(),wwc))){return RD(mQb(c,wwc),12).i}if(c.k!=(r3b(),p3b)&&gs(new is(Mr(a3b(c).a.Kc(),new ir)))){b=RD(hs(new is(Mr(a3b(c).a.Kc(),new ir))),18)}else if(c.k!=p3b){return null}}while(!!c&&c.k!=(r3b(),p3b));return c} +function sqc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=RD(Vmb(h,h.c.length-1),113);k=(tFb(0,h.c.length),RD(h.c[0],113));j=oqc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function fMc(a,b,c){var d,e,f,g,h,i,j;j=new yAb(new TMc(a));for(g=cD(WC(xR,1),XAe,12,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0){if(f.a){h=f.b.Mf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(Rod(a.u)){d=wsd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.Mf().a&&(f.d.c=d.c+d.b-f.b.Mf().a)}}} +function RUc(a,b){var c,d,e,f,g;g=new bnb;c=b;do{f=RD(Wjb(a.b,c),131);f.B=c.c;f.D=c.d;ZEb(g.c,f);c=RD(Wjb(a.k,c),18)}while(c);d=(tFb(0,g.c.length),RD(g.c[0],131));d.j=true;d.A=RD(d.d.a.ec().Kc().Pb(),18).c.i;e=RD(Vmb(g,g.c.length-1),131);e.q=true;e.C=RD(e.d.a.ec().Kc().Pb(),18).d.i;return g} +function pPb(a){var b,c;b=RD(a.a,17).a;c=RD(a.b,17).a;if(b>=0){if(b==c){return new Ptd(sgb(-b-1),sgb(-b-1))}if(b==-c){return new Ptd(sgb(-b),sgb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new Ptd(sgb(-b),sgb(c))}return new Ptd(sgb(-b),sgb(c+1))}return new Ptd(sgb(b+1),sgb(c))} +function H8b(a){var b,c;c=RD(mQb(a,(yCc(),UAc)),171);b=RD(mQb(a,(Ywc(),owc)),311);if(c==(cxc(),$wc)){pQb(a,UAc,bxc);pQb(a,owc,(Gvc(),Fvc))}else if(c==axc){pQb(a,UAc,bxc);pQb(a,owc,(Gvc(),Dvc))}else if(b==(Gvc(),Fvc)){pQb(a,UAc,$wc);pQb(a,owc,Evc)}else if(b==Dvc){pQb(a,UAc,axc);pQb(a,owc,Evc)}} +function dSc(){dSc=geb;bSc=new pSc;ZRc=pfd(new ufd,(sXb(),pXb),(hcc(),Fbc));aSc=nfd(pfd(new ufd,pXb,Tbc),rXb,Sbc);cSc=mfd(mfd(rfd(nfd(pfd(new ufd,nXb,bcc),rXb,acc),qXb),_bc),ccc);$Rc=nfd(pfd(pfd(pfd(new ufd,oXb,Ibc),qXb,Kbc),qXb,Lbc),rXb,Jbc);_Rc=nfd(pfd(pfd(new ufd,qXb,Lbc),qXb,qbc),rXb,pbc)} +function HUc(){HUc=geb;CUc=pfd(nfd(new ufd,(sXb(),rXb),(hcc(),tbc)),pXb,Fbc);GUc=mfd(mfd(rfd(nfd(pfd(new ufd,nXb,bcc),rXb,acc),qXb),_bc),ccc);DUc=nfd(pfd(pfd(pfd(new ufd,oXb,Ibc),qXb,Kbc),qXb,Lbc),rXb,Jbc);FUc=pfd(pfd(new ufd,pXb,Tbc),rXb,Sbc);EUc=nfd(pfd(pfd(new ufd,qXb,Lbc),qXb,qbc),rXb,pbc)} +function eSc(a,b,c,d,e){var f,g;if((!W0b(b)&&b.c.i.c==b.d.i.c||!djd(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])),c))&&!W0b(b)){b.c==e?hu(b.a,0,new sjd(c)):Mub(b.a,new sjd(c));if(d&&!Zsb(a.a,c)){g=RD(mQb(b,(yCc(),RAc)),75);if(!g){g=new Ejd;pQb(b,RAc,g)}f=new sjd(c);Pub(g,f,g.c.b,g.c);Ysb(a.a,f)}}} +function ht(a,b){var c,d,e,f;f=Ydb(Ndb(cwe,qgb(Ydb(Ndb(b==null?0:tb(b),dwe)),15)));c=f&a.b.length-1;e=null;for(d=a.b[c];d;e=d,d=d.a){if(d.d==f&&Hb(d.i,b)){!e?(a.b[c]=d.a):(e.a=d.a);Ts(RD(Hvb(d.c),604),RD(Hvb(d.f),604));Ss(RD(Hvb(d.b),227),RD(Hvb(d.e),227));--a.f;++a.e;return true}}return false} +function dec(a){var b,c;for(c=new is(Mr(Z2b(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),18);if(b.c.i.k!=(r3b(),n3b)){throw Adb(new Jed(nBe+X2b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function Twd(a,b,c){var d,e,f,g,h,i,j;e=ggb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=$C(jJ,rve,1,2,5,1);f=Xwd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=$C(jJ,rve,1,e+1,5,1);g=SD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function vQb(a,b,c){var d,e,f,g;this.b=new bnb;e=0;d=0;for(g=new Anb(a);g.a0){f=RD(Vmb(this.b,0),176);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=eE($wnd.Math.ceil(e*b))):(d=eE($wnd.Math.ceil(d/b)));this.a=new gQb(e,d)} +function mkc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=RD(Wjb(a.f,b.A),60);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=RD(Wjb(a.f,c.C),60);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(qpd(),Xod)?e?b3b(h,d):hv(b3b(h,d)):e?hv(b3b(h,d)):b3b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=RD(l.Pb(),12);a.d[k.p]=j++}Tmb(c,i)}} +function AUc(a,b,c){var d,e,f,g,h,i,j,k;f=Kfb(UD(a.b.Kc().Pb()));j=Kfb(UD(fr(b.b)));d=ijd(ajd(a.a),j-c);e=ijd(ajd(b.a),c-f);k=$id(d,e);ijd(k,1/(j-f));this.a=k;this.b=new bnb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Kfb(UD(g.Pb()));if(h&&i-c>AEe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function mJb(a){var b,c,d,e;pJb(a,a.n);if(a.d.c.length>0){Nnb(a.c);while(xJb(a,RD(ynb(new Anb(a.e.a)),125))>5;b&=31;if(d>=a.d){return a.e<0?(Pib(),Jib):(Pib(),Oib)}f=a.d-d;e=$C(kE,Pwe,28,f+1,15,1);ujb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=Eee((lke(),jke),e,b);if(!c){return true}else{d=c.Ik();return (d>1||d==-1)&&yfe(Qee(jke,c))!=3}}}}else{return false}} +function _4b(a,b,c,d){var e,f,g,h,i;h=AGd(RD(QHd((!b.b&&(b.b=new Yie(E4,b,4,7)),b.b),0),84));i=AGd(RD(QHd((!b.c&&(b.c=new Yie(E4,b,5,8)),b.c),0),84));if(vCd(h)==vCd(i)){return null}if(NGd(i,h)){return null}g=kzd(b);if(g==c){return d}else{f=RD(Wjb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function uHc(a,b,c){var d,e,f,g,h;c.Ug('Longest path to source layering',1);a.a=b;h=a.a.a;a.b=$C(kE,Pwe,28,h.c.length,15,1);d=0;for(g=new Anb(h);g.a0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);mKb(a,XJb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==XJb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function D_b(){this.c=$C(iE,vxe,28,(qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])).length,15,1);this.b=$C(iE,vxe,28,cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd]).length,15,1);this.a=$C(iE,vxe,28,cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd]).length,15,1);Lnb(this.c,oxe);Lnb(this.b,pxe);Lnb(this.a,pxe)} +function rte(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=$C(kE,Pwe,28,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=$C(kE,Pwe,28,d+2,15,1);hib(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||vte(a)}} +function Oqc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new cnb(j.c.length);a.c=new Tsb;for(h=new Anb(j);h.a=0?a.Lh(j,false,true):Qvd(a,c,false),61));n:for(f=l.Kc();f.Ob();){e=RD(f.Pb(),58);for(k=0;k1){vLd(e,e.i-1)}}return d}} +function Vdc(a,b){var c,d,e,f,g,h,i;c=new wmb;for(f=new Anb(a.b);f.aa.d[g.p]){c+=ZLc(a.b,f);hmb(a.a,sgb(f))}}while(!nmb(a.a)){XLc(a.b,RD(smb(a.a),17).a)}}return c} +function Uec(a){var b,c,d,e,f,g,h,i,j;a.a=new e6b;j=0;e=0;for(d=new Anb(a.i.b);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function ovc(){ovc=geb;fvc=new pvc('COMMENTS',0);hvc=new pvc('EXTERNAL_PORTS',1);ivc=new pvc('HYPEREDGES',2);jvc=new pvc('HYPERNODES',3);kvc=new pvc('NON_FREE_PORTS',4);lvc=new pvc('NORTH_SOUTH_PORTS',5);nvc=new pvc(FBe,6);evc=new pvc('CENTER_LABELS',7);gvc=new pvc('END_LABELS',8);mvc=new pvc('PARTITIONS',9)} +function PA(a,b,c,d,e){if(d<0){d=EA(a,e,cD(WC(qJ,1),Nve,2,6,[Cwe,Dwe,Ewe,Fwe,Gwe,Hwe,Iwe,Jwe,Kwe,Lwe,Mwe,Nwe]),b);d<0&&(d=EA(a,e,cD(WC(qJ,1),Nve,2,6,['Jan','Feb','Mar','Apr',Gwe,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function RA(a,b,c,d,e){if(d<0){d=EA(a,e,cD(WC(qJ,1),Nve,2,6,[Cwe,Dwe,Ewe,Fwe,Gwe,Hwe,Iwe,Jwe,Kwe,Lwe,Mwe,Nwe]),b);d<0&&(d=EA(a,e,cD(WC(qJ,1),Nve,2,6,['Jan','Feb','Mar','Apr',Gwe,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function TA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=ihb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=HA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new uB;j=i.q.getFullYear()-Owe+Owe-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=0?jjb(a):Xib(jjb(Odb(a))));Kjb[b]=Jdb(Sdb(a,b),0)?jjb(Sdb(a,b)):Xib(jjb(Odb(Sdb(a,b))));a=Ndb(a,5)}for(;b=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function SNb(a){var b,c,d,e,f,g,h;f=new yAb(RD(Qb(new eOb),50));h=pxe;for(c=new Anb(a.d);c.aFFe?_mb(i,a.b):d<=FFe&&d>GFe?_mb(i,a.d):d<=GFe&&d>HFe?_mb(i,a.c):d<=HFe&&_mb(i,a.a);f=$5c(a,i,f)}return e} +function sTc(a,b,c,d){var e,f,g,h,i,j;e=(d.c+d.a)/2;Xub(b.j);Mub(b.j,e);Xub(c.e);Mub(c.e,e);j=new ATc;for(h=new Anb(a.f);h.a1;if(h){d=new rjd(e,c.b);Mub(b.a,d)}zjd(b.a,cD(WC(l3,1),Nve,8,0,[m,l]))} +function TGc(a,b,c){var d,e;if(b=48;c--){Eqe[c]=c-48<<24>>24}for(d=70;d>=65;d--){Eqe[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){Eqe[e]=e-97+10<<24>>24}for(f=0;f<10;f++)Fqe[f]=48+f&Bwe;for(a=10;a<=15;a++)Fqe[a]=65+a-10&Bwe} +function yYc(a,b){b.Ug('Process graph bounds',1);pQb(a,(q$c(),ZZc),Uvb(TCb(HDb(new SDb(null,new Swb(a.b,16)),new DYc))));pQb(a,_Zc,Uvb(TCb(HDb(new SDb(null,new Swb(a.b,16)),new FYc))));pQb(a,YZc,Uvb(SCb(HDb(new SDb(null,new Swb(a.b,16)),new HYc))));pQb(a,$Zc,Uvb(SCb(HDb(new SDb(null,new Swb(a.b,16)),new JYc))));b.Vg()} +function PWb(a){var b,c,d,e,f;e=RD(mQb(a,(yCc(),lBc)),21);f=RD(mQb(a,oBc),21);c=new rjd(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new sjd(c);if(e.Hc((Qpd(),Mpd))){d=RD(mQb(a,nBc),8);if(f.Hc((dqd(),Ypd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}Heb(TD(mQb(a,mBc)))||QWb(a,c,b)} +function lOc(a,b){var c,d,e,f;for(f=b3b(b,(qpd(),npd)).Kc();f.Ob();){d=RD(f.Pb(),12);c=RD(mQb(d,(Ywc(),Iwc)),10);!!c&&rIb(uIb(tIb(vIb(sIb(new wIb,0),0.1),a.i[b.p].d),a.i[c.p].a))}for(e=b3b(b,Yod).Kc();e.Ob();){d=RD(e.Pb(),12);c=RD(mQb(d,(Ywc(),Iwc)),10);!!c&&rIb(uIb(tIb(vIb(sIb(new wIb,0),0.1),a.i[c.p].d),a.i[b.p].a))}} +function oYd(a){var b,c,d,e,f,g;if(!a.c){g=new W$d;b=iYd;f=b.a.zc(a,b);if(f==null){for(d=new dMd(tYd(a));d.e!=d.i.gc();){c=RD(bMd(d),89);e=i2d(c);ZD(e,90)&&YGd(g,oYd(RD(e,29)));WGd(g,c)}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}T$d(g);VHd(g);a.c=new N$d((RD(QHd(xYd((lTd(),kTd).o),15),19),g.i),g.g);yYd(a).b&=-33}return a.c} +function Dre(a){var b;if(a.c!=10)throw Adb(new Lqe(TId((Hde(),VIe))));b=a.a;switch(b){case 110:b=10;break;case 114:b=13;break;case 116:b=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw Adb(new Lqe(TId((Hde(),xJe))));}return b} +function GD(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return '0'}if(a.h==fxe&&a.m==0&&a.l==0){return '-9223372036854775808'}if(a.h>>19!=0){return '-'+GD(xD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=fD(ixe);c=iD(c,e,true);b=''+FD(eD);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function tkc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new Anb(a.d.b);e.a=a.a){return -1}if(!W9b(b,c)){return -1}if(gr(RD(d.Kb(b),20))){return 1}e=0;for(g=RD(d.Kb(b),20).Kc();g.Ob();){f=RD(g.Pb(),18);i=f.c.i==b?f.d.i:f.c.i;h=X9b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function _Gd(a,b){var c,d,e,f,g,h;if(dE(b)===dE(a)){return true}if(!ZD(b,15)){return false}d=RD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.Yi()){for(c=0;c0){a._j();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw Adb(new Vgb('Invalid hexadecimal'))}}} +function iIb(){iIb=geb;hIb=new jIb('SPIRAL',0);cIb=new jIb('LINE_BY_LINE',1);dIb=new jIb('MANHATTAN',2);bIb=new jIb('JITTER',3);fIb=new jIb('QUADRANTS_LINE_BY_LINE',4);gIb=new jIb('QUADRANTS_MANHATTAN',5);eIb=new jIb('QUADRANTS_JITTER',6);aIb=new jIb('COMBINE_LINE_BY_LINE_MANHATTAN',7);_Hb=new jIb('COMBINE_JITTER_MANHATTAN',8)} +function Urc(a,b,c,d){var e,f,g,h,i,j;i=Zrc(a,c);j=Zrc(b,c);e=false;while(!!i&&!!j){if(d||Xrc(i,j,c)){g=Zrc(i,c);h=Zrc(j,c);asc(b);asc(a);f=i.c;Hec(i,false);Hec(j,false);if(c){f3b(b,j.p,f);b.p=j.p;f3b(a,i.p+1,f);a.p=i.p}else{f3b(a,i.p,f);a.p=i.p;f3b(b,j.p+1,f);b.p=j.p}g3b(i,null);g3b(j,null);i=g;j=h;e=true}else{break}}return e} +function aDc(a){switch(a.g){case 0:return new XHc;case 1:return new pHc;case 3:return new GGc;case 4:return new gHc;case 5:return new jIc;case 6:return new IHc;case 2:return new xHc;case 7:return new pGc;case 8:return new YGc;default:throw Adb(new agb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function tIc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new Anb(d.j);h.a=b.length){throw Adb(new veb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new DMc(d);rMc(this.e,this.c,(qpd(),ppd));this.i=new DMc(d);rMc(this.i,this.c,Xod);this.f=new Kmc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(r3b(),m3b);this.a&&Nmc(this,a,b.length)} +function $Mb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((dqd(),Wpd));g=a.B.Hc(Zpd);a.a=new wKb(g,f,a.c);!!a.n&&C2b(a.a.n,a.n);cLb(a.g,(ZJb(),XJb),a.a);if(!b){d=new dLb(1,f,a.c);d.n.a=a.k;Wrb(a.p,(qpd(),Yod),d);e=new dLb(1,f,a.c);e.n.d=a.k;Wrb(a.p,npd,e);h=new dLb(0,f,a.c);h.n.c=a.k;Wrb(a.p,ppd,h);c=new dLb(0,f,a.c);c.n.b=a.k;Wrb(a.p,Xod,c)}} +function zkc(a){var b,c,d;b=RD(mQb(a.d,(yCc(),yAc)),223);switch(b.g){case 2:c=rkc(a);break;case 3:c=(d=new bnb,FDb(CDb(GDb(EDb(EDb(new SDb(null,new Swb(a.d.b,16)),new wlc),new ylc),new Alc),new Kkc),new Clc(d)),d);break;default:throw Adb(new dgb('Compaction not supported for '+b+' edges.'));}ykc(a,c);xgb(new Xkb(a.g),new ilc(a))} +function qYc(a,b){var c,d,e,f,g,h,i;b.Ug('Process directions',1);c=RD(mQb(a,(h_c(),H$c)),88);if(c!=(Cmd(),xmd)){for(e=Sub(a.b,0);e.b!=e.d.c;){d=RD(evb(e),40);h=RD(mQb(d,(q$c(),o$c)),17).a;i=RD(mQb(d,p$c),17).a;switch(c.g){case 4:i*=-1;break;case 1:f=h;h=i;i=f;break;case 2:g=h;h=-i;i=g;}pQb(d,o$c,sgb(h));pQb(d,p$c,sgb(i))}}b.Vg()} +function led(a,b){var c;c=new qQb;!!b&&kQb(c,RD(Wjb(a.a,H4),96));ZD(b,422)&&kQb(c,RD(Wjb(a.a,L4),96));if(ZD(b,366)){kQb(c,RD(Wjb(a.a,I4),96));return c}ZD(b,84)&&kQb(c,RD(Wjb(a.a,E4),96));if(ZD(b,207)){kQb(c,RD(Wjb(a.a,J4),96));return c}if(ZD(b,193)){kQb(c,RD(Wjb(a.a,K4),96));return c}ZD(b,326)&&kQb(c,RD(Wjb(a.a,G4),96));return c} +function a_b(a){var b,c,d,e,f,g,h,i;i=new m_b;for(h=new Anb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Rmb(c.e,b)}if(e==(r3b(),o3b)||e==q3b){for(g=new Anb(b.j);g.aa.d[h.p]){c+=ZLc(a.b,f);hmb(a.a,sgb(f))}}else{++g}}c+=a.b.d*g;while(!nmb(a.a)){XLc(a.b,RD(smb(a.a),17).a)}}return c} +function pje(a){var b,c,d,e,f,g;f=0;b=WVd(a);!!b.kk()&&(f|=4);(a.Bb&bKe)!=0&&(f|=2);if(ZD(a,102)){c=RD(a,19);e=Z5d(c);(c.Bb&QHe)!=0&&(f|=32);if(e){AYd(uWd(e));f|=8;g=e.t;(g>1||g==-1)&&(f|=16);(e.Bb&QHe)!=0&&(f|=64)}(c.Bb&txe)!=0&&(f|=cKe);f|=gwe}else{if(ZD(b,469)){f|=512}else{d=b.kk();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function vke(a,b){var c;if(a.f==tke){c=yfe(Qee((lke(),jke),b));return a.e?c==4&&b!=(Lle(),Jle)&&b!=(Lle(),Gle)&&b!=(Lle(),Hle)&&b!=(Lle(),Ile):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(zfe(Qee((lke(),jke),b)))||a.d.Hc(Eee((lke(),jke),a.b,b)))){return true}if(a.f){if(Xee((lke(),a.f),Bfe(Qee(jke,b)))){c=yfe(Qee(jke,b));return a.e?c==4:c==2}}return false} +function oKc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;m=-1;n=0;for(j=a,k=0,l=j.length;k0&&++n}}}++m}return n} +function S2c(a,b,c,d){var e,f,g,h,i,j,k,l;g=RD(Gxd(c,(umd(),Qld)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dFe);e+=b;e>dFe&&(e-=dFe);h=RD(Gxd(d,Qld),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dFe);f+=b;f>dFe&&(f-=dFe);return Zy(),bz(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:cz(isNaN(e),isNaN(f))} +function PGb(a){var b,c,d,e,f,g,h;h=new Tsb;for(d=new Anb(a.a.b);d.a=b.o){throw Adb(new web)}i=c>>5;h=c&31;g=Sdb(1,Ydb(Sdb(h,1)));f?(b.n[d][i]=Rdb(b.n[d][i],g)):(b.n[d][i]=Cdb(b.n[d][i],Qdb(g)));g=Sdb(g,1);e?(b.n[d][i]=Rdb(b.n[d][i],g)):(b.n[d][i]=Cdb(b.n[d][i],Qdb(g)))}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function eMc(a,b,c,d){var e,f,g,h,i,j,k,l,m;m=new yAb(new PMc(a));for(h=cD(WC(jR,1),WAe,10,0,[b,c]),i=0,j=h.length;i0){d=(!a.n&&(a.n=new C5d(I4,a,1,7)),RD(QHd(a.n,0),135)).a;!d||Zhb(Zhb((b.a+=' "',b),d),'"')}}else{Zhb(Zhb((b.a+=' "',b),c),'"')}Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function OCd(a){var b,c,d;if((a.Db&64)!=0)return Fyd(a);b=new dib(HHe);c=a.k;if(!c){!a.n&&(a.n=new C5d(I4,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new C5d(I4,a,1,7)),RD(QHd(a.n,0),135)).a;!d||Zhb(Zhb((b.a+=' "',b),d),'"')}}else{Zhb(Zhb((b.a+=' "',b),c),'"')}Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Xnc(a,b){var c,d,e,f,g;b==(TEc(),QEc)&&Eob(RD(Qc(a.a,(Bnc(),xnc)),15));for(e=RD(Qc(a.a,(Bnc(),xnc)),15).Kc();e.Ob();){d=RD(e.Pb(),105);c=RD(Vmb(d.j,0),113).d.j;f=new dnb(d.j);_mb(f,new Boc);switch(b.g){case 2:Pnc(a,f,c,(joc(),hoc),1);break;case 1:case 0:g=Rnc(f);Pnc(a,new Rkb(f,0,g),c,(joc(),hoc),0);Pnc(a,new Rkb(f,g,f.c.length),c,hoc,1);}}} +function sgd(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=RD(Xjb(a.a,b),143);if(!e){for(d=(h=(new glb(a.b)).a.vc().Kc(),new llb(h));d.a.Ob();){c=(f=RD(d.a.Pb(),44),RD(f.md(),143));g=c.c;i=b.length;if(lhb(g.substr(g.length-i,i),b)&&(b.length==g.length||ihb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&$jb(a.a,b,e)}return e} +function HOb(a,b){var c,d,e,f;c=new MOb;d=RD(zDb(GDb(new SDb(null,new Swb(a.f,16)),c),sBb(new _Bb,new bCb,new yCb,new ACb,cD(WC(QL,1),jwe,108,0,[(xBb(),wBb),vBb]))),21);e=d.gc();d=RD(zDb(GDb(new SDb(null,new Swb(b.f,16)),c),sBb(new _Bb,new bCb,new yCb,new ACb,cD(WC(QL,1),jwe,108,0,[wBb,vBb]))),21);f=d.gc();if(ee.p){Q3b(f,npd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==npd&&e.p>a.p){Q3b(f,Yod);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function nTb(a,b,c,d,e){var f,g,h,i,j,k,l;if(!(ZD(b,207)||ZD(b,366)||ZD(b,193))){throw Adb(new agb('Method only works for ElkNode-, ElkLabel and ElkPort-objects.'))}g=a.a/2;i=b.i+d-g;k=b.j+e-g;j=i+b.g+a.a;l=k+b.f+a.a;f=new Ejd;Mub(f,new rjd(i,k));Mub(f,new rjd(i,l));Mub(f,new rjd(j,l));Mub(f,new rjd(j,k));h=new ORb(f);kQb(h,b);c&&Zjb(a.b,b,h);return h} +function w$b(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new rjd(b,c);for(k=new Anb(a.a);k.a1;if(h){d=new rjd(e,c.b);Mub(b.a,d)}zjd(b.a,cD(WC(l3,1),Nve,8,0,[m,l]))} +function aEc(){aEc=geb;$Dc=new bEc(LAe,0);VDc=new bEc('NIKOLOV',1);YDc=new bEc('NIKOLOV_PIXEL',2);WDc=new bEc('NIKOLOV_IMPROVED',3);XDc=new bEc('NIKOLOV_IMPROVED_PIXEL',4);SDc=new bEc('DUMMYNODE_PERCENTAGE',5);ZDc=new bEc('NODECOUNT_PERCENTAGE',6);_Dc=new bEc('NO_BOUNDARY',7);TDc=new bEc('MODEL_ORDER_LEFT_TO_RIGHT',8);UDc=new bEc('MODEL_ORDER_RIGHT_TO_LEFT',9)} +function use(a){var b,c,d,e,f;d=a.length;b=new Rhb;f=0;while(f=40;g&&wJb(a);nJb(a);mJb(a);c=qJb(a);d=0;while(!!c&&d0&&Mub(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Mub(a.e,f)}}}}} +function FVc(a,b,c,d){var e,f,g,h,i,j,k;i=new rjd(c,d);ojd(i,RD(mQb(b,(q$c(),SZc)),8));for(k=Sub(b.b,0);k.b!=k.d.c;){j=RD(evb(k),40);$id(j.e,i);Mub(a.b,j)}for(h=RD(zDb(BDb(new SDb(null,new Swb(b.a,16))),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15).Kc();h.Ob();){g=RD(h.Pb(),65);for(f=Sub(g.a,0);f.b!=f.d.c;){e=RD(evb(f),8);e.a+=i.a;e.b+=i.b}Mub(a.a,g)}} +function kWc(a,b){var c,d,e,f;if(0<(ZD(a,16)?RD(a,16).gc():Kr(a.Kc()))){e=b;if(1=0&&if*2){k=new zrd(l);j=urd(g)/trd(g);i=ird(k,b,new z3b,c,d,e,j);$id(hjd(k.e),i);l.c.length=0;f=0;ZEb(l.c,k);ZEb(l.c,g);f=urd(k)*trd(k)+urd(g)*trd(g)}else{ZEb(l.c,g);f+=urd(g)*trd(g)}}return l} +function O9b(a,b){var c,d,e,f,g,h;h=RD(mQb(b,(yCc(),BBc)),101);if(!(h==(Bod(),xod)||h==wod)){return}e=(new rjd(b.f.a+b.d.b+b.d.c,b.f.b+b.d.d+b.d.a)).b;for(g=new Anb(a.a);g.ac?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.am(f.Lk());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=RD(uLd(a,b,c),76);h!=i&&eZd(a,new c4d(a.e,7,g,sgb(h),n.md(),i));return m}}}else{return RD(SHd(a,b,c),76)}return RD(uLd(a,b,c),76)} +function ugc(a,b){var c,d,e,f,g,h,i;b.Ug('Port order processing',1);i=RD(mQb(a,(yCc(),HBc)),430);for(d=new Anb(a.b);d.a=0){h=rD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&nD(i);if(f){if(d){eD=xD(a);e&&(eD=DD(eD,(MD(),KD)))}else{eD=hD(a.l,a.m,a.h)}}return i} +function rIc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new Anb(a.a);h.a0&&(BFb(0,a.length),a.charCodeAt(0)==45||(BFb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw Adb(new Vgb(nxe+a+'"'))}return h} +function Jqc(a){var b,c,d,e,f,g,h;g=new Yub;for(f=new Anb(a.a);f.a1)&&b==1&&RD(a.a[a.b],10).k==(r3b(),n3b)){Qdc(RD(a.a[a.b],10),(Pnd(),Lnd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&RD(a.a[a.c-1&a.a.length-1],10).k==(r3b(),n3b)){Qdc(RD(a.a[a.c-1&a.a.length-1],10),(Pnd(),Mnd))}else if((a.c-a.b&a.a.length-1)==2){Qdc(RD(omb(a),10),(Pnd(),Lnd));Qdc(RD(omb(a),10),Mnd)}else{Ndc(a,e)}jmb(a)} +function QVc(a,b,c){var d,e,f,g,h;f=0;for(e=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));e.e!=e.i.gc();){d=RD(bMd(e),27);g='';(!d.n&&(d.n=new C5d(I4,d,1,7)),d.n).i==0||(g=RD(QHd((!d.n&&(d.n=new C5d(I4,d,1,7)),d.n),0),135).a);h=new bXc(f++,b,g);kQb(h,d);pQb(h,(q$c(),h$c),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Mub(b.b,h);rtb(c.f,d,h)}} +function L5b(a){var b,c,d,e,f;d=RD(mQb(a,(Ywc(),Awc)),27);f=RD(Gxd(d,(yCc(),lBc)),181).Hc((Qpd(),Ppd));if(!a.e){e=RD(mQb(a,kwc),21);b=new rjd(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((ovc(),hvc))){Ixd(d,BBc,(Bod(),wod));Esd(d,b.a,b.b,false,true)}else{Heb(TD(Gxd(d,mBc)))||Esd(d,b.a,b.b,true,true)}}f?Ixd(d,lBc,xsb(Ppd)):Ixd(d,lBc,(c=RD(mfb(H3),9),new Fsb(c,RD(WEb(c,c.length),9),0)))} +function JA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(ihb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=HA(a,b);if(g==0&&b[0]==f){return false}if(b[0]h){h=e;k.c.length=0}e==h&&Rmb(k,new Ptd(c.c.i,c))}yob();_mb(k,a.c);Qmb(a.b,i.p,k)}}} +function kRc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new Anb(b.b);g.ah){h=e;k.c.length=0}e==h&&Rmb(k,new Ptd(c.d.i,c))}yob();_mb(k,a.c);Qmb(a.f,i.p,k)}}} +function HVc(a,b){var c,d,e,f,g,h,i,j;j=TD(mQb(b,(h_c(),Z$c)));if(j==null||(uFb(j),j)){EVc(a,b);e=new bnb;for(i=Sub(b.b,0);i.b!=i.d.c;){g=RD(evb(i),40);c=DVc(a,g,null);if(c){kQb(c,b);ZEb(e.c,c)}}a.a=null;a.b=null;if(e.c.length>1){for(d=new Anb(e);d.a=0&&h!=c){f=new N3d(a,1,h,g,null);!d?(d=f):d.nj(f)}if(c>=0){f=new N3d(a,1,c,h==c?g:null,b);!d?(d=f):d.nj(f)}}return d} +function jSd(a){var b,c,d;if(a.b==null){d=new Qhb;if(a.i!=null){Nhb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){wSd(a.i)||(d.a+='//',d);Nhb(d,a.a)}if(a.d!=null){d.a+='/';Nhb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=S9c(d,m,false),i.a);if(k+h+l<=b.b){Q9c(c,f-c.s);c.c=true;Q9c(d,f-c.s);U9c(d,c.s,c.t+c.d+h);d.k=true;aad(c.q,d);n=true;if(e){Cad(b,d);d.j=b;if(a.c.length>g){Fad((tFb(g,a.c.length),RD(a.c[g],186)),d);(tFb(g,a.c.length),RD(a.c[g],186)).a.c.length==0&&Xmb(a,g)}}}return n} +function Qfc(a,b){var c,d,e,f,g,h;b.Ug('Partition midprocessing',1);e=new Tp;FDb(CDb(new SDb(null,new Swb(a.a,16)),new Ufc),new Wfc(e));if(e.d==0){return}h=RD(zDb(ODb((f=e.i,new SDb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);d=h.Kc();c=RD(d.Pb(),17);while(d.Ob()){g=RD(d.Pb(),17);Pfc(RD(Qc(e,c),21),RD(Qc(e,g),21));c=g}b.Vg()} +function G_b(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new bnb;f=(d=RD(mfb(E3),9),new Fsb(d,RD(WEb(d,d.length),9),0));g=new Ptd(e,f)}RD(g.a,15).Fc(b);b.k==(r3b(),m3b)&&RD(g.b,21).Fc(RD(mQb(b,(Ywc(),hwc)),64));for(i=new Anb(b.j);i.a0){e=RD(a.Ab.g,2033);if(b==null){for(f=0;fc.s&&hg){return qpd(),Xod}break;case 4:case 3:if(k<0){return qpd(),Yod}else if(k+c>f){return qpd(),npd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(qpd(),ppd):i+d>=1&&i-d>=0?(qpd(),Xod):d<0.5?(qpd(),Yod):(qpd(),npd)} +function PNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Kfb(UD(mQb(b,(yCc(),bCc))));o=pwe*k;for(e=new Anb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function MJb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new Tid;for(j=b.Kc();j.Ob();){h=RD(j.Pb(),853);for(l=new Anb(h.Rf());l.a0){if(h.a){j=h.b.Mf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=RD(Vmb(h.c.d,0),187).Mf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(Rod(a.u)){f=wsd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.Mf().b&&(h.d.a=f.d+f.a-h.b.Mf().b)}}} +function yVb(){yVb=geb;lVb=new mGd((umd(),Rld),sgb(1));rVb=new mGd(fmd,80);qVb=new mGd($ld,5);ZUb=new mGd(Dkd,Yze);mVb=new mGd(Sld,sgb(1));pVb=new mGd(Vld,(Geb(),true));iVb=new A3b(50);hVb=new mGd(tld,iVb);_Ub=ald;jVb=Hld;$Ub=new mGd(Pkd,false);gVb=sld;eVb=mld;fVb=pld;dVb=kld;cVb=ild;kVb=Lld;bVb=(OUb(),HUb);sVb=MUb;aVb=GUb;nVb=JUb;oVb=LUb;vVb=mmd;xVb=qmd;uVb=lmd;tVb=kmd;wVb=(mqd(),jqd);new mGd(nmd,wVb)} +function VC(a,b){var c;switch(XC(a)){case 6:return bE(b);case 7:return _D(b);case 8:return $D(b);case 3:return Array.isArray(b)&&(c=XC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===kve;case 12:return b!=null&&(typeof b===gve||typeof b==kve);case 0:return QD(b,a.__elementTypeId$);case 2:return cE(b)&&!(b.Tm===keb);case 1:return cE(b)&&!(b.Tm===keb)||QD(b,a.__elementTypeId$);default:return true;}} +function gNb(a){var b,c,d,e;d=a.o;RMb();if(a.A.dc()||pb(a.A,QMb)){e=d.a}else{a.D?(e=$wnd.Math.max(d.a,ZKb(a.f))):(e=ZKb(a.f));if(a.A.Hc((Qpd(),Npd))&&!a.B.Hc((dqd(),_pd))){e=$wnd.Math.max(e,ZKb(RD(Vrb(a.p,(qpd(),Yod)),252)));e=$wnd.Math.max(e,ZKb(RD(Vrb(a.p,npd),252)))}b=TMb(a);!!b&&(e=$wnd.Math.max(e,b.a))}Heb(TD(a.e.Tf().of((umd(),mld))))?(d.a=$wnd.Math.max(d.a,e)):(d.a=e);c=a.f.i;c.c=0;c.b=e;$Kb(a.f)} +function oRb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function oWb(a,b){var c,d,e,f,g,h,i;f=0;h=0;i=0;for(e=new Anb(a.f.e);e.a0&&a.d!=(AWb(),zWb)&&(h+=g*(d.d.a+a.a[b.a][d.a]*(b.d.a-d.d.a)/c));c>0&&a.d!=(AWb(),xWb)&&(i+=g*(d.d.b+a.a[b.a][d.a]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new rjd(h/f,b.d.b);case 2:return new rjd(b.d.a,i/f);default:return new rjd(h/f,i/f);}} +function xsd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new XZd(D4,a,5)),a.a).i+2;g=new cnb(c);Rmb(g,new rjd(a.j,a.k));FDb(new SDb(null,(!a.a&&(a.a=new XZd(D4,a,5)),new Swb(a.a,16))),new Usd(g));Rmb(g,new rjd(a.b,a.c));b=1;while(b0){aHb(i,false,(Cmd(),ymd));aHb(i,true,zmd)}Umb(b.g,new Elc(a,c));Zjb(a.g,b,c)} +function Ugb(){Ugb=geb;var a;Qgb=cD(WC(kE,1),Pwe,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Rgb=$C(kE,Pwe,28,37,15,1);Sgb=cD(WC(kE,1),Pwe,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Tgb=$C(lE,rxe,28,37,14,1);for(a=2;a<=36;a++){Rgb[a]=eE($wnd.Math.pow(a,Qgb[a]));Tgb[a]=Fdb(Sve,Rgb[a])}} +function tsd(a){var b;if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i!=1){throw Adb(new agb(tHe+(!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i))}b=new Ejd;!!BGd(RD(QHd((!a.b&&(a.b=new Yie(E4,a,4,7)),a.b),0),84))&&ye(b,usd(a,BGd(RD(QHd((!a.b&&(a.b=new Yie(E4,a,4,7)),a.b),0),84)),false));!!BGd(RD(QHd((!a.c&&(a.c=new Yie(E4,a,5,8)),a.c),0),84))&&ye(b,usd(a,BGd(RD(QHd((!a.c&&(a.c=new Yie(E4,a,5,8)),a.c),0),84)),true));return b} +function zRc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(wQc(),vQc)?Z2b(b.b):a3b(b.b)):(e=a.a.c==(wQc(),uQc)?Z2b(b.b):a3b(b.b));f=false;for(d=new is(Mr(e.a.Kc(),new ir));gs(d);){c=RD(hs(d),18);g=Heb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!W0b(c)&&c.c.i.c==c.d.i.c){continue}if(Heb(a.a.n[a.a.g[b.b.p].p])||Heb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Zsb(a.b,a.a.g[rRc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function QJd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.Pj()){i=a.Qj();ZId(a,b,c);g=d==1?a.Ij(3,null,c.Kc().Pb(),b,i):a.Ij(5,null,c,b,i);if(a.Mj()){h=d<100?null:new gLd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.Yh()&&pKd(new O3d(a.Cb,9,13,c,a.c,fZd(o4d(RD(a.Cb,62)),a)))}else if(ZD(a.Cb,90)){if(a.Db>>16==-23&&a.Cb.Yh()){b=a.c;ZD(b,90)||(b=(JTd(),zTd));ZD(c,90)||(c=(JTd(),zTd));pKd(new O3d(a.Cb,9,10,c,b,fZd(tYd(RD(a.Cb,29)),a)))}}}}return a.c} +function lac(a,b,c){var d,e,f,g,h,i,j,k,l;c.Ug('Hyperedge merging',1);jac(a,b);i=new Jkb(b.b,0);while(i.b0;h=oIb(b,f);c?FIb(h.b,b):FIb(h.g,b);CIb(h).c.length==1&&(Pub(d,h,d.c.b,d.c),true);e=new Ptd(f,b);hmb(a.o,e);Ymb(a.e.a,f)}} +function SQb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(Oid(a.b).a-Oid(b.b).a);h=$wnd.Math.abs(Oid(a.b).b-Oid(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function LUc(a){var b,c,d,e;NUc(a,a.e,a.f,(dVc(),bVc),true,a.c,a.i);NUc(a,a.e,a.f,bVc,false,a.c,a.i);NUc(a,a.e,a.f,cVc,true,a.c,a.i);NUc(a,a.e,a.f,cVc,false,a.c,a.i);MUc(a,a.c,a.e,a.f,a.i);d=new Jkb(a.i,0);while(d.b=65;c--){xqe[c]=c-65<<24>>24}for(d=122;d>=97;d--){xqe[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){xqe[e]=e-48+52<<24>>24}xqe[43]=62;xqe[47]=63;for(f=0;f<=25;f++)yqe[f]=65+f&Bwe;for(g=26,i=0;g<=51;++g,i++)yqe[g]=97+i&Bwe;for(a=52,h=0;a<=61;++a,h++)yqe[a]=48+h&Bwe;yqe[62]=43;yqe[63]=47} +function uib(a,b){var c,d,e,f,g,h;e=xib(a);h=xib(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*xxe)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*xxe)+1);if(c>d+1){return e}else if(c0&&(g=Wib(g,Sjb(d)));return Qib(f,g)}}else return ej){m=0;n+=i+b;i=0}w$b(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new rjd(c+b,n+i+b)} +function osd(a,b){var c,d,e,f,g,h,i;if(!MCd(a)){throw Adb(new dgb(sHe))}d=MCd(a);f=d.g;e=d.f;if(f<=0&&e<=0){return qpd(),opd}h=a.i;i=a.j;switch(b.g){case 2:case 1:if(h<0){return qpd(),ppd}else if(h+a.g>f){return qpd(),Xod}break;case 4:case 3:if(i<0){return qpd(),Yod}else if(i+a.f>e){return qpd(),npd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(qpd(),ppd):g+c>=1&&g-c>=0?(qpd(),Xod):c<0.5?(qpd(),Yod):(qpd(),npd)} +function Djb(a,b,c,d,e){var f,g;f=Bdb(Cdb(b[0],yxe),Cdb(d[0],yxe));a[0]=Ydb(f);f=Tdb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){PSc(i,i.d-e.d);e.c==(fTc(),dTc)&&NSc(i,i.a-e.d);i.d<=0&&i.i>0&&(Pub(b,i,b.c.b,b.c),true)}}}for(f=new Anb(a.f);f.a0){QSc(h,h.i-e.d);e.c==(fTc(),dTc)&&OSc(h,h.b-e.d);h.i<=0&&h.d>0&&(Pub(c,h,c.c.b,c.c),true)}}}} +function drd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;yob();_mb(a,new Mrd);g=gv(a);n=new bnb;m=new bnb;h=null;i=0;while(g.b!=0){f=RD(g.b==0?null:(sFb(g.b!=0),Wub(g,g.a.a)),163);if(!h||urd(h)*trd(h)/21&&(i>urd(h)*trd(h)/2||g.b==0)){l=new zrd(m);k=urd(h)/trd(h);j=ird(l,b,new z3b,c,d,e,k);$id(hjd(l.e),j);h=l;ZEb(n.c,l);i=0;m.c.length=0}}}Tmb(n,m);return n} +function hib(a,b,c,d,e){gib();var f,g,h,i,j,k,l;vFb(a,'src');vFb(c,'dest');l=rb(a);i=rb(c);qFb((l.i&4)!=0,'srcType is not an array');qFb((i.i&4)!=0,'destType is not an array');k=l.c;g=i.c;qFb((k.i&1)!=0?k==g:(g.i&1)==0,"Array types don't match");iib(a,b,c,d,e);if((k.i&1)==0&&l!=i){j=SD(a);f=SD(c);if(dE(a)===dE(c)&&bd;){bD(f,h,j[--b])}}else{for(h=d+e;d0);d.a.Xb(d.c=--d.b);l>m+i&&Ckb(d)}for(g=new Anb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function gte(){Vse();var a,b,c,d,e,f;if(Fse)return Fse;a=(++Use,new xte(4));ute(a,hte(WLe,true));wte(a,hte('M',true));wte(a,hte('C',true));f=(++Use,new xte(4));for(d=0;d<11;d++){rte(f,d,d)}b=(++Use,new xte(4));ute(b,hte('M',true));rte(b,4448,4607);rte(b,65438,65439);e=(++Use,new iue(2));hue(e,a);hue(e,Ese);c=(++Use,new iue(2));c.Jm($se(f,hte('L',true)));c.Jm(b);c=(++Use,new Kte(3,c));c=(++Use,new Qte(e,c));Fse=c;return Fse} +function vhb(a,b){var c,d,e,f,g,h,i,j;c=new RegExp(b,'g');i=$C(qJ,Nve,2,0,6,1);d=0;j=a;f=null;while(true){h=c.exec(j);if(h==null||j==''){i[d]=j;break}else{g=h.index;i[d]=(AFb(0,g,j.length),j.substr(0,g));j=zhb(j,g+h[0].length,j.length);c.lastIndex=0;if(f==j){i[d]=(AFb(0,1,j.length),j.substr(0,1));j=(BFb(1,j.length+1),j.substr(1))}f=j;++d}}if(a.length>0){e=i.length;while(e>0&&i[e-1]==''){--e}e0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);dKb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new Anb(a.n);d.a1){for(d=Sub(e,0);d.b!=d.d.c;){c=RD(evb(d),235);f=0;for(i=new Anb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);eKb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i0||$y(e.b.d,a.b.d+a.b.a)==0&&d.b<0||$y(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,PQb(a,e,d))}h=$wnd.Math.min(h,FQb(a,f,h,d))}return h} +function lsd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw Adb(new agb('The vector chain must contain at least a source and a target point.'))}e=(sFb(a.b!=0),RD(a.a.a.c,8));Nzd(b,e.a,e.b);i=new mMd((!b.a&&(b.a=new XZd(D4,b,5)),b.a));g=Sub(a,1);while(g.a=0&&f!=c){throw Adb(new agb(LIe))}}e=0;for(i=0;iKfb(pJc(g.g,g.d[0]).a)){sFb(i.b>0);i.a.Xb(i.c=--i.b);Ikb(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new bnb),h.e).Mc(b);j=(!h.e&&(h.e=new bnb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new bnb),h.e).Fc(g);++g.c}}}e||(ZEb(d.c,g),true)} +function H3c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;l=a.a.i+a.a.g/2;m=a.a.i+a.a.g/2;o=b.i+b.g/2;q=b.j+b.f/2;h=new rjd(o,q);j=RD(Gxd(b,(umd(),Qld)),8);j.a=j.a+l;j.b=j.b+m;f=(h.b-j.b)/(h.a-j.a);d=h.b-f*h.a;p=c.i+c.g/2;r=c.j+c.f/2;i=new rjd(p,r);k=RD(Gxd(c,Qld),8);k.a=k.a+l;k.b=k.b+m;g=(i.b-k.b)/(i.a-k.a);e=i.b-g*i.a;n=(d-e)/(g-f);if(j.a>>0,'0'+b.toString(16));d='\\x'+zhb(c,c.length-2,c.length)}else if(a>=txe){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+zhb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&Bwe);}return d} +function Ugc(a){var b,c,d;if(Dod(RD(mQb(a,(yCc(),BBc)),101))){for(c=new Anb(a.j);c.a=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=RD(Vmb(b.n,b.n.c.length-1),209);if(g.e+g.d+c.g+e<=d&&(f=RD(Vmb(b.n,b.n.c.length-1),209),f.f-a.f+c.f<=a.b||a.a.c.length==1)){K9c(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Rmb(b.b,c);h=RD(Vmb(b.n,b.n.c.length-1),209);Rmb(b.n,new _9c(b.s,h.f+h.a+b.i,b.i));W9c(RD(Vmb(b.n,b.n.c.length-1),209),c);M9c(b,c);return true}}return false} +function xLd(a,b,c){var d,e,f,g;if(a.Pj()){e=null;f=a.Qj();d=a.Ij(1,g=UHd(a,b,c),c,b,f);if(a.Mj()&&!(a.Yi()&&g!=null?pb(g,c):dE(g)===dE(c))){g!=null&&(e=a.Oj(g,e));e=a.Nj(c,e);a.Tj()&&(e=a.Wj(g,c,e));if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}else{a.Tj()&&(e=a.Wj(g,c,e));if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}return g}else{g=UHd(a,b,c);if(a.Mj()&&!(a.Yi()&&g!=null?pb(g,c):dE(g)===dE(c))){e=null;g!=null&&(e=a.Oj(g,null));e=a.Nj(c,e);!!e&&e.oj()}return g}} +function Rsc(a,b){var c,d,e,f,g;b.Ug('Path-Like Graph Wrapping',1);if(a.b.c.length==0){b.Vg();return}e=new ysc(a);g=(e.i==null&&(e.i=tsc(e,new Asc)),Kfb(e.i)*e.f);c=g/(e.i==null&&(e.i=tsc(e,new Asc)),Kfb(e.i));if(e.b>c){b.Vg();return}switch(RD(mQb(a,(yCc(),rCc)),351).g){case 2:f=new Ksc;break;case 0:f=new zrc;break;default:f=new Nsc;}d=f.og(a,e);if(!f.pg()){switch(RD(mQb(a,xCc),352).g){case 2:d=Wsc(e,d);break;case 1:d=Usc(e,d);}}Qsc(a,e,d);b.Vg()} +function mB(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function kKc(a,b){var c,d,e,f;Nwb(a.d,a.e);a.c.a.$b();if(Kfb(UD(mQb(b.j,(yCc(),Zzc))))!=0||Kfb(UD(mQb(b.j,Zzc)))!=0){c=Hze;dE(mQb(b.j,cAc))!==dE((kEc(),hEc))&&pQb(b.j,(Ywc(),jwc),(Geb(),true));f=RD(mQb(b.j,gCc),17).a;for(e=0;ee&&++j;Rmb(g,(tFb(h+j,b.c.length),RD(b.c[h+j],17)));i+=(tFb(h+j,b.c.length),RD(b.c[h+j],17)).a-d;++c;while(c=q&&a.e[i.p]>o*a.b||t>=c*q){ZEb(m.c,h);h=new bnb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new Ptd(n,m)} +function pYd(a){var b,c,d,e,f,g,h;if(!a.d){h=new v_d;b=iYd;f=b.a.zc(a,b);if(f==null){for(d=new dMd(zYd(a));d.e!=d.i.gc();){c=RD(bMd(d),29);YGd(h,pYd(c))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}g=h.i;for(e=(!a.q&&(a.q=new C5d(s7,a,11,10)),new dMd(a.q));e.e!=e.i.gc();++g){RD(bMd(e),411)}YGd(h,(!a.q&&(a.q=new C5d(s7,a,11,10)),a.q));VHd(h);a.d=new N$d((RD(QHd(xYd((lTd(),kTd).o),9),19),h.i),h.g);a.e=RD(h.g,688);a.e==null&&(a.e=jYd);yYd(a).b&=-17}return a.d} +function kge(a,b,c,d){var e,f,g,h,i,j;j=pke(a.e.Dh(),b);i=0;e=RD(a.g,124);nke();if(RD(b,69).xk()){for(g=0;g1||o==-1){l=RD(p,71);m=RD(k,71);if(l.dc()){m.$b()}else{g=!!Z5d(b);f=0;for(h=a.a?l.Kc():l.Ii();h.Ob();){j=RD(h.Pb(),58);e=RD(cub(a,j),58);if(!e){if(a.b&&!g){m.Gi(f,j);++f}}else{if(g){i=m.dd(e);i==-1?m.Gi(f,e):f!=i&&m.Ui(f,e)}else{m.Gi(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=cub(a,p);e==null?a.b&&!Z5d(b)&&k.Wb(p):k.Wb(e)}}}}} +function V9b(a,b){var c,d,e,f,g,h,i,j;c=new aac;for(e=new is(Mr(Z2b(b).a.Kc(),new ir));gs(e);){d=RD(hs(e),18);if(W0b(d)){continue}h=d.c.i;if(W9b(h,T9b)){j=X9b(a,h,T9b,S9b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new bnb);Rmb(c.a,h)}}for(g=new is(Mr(a3b(b).a.Kc(),new ir));gs(g);){f=RD(hs(g),18);if(W0b(f)){continue}i=f.d.i;if(W9b(i,S9b)){j=X9b(a,i,S9b,T9b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new bnb);Rmb(c.c,i)}}return c} +function pcc(a,b,c,d){var e,f,g,h,i,j,k;if(c.d.i==b.i){return}e=new j3b(a);h3b(e,(r3b(),o3b));pQb(e,(Ywc(),Awc),c);pQb(e,(yCc(),BBc),(Bod(),wod));ZEb(d.c,e);g=new R3b;P3b(g,e);Q3b(g,(qpd(),ppd));h=new R3b;P3b(h,e);Q3b(h,Xod);k=c.d;Z0b(c,g);f=new a1b;kQb(f,c);pQb(f,RAc,null);Y0b(f,h);Z0b(f,k);j=new Jkb(c.b,0);while(j.b1000000){throw Adb(new teb('power of ten too big'))}if(a<=lve){return Zib(Yib(Jjb[1],b),b)}d=Yib(Jjb[1],lve);e=d;c=Hdb(a-lve);b=eE(a%lve);while(Ddb(c,lve)>0){e=Wib(e,d);c=Vdb(c,lve)}e=Wib(e,Yib(Jjb[1],b));e=Zib(e,lve);c=Hdb(a-lve);while(Ddb(c,lve)>0){e=Zib(e,lve);c=Vdb(c,lve)}e=Zib(e,b);return e} +function s9b(a){var b,c,d,e,f,g,h,i,j,k;for(i=new Anb(a.a);i.aj&&d>j){k=h;j=Kfb(b.p[h.p])+Kfb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c._g()&&c.bh('bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c._g()&&c.bh(b+' is feasible: '+e);return e} +function Dfc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new j3b(a);h3b(f,(r3b(),q3b));pQb(f,(yCc(),BBc),(Bod(),wod));e=0;if(b){g=new R3b;pQb(g,(Ywc(),Awc),b);pQb(f,Awc,b.i);Q3b(g,(qpd(),ppd));P3b(g,f);m=s2b(b.e);for(j=m,k=0,l=j.length;k0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!MA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!MA(b,j,k,0,g)){return 0}}}else{e=-1;if(ihb(k.c,0)==32){l=j[0];KA(b,j);if(j[0]>l){continue}}else if(xhb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!CB(g,c)){return 0}return j[0]} +function qWb(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new pwb(new GWb(c));h=$C(xdb,Hye,28,a.f.e.c.length,16,1);Snb(h,h.length);c[b.a]=0;for(j=new Anb(a.f.e);j.a=0&&!PPb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!PPb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&TPb(a,i,m,false,true)}}} +function hUb(a){var b,c,d,e,f,g,h,i;c=Heb(TD(mQb(a,(yVb(),$Ub))));f=a.a.c.d;h=a.a.d.d;if(c){g=ijd(ojd(new rjd(h.a,h.b),f),0.5);i=ijd(ajd(a.e),0.5);b=ojd($id(new rjd(f.a,f.b),g),i);mjd(a.d,b)}else{e=Kfb(UD(mQb(a.a,qVb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function qYd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new a_d;h=new a_d;b=iYd;g=b.a.zc(a,b);if(g==null){for(f=new dMd(zYd(a));f.e!=f.i.gc();){e=RD(bMd(f),29);YGd(i,qYd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new C5d(y7,a,21,17)),new dMd(a.s));d.e!=d.i.gc();){c=RD(bMd(d),179);ZD(c,102)&&WGd(h,RD(c,19))}VHd(h);a.r=new s_d(a,(RD(QHd(xYd((lTd(),kTd).o),6),19),h.i),h.g);YGd(i,a.r);VHd(i);a.f=new N$d((RD(QHd(xYd(kTd.o),5),19),i.i),i.g);yYd(a).b&=-3}return a.f} +function uSb(a){Cgd(a,new Pfd($fd(Xfd(Zfd(Yfd(new agd,Aze),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new xSb)));Agd(a,Aze,Bze,iGd(sSb));Agd(a,Aze,Cze,iGd(mSb));Agd(a,Aze,Dze,iGd(hSb));Agd(a,Aze,Eze,iGd(nSb));Agd(a,Aze,Bye,iGd(qSb));Agd(a,Aze,Cye,iGd(pSb));Agd(a,Aze,Aye,iGd(rSb));Agd(a,Aze,Dye,iGd(oSb));Agd(a,Aze,vze,iGd(jSb));Agd(a,Aze,wze,iGd(iSb));Agd(a,Aze,xze,iGd(kSb));Agd(a,Aze,yze,iGd(lSb))} +function qAd(){qAd=geb;oAd=cD(WC(hE,1),zwe,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);pAd=new RegExp('[ \t\n\r\f]+');try{nAd=cD(WC(h8,1),rve,2114,0,[new c2d((WA(),YA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",_A(($A(),$A(),ZA))))),new c2d(YA("yyyy-MM-dd'T'HH:mm:ss'.'SSS",_A((null,ZA)))),new c2d(YA("yyyy-MM-dd'T'HH:mm:ss",_A((null,ZA)))),new c2d(YA("yyyy-MM-dd'T'HH:mm",_A((null,ZA)))),new c2d(YA('yyyy-MM-dd',_A((null,ZA))))])}catch(a){a=zdb(a);if(!ZD(a,82))throw Adb(a)}} +function uKc(a,b){var c,d,e,f;e=Kwb(a.d,1)!=0;d=mKc(a,b);if(d==0&&Heb(TD(mQb(b.j,(Ywc(),jwc))))){return 0}!Heb(TD(mQb(b.j,(Ywc(),jwc))))&&!Heb(TD(mQb(b.j,Owc)))||dE(mQb(b.j,(yCc(),cAc)))===dE((kEc(),hEc))?b.c.mg(b.e,e):(e=Heb(TD(mQb(b.j,jwc))));DKc(a,b,e,true);Heb(TD(mQb(b.j,Owc)))&&pQb(b.j,Owc,(Geb(),false));if(Heb(TD(mQb(b.j,jwc)))){pQb(b.j,jwc,(Geb(),false));pQb(b.j,Owc,true)}c=mKc(a,b);do{yKc(a);if(c==0){return 0}e=!e;f=c;DKc(a,b,e,false);c=mKc(a,b)}while(f>c);return f} +function vKc(a,b){var c,d,e,f;e=Kwb(a.d,1)!=0;d=lKc(a,b);if(d==0&&Heb(TD(mQb(b.j,(Ywc(),jwc))))){return 0}!Heb(TD(mQb(b.j,(Ywc(),jwc))))&&!Heb(TD(mQb(b.j,Owc)))||dE(mQb(b.j,(yCc(),cAc)))===dE((kEc(),hEc))?b.c.mg(b.e,e):(e=Heb(TD(mQb(b.j,jwc))));DKc(a,b,e,true);Heb(TD(mQb(b.j,Owc)))&&pQb(b.j,Owc,(Geb(),false));if(Heb(TD(mQb(b.j,jwc)))){pQb(b.j,jwc,(Geb(),false));pQb(b.j,Owc,true)}c=lKc(a,b);do{yKc(a);if(c==0){return 0}e=!e;f=c;DKc(a,b,e,false);c=lKc(a,b)}while(f>c);return f} +function Gid(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=ojd(new rjd(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=$id(new rjd(c.a,c.b),ijd(new rjd(d.a,d.b),0.5));f=bjd(a,e);g=bjd($id(new rjd(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?$id(new rjd(a.a,a.b),ijd(new rjd(b.a,b.b),l)):null}} +function QWb(a,b,c){var d,e,f,g,h;d=RD(mQb(a,(yCc(),dAc)),21);c.a>b.a&&(d.Hc((ukd(),okd))?(a.c.a+=(c.a-b.a)/2):d.Hc(qkd)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((ukd(),skd))?(a.c.b+=(c.b-b.b)/2):d.Hc(rkd)&&(a.c.b+=c.b-b.b));if(RD(mQb(a,(Ywc(),kwc)),21).Hc((ovc(),hvc))&&(c.a>b.a||c.b>b.b)){for(h=new Anb(a.a);h.ab.a&&(d.Hc((ukd(),okd))?(a.c.a+=(c.a-b.a)/2):d.Hc(qkd)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((ukd(),skd))?(a.c.b+=(c.b-b.b)/2):d.Hc(rkd)&&(a.c.b+=c.b-b.b));if(RD(mQb(a,(Ywc(),kwc)),21).Hc((ovc(),hvc))&&(c.a>b.a||c.b>b.b)){for(g=new Anb(a.a);g.a0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Rmb(a.n,new _9c(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&W9c(RD(Vmb(a.n,l),209),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;Ead(a.j)}return new Uid(a.s,a.t,e,d)} +function CRb(a){var b,c,d,e,f,g,h,i,j,k,l,m;a.b=false;l=oxe;i=pxe;m=oxe;j=pxe;for(d=a.e.a.ec().Kc();d.Ob();){c=RD(d.Pb(),272);e=c.a;l=$wnd.Math.min(l,e.c);i=$wnd.Math.max(i,e.c+e.b);m=$wnd.Math.min(m,e.d);j=$wnd.Math.max(j,e.d+e.a);for(g=new Anb(c.c);g.aa.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function RId(a){var b,c,d,e,f,g,h,i;f=new med;ied(f,(hed(),eed));for(d=(e=oC(a,$C(qJ,Nve,2,0,6,1)),new Dkb(new mob((new CC(a,e)).b)));d.bh?1:-1:Ejb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?Hjb(b.a,h,a.a,f):Cjb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Pib(),Oib}k=Hjb(a.a,f,b.a,h)}else{k=Cjb(a.a,f,b.a,h)}}j=new cjb(l,k.length,k);Rib(j);return j} +function c5b(a,b){var c,d,e,f;f=Z4b(b);!b.c&&(b.c=new C5d(K4,b,9,9));FDb(new SDb(null,(!b.c&&(b.c=new C5d(K4,b,9,9)),new Swb(b.c,16))),new s5b(f));e=RD(mQb(f,(Ywc(),kwc)),21);Y4b(b,e);if(e.Hc((ovc(),hvc))){for(d=new dMd((!b.c&&(b.c=new C5d(K4,b,9,9)),b.c));d.e!=d.i.gc();){c=RD(bMd(d),123);g5b(a,b,f,c)}}RD(Gxd(b,(yCc(),lBc)),181).gc()!=0&&V4b(b,f);Heb(TD(mQb(f,sBc)))&&e.Fc(mvc);nQb(f,PBc)&&HCc(new RCc(Kfb(UD(mQb(f,PBc)))),f);dE(Gxd(b,IAc))===dE((Fnd(),Cnd))?d5b(a,b,f):b5b(a,b,f);return f} +function Vrc(a){var b,c,d,e,f,g,h,i;for(e=new Anb(a.b);e.a0?zhb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function xic(a,b){var c,d,e,f,g,h,i;b.Ug('Sort By Input Model '+mQb(a,(yCc(),cAc)),1);e=0;for(d=new Anb(a.b);d.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=oxe;a.p=oxe;for(f=new Anb(a.b);f.a0){e=(!a.n&&(a.n=new C5d(I4,a,1,7)),RD(QHd(a.n,0),135)).a;!e||Zhb(Zhb((b.a+=' "',b),e),'"')}}else{Zhb(Zhb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new Yie(E4,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new Yie(E4,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Zhb(b,Eb(new Gb,new dMd(a.b)));c&&(b.a+=']',b);b.a+=SAe;c&&(b.a+='[',b);Zhb(b,Eb(new Gb,new dMd(a.c)));c&&(b.a+=']',b);return b.a} +function odc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Wmb(v.a,a,0);d=Wmb(w.a,b,0);t=RD(c3b(a,(BEc(),yEc)).Kc().Pb(),12);C=RD(c3b(a,zEc).Kc().Pb(),12);u=RD(c3b(b,yEc).Kc().Pb(),12);D=RD(c3b(b,zEc).Kc().Pb(),12);r=s2b(t.e);A=s2b(C.g);s=s2b(u.e);B=s2b(D.g);f3b(a,d,w);for(g=s,k=0,o=g.length;kk){new bTc((fTc(),eTc),c,b,j-k)}else if(j>0&&k>0){new bTc((fTc(),eTc),b,c,0);new bTc(eTc,c,b,0)}}return g} +function pXc(a,b,c){var d,e,f;a.a=new bnb;for(f=Sub(b.b,0);f.b!=f.d.c;){e=RD(evb(f),40);while(RD(mQb(e,(h_c(),f_c)),17).a>a.a.c.length-1){Rmb(a.a,new Ptd(Hze,KEe))}d=RD(mQb(e,f_c),17).a;if(c==(Cmd(),ymd)||c==zmd){e.e.aKfb(UD(RD(Vmb(a.a,d),42).b))&&Otd(RD(Vmb(a.a,d),42),e.e.a+e.f.a)}else{e.e.bKfb(UD(RD(Vmb(a.a,d),42).b))&&Otd(RD(Vmb(a.a,d),42),e.e.b+e.f.b)}}} +function g2b(a,b,c,d){var e,f,g,h,i,j,k;f=i2b(d);h=Heb(TD(mQb(d,(yCc(),aBc))));if((h||Heb(TD(mQb(a,MAc))))&&!Dod(RD(mQb(a,BBc),101))){e=vpd(f);i=q2b(a,c,c==(BEc(),zEc)?e:spd(e))}else{i=new R3b;P3b(i,a);if(b){k=i.n;k.a=b.a-a.n.a;k.b=b.b-a.n.b;_id(k,0,0,a.o.a,a.o.b);Q3b(i,c2b(i,f))}else{e=vpd(f);Q3b(i,c==(BEc(),zEc)?e:spd(e))}g=RD(mQb(d,(Ywc(),kwc)),21);j=i.j;switch(f.g){case 2:case 1:(j==(qpd(),Yod)||j==npd)&&g.Fc((ovc(),lvc));break;case 4:case 3:(j==(qpd(),Xod)||j==ppd)&&g.Fc((ovc(),lvc));}}return i} +function VXb(a,b){var c,d,e,f,g,h;for(g=new vkb((new mkb(a.f.b)).a);g.b;){f=tkb(g);e=RD(f.ld(),602);if(b==1){if(e.Af()!=(Cmd(),Bmd)&&e.Af()!=xmd){continue}}else{if(e.Af()!=(Cmd(),ymd)&&e.Af()!=zmd){continue}}d=RD(RD(f.md(),42).b,86);h=RD(RD(f.md(),42).a,194);c=h.c;switch(e.Af().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function NNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=$C(kE,Pwe,28,b.b.c.length,15,1);j=$C(hR,jwe,273,b.b.c.length,0,1);i=$C(jR,WAe,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=bFc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new Anb(k.e);f.a1){throw Adb(new agb(gLe))}if(!i){f=oke(b,d.Kc().Pb());g.Fc(f)}}return XGd(a,gge(a,b,c),g)} +function Fge(a,b,c){var d,e,f,g,h,i,j,k;if(qke(a.e,b)){i=(nke(),RD(b,69).xk()?new ole(b,a):new Eke(b,a));bge(i.c,i.b);Ake(i,RD(c,16))}else{k=pke(a.e.Dh(),b);d=RD(a.g,124);for(g=0;g'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';r2d(a.b,b)}else{if(a.f){b.a+=' extends ';r2d(a.f,b)}}}} +function Uae(a){a.b=null;a.a=null;a.o=null;a.q=null;a.v=null;a.w=null;a.B=null;a.p=null;a.Q=null;a.R=null;a.S=null;a.T=null;a.U=null;a.V=null;a.W=null;a.bb=null;a.eb=null;a.ab=null;a.H=null;a.db=null;a.c=null;a.d=null;a.f=null;a.n=null;a.r=null;a.s=null;a.u=null;a.G=null;a.J=null;a.e=null;a.j=null;a.i=null;a.g=null;a.k=null;a.t=null;a.F=null;a.I=null;a.L=null;a.M=null;a.O=null;a.P=null;a.$=null;a.N=null;a.Z=null;a.cb=null;a.K=null;a.D=null;a.A=null;a.C=null;a._=null;a.fb=null;a.X=null;a.Y=null;a.gb=false;a.hb=false} +function yib(a){var b,c,d,e;d=Ajb((!a.c&&(a.c=ojb(Hdb(a.f))),a.c),0);if(a.e==0||a.a==0&&a.f!=-1&&a.e<0){return d}b=xib(a)<0?1:0;c=a.e;e=(d.length+1+$wnd.Math.abs(eE(a.e)),new cib);b==1&&(e.a+='-',e);if(a.e>0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>mib.length;c-=mib.length){$hb(e,mib)}_hb(e,mib,eE(c));Zhb(e,(BFb(b,d.length+1),d.substr(b)))}else{c=b-c;Zhb(e,zhb(d,b,eE(c)));e.a+='.';Zhb(e,yhb(d,eE(c)))}}else{Zhb(e,(BFb(b,d.length+1),d.substr(b)));for(;c<-mib.length;c+=mib.length){$hb(e,mib)}_hb(e,mib,eE(-c))}return e.a} +function BOc(a){var b,c,d,e,f,g,h,i,j;if(a.k!=(r3b(),p3b)){return false}if(a.j.c.length<=1){return false}f=RD(mQb(a,(yCc(),BBc)),101);if(f==(Bod(),wod)){return false}e=(wDc(),(!a.q?(yob(),yob(),wob):a.q)._b(iBc)?(d=RD(mQb(a,iBc),203)):(d=RD(mQb(Y2b(a),jBc),203)),d);if(e==uDc){return false}if(!(e==tDc||e==sDc)){g=Kfb(UD(hFc(a,fCc)));b=RD(mQb(a,eCc),140);!b&&(b=new R2b(g,g,g,g));j=b3b(a,(qpd(),ppd));i=b.d+b.a+(j.gc()-1)*g;if(i>a.o.b){return false}c=b3b(a,Xod);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function VRc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b.Ug('Orthogonal edge routing',1);j=Kfb(UD(mQb(a,(yCc(),cCc))));c=Kfb(UD(mQb(a,UBc)));d=Kfb(UD(mQb(a,XBc)));m=new TTc(0,c);q=0;g=new Jkb(a.b,0);h=null;k=null;i=null;l=null;do{k=g.b0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);nb||Heb(TD(Gxd(i,(X7c(),D7c))))){e=0;f+=k.b+c;ZEb(l.c,k);k=new Had(f,c);d=new V9c(0,k.f,k,c);Cad(k,d);e=0}if(d.b.c.length==0||!Heb(TD(Gxd(vCd(i),(X7c(),L7c))))&&(i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f)){K9c(d,i)}else{g=new V9c(d.s+d.r+c,k.f,k,c);Cad(k,g);K9c(g,i)}e=i.i+i.g}ZEb(l.c,k);return l} +function ste(a){var b,c,d,e;if(a.b==null||a.b.length<=2)return;if(a.a)return;b=0;e=0;while(e=a.b[e+1]){e+=2}else if(c0){d=new dnb(RD(Qc(a.a,f),21));yob();_mb(d,new M0b(b));e=new Jkb(f.b,0);while(e.b0&&d>=-6){if(d>=0){aib(f,c-eE(a.e),String.fromCharCode(46))}else{peb(f,b-1,b-1,'0.');aib(f,b+1,Ihb(mib,0,-eE(d)-1))}}else{if(c-b>=1){aib(f,b,String.fromCharCode(46));++c}aib(f,c,String.fromCharCode(69));d>0&&aib(f,++c,String.fromCharCode(43));aib(f,++c,''+Zdb(Hdb(d)))}a.g=f.a;return a.g} +function KNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;d=Kfb(UD(mQb(b,(yCc(),hBc))));v=RD(mQb(b,gCc),17).a;m=4;e=3;w=20/v;n=false;i=0;g=lve;do{f=i!=1;l=i!=0;A=0;for(q=a.a,s=0,u=q.length;sv)){i=2;g=lve}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:cz(isNaN(d),isNaN(0)))>=0^(null,bz(vEe),($wnd.Math.abs(h)<=vEe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:cz(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}bz(vEe);if(($wnd.Math.abs(d)<=vEe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:cz(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function hue(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new gyb);if(a.e==2){dyb(a.a,b);return}if(b.e==1){for(e=0;e=txe?Nhb(c,qse(d)):Jhb(c,d&Bwe);g=(++Use,new eue(10,null,0));fyb(a.a,g,h-1)}else{c=(g.Mm().length+f,new Rhb);Nhb(c,g.Mm())}if(b.e==0){d=b.Km();d>=txe?Nhb(c,qse(d)):Jhb(c,d&Bwe)}else{Nhb(c,b.Mm())}RD(g,530).b=c.a} +function Qsc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=RD(d.Pb(),17).a;while(h1&&(i=j.Hg(i,a.a,h))}if(i.c.length==1){return RD(Vmb(i,i.c.length-1),238)}if(i.c.length==2){return e8c((tFb(0,i.c.length),RD(i.c[0],238)),(tFb(1,i.c.length),RD(i.c[1],238)),g,f)}return null} +function CZc(a,b,c){var d,e,f,g,h,i,j;c.Ug('Find roots',1);a.a.c.length=0;for(e=Sub(b.b,0);e.b!=e.d.c;){d=RD(evb(e),40);if(d.b.b==0){pQb(d,(q$c(),n$c),(Geb(),true));Rmb(a.a,d)}}switch(a.a.c.length){case 0:f=new bXc(0,b,'DUMMY_ROOT');pQb(f,(q$c(),n$c),(Geb(),true));pQb(f,WZc,true);Mub(b.b,f);break;case 1:break;default:g=new bXc(0,b,IEe);for(i=new Anb(a.a);i.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new zNd(a.i,a.g);c=a.i;f=c<100?null:new gLd(c);if(a.Tj()){for(d=0;d0){h=a.g;j=a.i;OHd(a);f=j<100?null:new gLd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&dxe;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=dxe;u+=p>>22;p&=dxe;u&=exe;return hD(m,p,u)} +function Fac(a){var b,c,d,e,f,g,h;h=RD(Vmb(a.j,0),12);if(h.g.c.length!=0&&h.e.c.length!=0){throw Adb(new dgb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=oxe;for(c=new Anb(h.g);c.a4){if(a.fk(b)){if(a.al()){e=RD(b,54);d=e.Eh();i=d==a.e&&(a.ml()?e.yh(e.Fh(),a.il())==a.jl():-1-e.Fh()==a.Lj());if(a.nl()&&!i&&!d&&!!e.Jh()){for(f=0;f0&&aGc(a,h,l)}for(e=new Anb(l);e.aa.d[g.p]){c+=ZLc(a.b,f)*RD(i.b,17).a;hmb(a.a,sgb(f))}}while(!nmb(a.a)){XLc(a.b,RD(smb(a.a),17).a)}}return c} +function x9b(a,b){var c,d,e,f,g,h,i,j,k,l;k=RD(mQb(a,(Ywc(),hwc)),64);d=RD(Vmb(a.j,0),12);k==(qpd(),Yod)?Q3b(d,npd):k==npd&&Q3b(d,Yod);if(RD(mQb(b,(yCc(),lBc)),181).Hc((Qpd(),Ppd))){i=Kfb(UD(mQb(a,_Bc)));j=Kfb(UD(mQb(a,aCc)));g=Kfb(UD(mQb(a,ZBc)));h=RD(mQb(b,EBc),21);if(h.Hc((Pod(),Lod))){c=j;l=a.o.a/2-d.n.a;for(f=new Anb(d.f);f.a0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}pQb(a,(Ywc(),Jwc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=zod&&b!=Aod&&h!=opd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function VJd(a){var b,c,d,e,f,g,h,i,j,k;if(a.Pj()){k=a.Ej();i=a.Qj();if(k>0){b=new $Hd(a.pj());c=k;f=c<100?null:new gLd(c);aJd(a,c,b.g);e=c==1?a.Ij(4,QHd(b,0),null,0,i):a.Ij(6,b,null,-1,i);if(a.Mj()){for(d=new dMd(b);d.e!=d.i.gc();){f=a.Oj(bMd(d),f)}if(!f){a.Jj(e)}else{f.nj(e);f.oj()}}else{if(!f){a.Jj(e)}else{f.nj(e);f.oj()}}}else{aJd(a,a.Ej(),a.Fj());a.Jj(a.Ij(6,(yob(),vob),null,-1,i))}}else if(a.Mj()){k=a.Ej();if(k>0){h=a.Fj();j=k;aJd(a,k,h);f=j<100?null:new gLd(j);for(d=0;d1&&urd(g)*trd(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Rkb(p,0,f+1);l=new zrd(o);k=urd(g)/trd(g);i=ird(l,b,new z3b,c,d,e,k);$id(hjd(l.e),i);zFb(lwb(m,l),Bxe);n=new Rkb(p,f+1,p.c.length);iwb(m,n);p.c.length=0;j=0;Pnb(h,h.length,0)}else{q=m.b.c.length==0?null:Vmb(m.b,0);q!=null&&owb(m,0);j>0&&(h[j]=h[j-1]);h[j]+=urd(g)*trd(g);++j;ZEb(p.c,g)}}return p} +function _nc(a,b){var c,d,e,f;c=b.b;f=new dnb(c.j);e=0;d=c.j;d.c.length=0;Nnc(RD($i(a.b,(qpd(),Yod),(joc(),ioc)),15),c);e=Onc(f,e,new Hoc,d);Nnc(RD($i(a.b,Yod,hoc),15),c);e=Onc(f,e,new Joc,d);Nnc(RD($i(a.b,Yod,goc),15),c);Nnc(RD($i(a.b,Xod,ioc),15),c);Nnc(RD($i(a.b,Xod,hoc),15),c);e=Onc(f,e,new Loc,d);Nnc(RD($i(a.b,Xod,goc),15),c);Nnc(RD($i(a.b,npd,ioc),15),c);e=Onc(f,e,new Noc,d);Nnc(RD($i(a.b,npd,hoc),15),c);e=Onc(f,e,new Poc,d);Nnc(RD($i(a.b,npd,goc),15),c);Nnc(RD($i(a.b,ppd,ioc),15),c);e=Onc(f,e,new toc,d);Nnc(RD($i(a.b,ppd,hoc),15),c);Nnc(RD($i(a.b,ppd,goc),15),c)} +function jJc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;for(h=new Anb(b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function jec(a){var b,c,d,e,f;d=RD(mQb(a,(yCc(),UAc)),171);if(d==(cxc(),$wc)){for(c=new is(Mr(Z2b(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),18);if(!lec(b)){throw Adb(new Jed(nBe+X2b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==axc){for(f=new is(Mr(a3b(a).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);if(!lec(e)){throw Adb(new Jed(nBe+X2b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function Qed(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.c>19!=0){b=xD(b);i=!i}g=pD(b);f=false;e=false;d=false;if(a.h==fxe&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=gD((MD(),ID));d=true;i=!i}else{h=BD(a,g);i&&nD(h);c&&(eD=hD(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=xD(a);d=true;i=!i}if(g!=-1){return kD(a,g,i,f,c)}if(uD(a,b)<0){c&&(f?(eD=xD(a)):(eD=hD(a.l,a.m,a.h)));return hD(0,0,0)}return lD(d?a:hD(a.l,a.m,a.h),b,i,f,e,c)} +function Bjb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=Cdb(a.a[0],yxe);d=Cdb(b.a[0],yxe);if(g==i){k=Bdb(c,d);o=Ydb(k);n=Ydb(Udb(k,32));return n==0?new ajb(g,o):new cjb(g,2,cD(WC(kE,1),Pwe,28,15,[o,n]))}return Pib(),Jdb(g<0?Vdb(d,c):Vdb(c,d),0)?jjb(g<0?Vdb(d,c):Vdb(c,d)):Xib(jjb(Odb(g<0?Vdb(d,c):Vdb(c,d))))}else if(g==i){m=g;l=f>=h?Cjb(a.a,f,b.a,h):Cjb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:Ejb(a.a,b.a,f);if(e==0){return Pib(),Oib}if(e==1){m=g;l=Hjb(a.a,f,b.a,h)}else{m=i;l=Hjb(b.a,h,a.a,f)}}j=new cjb(m,l.length,l);Rib(j);return j} +function KUc(a,b){var c,d,e,f,g,h,i;if(a.g>b.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=RD(g.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=RD(h.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=RD(i.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=RD(f.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){return c}switch(yfe(Qee(a,c))){case 2:{if(lhb('',Oee(a,c.qk()).xe())){i=Bfe(Qee(a,c));h=Afe(Qee(a,c));k=Ree(a,b,i,h);if(k){return k}e=Fee(a,b);for(g=0,l=e.gc();g1){throw Adb(new agb(gLe))}k=pke(a.e.Dh(),b);d=RD(a.g,124);for(g=0;g1;for(j=new l4b(m.b);xnb(j.a)||xnb(j.b);){i=RD(xnb(j.a)?ynb(j.a):ynb(j.b),18);l=i.c==m?i.d:i.c;$wnd.Math.abs(xjd(cD(WC(l3,1),Nve,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&eSc(a,i,g,f,m)}}} +function vUc(a){var b,c,d,e,f,g;e=new Jkb(a.e,0);d=new Jkb(a.a,0);if(a.d){for(c=0;cAEe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);uUc(a,a.b-g,f,d,e);sFb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function xne(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function C8b(a,b,c){var d,e,f,g;c.Ug('Graph transformation ('+a.a+')',1);g=bv(b.a);for(f=new Anb(b.b);f.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new PZb((nZb(),jZb));t$b(a,AZb,new mob(cD(WC(wQ,1),rve,382,0,[d])));g=new PZb(mZb);t$b(a,zZb,new mob(cD(WC(wQ,1),rve,382,0,[g])));e=new PZb(kZb);t$b(a,yZb,new mob(cD(WC(wQ,1),rve,382,0,[e])));f=new PZb(lZb);t$b(a,xZb,new mob(cD(WC(wQ,1),rve,382,0,[f])));FZb(d.c,jZb);FZb(e.c,kZb);FZb(f.c,lZb);FZb(g.c,mZb);h.a.c.length=0;Tmb(h.a,d.c);Tmb(h.a,hv(e.c));Tmb(h.a,f.c);Tmb(h.a,hv(g.c));return h} +function n9c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;b.Ug(bGe,1);n=Kfb(UD(Gxd(a,(X6c(),W6c))));g=Kfb(UD(Gxd(a,(X7c(),Q7c))));h=RD(Gxd(a,N7c),107);Bad((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));k=U8c((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a),n,g);!a.a&&(a.a=new C5d(J4,a,10,11));for(j=new Anb(k);j.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new TTc(1,f);n=STc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function osc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Kfb(UD(mQb(a,(yCc(),WBc))));d=Kfb(UD(mQb(a,nCc)));m=new dtd;pQb(m,WBc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=Q4b(p.c);t=Q4b(s.c);e=new bnb;for(l=q;l<=t;l++){h=new j3b(a);h3b(h,(r3b(),o3b));pQb(h,(Ywc(),Awc),j);pQb(h,BBc,(Bod(),wod));pQb(h,YBc,m);n=RD(Vmb(a.b,l),30);l==q?f3b(h,n.a.c.length-c,n):g3b(h,n);u=Kfb(UD(mQb(j,FAc)));if(u<0){u=0;pQb(j,FAc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new R3b;Q3b(g,(qpd(),ppd));P3b(g,h);g.n.b=o;i=new R3b;Q3b(i,Xod);P3b(i,h);i.n.b=o;Z0b(j,g);f=new a1b;kQb(f,j);pQb(f,RAc,null);Y0b(f,i);Z0b(f,r);psc(h,j,f);ZEb(e.c,f);j=f}return e} +function Hec(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=RD(e3b(a,(qpd(),ppd)).Kc().Pb(),12).e;n=RD(e3b(a,Xod).Kc().Pb(),12).g;h=i.c.length;t=K3b(RD(Vmb(a.j,0),12));while(h-->0){p=(tFb(0,i.c.length),RD(i.c[0],18));e=(tFb(0,n.c.length),RD(n.c[0],18));s=e.d.e;f=Wmb(s,e,0);$0b(p,e.d,f);Y0b(e,null);Z0b(e,null);o=p.a;b&&Mub(o,new sjd(t));for(d=Sub(e.a,0);d.b!=d.d.c;){c=RD(evb(d),8);Mub(o,new sjd(c))}r=p.b;for(m=new Anb(e.b);m.ag)&&Ysb(a.b,RD(q.b,18))}}++h}f=g}}}} +function zhd(b,c){var d;if(c==null||lhb(c,vve)){return null}if(c.length==0&&b.k!=(kid(),fid)){return null}switch(b.k.g){case 1:return mhb(c,FGe)?(Geb(),Feb):mhb(c,GGe)?(Geb(),Eeb):null;case 2:try{return sgb(Oeb(c,qwe,lve))}catch(a){a=zdb(a);if(ZD(a,130)){return null}else throw Adb(a)}case 4:try{return Neb(c)}catch(a){a=zdb(a);if(ZD(a,130)){return null}else throw Adb(a)}case 3:return c;case 5:uhd(b);return xhd(b,c);case 6:uhd(b);return yhd(b,b.a,c);case 7:try{d=whd(b);d.cg(c);return d}catch(a){a=zdb(a);if(ZD(a,33)){return null}else throw Adb(a)}default:throw Adb(new dgb('Invalid type set for this layout option.'));}} +function JKd(a){var b;switch(a.d){case 1:{if(a.Sj()){return a.o!=-2}break}case 2:{if(a.Sj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.Rj();switch(a.p){case 0:return b!=null&&Heb(TD(b))!=Pdb(a.k,0);case 1:return b!=null&&RD(b,222).a!=Ydb(a.k)<<24>>24;case 2:return b!=null&&RD(b,180).a!=(Ydb(a.k)&Bwe);case 6:return b!=null&&Pdb(RD(b,168).a,a.k);case 5:return b!=null&&RD(b,17).a!=Ydb(a.k);case 7:return b!=null&&RD(b,191).a!=Ydb(a.k)<<16>>16;case 3:return b!=null&&Kfb(UD(b))!=a.j;case 4:return b!=null&&RD(b,161).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function N_d(a,b,c){var d,e,f,g;if(a.ol()&&a.nl()){g=O_d(a,RD(c,58));if(dE(g)!==dE(c)){a.xj(b);a.Dj(b,P_d(a,b,g));if(a.al()){f=(e=RD(c,54),a.ml()?a.kl()?e.Th(a.b,Z5d(RD(vYd(Uwd(a.b),a.Lj()),19)).n,RD(vYd(Uwd(a.b),a.Lj()).Hk(),29).kk(),null):e.Th(a.b,BYd(e.Dh(),Z5d(RD(vYd(Uwd(a.b),a.Lj()),19))),null,null):e.Th(a.b,-1-a.Lj(),null,null));!RD(g,54).Ph()&&(f=(d=RD(g,54),a.ml()?a.kl()?d.Rh(a.b,Z5d(RD(vYd(Uwd(a.b),a.Lj()),19)).n,RD(vYd(Uwd(a.b),a.Lj()).Hk(),29).kk(),f):d.Rh(a.b,BYd(d.Dh(),Z5d(RD(vYd(Uwd(a.b),a.Lj()),19))),null,f):d.Rh(a.b,-1-a.Lj(),null,f)));!!f&&f.oj()}Mvd(a.b)&&a.Jj(a.Ij(9,c,g,b,false));return g}}return c} +function iJb(a){var b,c,d,e,f,g,h,i,j,k;d=new bnb;for(g=new Anb(a.e.a);g.a0&&(g=$wnd.Math.max(g,zMb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(l-e)<=Tye||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(l-1)<=Tye||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function ENb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=RD(Vrb(a.b,b),127);i=RD(RD(Qc(a.r,b),21),87);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((Pod(),Lod));g=0;a.A.Hc((Qpd(),Ppd))&&JNb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=RD(h.Pb(),117);f=Kfb(UD(d.b.of((tNb(),sNb))));e=d.b.Mf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,zMb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(m-f)<=Tye||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(m-1)<=Tye||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function L8c(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r;o=false;j=dad(c.q,b.f+b.b-c.q.f);n=d.f>b.b&&h;r=e-(c.q.e+j-g);l=(i=S9c(d,r,false),i.a);if(n&&l>d.f){return false}if(n){m=0;for(q=new Anb(b.d);q.a=(tFb(f,a.c.length),RD(a.c[f],186)).e;if(!n&&l>b.b&&!k){return false}if(k||n||l<=b.b){if(k&&l>b.b){c.d=l;Q9c(c,P9c(c,l))}else{ead(c.q,j);c.c=true}Q9c(d,e-(c.s+c.r));U9c(d,c.q.e+c.q.d,b.f);Cad(b,d);if(a.c.length>f){Fad((tFb(f,a.c.length),RD(a.c[f],186)),d);(tFb(f,a.c.length),RD(a.c[f],186)).a.c.length==0&&Xmb(a,f)}o=true}return o} +function zJc(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=$C(jR,WAe,10,h+i,0,1);for(g=0;g0?xJc(this,this.f/this.a):pJc(b.g,b.d[0]).a!=null&&pJc(c.g,c.d[0]).a!=null?xJc(this,(Kfb(pJc(b.g,b.d[0]).a)+Kfb(pJc(c.g,c.d[0]).a))/2):pJc(b.g,b.d[0]).a!=null?xJc(this,pJc(b.g,b.d[0]).a):pJc(c.g,c.d[0]).a!=null&&xJc(this,pJc(c.g,c.d[0]).a)} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new fYb(wsb(s3));for(d=new Anb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;pQb(a,(yCc(),lBc),(Qpd(),d=RD(mfb(H3),9),new Fsb(d,RD(WEb(d,d.length),9),0)))} +function ISd(a,b,c,d,e,f){var g;if(!(b==null||!mSd(b,ZRd,$Rd))){throw Adb(new agb('invalid scheme: '+b))}if(!a&&!(c!=null&&qhb(c,Fhb(35))==-1&&c.length>0&&(BFb(0,c.length),c.charCodeAt(0)!=47))){throw Adb(new agb('invalid opaquePart: '+c))}if(a&&!(b!=null&&tpb(eSd,b.toLowerCase()))&&!(c==null||!mSd(c,aSd,bSd))){throw Adb(new agb(NJe+c))}if(a&&b!=null&&tpb(eSd,b.toLowerCase())&&!ESd(c)){throw Adb(new agb(NJe+c))}if(!FSd(d)){throw Adb(new agb('invalid device: '+d))}if(!HSd(e)){g=e==null?'invalid segments: null':'invalid segment: '+tSd(e);throw Adb(new agb(g))}if(!(f==null||qhb(f,Fhb(35))==-1)){throw Adb(new agb('invalid query: '+f))}} +function WHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;c.Ug('Network simplex layering',1);a.b=b;r=RD(mQb(b,(yCc(),gCc)),17).a*4;q=a.b.a;if(q.c.length<1){c.Vg();return}f=SHc(a,q);p=null;for(e=Sub(f,0);e.b!=e.d.c;){d=RD(evb(e),15);h=r*eE($wnd.Math.sqrt(d.gc()));g=VHc(d);lJb(yJb(AJb(zJb(CJb(g),h),p),true),c.eh(1));m=a.b.b;for(o=new Anb(g.a);o.a1){p=$C(kE,Pwe,28,a.b.b.c.length,15,1);l=0;for(j=new Anb(a.b.b);j.a0){wA(a,c,0);c.a+=String.fromCharCode(d);e=BA(b,f);wA(a,c,e);f+=e-1;continue}if(d==39){if(f+10&&o.a<=0){i.c.length=0;ZEb(i.c,o);break}n=o.i-o.d;if(n>=h){if(n>h){i.c.length=0;h=n}ZEb(i.c,o)}}if(i.c.length!=0){g=RD(Vmb(i,Jwb(e,i.c.length)),118);t.a.Bc(g)!=null;g.g=k++;wSc(g,b,c,d);i.c.length=0}}q=a.c.length+1;for(m=new Anb(a);m.apxe||b.o==CQc&&k=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(ipwe)&&h<10);BYb(a.c,new bYb);QXb(a);xYb(a.c);AXb(a.f)} +function B9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=RD(mQb(a,(yCc(),BBc)),101);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new bnb;l=new bnb;for(e=new Anb(b);e.a=2){i=Sub(c,0);g=RD(evb(i),8);h=RD(evb(i),8);while(h.a0&&aHb(j,true,(Cmd(),zmd));h.k==(r3b(),m3b)&&bHb(j);Zjb(a.f,h,b)}}} +function OVc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=RD(mQb(a,(q$c(),h$c)),27);j=lve;k=lve;h=qwe;i=qwe;for(t=Sub(a.b,0);t.b!=t.d.c;){r=RD(evb(t),40);n=r.e;o=r.f;j=$wnd.Math.min(j,n.a-o.a/2);k=$wnd.Math.min(k,n.b-o.b/2);h=$wnd.Math.max(h,n.a+o.a/2);i=$wnd.Math.max(i,n.b+o.b/2)}m=RD(Gxd(e,(h_c(),T$c)),107);for(s=Sub(a.b,0);s.b!=s.d.c;){r=RD(evb(s),40);l=mQb(r,h$c);if(ZD(l,207)){f=RD(l,27);Byd(f,r.e.a,r.e.b);zxd(f,r)}}for(q=Sub(a.a,0);q.b!=q.d.c;){p=RD(evb(q),65);d=RD(mQb(p,h$c),74);if(d){b=p.a;c=IGd(d,true,true);lsd(b,c)}}u=h-j+(m.b+m.c);g=i-k+(m.d+m.a);Heb(TD(Gxd(e,(umd(),mld))))||Esd(e,u,g,false,false);Ixd(e,Ikd,u-(m.b+m.c));Ixd(e,Hkd,g-(m.d+m.a))} +function Wec(a,b){var c,d,e,f,g,h,i,j,k,l;i=true;e=0;j=a.g[b.p];k=b.o.b+a.o;c=a.d[b.p][2];$mb(a.b,j,sgb(RD(Vmb(a.b,j),17).a-1+c));$mb(a.c,j,Kfb(UD(Vmb(a.c,j)))-k+c*a.f);++j;if(j>=a.j){++a.j;Rmb(a.b,sgb(1));Rmb(a.c,k)}else{d=a.d[b.p][1];$mb(a.b,j,sgb(RD(Vmb(a.b,j),17).a+1-d));$mb(a.c,j,Kfb(UD(Vmb(a.c,j)))+k-d*a.f)}(a.r==(aEc(),VDc)&&(RD(Vmb(a.b,j),17).a>a.k||RD(Vmb(a.b,j-1),17).a>a.k)||a.r==YDc&&(Kfb(UD(Vmb(a.c,j)))>a.n||Kfb(UD(Vmb(a.c,j-1)))>a.n))&&(i=false);for(g=new is(Mr(Z2b(b).a.Kc(),new ir));gs(g);){f=RD(hs(g),18);h=f.c.i;if(a.g[h.p]==j){l=Wec(a,h);e=e+RD(l.a,17).a;i=i&&Heb(TD(l.b))}}a.g[b.p]=j;e=e+a.d[b.p][0];return new Ptd(sgb(e),(Geb(),i?true:false))} +function cXb(a,b){var c,d,e,f,g;c=Kfb(UD(mQb(b,(yCc(),TBc))));c<2&&pQb(b,TBc,2);d=RD(mQb(b,rAc),88);d==(Cmd(),Amd)&&pQb(b,rAc,i2b(b));e=RD(mQb(b,NBc),17);e.a==0?pQb(b,(Ywc(),Lwc),new Owb):pQb(b,(Ywc(),Lwc),new Pwb(e.a));f=TD(mQb(b,gBc));f==null&&pQb(b,gBc,(Geb(),dE(mQb(b,yAc))===dE((Ymd(),Umd))?true:false));FDb(new SDb(null,new Swb(b.a,16)),new fXb(a));FDb(EDb(new SDb(null,new Swb(b.b,16)),new hXb),new jXb(a));g=new gFc(b);pQb(b,(Ywc(),Qwc),g);Sed(a.a);Ved(a.a,(sXb(),nXb),RD(mQb(b,pAc),188));Ved(a.a,oXb,RD(mQb(b,$Ac),188));Ved(a.a,pXb,RD(mQb(b,oAc),188));Ved(a.a,qXb,RD(mQb(b,kBc),188));Ved(a.a,rXb,KRc(RD(mQb(b,yAc),223)));Ped(a.a,bXb(b));pQb(b,Kwc,Qed(a.a,b))} +function STc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Tsb;g=new bnb;QTc(a,c,a.d.Ag(),g,l);QTc(a,d,a.d.Bg(),g,l);a.b=0.2*(p=RTc(EDb(new SDb(null,new Swb(g,16)),new XTc)),q=RTc(EDb(new SDb(null,new Swb(g,16)),new ZTc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=uSc(g,true,m),!a.e&&(a.e=new xTc(a)),tTc(a.e,r,g,a.b),undefined);UTc(g,m);WTc(g);n=-1;for(k=new Anb(g);k.ah} +function Iad(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=oxe;k=oxe;h=pxe;i=pxe;for(m=new Anb(b.i);m.a-1){for(e=Sub(h,0);e.b!=e.d.c;){d=RD(evb(e),131);d.v=g}while(h.b!=0){d=RD(ku(h,0),131);for(c=new Anb(d.i);c.a-1){for(f=new Anb(h);f.a0){continue}RSc(i,$wnd.Math.min(i.o,e.o-1));QSc(i,i.i-1);i.i==0&&(ZEb(h.c,i),true)}}}} +function Lid(a,b,c,d,e){var f,g,h,i;i=oxe;g=false;h=Gid(a,ojd(new rjd(b.a,b.b),a),$id(new rjd(c.a,c.b),e),ojd(new rjd(d.a,d.b),c));f=!!h&&!($wnd.Math.abs(h.a-a.a)<=IGe&&$wnd.Math.abs(h.b-a.b)<=IGe||$wnd.Math.abs(h.a-b.a)<=IGe&&$wnd.Math.abs(h.b-b.b)<=IGe);h=Gid(a,ojd(new rjd(b.a,b.b),a),c,e);!!h&&(($wnd.Math.abs(h.a-a.a)<=IGe&&$wnd.Math.abs(h.b-a.b)<=IGe)==($wnd.Math.abs(h.a-b.a)<=IGe&&$wnd.Math.abs(h.b-b.b)<=IGe)||f?(i=$wnd.Math.min(i,ejd(ojd(h,c)))):(g=true));h=Gid(a,ojd(new rjd(b.a,b.b),a),d,e);!!h&&(g||($wnd.Math.abs(h.a-a.a)<=IGe&&$wnd.Math.abs(h.b-a.b)<=IGe)==($wnd.Math.abs(h.a-b.a)<=IGe&&$wnd.Math.abs(h.b-b.b)<=IGe)||f)&&(i=$wnd.Math.min(i,ejd(ojd(h,d))));return i} +function eWb(a){Cgd(a,new Pfd(Wfd($fd(Xfd(Zfd(Yfd(new agd,AAe),BAe),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new hWb),Zze)));Agd(a,AAe,dAe,iGd(XVb));Agd(a,AAe,fAe,(Geb(),true));Agd(a,AAe,jAe,iGd($Vb));Agd(a,AAe,CAe,iGd(_Vb));Agd(a,AAe,iAe,iGd(aWb));Agd(a,AAe,kAe,iGd(ZVb));Agd(a,AAe,gAe,iGd(bWb));Agd(a,AAe,lAe,iGd(cWb));Agd(a,AAe,vAe,iGd(WVb));Agd(a,AAe,xAe,iGd(UVb));Agd(a,AAe,yAe,iGd(VVb));Agd(a,AAe,zAe,iGd(YVb));Agd(a,AAe,wAe,iGd(TVb))} +function kJc(a){var b,c,d,e,f,g,h,i;b=null;for(d=new Anb(a);d.a0&&c.c==0){!b&&(b=new bnb);ZEb(b.c,c)}}if(b){while(b.c.length!=0){c=RD(Xmb(b,0),239);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new bnb),new Anb(c.b));f.aWmb(a,c,0)){return new Ptd(e,c)}}else if(Kfb(pJc(e.g,e.d[0]).a)>Kfb(pJc(c.g,c.d[0]).a)){return new Ptd(e,c)}}}for(h=(!c.e&&(c.e=new bnb),c.e).Kc();h.Ob();){g=RD(h.Pb(),239);i=(!g.b&&(g.b=new bnb),g.b);wFb(0,i.c.length);XEb(i.c,0,c);g.c==i.c.length&&(ZEb(b.c,g),true)}}}return null} +function _Jc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;b.Ug('Interactive crossing minimization',1);g=0;for(f=new Anb(a.b);f.a0){c+=i.n.a+i.o.a/2;++l}for(o=new Anb(i.j);o.a0&&(c/=l);r=$C(iE,vxe,28,d.a.c.length,15,1);h=0;for(j=new Anb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i2){k=new bnb;Tmb(k,new Rkb(r,1,r.b));f=jTb(k,t+a.a);s=new ORb(f);kQb(s,b);ZEb(c.c,s)}else{d?(s=RD(Wjb(a.b,JGd(b)),272)):(s=RD(Wjb(a.b,LGd(b)),272))}i=JGd(b);d&&(i=LGd(b));g=qTb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new rjd(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new rjd((l.a+q.a)/2,l.b)}d?Zjb(a.d,b,new QRb(s,g,p,j)):Zjb(a.c,b,new QRb(s,g,p,j));Zjb(a.b,b,s);o=(!b.n&&(b.n=new C5d(I4,b,1,7)),b.n);for(n=new dMd(o);n.e!=n.i.gc();){m=RD(bMd(n),135);e=nTb(a,m,true,0,0);ZEb(c.c,e)}} +function sMb(a){var b,c,d,e,f,g,h;if(a.A.dc()){return}if(a.A.Hc((Qpd(),Opd))){RD(Vrb(a.b,(qpd(),Yod)),127).k=true;RD(Vrb(a.b,npd),127).k=true;b=a.q!=(Bod(),xod)&&a.q!=wod;QJb(RD(Vrb(a.b,Xod),127),b);QJb(RD(Vrb(a.b,ppd),127),b);QJb(a.g,b);if(a.A.Hc(Ppd)){RD(Vrb(a.b,Yod),127).j=true;RD(Vrb(a.b,npd),127).j=true;RD(Vrb(a.b,Xod),127).k=true;RD(Vrb(a.b,ppd),127).k=true;a.g.k=true}}if(a.A.Hc(Npd)){a.a.j=true;a.a.k=true;a.g.j=true;a.g.k=true;h=a.B.Hc((dqd(),_pd));for(e=nMb(),f=0,g=e.length;f0),RD(k.a.Xb(k.c=--k.b),18));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sFb(k.b>0),RD(k.a.Xb(k.c=--k.b),18))}k.b>0&&Ckb(k)}}}}} +function Zyb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.b){return false}g=null;m=null;i=new Fzb(null,null);e=1;i.a[1]=a.b;l=i;while(l.a[e]){j=e;h=m;m=l;l=l.a[e];d=a.a.Ne(b,l.d);e=d<0?0:1;d==0&&(!c.c||Fvb(l.e,c.d))&&(g=l);if(!(!!l&&l.b)&&!Vyb(l.a[e])){if(Vyb(l.a[1-e])){m=m.a[j]=azb(l,e)}else if(!Vyb(l.a[1-e])){n=m.a[1-j];if(n){if(!Vyb(n.a[1-j])&&!Vyb(n.a[j])){m.b=false;n.b=true;l.b=true}else{f=h.a[1]==m?1:0;Vyb(n.a[j])?(h.a[f]=_yb(m,j)):Vyb(n.a[1-j])&&(h.a[f]=azb(m,j));l.b=h.a[f].b=true;h.a[f].a[0].b=false;h.a[f].a[1].b=false}}}}}if(g){c.b=true;c.d=g.e;if(l!=g){k=new Fzb(l.d,l.e);$yb(a,i,g,k);m==g&&(m=k)}m.a[m.a[1]==l?1:0]=l.a[!l.a[0]?1:0];--a.c}a.b=i.a[1];!!a.b&&(a.b.b=false);return c.b} +function Ilc(a){var b,c,d,e,f,g,h,i,j,k,l,m;for(e=new Anb(a.a.a.b);e.a0?(e-=86400000):(e+=86400000);i=new wB(Bdb(Hdb(b.q.getTime()),e))}k=new cib;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw Adb(new agb("Missing trailing '"))}g+1=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new dib(c.d)):Zhb(c.a,c.b);Whb(c.a,'[...]')}else{h=SD(d);j=new btb(b);Gyb(c,Inb(h,j))}}else ZD(d,183)?Gyb(c,hob(RD(d,183))):ZD(d,195)?Gyb(c,aob(RD(d,195))):ZD(d,201)?Gyb(c,bob(RD(d,201))):ZD(d,2111)?Gyb(c,gob(RD(d,2111))):ZD(d,53)?Gyb(c,eob(RD(d,53))):ZD(d,376)?Gyb(c,fob(RD(d,376))):ZD(d,846)?Gyb(c,dob(RD(d,846))):ZD(d,109)&&Gyb(c,cob(RD(d,109)))}else{Gyb(c,d==null?vve:jeb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function KXd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;yXd(a,null)}else{a.F=(uFb(b),b);d=qhb(b,Fhb(60));if(d!=-1){e=(AFb(0,d,b.length),b.substr(0,d));qhb(b,Fhb(46))==-1&&!lhb(e,hve)&&!lhb(e,dKe)&&!lhb(e,eKe)&&!lhb(e,fKe)&&!lhb(e,gKe)&&!lhb(e,hKe)&&!lhb(e,iKe)&&!lhb(e,jKe)&&(e=kKe);c=thb(b,Fhb(62));c!=-1&&(e+=''+(BFb(c+1,b.length+1),b.substr(c+1)));yXd(a,e)}else{e=b;if(qhb(b,Fhb(46))==-1){d=qhb(b,Fhb(91));d!=-1&&(e=(AFb(0,d,b.length),b.substr(0,d)));if(!lhb(e,hve)&&!lhb(e,dKe)&&!lhb(e,eKe)&&!lhb(e,fKe)&&!lhb(e,gKe)&&!lhb(e,hKe)&&!lhb(e,iKe)&&!lhb(e,jKe)){e=kKe;d!=-1&&(e+=''+(BFb(d,b.length+1),b.substr(d)))}else{e=b}}yXd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,5,f,b))} +function Pvd(b,c){var d,e,f,g,h,i,j,k,l,m;j=c.length-1;i=(BFb(j,c.length),c.charCodeAt(j));if(i==93){h=qhb(c,Fhb(91));if(h>=0){f=Uvd(b,(AFb(1,h,c.length),c.substr(1,h-1)));l=(AFb(h+1,j,c.length),c.substr(h+1,j-(h+1)));return Nvd(b,l,f)}}else{d=-1;_eb==null&&(_eb=new RegExp('\\d'));if(_eb.test(String.fromCharCode(i))){d=uhb(c,Fhb(46),j-1);if(d>=0){e=RD(Fvd(b,Zvd(b,(AFb(1,d,c.length),c.substr(1,d-1))),false),61);k=0;try{k=Oeb((BFb(d+1,c.length+1),c.substr(d+1)),qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){g=a;throw Adb(new RSd(g))}else throw Adb(a)}if(k>16==-10){c=RD(a.Cb,292).Yk(b,c)}else if(a.Db>>16==-15){!b&&(b=(JTd(),wTd));!j&&(j=(JTd(),wTd));if(a.Cb.Yh()){i=new P3d(a.Cb,1,13,j,b,fZd(o4d(RD(a.Cb,62)),a),false);!c?(c=i):c.nj(i)}}}else if(ZD(a.Cb,90)){if(a.Db>>16==-23){ZD(b,90)||(b=(JTd(),zTd));ZD(j,90)||(j=(JTd(),zTd));if(a.Cb.Yh()){i=new P3d(a.Cb,1,10,j,b,fZd(tYd(RD(a.Cb,29)),a),false);!c?(c=i):c.nj(i)}}}else if(ZD(a.Cb,457)){h=RD(a.Cb,850);g=(!h.b&&(h.b=new pae(new lae)),h.b);for(f=(d=new vkb((new mkb(g.a)).a),new xae(d));f.a.b;){e=RD(tkb(f.a).ld(),89);c=o2d(e,k2d(e,h),c)}}}return c} +function Y4b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Heb(TD(Gxd(a,(yCc(),NAc))));m=RD(Gxd(a,EBc),21);i=false;j=false;l=new dMd((!a.c&&(a.c=new C5d(K4,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=RD(bMd(l),123);h=0;for(e=Fl(Al(cD(WC(cJ,1),rve,20,0,[(!f.d&&(f.d=new Yie(G4,f,8,5)),f.d),(!f.e&&(f.e=new Yie(G4,f,7,4)),f.e)])));gs(e);){d=RD(hs(e),74);k=g&&ozd(d)&&Heb(TD(Gxd(d,OAc)));c=cZd((!d.b&&(d.b=new Yie(E4,d,4,7)),d.b),f)?a==vCd(AGd(RD(QHd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c),0),84))):a==vCd(AGd(RD(QHd((!d.b&&(d.b=new Yie(E4,d,4,7)),d.b),0),84)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((Pod(),Lod))&&(!f.n&&(f.n=new C5d(I4,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((ovc(),hvc));j&&b.Fc((ovc(),ivc))} +function Dsd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=RD(Gxd(a,(umd(),kld)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((Qpd(),Opd))){k=RD(Gxd(a,Hld),101);d=2;c=2;e=2;f=2;b=!vCd(a)?RD(Gxd(a,Nkd),88):RD(Gxd(vCd(a),Nkd),88);for(j=new dMd((!a.c&&(a.c=new C5d(K4,a,9,9)),a.c));j.e!=j.i.gc();){i=RD(bMd(j),123);l=RD(Gxd(i,Old),64);if(l==(qpd(),opd)){l=osd(i,b);Ixd(i,Old,l)}if(k==(Bod(),wod)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Esd(a,h,g,true,true)} +function Rqc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=RD(zDb(PDb(CDb(new SDb(null,new Swb(b.d,16)),new Vqc(c)),new Xqc(c)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);l=lve;k=qwe;for(i=new Anb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=RD(Vmb(r.c.a,m),10);d=Z7b(l);n=!(Did(d,w,c[0])||yid(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p=0){i=null;h=new Jkb(k.a,j+1);while(h.bg?1:cz(isNaN(0),isNaN(g)))<0&&(null,bz(vEe),($wnd.Math.abs(g-1)<=vEe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:cz(isNaN(g),isNaN(1)))<0)&&(null,bz(vEe),($wnd.Math.abs(0-h)<=vEe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:cz(isNaN(0),isNaN(h)))<0)&&(null,bz(vEe),($wnd.Math.abs(h-1)<=vEe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:cz(isNaN(h),isNaN(1)))<0));return f} +function EXd(b){var c,d,e,f;d=b.D!=null?b.D:b.B;c=qhb(d,Fhb(91));if(c!=-1){e=(AFb(0,c,d.length),d.substr(0,c));f=new Qhb;do f.a+='[';while((c=phb(d,91,++c))!=-1);if(lhb(e,hve))f.a+='Z';else if(lhb(e,dKe))f.a+='B';else if(lhb(e,eKe))f.a+='C';else if(lhb(e,fKe))f.a+='D';else if(lhb(e,gKe))f.a+='F';else if(lhb(e,hKe))f.a+='I';else if(lhb(e,iKe))f.a+='J';else if(lhb(e,jKe))f.a+='S';else{f.a+='L';f.a+=''+e;f.a+=';'}try{return null}catch(a){a=zdb(a);if(!ZD(a,63))throw Adb(a)}}else if(qhb(d,Fhb(46))==-1){if(lhb(d,hve))return xdb;else if(lhb(d,dKe))return gE;else if(lhb(d,eKe))return hE;else if(lhb(d,fKe))return iE;else if(lhb(d,gKe))return jE;else if(lhb(d,hKe))return kE;else if(lhb(d,iKe))return lE;else if(lhb(d,jKe))return wdb}return null} +function pTb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;a.e=b;h=RSb(b);w=new bnb;for(d=new Anb(h);d.a=0&&p=j.c.c.length?(k=hOc((r3b(),p3b),o3b)):(k=hOc((r3b(),o3b),o3b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function qkc(a){var b,c,d,e;FDb(CDb(new SDb(null,new Swb(a.a.b,16)),new Qkc),new Skc);okc(a);FDb(CDb(new SDb(null,new Swb(a.a.b,16)),new Ukc),new Wkc);if(a.c==(Ymd(),Wmd)){FDb(CDb(EDb(new SDb(null,new Swb(new Xkb(a.f),1)),new clc),new elc),new glc(a));FDb(CDb(GDb(EDb(EDb(new SDb(null,new Swb(a.d.b,16)),new klc),new mlc),new olc),new qlc),new slc(a))}e=new rjd(oxe,oxe);b=new rjd(pxe,pxe);for(d=new Anb(a.a.b);d.a0&&(b.a+=pve,b);Csd(RD(bMd(h),167),b)}b.a+=SAe;i=new mMd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=pve,b);Csd(RD(bMd(i),167),b)}b.a+=')'}}} +function LTb(a,b,c){var d,e,f,g,h,i,j,k;for(i=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));i.e!=i.i.gc();){h=RD(bMd(i),27);for(e=new is(Mr(zGd(h).a.Kc(),new ir));gs(e);){d=RD(hs(e),74);!d.b&&(d.b=new Yie(E4,d,4,7));if(!(d.b.i<=1&&(!d.c&&(d.c=new Yie(E4,d,5,8)),d.c.i<=1))){throw Adb(new Ked('Graph must not contain hyperedges.'))}if(!nzd(d)&&h!=AGd(RD(QHd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c),0),84))){j=new cUb;kQb(j,d);pQb(j,(JVb(),HVb),d);_Tb(j,RD(Wd(qtb(c.f,h)),153));aUb(j,RD(Wjb(c,AGd(RD(QHd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c),0),84))),153));Rmb(b.c,j);for(g=new dMd((!d.n&&(d.n=new C5d(I4,d,1,7)),d.n));g.e!=g.i.gc();){f=RD(bMd(g),135);k=new iUb(j,f.a);kQb(k,f);pQb(k,HVb,f);k.e.a=$wnd.Math.max(f.g,1);k.e.b=$wnd.Math.max(f.f,1);hUb(k);Rmb(b.d,k)}}}}} +function Vec(a,b,c){var d,e,f,g,h,i,j,k,l,m;c.Ug('Node promotion heuristic',1);a.i=b;a.r=RD(mQb(b,(yCc(),ZAc)),243);a.r!=(aEc(),TDc)&&a.r!=UDc?Tec(a):Uec(a);k=RD(mQb(a.i,YAc),17).a;f=new nfc;switch(a.r.g){case 2:case 1:Yec(a,f);break;case 3:a.r=_Dc;Yec(a,f);i=0;for(h=new Anb(a.b);h.aa.k){a.r=VDc;Yec(a,f)}break;case 4:a.r=_Dc;Yec(a,f);j=0;for(e=new Anb(a.c);e.aa.n){a.r=YDc;Yec(a,f)}break;case 6:m=eE($wnd.Math.ceil(a.g.length*k/100));Yec(a,new qfc(m));break;case 5:l=eE($wnd.Math.ceil(a.e*k/100));Yec(a,new tfc(l));break;case 8:Sec(a,true);break;case 9:Sec(a,false);break;default:Yec(a,f);}a.r!=TDc&&a.r!=UDc?Zec(a,b):$ec(a,b);c.Vg()} +function $rc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=a.b;k=new Jkb(l,0);Ikb(k,new R4b(a));s=false;g=1;while(k.b0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function u9b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new rjd(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new Anb(a.a);j.a0){a.c[b.c.p][b.p].d+=Kwb(a.i,24)*Nxe*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function D8b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new Anb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function pA(a,b){var c,d,e,f,g,h,i,j,k;j='';if(b.length==0){return a.ne(ywe,wwe,-1,-1)}k=Dhb(b);lhb(k.substr(0,3),'at ')&&(k=(BFb(3,k.length+1),k.substr(3)));k=k.replace(/\[.*?\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=Dhb((BFb(g+1,k.length+1),k.substr(g+1)));k=Dhb((AFb(0,g,k.length),k.substr(0,g)))}}else{c=k.indexOf(')',g);j=(AFb(g+1,c,k.length),k.substr(g+1,c-(g+1)));k=Dhb((AFb(0,g,k.length),k.substr(0,g)))}g=qhb(k,Fhb(46));g!=-1&&(k=(BFb(g+1,k.length+1),k.substr(g+1)));(k.length==0||lhb(k,'Anonymous function'))&&(k=wwe);h=thb(j,Fhb(58));e=uhb(j,Fhb(58),h-1);i=-1;d=-1;f=ywe;if(h!=-1&&e!=-1){f=(AFb(0,e,j.length),j.substr(0,e));i=jA((AFb(e+1,h,j.length),j.substr(e+1,h-(e+1))));d=jA((BFb(h+1,j.length+1),j.substr(h+1)))}return a.ne(f,k,i,d)} +function C6b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new Anb(a);j.a0||k.j==ppd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new Anb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new Anb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function hTb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;f=a.f.b;m=f.a;k=f.b;o=a.e.g;n=a.e.f;zyd(a.e,f.a,f.b);w=m/o;A=k/n;for(j=new dMd(iyd(a.e));j.e!=j.i.gc();){i=RD(bMd(j),135);Dyd(i,i.i*w);Eyd(i,i.j*A)}for(s=new dMd(wCd(a.e));s.e!=s.i.gc();){r=RD(bMd(s),123);u=r.i;v=r.j;u>0&&Dyd(r,u*w);v>0&&Eyd(r,v*A)}Bvb(a.b,new tTb);b=new bnb;for(h=new vkb((new mkb(a.c)).a);h.b;){g=tkb(h);d=RD(g.ld(),74);c=RD(g.md(),407).a;e=IGd(d,false,false);l=fTb(JGd(d),ssd(e),c);lsd(l,e);t=KGd(d);if(!!t&&Wmb(b,t,0)==-1){ZEb(b.c,t);gTb(t,(sFb(l.b!=0),RD(l.a.a.c,8)),c)}}for(q=new vkb((new mkb(a.d)).a);q.b;){p=tkb(q);d=RD(p.ld(),74);c=RD(p.md(),407).a;e=IGd(d,false,false);l=fTb(LGd(d),Ijd(ssd(e)),c);l=Ijd(l);lsd(l,e);t=MGd(d);if(!!t&&Wmb(b,t,0)==-1){ZEb(b.c,t);gTb(t,(sFb(l.b!=0),RD(l.c.b.c,8)),c)}}} +function GJb(a,b,c,d){var e,f,g,h,i;h=new CLb(b);iNb(h,d);e=true;if(!!a&&a.pf((umd(),Nkd))){f=RD(a.of((umd(),Nkd)),88);e=f==(Cmd(),Amd)||f==ymd||f==zmd}$Mb(h,false);Umb(h.e.Rf(),new dNb(h,false,e));EMb(h,h.f,(ZJb(),WJb),(qpd(),Yod));EMb(h,h.f,YJb,npd);EMb(h,h.g,WJb,ppd);EMb(h,h.g,YJb,Xod);GMb(h,Yod);GMb(h,npd);FMb(h,Xod);FMb(h,ppd);RMb();g=h.A.Hc((Qpd(),Mpd))&&h.B.Hc((dqd(),$pd))?SMb(h):null;!!g&&uKb(h.a,g);XMb(h);xMb(h);GNb(h);sMb(h);gNb(h);yNb(h);oNb(h,Yod);oNb(h,npd);tMb(h);fNb(h);if(!c){return h.o}VMb(h);CNb(h);oNb(h,Xod);oNb(h,ppd);i=h.B.Hc((dqd(),_pd));IMb(h,i,Yod);IMb(h,i,npd);JMb(h,i,Xod);JMb(h,i,ppd);FDb(new SDb(null,new Swb(new glb(h.i),0)),new KMb);FDb(CDb(new SDb(null,ki(h.r).a.oc()),new MMb),new OMb);WMb(h);h.e.Pf(h.o);FDb(new SDb(null,ki(h.r).a.oc()),new YMb);return h.o} +function LYb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=oxe;for(d=new Anb(a.a.b);d.a1){n=new xVc(o,t,d);xgb(t,new nVc(a,n));ZEb(g.c,n);for(l=t.a.ec().Kc();l.Ob();){k=RD(l.Pb(),42);Ymb(f,k.b)}}if(h.a.gc()>1){n=new xVc(o,h,d);xgb(h,new pVc(a,n));ZEb(g.c,n);for(l=h.a.ec().Kc();l.Ob();){k=RD(l.Pb(),42);Ymb(f,k.b)}}}} +function p6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=a.n;q=a.o;m=a.d;l=Kfb(UD(hFc(a,(yCc(),QBc))));if(b){k=l*(b.gc()-1);n=0;for(i=b.Kc();i.Ob();){g=RD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b-m.d+n;d=q.a/(b.gc()+1);e=d;for(h=b.Kc();h.Ob();){g=RD(h.Pb(),10);g.n.a=r;g.n.b=f-g.o.b;r+=g.o.a+l;j=n6b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=g.o.b;o=RD(mQb(g,(Ywc(),Xvc)),12);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=0;P3b(o,a)}e+=d}}if(c){k=l*(c.gc()-1);n=0;for(i=c.Kc();i.Ob();){g=RD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b+q.b+m.a-n;d=q.a/(c.gc()+1);e=d;for(h=c.Kc();h.Ob();){g=RD(h.Pb(),10);g.n.a=r;g.n.b=f;r+=g.o.a+l;j=n6b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=0;o=RD(mQb(g,(Ywc(),Xvc)),12);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=q.b;P3b(o,a)}e+=d}}} +function Hac(a,b){var c,d,e,f,g,h;if(!RD(mQb(b,(Ywc(),kwc)),21).Hc((ovc(),hvc))){return}for(h=new Anb(b.a);h.a=0&&g0&&(RD(Vrb(a.b,b),127).a.b=c)} +function wcc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;m=Kfb(UD(mQb(a,(yCc(),_Bc))));n=Kfb(UD(mQb(a,aCc)));l=Kfb(UD(mQb(a,ZBc)));h=a.o;f=RD(Vmb(a.j,0),12);g=f.n;p=ucc(f,l);if(!p){return}if(b.Hc((Pod(),Lod))){switch(RD(mQb(a,(Ywc(),hwc)),64).g){case 1:p.c=(h.a-p.b)/2-g.a;p.d=n;break;case 3:p.c=(h.a-p.b)/2-g.a;p.d=-n-p.a;break;case 2:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:RD(Vmb(f.f,0),72).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=-m-p.b;break;case 4:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:RD(Vmb(f.f,0),72).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=m;}}else if(b.Hc(Nod)){switch(RD(mQb(a,(Ywc(),hwc)),64).g){case 1:case 3:p.c=g.a+m;break;case 2:case 4:if(c&&!f.c){k=d?p.a:RD(Vmb(f.f,0),72).o.b;p.d=(h.b-k)/2-g.b}else{p.d=g.b+n}}}e=p.d;for(j=new Anb(f.f);j.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!Ftb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[Jxe]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function q$c(){q$c=geb;h$c=new jGd(rAe);new jGd(sAe);new kGd('DEPTH',sgb(0));XZc=new kGd('FAN',sgb(0));VZc=new kGd(QEe,sgb(0));n$c=new kGd('ROOT',(Geb(),false));b$c=new kGd('LEFTNEIGHBOR',null);l$c=new kGd('RIGHTNEIGHBOR',null);c$c=new kGd('LEFTSIBLING',null);m$c=new kGd('RIGHTSIBLING',null);WZc=new kGd('DUMMY',false);new kGd('LEVEL',sgb(0));k$c=new kGd('REMOVABLE_EDGES',new Yub);o$c=new kGd('XCOOR',sgb(0));p$c=new kGd('YCOOR',sgb(0));d$c=new kGd('LEVELHEIGHT',0);f$c=new kGd('LEVELMIN',0);e$c=new kGd('LEVELMAX',0);ZZc=new kGd('GRAPH_XMIN',0);_Zc=new kGd('GRAPH_YMIN',0);YZc=new kGd('GRAPH_XMAX',0);$Zc=new kGd('GRAPH_YMAX',0);UZc=new kGd('COMPACT_LEVEL_ASCENSION',false);TZc=new kGd('COMPACT_CONSTRAINTS',new bnb);a$c=new kGd('ID','');i$c=new kGd('POSITION',sgb(0));j$c=new kGd('PRELIM',0);g$c=new kGd('MODIFIER',0);SZc=new jGd(tAe);RZc=new jGd(uAe)} +function Bqe(a){zqe();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=$C(hE,zwe,28,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=yqe[o];f[g++]=yqe[p|j<<4];f[g++]=yqe[k<<2|q];f[g++]=yqe[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=yqe[o];f[g++]=yqe[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=yqe[o];f[g++]=yqe[p|j<<4];f[g++]=yqe[k<<2];f[g++]=61}return Ihb(f,0,f.length)} +function CB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>qwe&&tB(b,a.p-Owe);g=b.q.getDate();nB(b,1);a.k>=0&&qB(b,a.k);if(a.c>=0){nB(b,a.c)}else if(a.k>=0){i=new vB(b.q.getFullYear()-Owe,b.q.getMonth(),35);d=35-i.q.getDate();nB(b,$wnd.Math.min(d,g))}else{nB(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);oB(b,a.f==24&&a.g?0:a.f);a.j>=0&&pB(b,a.j);a.n>=0&&rB(b,a.n);a.i>=0&&sB(b,Bdb(Ndb(Fdb(Hdb(b.q.getTime()),Awe),Awe),a.i));if(a.a){e=new uB;tB(e,e.q.getFullYear()-Owe-80);Ldb(Hdb(b.q.getTime()),Hdb(e.q.getTime()))&&tB(b,e.q.getFullYear()-Owe+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();nB(b,b.q.getDate()+c);b.q.getMonth()!=h&&nB(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>qwe){f=b.q.getTimezoneOffset();sB(b,Bdb(Hdb(b.q.getTime()),(a.o-f)*60*Awe))}return true} +function J5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=mQb(b,(Ywc(),Awc));if(!ZD(e,207)){return}o=RD(e,27);p=b.e;m=new sjd(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=RD(Gxd(o,(yCc(),oBc)),181);if(Csb(u,(dqd(),Xpd))){n=RD(Gxd(o,qBc),107);E2b(n,f.a);H2b(n,f.d);F2b(n,f.b);G2b(n,f.c)}c=new bnb;for(k=new Anb(b.a);k.ad.c.length-1){Rmb(d,new Ptd(Hze,KEe))}c=RD(mQb(e,f_c),17).a;if(Dmd(RD(mQb(a,H$c),88))){e.e.aKfb(UD((tFb(c,d.c.length),RD(d.c[c],42)).b))&&Otd((tFb(c,d.c.length),RD(d.c[c],42)),e.e.a+e.f.a)}else{e.e.bKfb(UD((tFb(c,d.c.length),RD(d.c[c],42)).b))&&Otd((tFb(c,d.c.length),RD(d.c[c],42)),e.e.b+e.f.b)}}for(f=Sub(a.b,0);f.b!=f.d.c;){e=RD(evb(f),40);c=RD(mQb(e,(h_c(),f_c)),17).a;pQb(e,(q$c(),f$c),UD((tFb(c,d.c.length),RD(d.c[c],42)).a));pQb(e,e$c,UD((tFb(c,d.c.length),RD(d.c[c],42)).b))}b.Vg()} +function Tec(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;a.o=Kfb(UD(mQb(a.i,(yCc(),bCc))));a.f=Kfb(UD(mQb(a.i,XBc)));a.j=a.i.b.c.length;h=a.j-1;m=0;a.k=0;a.n=0;a.b=dv($C(bJ,Nve,17,a.j,0,1));a.c=dv($C(VI,Nve,345,a.j,7,1));for(g=new Anb(a.i.b);g.a0&&Rmb(a.q,k);Rmb(a.p,k)}b-=d;n=i+b;j+=b*a.f;$mb(a.b,h,sgb(n));$mb(a.c,h,j);a.k=$wnd.Math.max(a.k,n);a.n=$wnd.Math.max(a.n,j);a.e+=b;b+=p}} +function qpd(){qpd=geb;var a;opd=new upd(Sye,0);Yod=new upd(_ye,1);Xod=new upd(aze,2);npd=new upd(bze,3);ppd=new upd(cze,4);bpd=(yob(),new Lqb((a=RD(mfb(E3),9),new Fsb(a,RD(WEb(a,a.length),9),0))));cpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[])));Zod=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[])));kpd=eq(ysb(npd,cD(WC(E3,1),NAe,64,0,[])));mpd=eq(ysb(ppd,cD(WC(E3,1),NAe,64,0,[])));hpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[npd])));apd=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[ppd])));jpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[ppd])));dpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod])));lpd=eq(ysb(npd,cD(WC(E3,1),NAe,64,0,[ppd])));$od=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[npd])));gpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod,ppd])));_od=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[npd,ppd])));ipd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[npd,ppd])));epd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod,npd])));fpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod,npd,ppd])))} +function Gfc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;b.Ug(qBe,1);p=new bnb;w=new bnb;for(j=new Anb(a.b);j.a0&&(t-=n);p2b(g,t);k=0;for(m=new Anb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.b0){j=(BFb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BFb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=(AFb(1,m,c.length),c.substr(1,m-1));u=lhb('%',h)?null:oSd(h);e=0;if(k){try{e=Oeb((BFb(m+2,c.length+1),c.substr(m+2)),qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){i=a;throw Adb(new RSd(i))}else throw Adb(a)}}for(r=P2d(b.Gh());r.Ob();){p=k3d(r);if(ZD(p,519)){f=RD(p,598);t=f.d;if((u==null?t==null:lhb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:(AFb(0,l,c.length),c.substr(0,l));d=0;if(l!=-1){try{d=Oeb((BFb(l+1,c.length+1),c.substr(l+1)),qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){o=c}else throw Adb(a)}}o=lhb('%',o)?null:oSd(o);for(q=P2d(b.Gh());q.Ob();){p=k3d(q);if(ZD(p,197)){g=RD(p,197);s=g.xe();if((o==null?s==null:lhb(o,s))&&d--==0){return g}}}return null}}return Pvd(b,c)} +function Hlc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;k=new Tsb;i=new Tp;for(d=new Anb(a.a.a.b);d.ab.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}rIb(uIb(tIb(vIb(sIb(new wIb,1),100),n),q))}}}}}}} +function mNb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;m=RD(RD(Qc(a.r,b),21),87);if(b==(qpd(),Xod)||b==ppd){qNb(a,b);return}f=b==Yod?(mOb(),iOb):(mOb(),lOb);u=b==Yod?(vLb(),uLb):(vLb(),sLb);c=RD(Vrb(a.b,b),127);d=c.i;e=d.c+Hid(cD(WC(iE,1),vxe,28,15,[c.n.b,a.C.b,a.k]));r=d.c+d.b-Hid(cD(WC(iE,1),vxe,28,15,[c.n.c,a.C.c,a.k]));g=WNb(_Nb(f),a.t);s=b==Yod?pxe:oxe;for(l=m.Kc();l.Ob();){j=RD(l.Pb(),117);if(!j.c||j.c.d.c.length<=0){continue}q=j.b.Mf();p=j.e;n=j.c;o=n.i;o.b=(i=n.n,n.e.a+i.b+i.c);o.a=(h=n.n,n.e.b+h.d+h.a);Ivb(u,Pye);n.f=u;RKb(n,(EKb(),DKb));o.c=p.a-(o.b-q.a)/2;v=$wnd.Math.min(e,p.a);w=$wnd.Math.max(r,p.a+q.a);o.cw&&(o.c=w-o.b);Rmb(g.d,new sOb(o,UNb(g,o)));s=b==Yod?$wnd.Math.max(s,p.b+j.b.Mf().b):$wnd.Math.min(s,p.b)}s+=b==Yod?a.t:-a.t;t=VNb((g.e=s,g));t>0&&(RD(Vrb(a.b,b),127).a.b=t);for(k=m.Kc();k.Ob();){j=RD(k.Pb(),117);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function JSb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Tsb;for(i=new dMd(a);i.e!=i.i.gc();){h=RD(bMd(i),27);c=new _sb;Zjb(FSb,h,c);n=new TSb;e=RD(zDb(new SDb(null,new Twb(new is(Mr(yGd(h).a.Kc(),new ir)))),OBb(n,tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)])))),85);ISb(c,RD(e.xc((Geb(),true)),16),new VSb);d=RD(zDb(CDb(RD(e.xc(false),15).Lc(),new XSb),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);for(g=d.Kc();g.Ob();){f=RD(g.Pb(),74);m=KGd(f);if(m){j=RD(Wd(qtb(b.f,m)),21);if(!j){j=LSb(m);rtb(b.f,m,j)}ye(c,j)}}e=RD(zDb(new SDb(null,new Twb(new is(Mr(zGd(h).a.Kc(),new ir)))),OBb(n,tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb])))),85);ISb(c,RD(e.xc(true),16),new ZSb);d=RD(zDb(CDb(RD(e.xc(false),15).Lc(),new _Sb),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);for(l=d.Kc();l.Ob();){k=RD(l.Pb(),74);m=MGd(k);if(m){j=RD(Wd(qtb(b.f,m)),21);if(!j){j=LSb(m);rtb(b.f,m,j)}ye(c,j)}}}} +function zjb(a,b){xjb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=Ddb(a,0)<0;i&&(a=Odb(a));if(Ddb(a,0)==0){switch(b){case 0:return '0';case 1:return zxe;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new bib;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==qwe?'2147483648':''+-b;return n.a;}}k=18;l=$C(hE,zwe,28,k+1,15,1);c=k;p=a;do{j=p;p=Fdb(p,10);l[--c]=Ydb(Bdb(48,Vdb(j,Ndb(p,10))))&Bwe}while(Ddb(p,0)!=0);e=Vdb(Vdb(Vdb(k,c),b),1);if(b==0){i&&(l[--c]=45);return Ihb(l,c,k-c)}if(b>0&&Ddb(e,-6)>=0){if(Ddb(e,0)>=0){f=c+Ydb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return Ihb(l,c,k-c+1)}for(g=2;Ldb(g,Bdb(Odb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return Ihb(l,c,k-c)}o=c+1;d=k;m=new cib;i&&(m.a+='-',m);if(d-o>=1){Thb(m,l[c]);m.a+='.';m.a+=Ihb(l,c+1,k-c-1)}else{m.a+=Ihb(l,c,k-c)}m.a+='E';Ddb(e,0)>0&&(m.a+='+',m);m.a+=''+Zdb(e);return m.a} +function Esd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=new rjd(a.g,a.f);p=vsd(a);p.a=$wnd.Math.max(p.a,b);p.b=$wnd.Math.max(p.b,c);w=p.a/q.a;k=p.b/q.b;u=p.a-q.a;i=p.b-q.b;if(d){g=!vCd(a)?RD(Gxd(a,(umd(),Nkd)),88):RD(Gxd(vCd(a),(umd(),Nkd)),88);h=dE(Gxd(a,(umd(),Hld)))===dE((Bod(),wod));for(s=new dMd((!a.c&&(a.c=new C5d(K4,a,9,9)),a.c));s.e!=s.i.gc();){r=RD(bMd(s),123);t=RD(Gxd(r,Old),64);if(t==(qpd(),opd)){t=osd(r,g);Ixd(r,Old,t)}switch(t.g){case 1:h||Dyd(r,r.i*w);break;case 2:Dyd(r,r.i+u);h||Eyd(r,r.j*k);break;case 3:h||Dyd(r,r.i*w);Eyd(r,r.j+i);break;case 4:h||Eyd(r,r.j*k);}}}zyd(a,p.a,p.b);if(e){for(m=new dMd((!a.n&&(a.n=new C5d(I4,a,1,7)),a.n));m.e!=m.i.gc();){l=RD(bMd(m),135);n=l.i+l.g/2;o=l.j+l.f/2;v=n/q.a;j=o/q.b;if(v+j>=1){if(v-j>0&&o>=0){Dyd(l,l.i+u);Eyd(l,l.j+i*j)}else if(v-j<0&&n>=0){Dyd(l,l.i+u*v);Eyd(l,l.j+i)}}}}Ixd(a,(umd(),kld),(Qpd(),f=RD(mfb(H3),9),new Fsb(f,RD(WEb(f,f.length),9),0)));return new rjd(w,k)} +function _4c(a){Cgd(a,new Pfd(Wfd($fd(Xfd(Zfd(Yfd(new agd,CFe),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new c5c),CFe)));Agd(a,CFe,fEe,iGd(R4c));Agd(a,CFe,_ze,iGd(Y4c));Agd(a,CFe,jAe,iGd(K4c));Agd(a,CFe,CAe,iGd(L4c));Agd(a,CFe,iAe,iGd(M4c));Agd(a,CFe,kAe,iGd(J4c));Agd(a,CFe,gAe,iGd(N4c));Agd(a,CFe,lAe,iGd(Q4c));Agd(a,CFe,tFe,iGd(H4c));Agd(a,CFe,sFe,iGd(I4c));Agd(a,CFe,rFe,iGd(T4c));Agd(a,CFe,xFe,iGd(W4c));Agd(a,CFe,yFe,iGd(U4c));Agd(a,CFe,zFe,iGd(V4c));Agd(a,CFe,wFe,iGd(O4c));Agd(a,CFe,pFe,iGd(P4c));Agd(a,CFe,qFe,iGd(S4c));Agd(a,CFe,uFe,iGd(X4c));Agd(a,CFe,vFe,iGd(Z4c));Agd(a,CFe,oFe,iGd(G4c))} +function Peb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw Adb(new Vgb(vve))}j=a;f=a.length;i=false;if(f>0){b=(BFb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=(BFb(1,a.length+1),a.substr(1));--f;i=b==45}}if(f==0){throw Adb(new Vgb(nxe+j+'"'))}while(a.length>0&&(BFb(0,a.length),a.charCodeAt(0)==48)){a=(BFb(1,a.length+1),a.substr(1));--f}if(f>(Ugb(),Sgb)[10]){throw Adb(new Vgb(nxe+j+'"'))}for(e=0;e0){l=-parseInt((AFb(0,d,a.length),a.substr(0,d)),10);a=(BFb(d,a.length+1),a.substr(d));f-=d;c=false}while(f>=g){d=parseInt((AFb(0,g,a.length),a.substr(0,g)),10);a=(BFb(g,a.length+1),a.substr(g));f-=g;if(c){c=false}else{if(Ddb(l,h)<0){throw Adb(new Vgb(nxe+j+'"'))}l=Ndb(l,k)}l=Vdb(l,d)}if(Ddb(l,0)>0){throw Adb(new Vgb(nxe+j+'"'))}if(!i){l=Odb(l);if(Ddb(l,0)<0){throw Adb(new Vgb(nxe+j+'"'))}}return l} +function oSd(a){gSd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=qhb(a,Fhb(37));if(e<0){return a}else{i=new dib((AFb(0,e,a.length),a.substr(0,e)));b=$C(gE,YHe,28,4,15,1);h=0;d=0;for(g=a.length;ee+2&&zSd((BFb(e+1,a.length),a.charCodeAt(e+1)),XRd,YRd)&&zSd((BFb(e+2,a.length),a.charCodeAt(e+2)),XRd,YRd)){c=DSd((BFb(e+1,a.length),a.charCodeAt(e+1)),(BFb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Thb(i,((b[0]&31)<<6|b[1]&63)&Bwe);break}case 3:{Thb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&Bwe);break}}h=0;d=0}}else{for(f=0;f=2){if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i==0){c=(bvd(),e=new Rzd,e);WGd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i>1){m=new mMd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a));while(m.e!=m.i.gc()){cMd(m)}}lsd(b,RD(QHd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),0),166))}if(l){for(d=new dMd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a));d.e!=d.i.gc();){c=RD(bMd(d),166);for(j=new dMd((!c.a&&(c.a=new XZd(D4,c,5)),c.a));j.e!=j.i.gc();){i=RD(bMd(j),377);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new dMd((!a.n&&(a.n=new C5d(I4,a,1,7)),a.n));g.e!=g.i.gc();){f=RD(bMd(g),135);k=RD(Gxd(f,und),8);!!k&&Byd(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function MA(a,b,c,d,e){var f,g,h;KA(a,b);g=b[0];f=ihb(c.c,0);h=-1;if(DA(c)){if(d>0){if(g+d>a.length){return false}h=HA((AFb(0,g+d,a.length),a.substr(0,g+d)),b)}else{h=HA(a,b)}}switch(f){case 71:h=EA(a,g,cD(WC(qJ,1),Nve,2,6,[Qwe,Rwe]),b);e.e=h;return true;case 77:return PA(a,b,e,h,g);case 76:return RA(a,b,e,h,g);case 69:return NA(a,b,g,e);case 99:return QA(a,b,g,e);case 97:h=EA(a,g,cD(WC(qJ,1),Nve,2,6,['AM','PM']),b);e.b=h;return true;case 121:return TA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return OA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gB[i]&&(q=i);for(l=new Anb(a.a.b);l.a1){e=N8c(b);l=f.g;o=RD(Gxd(b,N7c),107);p=Kfb(UD(Gxd(b,x7c)));(!b.a&&(b.a=new C5d(J4,b,10,11)),b.a).i>1&&Kfb(UD(Gxd(b,(X6c(),T6c))))!=oxe&&(f.c+(o.b+o.c))/(f.b+(o.d+o.a))1&&Kfb(UD(Gxd(b,(X6c(),S6c))))!=oxe&&(f.c+(o.b+o.c))/(f.b+(o.d+o.a))>p&&Ixd(e,(X6c(),W6c),$wnd.Math.max(Kfb(UD(Gxd(b,U6c))),Kfb(UD(Gxd(e,W6c)))-Kfb(UD(Gxd(b,S6c)))));n=new m9c(d,k);i=l9c(n,e,m);j=i.g;if(j>=l&&j==j){for(g=0;g<(!e.a&&(e.a=new C5d(J4,e,10,11)),e.a).i;g++){O8c(a,RD(QHd((!e.a&&(e.a=new C5d(J4,e,10,11)),e.a),g),27),RD(QHd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a),g),27))}P8c(b,n);jad(f,i.c);iad(f,i.b)}--h}Ixd(b,(X6c(),N6c),f.b);Ixd(b,O6c,f.c);c.Vg()} +function fHc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b.Ug('Interactive node layering',1);c=new bnb;for(m=new Anb(a.a);m.a=h){sFb(s.b>0);s.a.Xb(s.c=--s.b);break}else if(q.a>i){if(!d){Rmb(q.b,k);q.c=$wnd.Math.min(q.c,i);q.a=$wnd.Math.max(q.a,h);d=q}else{Tmb(d.b,q.b);d.a=$wnd.Math.max(d.a,q.a);Ckb(s)}}}if(!d){d=new jHc;d.c=i;d.a=h;Ikb(s,d);Rmb(d.b,k)}}g=a.b;j=0;for(r=new Anb(c);r.an){if(f){Oub(w,m);Oub(B,sgb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}Dyd(h,H);Eyd(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(FVze;C=$wnd.Math.abs(m.b-o.b)>Vze;(!c&&B&&C||c&&(B||C))&&Mub(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sFb(d.b!=0),RD(d.c.b.c,8)));j0b(n,l,p);if(I0b(e)==A){if(Y2b(A.i)!=e.a){p=new pjd;e2b(p,Y2b(A.i),s)}pQb(q,Wwc,p)}k0b(n,q,s);k.a.zc(n,k)}Y0b(q,v);Z0b(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=RD(j.Pb(),18);Y0b(i,null);Z0b(i,null)}b.Vg()} +function lXc(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=RD(mQb(a,(h_c(),H$c)),88);k=e==(Cmd(),ymd)||e==zmd?xmd:zmd;c=RD(zDb(CDb(new SDb(null,new Swb(a.b,16)),new $Xc),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);i=RD(zDb(GDb(c.Oc(),new aYc(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);i.Gc(RD(zDb(GDb(c.Oc(),new cYc(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),16));i.jd(new eYc(k));m=new yAb(new iYc(e));d=new Tsb;for(h=i.Kc();h.Ob();){g=RD(h.Pb(),240);j=RD(g.a,40);if(Heb(TD(g.c))){m.a.zc(j,(Geb(),Eeb))==null;(new zAb(m.a.Zc(j,false))).a.gc()>0&&Zjb(d,j,RD((new zAb(m.a.Zc(j,false))).a.Vc(),40));(new zAb(m.a.ad(j,true))).a.gc()>1&&Zjb(d,nXc(m,j),j)}else{if((new zAb(m.a.Zc(j,false))).a.gc()>0){f=RD((new zAb(m.a.Zc(j,false))).a.Vc(),40);dE(f)===dE(Wd(qtb(d.f,j)))&&RD(mQb(j,(q$c(),TZc)),15).Fc(f)}if((new zAb(m.a.ad(j,true))).a.gc()>1){l=nXc(m,j);dE(Wd(qtb(d.f,l)))===dE(j)&&RD(mQb(l,(q$c(),TZc)),15).Fc(j)}m.a.Bc(j)!=null}}} +function BTb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return RD(a.Xb(0),235)}else if(a.gc()<=0){return new gUb}for(e=a.Kc();e.Ob();){c=RD(e.Pb(),235);o=0;k=lve;l=lve;i=qwe;j=qwe;for(n=new Anb(c.e);n.ah){t=0;u+=g+r;g=0}ATb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Aqe(a){zqe();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=Ahb(a);o=Dqe(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return $C(gE,YHe,28,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=$C(gE,YHe,28,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!Cqe(g=f[k++])||!Cqe(h=f[k++])){return null}b=xqe[g];c=xqe[h];i=f[k++];j=f[k++];if(xqe[i]==-1||xqe[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=$C(gE,YHe,28,n*3+1,15,1);hib(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=xqe[i];if((d&3)!=0)return null;q=$C(gE,YHe,28,n*3+2,15,1);hib(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=xqe[i];e=xqe[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function wfc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;b.Ug(qBe,1);o=RD(mQb(a,(yCc(),yAc)),223);for(e=new Anb(a.b);e.a=2){p=true;m=new Anb(f.j);c=RD(ynb(m),12);n=null;while(m.a0){d=l.gc();j=eE($wnd.Math.floor((d+1)/2))-1;e=eE($wnd.Math.ceil((d+1)/2))-1;if(b.o==DQc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=RD(l.Xb(k),42);o=RD(p.a,10);if(!Zsb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Geb(),Heb(b.f[b.g[u.p].p])&u.k==(r3b(),o3b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=RD(l.Xb(k),42);q=RD(r.a,10);if(!Zsb(c,r.b)&&n0){e=RD(Vmb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(bFc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=oxe;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function OJb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new Uid(b.Lf().a,b.Lf().b,b.Mf().a,b.Mf().b);e=new Tid;if(a.c){for(g=new Anb(b.Rf());g.aj&&(d.a+=Hhb($C(hE,zwe,28,-j,15,1)));d.a+='Is';if(qhb(i,Fhb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=RD(mQb(d,(Ywc(),Xwc)),15);if(!r){f=new bnb;pQb(d,Xwc,f)}else if(m){f=r}else{e=RD(mQb(d,Vvc),15);if(!e){f=new bnb;pQb(d,Vvc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=RD(mQb(d,(Ywc(),Vvc)),15);if(!e){f=new bnb;pQb(d,Vvc,f)}else if(l){f=e}else{r=RD(mQb(d,Xwc),15);if(!r){f=new bnb;pQb(d,Xwc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);pQb(a,(Ywc(),Xvc),c);if(b.d==c){Z0b(b,null);c.e.c.length+c.g.c.length==0&&P3b(c,null);u6b(c)}else{Y0b(b,null);c.e.c.length+c.g.c.length==0&&P3b(c,null)}Xub(b.a)} +function GHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;c.Ug('MinWidth layering',1);n=b.b;A=b.a;I=RD(mQb(b,(yCc(),WAc)),17).a;h=RD(mQb(b,XAc),17).a;a.b=Kfb(UD(mQb(b,TBc)));a.d=oxe;for(u=new Anb(A);u.a0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,JUc(t,g,s,A)));if(j=a.a){d=V9b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Rmb(h,new Ptd(s,d))}}B=new bnb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new R4b(a.b),Ikb(q,C),sFb(q.b0){m=k<100?null:new gLd(k);j=new $Hd(b);o=j.g;r=$C(kE,Pwe,28,k,15,1);d=0;u=new ZHd(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):dE(n)===dE(o[i])){if(r.length<=d){q=r;r=$C(kE,Pwe,28,2*r.length,15,1);hib(q,0,r,0,d)}r[d++]=e;WGd(u,o[i]);break v}}n=n;if(dE(n)===dE(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=$C(kE,Pwe,28,d,15,1);hib(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){THd(a,r[g])}if(d!=k){for(e=k;--e>=d;){THd(j,e)}q=r;r=$C(kE,Pwe,28,d,15,1);hib(q,0,r,0,d)}b=j}}}else{b=aHd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){THd(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?dZd(a,4,b.Kc().Pb(),null,r[0],p):dZd(a,6,b,r,r[0],p);m=c<100?null:new gLd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=oge(a,RD(n,76),m)}if(!m){qvd(a.e,l)}else{m.nj(l);m.oj()}}else{m=tLd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=oge(a,RD(n,76),m)}!!m&&m.oj()}return true}else{return false}} +function i_b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new p_b(b);c.a||b_b(b);j=a_b(b);i=new Tp;q=new D_b;for(p=new Anb(b.a);p.a0||c.o==DQc&&e=c} +function zEd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;t=b;s=new Tp;u=new Tp;k=wDd(t,mIe);d=new OEd(a,c,s,u);QDd(d.a,d.b,d.c,d.d,k);i=(A=s.i,!A?(s.i=new zf(s,s.c)):A);for(C=i.Kc();C.Ob();){B=RD(C.Pb(),166);e=RD(Qc(s,B),21);for(p=e.Kc();p.Ob();){o=p.Pb();v=RD(Ao(a.d,o),166);if(v){h=(!B.e&&(B.e=new Yie(F4,B,10,9)),B.e);WGd(h,v)}else{g=zDd(t,uIe);m=AIe+o+BIe+g;n=m+zIe;throw Adb(new CDd(n))}}}j=(w=u.i,!w?(u.i=new zf(u,u.c)):w);for(F=j.Kc();F.Ob();){D=RD(F.Pb(),166);f=RD(Qc(u,D),21);for(r=f.Kc();r.Ob();){q=r.Pb();v=RD(Ao(a.d,q),166);if(v){l=(!D.g&&(D.g=new Yie(F4,D,9,10)),D.g);WGd(l,v)}else{g=zDd(t,uIe);m=AIe+q+BIe+g;n=m+zIe;throw Adb(new CDd(n))}}}!c.b&&(c.b=new Yie(E4,c,4,7));if(c.b.i!=0&&(!c.c&&(c.c=new Yie(E4,c,5,8)),c.c.i!=0)&&(!c.b&&(c.b=new Yie(E4,c,4,7)),c.b.i<=1&&(!c.c&&(c.c=new Yie(E4,c,5,8)),c.c.i<=1))&&(!c.a&&(c.a=new C5d(F4,c,6,6)),c.a).i==1){G=RD(QHd((!c.a&&(c.a=new C5d(F4,c,6,6)),c.a),0),166);if(!Dzd(G)&&!Ezd(G)){Kzd(G,RD(QHd((!c.b&&(c.b=new Yie(E4,c,4,7)),c.b),0),84));Lzd(G,RD(QHd((!c.c&&(c.c=new Yie(E4,c,5,8)),c.c),0),84))}}} +function QNc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;for(t=a.a,u=0,v=t.length;u0){l=RD(Vmb(m.c.a,g-1),10);B=bFc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(g1&&(g=$wnd.Math.min(g,$wnd.Math.abs(RD(ju(h.a,1),8).b-k.b)))}}}}}else{for(p=new Anb(b.j);p.ae){f=m.a-e;g=lve;d.c.length=0;e=m.a}if(m.a>=e){ZEb(d.c,h);h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(RD(ju(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new R3b;P3b(n,b);Q3b(n,(qpd(),Yod));n.n.a=b.o.a/2;r=new R3b;P3b(r,b);Q3b(r,npd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new Anb(d);i.a=j.b?Y0b(h,r):Y0b(h,n)}else{j=RD(Vub(h.a),8);q=h.a.b==0?K3b(h.c):RD(Rub(h.a),8);q.b>=j.b?Z0b(h,r):Z0b(h,n)}l=RD(mQb(h,(yCc(),RAc)),75);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function E0c(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(h=Sub(a.b,0);h.b!=h.d.c;){g=RD(evb(h),40);if(lhb(g.c,IEe)){continue}j=iWc(g,a);b==(Cmd(),ymd)||b==zmd?_mb(j,new D1c):_mb(j,new H1c);i=j.c.length;for(d=0;d=0?(n=vpd(h)):(n=spd(vpd(h)));a.qf(GBc,n)}j=new pjd;m=false;if(a.pf(zBc)){mjd(j,RD(a.of(zBc),8));m=true}else{ljd(j,g.a/2,g.b/2)}switch(n.g){case 4:pQb(k,UAc,(cxc(),$wc));pQb(k,bwc,(huc(),guc));k.o.b=g.b;p<0&&(k.o.a=-p);Q3b(l,(qpd(),Xod));m||(j.a=g.a);j.a-=g.a;break;case 2:pQb(k,UAc,(cxc(),axc));pQb(k,bwc,(huc(),euc));k.o.b=g.b;p<0&&(k.o.a=-p);Q3b(l,(qpd(),ppd));m||(j.a=0);break;case 1:pQb(k,owc,(Gvc(),Fvc));k.o.a=g.a;p<0&&(k.o.b=-p);Q3b(l,(qpd(),npd));m||(j.b=g.b);j.b-=g.b;break;case 3:pQb(k,owc,(Gvc(),Dvc));k.o.a=g.a;p<0&&(k.o.b=-p);Q3b(l,(qpd(),Yod));m||(j.b=0);}mjd(l.n,j);pQb(k,zBc,j);if(b==vod||b==xod||b==wod){o=0;if(b==vod&&a.pf(CBc)){switch(n.g){case 1:case 2:o=RD(a.of(CBc),17).a;break;case 3:case 4:o=-RD(a.of(CBc),17).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==xod&&(o/=e.b);break;case 1:case 3:o=f.a;b==xod&&(o/=e.a);}}pQb(k,Jwc,o)}pQb(k,hwc,n);return k} +function OId(){MId();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=PId((yob(),new xpb(new glb(LId.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=PId((yob(),new xpb(new glb(LId.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=PId((yob(),new xpb(new glb(LId.d))));f.postMessage({id:b.id,data:e});break;case 'register':SId(b.algorithms);f.postMessage({id:b.id});break;case 'layout':QId(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===Yxe&&typeof self!==Yxe){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==Yxe&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function i5b(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new j3b(c);kQb(k,b);pQb(k,(Ywc(),Awc),b);k.o.a=b.g;k.o.b=b.f;k.n.a=b.i;k.n.b=b.j;Rmb(c.a,k);Zjb(a.a,b,k);((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a).i!=0||Heb(TD(Gxd(b,(yCc(),NAc)))))&&pQb(k,Yvc,(Geb(),true));j=RD(mQb(c,kwc),21);l=RD(mQb(k,(yCc(),BBc)),101);l==(Bod(),Aod)?pQb(k,BBc,zod):l!=zod&&j.Fc((ovc(),kvc));m=0;d=RD(mQb(c,rAc),88);for(i=new dMd((!b.c&&(b.c=new C5d(K4,b,9,9)),b.c));i.e!=i.i.gc();){h=RD(bMd(i),123);e=vCd(b);(dE(Gxd(e,cAc))!==dE((kEc(),hEc))||dE(Gxd(e,pAc))===dE((Ptc(),Otc))||dE(Gxd(e,pAc))===dE((Ptc(),Mtc))||Heb(TD(Gxd(e,eAc)))||dE(Gxd(e,Yzc))!==dE((U$b(),T$b))||dE(Gxd(e,ZAc))===dE((aEc(),TDc))||dE(Gxd(e,ZAc))===dE((aEc(),UDc))||dE(Gxd(e,$Ac))===dE((_Cc(),SCc))||dE(Gxd(e,$Ac))===dE((_Cc(),UCc)))&&!Heb(TD(Gxd(b,aAc)))&&Ixd(h,zwc,sgb(m++));Heb(TD(Gxd(h,pBc)))||j5b(a,h,k,j,d,l)}for(g=new dMd((!b.n&&(b.n=new C5d(I4,b,1,7)),b.n));g.e!=g.i.gc();){f=RD(bMd(g),135);!Heb(TD(Gxd(f,pBc)))&&!!f.a&&Rmb(k.b,h5b(f))}Heb(TD(mQb(k,Uzc)))&&j.Fc((ovc(),fvc));if(Heb(TD(mQb(k,MAc)))){j.Fc((ovc(),jvc));j.Fc(ivc);pQb(k,BBc,zod)}return k} +function ird(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new Anb(a.b);j.ap){if(f){Oub(w,n);Oub(B,sgb(k.b-1));Rmb(a.d,o);h.c.length=0}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}ZEb(h.c,i);xrd(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Tmb(a.a,h);Rmb(a.d,RD(Vmb(h,h.c.length-1),163));l=$wnd.Math.max(l,d);F=I+n+c.a;if(Fe.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=RD(Wjb(a.f,g.d.i),60);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new is(Mr(Z2b(n).a.Kc(),new ir));gs(h);){g=RD(hs(h),18);if(g.a.b!=0){b=RD(Rub(g.a),8);if(g.d.j==(qpd(),Yod)){q=new Nlc(b,new rjd(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;ZEb(p.c,q)}if(g.d.j==npd){q=new Nlc(b,new rjd(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;ZEb(p.c,q)}}}}}return p} +function Nvd(a,b,c){var d,e,f,g,h,i,j,k,l,m;i=new bnb;l=b.length;g=$5d(c);for(j=0;j=o){if(s>o){n.c.length=0;o=s}ZEb(n.c,g)}}if(n.c.length!=0){m=RD(Vmb(n,Jwb(b,n.c.length)),131);F.a.Bc(m)!=null;m.s=p++;$Uc(m,C,w);n.c.length=0}}u=a.c.length+1;for(h=new Anb(a);h.aD.s){Ckb(c);Ymb(D.i,d);if(d.c>0){d.a=D;Rmb(D.t,d);d.b=A;Rmb(A.i,d)}}}}} +function Efc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new cnb(b.b);u=new cnb(b.b);m=new cnb(b.b);B=new cnb(b.b);q=new cnb(b.b);for(A=Sub(b,0);A.b!=A.d.c;){v=RD(evb(A),12);for(h=new Anb(v.g);h.a0;r=v.g.c.length>0;j&&r?(ZEb(m.c,v),true):j?(ZEb(p.c,v),true):r&&(ZEb(u.c,v),true)}for(o=new Anb(p);o.as.nh()-j.b&&(m=s.nh()-j.b);n>s.oh()-j.d&&(n=s.oh()-j.d);k0){for(t=Sub(a.f,0);t.b!=t.d.c;){s=RD(evb(t),10);s.p+=m-a.e}WGc(a);Xub(a.f);TGc(a,d,n)}else{Mub(a.f,n);n.p=d;a.e=$wnd.Math.max(a.e,d);for(f=new is(Mr(Z2b(n).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);if(!e.c.i.c&&e.c.i.k==(r3b(),n3b)){Mub(a.f,e.c.i);e.c.i.p=d-1}}a.c=d}}}else{WGc(a);Xub(a.f);d=0;if(gs(new is(Mr(Z2b(n).a.Kc(),new ir)))){m=0;m=UGc(m,n);d=m+2;TGc(a,d,n)}else{Mub(a.f,n);n.p=0;a.e=$wnd.Math.max(a.e,0);a.b=RD(Vmb(a.d.b,0),30);a.c=0}}}}a.f.b==0||WGc(a);a.d.a.c.length=0;r=new bnb;for(j=new Anb(a.d.b);j.a=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw Adb(new Lqe(TId((Hde(),CJe))))}}else{throw Adb(new Lqe(TId((Hde(),yJe))))}c=d;if(b==44){if(e>=a.j){throw Adb(new Lqe(TId((Hde(),AJe))))}else if((b=ihb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw Adb(new Lqe(TId((Hde(),CJe))))}if(d>c)throw Adb(new Lqe(TId((Hde(),BJe))))}else{c=-1}}if(b!=125)throw Adb(new Lqe(TId((Hde(),zJe))));if(a.bm(e)){f=(Vse(),Vse(),++Use,new Kte(9,f));a.d=e+1}else{f=(Vse(),Vse(),++Use,new Kte(3,f));a.d=e}f.Om(d);f.Nm(c);Mqe(a)}}return f} +function bXb(a){var b,c,d,e,f;c=RD(mQb(a,(Ywc(),kwc)),21);b=vfd(YWb);e=RD(mQb(a,(yCc(),IAc)),346);e==(Fnd(),Cnd)&&ofd(b,ZWb);Heb(TD(mQb(a,GAc)))?pfd(b,(sXb(),nXb),(hcc(),Zbc)):pfd(b,(sXb(),pXb),(hcc(),Zbc));mQb(a,(rid(),qid))!=null&&ofd(b,$Wb);(Heb(TD(mQb(a,PAc)))||Heb(TD(mQb(a,HAc))))&&nfd(b,(sXb(),rXb),(hcc(),lbc));switch(RD(mQb(a,rAc),88).g){case 2:case 3:case 4:nfd(pfd(b,(sXb(),nXb),(hcc(),nbc)),rXb,mbc);}c.Hc((ovc(),fvc))&&nfd(pfd(pfd(b,(sXb(),nXb),(hcc(),kbc)),qXb,ibc),rXb,jbc);dE(mQb(a,ZAc))!==dE((aEc(),$Dc))&&pfd(b,(sXb(),pXb),(hcc(),Rbc));if(c.Hc(mvc)){pfd(b,(sXb(),nXb),(hcc(),Xbc));pfd(b,oXb,Vbc);pfd(b,pXb,Wbc)}dE(mQb(a,Xzc))!==dE(($uc(),Yuc))&&dE(mQb(a,yAc))!==dE((Ymd(),Vmd))&&nfd(b,(sXb(),rXb),(hcc(),Abc));Heb(TD(mQb(a,KAc)))&&pfd(b,(sXb(),pXb),(hcc(),zbc));Heb(TD(mQb(a,nAc)))&&pfd(b,(sXb(),pXb),(hcc(),dcc));if(eXb(a)){dE(mQb(a,IAc))===dE(Cnd)?(d=RD(mQb(a,gAc),299)):(d=RD(mQb(a,hAc),299));f=d==(xvc(),vvc)?(hcc(),Ubc):(hcc(),gcc);pfd(b,(sXb(),qXb),f)}switch(RD(mQb(a,vCc),388).g){case 1:pfd(b,(sXb(),qXb),(hcc(),ecc));break;case 2:nfd(pfd(pfd(b,(sXb(),pXb),(hcc(),ebc)),qXb,fbc),rXb,gbc);}dE(mQb(a,cAc))!==dE((kEc(),hEc))&&pfd(b,(sXb(),pXb),(hcc(),fcc));return b} +function crc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(Ujb(a.a,b)){if(Zsb(RD(Wjb(a.a,b),49),c)){return 1}}else{Zjb(a.a,b,new _sb)}if(Ujb(a.a,c)){if(Zsb(RD(Wjb(a.a,c),49),b)){return -1}}else{Zjb(a.a,c,new _sb)}if(Ujb(a.e,b)){if(Zsb(RD(Wjb(a.e,b),49),c)){return -1}}else{Zjb(a.e,b,new _sb)}if(Ujb(a.e,c)){if(Zsb(RD(Wjb(a.a,c),49),b)){return 1}}else{Zjb(a.e,c,new _sb)}if(a.c==(kEc(),iEc)||!nQb(b,(Ywc(),zwc))||!nQb(c,(Ywc(),zwc))){l=null;for(j=new Anb(b.j);j.ag?erc(a,b,c):erc(a,c,b);return eg?1:0}}d=RD(mQb(b,(Ywc(),zwc)),17).a;f=RD(mQb(c,zwc),17).a;d>f?erc(a,b,c):erc(a,c,b);return df?1:0} +function uAd(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(d==null){return null}if(b.a!=c.jk()){throw Adb(new agb(VHe+c.xe()+WHe))}if(ZD(c,469)){r=z1d(RD(c,685),d);if(!r){throw Adb(new agb(XHe+d+"' is not a valid enumerator of '"+c.xe()+"'"))}return r}switch(Oee((lke(),jke),c).Nl()){case 2:{d=nue(d,false);break}case 3:{d=nue(d,true);break}}e=Oee(jke,c).Jl();if(e){return e.jk().wi().ti(e,d)}n=Oee(jke,c).Ll();if(n){r=new bnb;for(k=xAd(d),l=0,m=k.length;l1){o=new mMd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a));while(o.e!=o.i.gc()){cMd(o)}}g=RD(QHd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),0),166);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Kwb(b,24)*Nxe*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(bvd(),i=new Xxd,i);Vxd(e,m);Wxd(e,n);WGd((!g.a&&(g.a=new XZd(D4,g,5)),g.a),e)}} +function Y7c(a){Cgd(a,new Pfd($fd(Xfd(Zfd(Yfd(new agd,$Fe),'ELK Rectangle Packing'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'),new _7c)));Agd(a,$Fe,Dze,1.3);Agd(a,$Fe,hAe,(Geb(),false));Agd(a,$Fe,Eze,O7c);Agd(a,$Fe,_ze,15);Agd(a,$Fe,YDe,iGd(y7c));Agd(a,$Fe,jAe,iGd(F7c));Agd(a,$Fe,CAe,iGd(H7c));Agd(a,$Fe,iAe,iGd(I7c));Agd(a,$Fe,kAe,iGd(E7c));Agd(a,$Fe,gAe,iGd(J7c));Agd(a,$Fe,lAe,iGd(P7c));Agd(a,$Fe,RFe,iGd(U7c));Agd(a,$Fe,SFe,iGd(T7c));Agd(a,$Fe,QFe,iGd(W7c));Agd(a,$Fe,PFe,iGd(V7c));Agd(a,$Fe,TFe,iGd(M7c));Agd(a,$Fe,UFe,iGd(L7c));Agd(a,$Fe,VFe,iGd(K7c));Agd(a,$Fe,WFe,iGd(S7c));Agd(a,$Fe,dAe,iGd(B7c));Agd(a,$Fe,iEe,iGd(C7c));Agd(a,$Fe,NFe,iGd(A7c));Agd(a,$Fe,MFe,iGd(z7c));Agd(a,$Fe,OFe,iGd(D7c));Agd(a,$Fe,LFe,iGd(R7c))} +function Ajb(a,b){xjb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return zxe;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new bib;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=$C(hE,zwe,28,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=Cdb(h,yxe);do{p=H;H=Fdb(H,10);u[--c]=48+Ydb(Vdb(p,Ndb(H,10)))&Bwe}while(Ddb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&Bwe}while(H!=0)}}else{D=$C(kE,Pwe,28,o,15,1);G=o;hib(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=Bdb(Sdb(A,32),Cdb(D[j],yxe));r=yjb(F);D[j]=Ydb(r);A=Ydb(Tdb(r,32))}s=Ydb(A);q=c;do{u[--c]=48+s%10&Bwe}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return Ihb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return Ihb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return Ihb(u,c,t-c)}C=c+1;f=t;v=new cib;n&&(v.a+='-',v);if(f-C>=1){Thb(v,u[c]);v.a+='.';v.a+=Ihb(u,c+1,t-c-1)}else{v.a+=Ihb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function Jad(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Tsb;c=(lud(),new zud(a.c));d=new PJb(c);LJb(d);t=WD(Gxd(a.c,(ncd(),gcd)));i=RD(Gxd(a.c,icd),324);v=RD(Gxd(a.c,jcd),437);g=RD(Gxd(a.c,bcd),490);u=RD(Gxd(a.c,hcd),438);a.j=Kfb(UD(Gxd(a.c,kcd)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw Adb(new agb(eGe+(i.f!=null?i.f:''+i.g)));}a.d=new qbd(h,v,g);pQb(a.d,(OQb(),MQb),TD(Gxd(a.c,dcd)));a.d.c=Heb(TD(Gxd(a.c,ccd)));if(tCd(a.c).i==0){return a.d}for(l=new dMd(tCd(a.c));l.e!=l.i.gc();){k=RD(bMd(l),27);n=k.g/2;m=k.f/2;w=new rjd(k.i+n,k.j+m);while(Ujb(a.g,w)){Zid(w,($wnd.Math.random()-0.5)*Vze,($wnd.Math.random()-0.5)*Vze)}p=RD(Gxd(k,(umd(),eld)),140);q=new TQb(w,new Uid(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Rmb(a.d.i,q);Zjb(a.g,w,new Ptd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=RD(Vmb(a.d.i,0),68)}else{for(s=new Anb(a.d.i);s.a0?G+1:1}for(g=new Anb(w.g);g.a0?G+1:1}}a.c[j]==0?Mub(a.e,p):a.a[j]==0&&Mub(a.f,p);++j}o=-1;n=1;l=new bnb;a.d=RD(mQb(b,(Ywc(),Lwc)),234);while(L>0){while(a.e.b!=0){I=RD(Uub(a.e),10);a.b[I.p]=o--;TFc(a,I);--L}while(a.f.b!=0){J=RD(Uub(a.f),10);a.b[J.p]=n++;TFc(a,J);--L}if(L>0){m=qwe;for(s=new Anb(t);s.a=m){if(u>m){l.c.length=0;m=u}ZEb(l.c,p)}}}k=a.sg(l);a.b[k.p]=n++;TFc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){X0b(d,true);pQb(b,awc,(Geb(),true))}}}}a.a=null;a.c=null;a.b=null;Xub(a.f);Xub(a.e);c.Vg()} +function usd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;v=RD(QHd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),0),166);k=new Ejd;u=new Tsb;w=xsd(v);rtb(u.f,v,w);m=new Tsb;d=new Yub;for(o=Fl(Al(cD(WC(cJ,1),rve,20,0,[(!b.d&&(b.d=new Yie(G4,b,8,5)),b.d),(!b.e&&(b.e=new Yie(G4,b,7,4)),b.e)])));gs(o);){n=RD(hs(o),74);if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i!=1){throw Adb(new agb(tHe+(!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i))}if(n!=a){q=RD(QHd((!n.a&&(n.a=new C5d(F4,n,6,6)),n.a),0),166);Pub(d,q,d.c.b,d.c);p=RD(Wd(qtb(u.f,q)),13);if(!p){p=xsd(q);rtb(u.f,q,p)}l=c?ojd(new sjd(RD(Vmb(w,w.c.length-1),8)),RD(Vmb(p,p.c.length-1),8)):ojd(new sjd((tFb(0,w.c.length),RD(w.c[0],8))),(tFb(0,p.c.length),RD(p.c[0],8)));rtb(m.f,q,l)}}if(d.b!=0){r=RD(Vmb(w,c?w.c.length-1:0),8);for(j=1;j1&&(Pub(k,r,k.c.b,k.c),true);gvb(e)}}}r=s}}return k} +function S_c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c.Ug(_Ee,1);D=RD(zDb(CDb(new SDb(null,new Swb(b,16)),new e0c),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);k=RD(zDb(CDb(new SDb(null,new Swb(b,16)),new g0c(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);o=RD(zDb(CDb(new SDb(null,new Swb(b,16)),new i0c(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);p=$C(Z$,NEe,40,b.gc(),0,1);for(g=0;g=0&&C=0&&!p[n]){p[n]=e;k.gd(h);--h;break}n=C-m;if(n=0&&!p[n]){p[n]=e;k.gd(h);--h;break}}}o.jd(new k0c);for(i=p.length-1;i>=0;i--){if(!p[i]&&!o.dc()){p[i]=RD(o.Xb(0),40);o.gd(0)}}for(j=0;j=0;i--){Mub(c,(tFb(i,g.c.length),RD(g.c[i],8)))}return c} +function l9c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;t=Kfb(UD(Gxd(b,(X6c(),W6c))));n=Kfb(UD(Gxd(b,U6c)));m=Kfb(UD(Gxd(b,R6c)));Bad((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));r=U8c((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a),t,a.b);for(q=0;qm&&Fad((tFb(m,b.c.length),RD(b.c[m],186)),k);k=null;while(b.c.length>m&&(tFb(m,b.c.length),RD(b.c[m],186)).a.c.length==0){Ymb(b,(tFb(m,b.c.length),b.c[m]))}}if(!k){--g;continue}if(!Heb(TD(RD(Vmb(k.b,0),27).of((X7c(),D7c))))&&K8c(b,o,f,k,q,c,m,d)){p=true;continue}if(q){n=o.b;l=k.f;if(!Heb(TD(RD(Vmb(k.b,0),27).of(D7c)))&&L8c(b,o,f,k,c,m,d,e)){p=true;if(n=a.j){a.a=-1;a.c=1;return}b=ihb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw Adb(new Lqe(TId((Hde(),VIe))));a.a=ihb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(ihb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw Adb(new Lqe(TId((Hde(),WIe))));b=ihb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw Adb(new Lqe(TId((Hde(),WIe))));b=ihb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw Adb(new Lqe(TId((Hde(),XIe))));break;case 35:while(a.d=a.j)throw Adb(new Lqe(TId((Hde(),VIe))));a.a=ihb(a.i,a.d++);break;default:d=0;}a.c=d} +function oXc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;c.Ug('Process compaction',1);if(!Heb(TD(mQb(b,(h_c(),F$c))))){return}e=RD(mQb(b,H$c),88);n=Kfb(UD(mQb(b,_$c)));pXc(a,b,e);lXc(b,n/2/2);o=b.b;tvb(o,new EXc(e));for(j=Sub(o,0);j.b!=j.d.c;){i=RD(evb(j),40);if(!Heb(TD(mQb(i,(q$c(),n$c))))){d=mXc(i,e);p=lWc(i,b);l=0;m=0;if(d){q=d.e;switch(e.g){case 2:l=q.a-n-i.f.a;p.e.a-n-i.f.al&&(l=p.e.a+p.f.a+n);m=l+i.f.a;break;case 4:l=q.b-n-i.f.b;p.e.b-n-i.f.bl&&(l=p.e.b+p.f.b+n);m=l+i.f.b;}}else if(p){switch(e.g){case 2:l=p.e.a-n-i.f.a;m=l+i.f.a;break;case 1:l=p.e.a+p.f.a+n;m=l+i.f.a;break;case 4:l=p.e.b-n-i.f.b;m=l+i.f.b;break;case 3:l=p.e.b+p.f.b+n;m=l+i.f.b;}}if(dE(mQb(b,K$c))===dE((LZc(),IZc))){f=l;g=m;h=DDb(CDb(new SDb(null,new Swb(a.a,16)),new IXc(f,g)));if(h.a!=null){e==(Cmd(),ymd)||e==zmd?(i.e.a=l):(i.e.b=l)}else{e==(Cmd(),ymd)||e==Bmd?(h=DDb(CDb(NDb(new SDb(null,new Swb(a.a,16))),new WXc(f)))):(h=DDb(CDb(NDb(new SDb(null,new Swb(a.a,16))),new YXc(f))));h.a!=null&&(e==ymd||e==zmd?(i.e.a=Kfb(UD((sFb(h.a!=null),RD(h.a,42)).a))):(i.e.b=Kfb(UD((sFb(h.a!=null),RD(h.a,42)).a))))}if(h.a!=null){k=Wmb(a.a,(sFb(h.a!=null),h.a),0);if(k>0&&k!=RD(mQb(i,f_c),17).a){pQb(i,UZc,(Geb(),true));pQb(i,f_c,sgb(k))}}}else{e==(Cmd(),ymd)||e==zmd?(i.e.a=l):(i.e.b=l)}}}c.Vg()} +function Fre(a){var b,c,d,e,f,g,h,i,j;a.b=1;Mqe(a);b=null;if(a.c==0&&a.a==94){Mqe(a);b=(Vse(),Vse(),++Use,new xte(4));rte(b,0,MLe);h=(null,++Use,new xte(4))}else{h=(Vse(),Vse(),++Use,new xte(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){wte(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:ute(h,Ere(c));d=true;break;case 105:case 73:case 99:case 67:c=(ute(h,Ere(c)),-1);c<0&&(d=true);break;case 112:case 80:i=Sqe(a,c);if(!i)throw Adb(new Lqe(TId((Hde(),hJe))));ute(h,i);d=true;break;default:c=Dre(a);}}else if(j==24&&!e){if(b){wte(b,h);h=b}f=Fre(a);wte(h,f);if(a.c!=0||a.a!=93)throw Adb(new Lqe(TId((Hde(),lJe))));break}Mqe(a);if(!d){if(j==0){if(c==91)throw Adb(new Lqe(TId((Hde(),mJe))));if(c==93)throw Adb(new Lqe(TId((Hde(),nJe))));if(c==45&&!e&&a.a!=93)throw Adb(new Lqe(TId((Hde(),oJe))))}if(a.c!=0||a.a!=45||c==45&&e){rte(h,c,c)}else{Mqe(a);if((j=a.c)==1)throw Adb(new Lqe(TId((Hde(),jJe))));if(j==0&&a.a==93){rte(h,c,c);rte(h,45,45)}else if(j==0&&a.a==93||j==24){throw Adb(new Lqe(TId((Hde(),oJe))))}else{g=a.a;if(j==0){if(g==91)throw Adb(new Lqe(TId((Hde(),mJe))));if(g==93)throw Adb(new Lqe(TId((Hde(),nJe))));if(g==45)throw Adb(new Lqe(TId((Hde(),oJe))))}else j==10&&(g=Dre(a));Mqe(a);if(c>g)throw Adb(new Lqe(TId((Hde(),rJe))));rte(h,c,g)}}}e=false}if(a.c==1)throw Adb(new Lqe(TId((Hde(),jJe))));vte(h);ste(h);a.b=0;Mqe(a);return h} +function EGc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c.Ug('Coffman-Graham Layering',1);if(b.a.c.length==0){c.Vg();return}v=RD(mQb(b,(yCc(),SAc)),17).a;i=0;g=0;for(m=new Anb(b.a);m.a=v||!zGc(r,d))&&(d=BGc(b,k));g3b(r,d);for(f=new is(Mr(Z2b(r).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zFb(lwb(n,p),Bxe),true)}}for(j=k.c.length-1;j>=0;--j){Rmb(b.b,(tFb(j,k.c.length),RD(k.c[j],30)))}b.a.c.length=0;c.Vg()} +function Sec(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=false;do{u=false;for(f=b?(new Xkb(a.a.b)).a.gc()-2:1;b?f>=0:f<(new Xkb(a.a.b)).a.gc();f+=b?-1:1){e=_5b(a.a,sgb(f));for(n=0;nRD(mQb(q,zwc),17).a)&&(t=false)}if(!t){continue}i=b?f+1:f-1;h=_5b(a.a,sgb(i));g=false;s=true;d=false;for(k=Sub(h,0);k.b!=k.d.c;){j=RD(evb(k),10);if(nQb(j,zwc)){if(j.p!=l.p){g=g|(b?RD(mQb(j,zwc),17).aRD(mQb(l,zwc),17).a);s=false}}else if(!g&&s){if(j.k==(r3b(),n3b)){d=true;b?(m=RD(hs(new is(Mr(Z2b(j).a.Kc(),new ir))),18).c.i):(m=RD(hs(new is(Mr(a3b(j).a.Kc(),new ir))),18).d.i);if(m==l){b?(c=RD(hs(new is(Mr(a3b(j).a.Kc(),new ir))),18).d.i):(c=RD(hs(new is(Mr(Z2b(j).a.Kc(),new ir))),18).c.i);(b?RD($5b(a.a,c),17).a-RD($5b(a.a,m),17).a:RD($5b(a.a,m),17).a-RD($5b(a.a,c),17).a)<=2&&(s=false)}}}}if(d&&s){b?(c=RD(hs(new is(Mr(a3b(l).a.Kc(),new ir))),18).d.i):(c=RD(hs(new is(Mr(Z2b(l).a.Kc(),new ir))),18).c.i);(b?RD($5b(a.a,c),17).a-RD($5b(a.a,l),17).a:RD($5b(a.a,l),17).a-RD($5b(a.a,c),17).a)<=2&&c.k==(r3b(),p3b)&&(s=false)}if(g||s){p=Xec(a,l,b);while(p.a.gc()!=0){o=RD(p.a.ec().Kc().Pb(),10);p.a.Bc(o)!=null;ye(p,Xec(a,o,b))}--n;u=true}}}}while(u)} +function Xae(a){_Ad(a.c,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#decimal']));_Ad(a.d,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#integer']));_Ad(a.e,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#boolean']));_Ad(a.f,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EBoolean',GIe,'EBoolean:Object']));_Ad(a.i,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#byte']));_Ad(a.g,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#hexBinary']));_Ad(a.j,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EByte',GIe,'EByte:Object']));_Ad(a.n,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EChar',GIe,'EChar:Object']));_Ad(a.t,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#double']));_Ad(a.u,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EDouble',GIe,'EDouble:Object']));_Ad(a.F,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#float']));_Ad(a.G,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EFloat',GIe,'EFloat:Object']));_Ad(a.I,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#int']));_Ad(a.J,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EInt',GIe,'EInt:Object']));_Ad(a.N,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#long']));_Ad(a.O,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'ELong',GIe,'ELong:Object']));_Ad(a.Z,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#short']));_Ad(a.$,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EShort',GIe,'EShort:Object']));_Ad(a._,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#string']))} +function C0c(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o;m=RD(d.a,17).a;n=RD(d.b,17).a;l=a.b;o=a.c;h=0;k=0;if(b==(Cmd(),ymd)||b==zmd){k=Uvb(QCb(HDb(GDb(new SDb(null,new Swb(c.b,16)),new b2c),new b1c)));if(l.e.b+l.f.b/2>k){j=++n;h=Kfb(UD(Lvb(JDb(GDb(new SDb(null,new Swb(c.b,16)),new d2c(e,j)),new d1c))))}else{i=++m;h=Kfb(UD(Lvb(KDb(GDb(new SDb(null,new Swb(c.b,16)),new f2c(e,i)),new h1c))))}}else{k=Uvb(QCb(HDb(GDb(new SDb(null,new Swb(c.b,16)),new x1c),new l1c)));if(l.e.a+l.f.a/2>k){j=++n;h=Kfb(UD(Lvb(JDb(GDb(new SDb(null,new Swb(c.b,16)),new z1c(e,j)),new n1c))))}else{i=++m;h=Kfb(UD(Lvb(KDb(GDb(new SDb(null,new Swb(c.b,16)),new B1c(e,i)),new r1c))))}}if(b==ymd){Oub(a.a,new rjd(Kfb(UD(mQb(l,(q$c(),f$c))))-e,h));Oub(a.a,new rjd(o.e.a+o.f.a+e+f,h));Oub(a.a,new rjd(o.e.a+o.f.a+e+f,o.e.b+o.f.b/2));Oub(a.a,new rjd(o.e.a+o.f.a,o.e.b+o.f.b/2))}else if(b==zmd){Oub(a.a,new rjd(Kfb(UD(mQb(l,(q$c(),e$c))))+e,l.e.b+l.f.b/2));Oub(a.a,new rjd(l.e.a+l.f.a+e,h));Oub(a.a,new rjd(o.e.a-e-f,h));Oub(a.a,new rjd(o.e.a-e-f,o.e.b+o.f.b/2));Oub(a.a,new rjd(o.e.a,o.e.b+o.f.b/2))}else if(b==Bmd){Oub(a.a,new rjd(h,Kfb(UD(mQb(l,(q$c(),f$c))))-e));Oub(a.a,new rjd(h,o.e.b+o.f.b+e+f));Oub(a.a,new rjd(o.e.a+o.f.a/2,o.e.b+o.f.b+e+f));Oub(a.a,new rjd(o.e.a+o.f.a/2,o.e.b+o.f.b+e))}else{a.a.b==0||(RD(Rub(a.a),8).b=Kfb(UD(mQb(l,(q$c(),e$c))))+e*RD(g.b,17).a);Oub(a.a,new rjd(h,Kfb(UD(mQb(l,(q$c(),e$c))))+e*RD(g.b,17).a));Oub(a.a,new rjd(h,o.e.b-e*RD(g.a,17).a-f))}return new Ptd(sgb(m),sgb(n))} +function ASd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=_Rd;j=null;f=null;h=0;i=sSd(a,h,ZRd,$Rd);if(i=0&&lhb(a.substr(h,'//'.length),'//')){h+=2;i=sSd(a,h,aSd,bSd);d=(AFb(h,i,a.length),a.substr(h,i-h));h=i}else if(l!=null&&(h==a.length||(BFb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=rhb(a,Fhb(35),h);i==-1&&(i=a.length);d=(AFb(h,i,a.length),a.substr(h,i-h));h=i}if(!c&&h0&&ihb(k,k.length-1)==58){e=k;h=i}}if(hqQc(f))&&(l=f)}}!l&&(l=(tFb(0,q.c.length),RD(q.c[0],185)));for(p=new Anb(b.b);p.al){F=0;G+=k+A;k=0}FVc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Tsb;c=new Tsb;for(C=new Anb(a);C.a=-1900?1:0;c>=4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Qwe,Rwe])[h]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['BC','AD'])[h]);break;case 121:AA(a,c,d);break;case 77:zA(a,c,d);break;case 107:i=e.q.getHours();i==0?UA(a,24,c):UA(a,i,c);break;case 83:yA(a,c,e);break;case 69:k=d.q.getDay();c==5?Zhb(a,cD(WC(qJ,1),Nve,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Swe,Twe,Uwe,Vwe,Wwe,Xwe,Ywe])[k]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Zhb(a,cD(WC(qJ,1),Nve,2,6,['AM','PM'])[1]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?UA(a,12,c):UA(a,l,c);break;case 75:m=e.q.getHours()%12;UA(a,m,c);break;case 72:n=e.q.getHours();UA(a,n,c);break;case 99:o=d.q.getDay();c==5?Zhb(a,cD(WC(qJ,1),Nve,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Swe,Twe,Uwe,Vwe,Wwe,Xwe,Ywe])[o]):c==3?Zhb(a,cD(WC(qJ,1),Nve,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):UA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Zhb(a,cD(WC(qJ,1),Nve,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Cwe,Dwe,Ewe,Fwe,Gwe,Hwe,Iwe,Jwe,Kwe,Lwe,Mwe,Nwe])[p]):c==3?Zhb(a,cD(WC(qJ,1),Nve,2,6,['Jan','Feb','Mar','Apr',Gwe,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):UA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Zhb(a,cD(WC(qJ,1),Nve,2,6,['Q1','Q2','Q3','Q4'])[q]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();UA(a,r,c);break;case 109:j=e.q.getMinutes();UA(a,j,c);break;case 115:g=e.q.getSeconds();UA(a,g,c);break;case 122:c<4?Zhb(a,f.c[0]):Zhb(a,f.c[1]);break;case 118:Zhb(a,f.b);break;case 90:c<3?Zhb(a,cB(f)):c==3?Zhb(a,bB(f)):Zhb(a,eB(f.a));break;default:return false;}return true} +function f5b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;X4b(b);i=RD(QHd((!b.b&&(b.b=new Yie(E4,b,4,7)),b.b),0),84);k=RD(QHd((!b.c&&(b.c=new Yie(E4,b,5,8)),b.c),0),84);h=AGd(i);j=AGd(k);g=(!b.a&&(b.a=new C5d(F4,b,6,6)),b.a).i==0?null:RD(QHd((!b.a&&(b.a=new C5d(F4,b,6,6)),b.a),0),166);A=RD(Wjb(a.a,h),10);F=RD(Wjb(a.a,j),10);B=null;G=null;if(ZD(i,193)){w=RD(Wjb(a.a,i),305);if(ZD(w,12)){B=RD(w,12)}else if(ZD(w,10)){A=RD(w,10);B=RD(Vmb(A.j,0),12)}}if(ZD(k,193)){D=RD(Wjb(a.a,k),305);if(ZD(D,12)){G=RD(D,12)}else if(ZD(D,10)){F=RD(D,10);G=RD(Vmb(F.j,0),12)}}if(!A||!F){throw Adb(new Ked('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new a1b;kQb(p,b);pQb(p,(Ywc(),Awc),b);pQb(p,(yCc(),RAc),null);n=RD(mQb(d,kwc),21);A==F&&n.Fc((ovc(),nvc));if(!B){v=(BEc(),zEc);C=null;if(!!g&&Dod(RD(mQb(A,BBc),101))){C=new rjd(g.j,g.k);Fsd(C,kzd(b));Gsd(C,c);if(NGd(j,h)){v=yEc;$id(C,A.n)}}B=g2b(A,C,v,d)}if(!G){v=(BEc(),yEc);H=null;if(!!g&&Dod(RD(mQb(F,BBc),101))){H=new rjd(g.b,g.c);Fsd(H,kzd(b));Gsd(H,c)}G=g2b(F,H,v,Y2b(F))}Y0b(p,B);Z0b(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((ovc(),ivc));for(m=new dMd((!b.n&&(b.n=new C5d(I4,b,1,7)),b.n));m.e!=m.i.gc();){l=RD(bMd(m),135);if(!Heb(TD(Gxd(l,pBc)))&&!!l.a){q=h5b(l);Rmb(p.b,q);switch(RD(mQb(q,wAc),278).g){case 1:case 2:n.Fc((ovc(),gvc));break;case 0:n.Fc((ovc(),evc));pQb(q,wAc,(Omd(),Lmd));}}}f=RD(mQb(d,oAc),322);r=RD(mQb(d,kBc),323);e=f==(stc(),ptc)||r==(JDc(),FDc);if(!!g&&(!g.a&&(g.a=new XZd(D4,g,5)),g.a).i!=0&&e){s=ssd(g);o=new Ejd;for(u=Sub(s,0);u.b!=u.d.c;){t=RD(evb(u),8);Mub(o,new sjd(t))}pQb(p,Bwc,o)}return p} +function F0c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;C=0;D=0;A=new Tsb;v=RD(Lvb(JDb(GDb(new SDb(null,new Swb(a.b,16)),new v1c),new Z0c)),17).a+1;B=$C(kE,Pwe,28,v,15,1);q=$C(kE,Pwe,28,v,15,1);for(p=0;p1){for(h=G+1;hj.b.e.b*(1-r)+j.c.e.b*r){break}}if(w.gc()>0){H=j.a.b==0?ajd(j.b.e):RD(Rub(j.a),8);t=$id(ajd(RD(w.Xb(w.gc()-1),40).e),RD(w.Xb(w.gc()-1),40).f);m=$id(ajd(RD(w.Xb(0),40).e),RD(w.Xb(0),40).f);if(o>=w.gc()-1&&H.b>t.b&&j.c.e.b>t.b){continue}if(o<=0&&H.bj.b.e.a*(1-r)+j.c.e.a*r){break}}if(w.gc()>0){H=j.a.b==0?ajd(j.b.e):RD(Rub(j.a),8);t=$id(ajd(RD(w.Xb(w.gc()-1),40).e),RD(w.Xb(w.gc()-1),40).f);m=$id(ajd(RD(w.Xb(0),40).e),RD(w.Xb(0),40).f);if(o>=w.gc()-1&&H.a>t.a&&j.c.e.a>t.a){continue}if(o<=0&&H.a=Kfb(UD(mQb(a,(q$c(),$Zc))))&&++D}else{n.f&&n.d.e.a<=Kfb(UD(mQb(a,(q$c(),ZZc))))&&++C;n.g&&n.c.e.a+n.c.f.a>=Kfb(UD(mQb(a,(q$c(),YZc))))&&++D}}}else if(u==0){H0c(j)}else if(u<0){++B[G];++q[I];F=C0c(j,b,a,new Ptd(sgb(C),sgb(D)),c,d,new Ptd(sgb(q[I]),sgb(B[G])));C=RD(F.a,17).a;D=RD(F.b,17).a}}} +function qrc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;d=b;i=c;if(a.b&&d.j==(qpd(),ppd)&&i.j==(qpd(),ppd)){s=d;d=i;i=s}if(Ujb(a.a,d)){if(Zsb(RD(Wjb(a.a,d),49),i)){return 1}}else{Zjb(a.a,d,new _sb)}if(Ujb(a.a,i)){if(Zsb(RD(Wjb(a.a,i),49),d)){return -1}}else{Zjb(a.a,i,new _sb)}if(Ujb(a.d,d)){if(Zsb(RD(Wjb(a.d,d),49),i)){return -1}}else{Zjb(a.d,d,new _sb)}if(Ujb(a.d,i)){if(Zsb(RD(Wjb(a.a,i),49),d)){return 1}}else{Zjb(a.d,i,new _sb)}if(d.j!=i.j){r=yrc(d.j,i.j);r==-1?rrc(a,i,d):rrc(a,d,i);return r}if(d.e.c.length!=0&&i.e.c.length!=0){if(a.b){r=orc(d,i);if(r!=0){r==-1?rrc(a,i,d):r==1&&rrc(a,d,i);return r}}f=RD(Vmb(d.e,0),18).c.i;k=RD(Vmb(i.e,0),18).c.i;if(f==k){e=RD(mQb(RD(Vmb(d.e,0),18),(Ywc(),zwc)),17).a;j=RD(mQb(RD(Vmb(i.e,0),18),zwc),17).a;e>j?rrc(a,d,i):rrc(a,i,d);return ej?1:0}for(o=a.c,p=0,q=o.length;pj?rrc(a,d,i):rrc(a,i,d);return ej?1:0}if(a.b){r=orc(d,i);if(r!=0){r==-1?rrc(a,i,d):r==1&&rrc(a,d,i);return r}}g=0;l=0;nQb(RD(Vmb(d.g,0),18),zwc)&&(g=RD(mQb(RD(Vmb(d.g,0),18),zwc),17).a);nQb(RD(Vmb(i.g,0),18),zwc)&&(l=RD(mQb(RD(Vmb(d.g,0),18),zwc),17).a);if(!!h&&h==m){if(Heb(TD(mQb(RD(Vmb(d.g,0),18),Nwc)))&&!Heb(TD(mQb(RD(Vmb(i.g,0),18),Nwc)))){rrc(a,d,i);return 1}else if(!Heb(TD(mQb(RD(Vmb(d.g,0),18),Nwc)))&&Heb(TD(mQb(RD(Vmb(i.g,0),18),Nwc)))){rrc(a,i,d);return -1}g>l?rrc(a,d,i):rrc(a,i,d);return gl?1:0}if(a.f){a.f._b(h)&&(g=RD(a.f.xc(h),17).a);a.f._b(m)&&(l=RD(a.f.xc(m),17).a)}g>l?rrc(a,d,i):rrc(a,i,d);return gl?1:0}if(d.e.c.length!=0&&i.g.c.length!=0){rrc(a,d,i);return 1}else if(d.g.c.length!=0&&i.e.c.length!=0){rrc(a,i,d);return -1}else if(nQb(d,(Ywc(),zwc))&&nQb(i,zwc)){e=RD(mQb(d,zwc),17).a;j=RD(mQb(i,zwc),17).a;e>j?rrc(a,d,i):rrc(a,i,d);return ej?1:0}else{rrc(a,i,d);return -1}} +function Yae(a){if(a.gb)return;a.gb=true;a.b=jBd(a,0);iBd(a.b,18);oBd(a.b,19);a.a=jBd(a,1);iBd(a.a,1);oBd(a.a,2);oBd(a.a,3);oBd(a.a,4);oBd(a.a,5);a.o=jBd(a,2);iBd(a.o,8);iBd(a.o,9);oBd(a.o,10);oBd(a.o,11);oBd(a.o,12);oBd(a.o,13);oBd(a.o,14);oBd(a.o,15);oBd(a.o,16);oBd(a.o,17);oBd(a.o,18);oBd(a.o,19);oBd(a.o,20);oBd(a.o,21);oBd(a.o,22);oBd(a.o,23);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);a.p=jBd(a,3);iBd(a.p,2);iBd(a.p,3);iBd(a.p,4);iBd(a.p,5);oBd(a.p,6);oBd(a.p,7);nBd(a.p);nBd(a.p);a.q=jBd(a,4);iBd(a.q,8);a.v=jBd(a,5);oBd(a.v,9);nBd(a.v);nBd(a.v);nBd(a.v);a.w=jBd(a,6);iBd(a.w,2);iBd(a.w,3);iBd(a.w,4);oBd(a.w,5);a.B=jBd(a,7);oBd(a.B,1);nBd(a.B);nBd(a.B);nBd(a.B);a.Q=jBd(a,8);oBd(a.Q,0);nBd(a.Q);a.R=jBd(a,9);iBd(a.R,1);a.S=jBd(a,10);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);a.T=jBd(a,11);oBd(a.T,10);oBd(a.T,11);oBd(a.T,12);oBd(a.T,13);oBd(a.T,14);nBd(a.T);nBd(a.T);a.U=jBd(a,12);iBd(a.U,2);iBd(a.U,3);oBd(a.U,4);oBd(a.U,5);oBd(a.U,6);oBd(a.U,7);nBd(a.U);a.V=jBd(a,13);oBd(a.V,10);a.W=jBd(a,14);iBd(a.W,18);iBd(a.W,19);iBd(a.W,20);oBd(a.W,21);oBd(a.W,22);oBd(a.W,23);a.bb=jBd(a,15);iBd(a.bb,10);iBd(a.bb,11);iBd(a.bb,12);iBd(a.bb,13);iBd(a.bb,14);iBd(a.bb,15);iBd(a.bb,16);oBd(a.bb,17);nBd(a.bb);nBd(a.bb);a.eb=jBd(a,16);iBd(a.eb,2);iBd(a.eb,3);iBd(a.eb,4);iBd(a.eb,5);iBd(a.eb,6);iBd(a.eb,7);oBd(a.eb,8);oBd(a.eb,9);a.ab=jBd(a,17);iBd(a.ab,0);iBd(a.ab,1);a.H=jBd(a,18);oBd(a.H,0);oBd(a.H,1);oBd(a.H,2);oBd(a.H,3);oBd(a.H,4);oBd(a.H,5);nBd(a.H);a.db=jBd(a,19);oBd(a.db,2);a.c=kBd(a,20);a.d=kBd(a,21);a.e=kBd(a,22);a.f=kBd(a,23);a.i=kBd(a,24);a.g=kBd(a,25);a.j=kBd(a,26);a.k=kBd(a,27);a.n=kBd(a,28);a.r=kBd(a,29);a.s=kBd(a,30);a.t=kBd(a,31);a.u=kBd(a,32);a.fb=kBd(a,33);a.A=kBd(a,34);a.C=kBd(a,35);a.D=kBd(a,36);a.F=kBd(a,37);a.G=kBd(a,38);a.I=kBd(a,39);a.J=kBd(a,40);a.L=kBd(a,41);a.M=kBd(a,42);a.N=kBd(a,43);a.O=kBd(a,44);a.P=kBd(a,45);a.X=kBd(a,46);a.Y=kBd(a,47);a.Z=kBd(a,48);a.$=kBd(a,49);a._=kBd(a,50);a.cb=kBd(a,51);a.K=kBd(a,52)} +function d5b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;g=new Yub;w=RD(mQb(c,(yCc(),rAc)),88);p=0;ye(g,(!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));while(g.b!=0){k=RD(g.b==0?null:(sFb(g.b!=0),Wub(g,g.a.a)),27);j=vCd(k);(dE(Gxd(j,cAc))!==dE((kEc(),hEc))||dE(Gxd(j,pAc))===dE((Ptc(),Otc))||dE(Gxd(j,pAc))===dE((Ptc(),Mtc))||Heb(TD(Gxd(j,eAc)))||dE(Gxd(j,Yzc))!==dE((U$b(),T$b))||dE(Gxd(j,ZAc))===dE((aEc(),TDc))||dE(Gxd(j,ZAc))===dE((aEc(),UDc))||dE(Gxd(j,$Ac))===dE((_Cc(),SCc))||dE(Gxd(j,$Ac))===dE((_Cc(),UCc)))&&!Heb(TD(Gxd(k,aAc)))&&Ixd(k,(Ywc(),zwc),sgb(p++));r=!Heb(TD(Gxd(k,pBc)));if(r){m=(!k.a&&(k.a=new C5d(J4,k,10,11)),k.a).i!=0;o=a5b(k);n=dE(Gxd(k,IAc))===dE((Fnd(),Cnd));G=!Hxd(k,(umd(),Akd))||khb(WD(Gxd(k,Akd)));u=null;if(G&&n&&(m||o)){u=Z4b(k);pQb(u,rAc,w);nQb(u,PBc)&&HCc(new RCc(Kfb(UD(mQb(u,PBc)))),u);if(RD(Gxd(k,lBc),181).gc()!=0){l=u;FDb(new SDb(null,(!k.c&&(k.c=new C5d(K4,k,9,9)),new Swb(k.c,16))),new u5b(l));V4b(k,u)}}A=c;B=RD(Wjb(a.a,vCd(k)),10);!!B&&(A=B.e);t=i5b(a,k,A);if(u){t.e=u;u.e=t;ye(g,(!k.a&&(k.a=new C5d(J4,k,10,11)),k.a))}}}p=0;Pub(g,b,g.c.b,g.c);while(g.b!=0){f=RD(g.b==0?null:(sFb(g.b!=0),Wub(g,g.a.a)),27);for(i=new dMd((!f.b&&(f.b=new C5d(G4,f,12,3)),f.b));i.e!=i.i.gc();){h=RD(bMd(i),74);X4b(h);(dE(Gxd(b,cAc))!==dE((kEc(),hEc))||dE(Gxd(b,pAc))===dE((Ptc(),Otc))||dE(Gxd(b,pAc))===dE((Ptc(),Mtc))||Heb(TD(Gxd(b,eAc)))||dE(Gxd(b,Yzc))!==dE((U$b(),T$b))||dE(Gxd(b,ZAc))===dE((aEc(),TDc))||dE(Gxd(b,ZAc))===dE((aEc(),UDc))||dE(Gxd(b,$Ac))===dE((_Cc(),SCc))||dE(Gxd(b,$Ac))===dE((_Cc(),UCc)))&&Ixd(h,(Ywc(),zwc),sgb(p++));D=AGd(RD(QHd((!h.b&&(h.b=new Yie(E4,h,4,7)),h.b),0),84));F=AGd(RD(QHd((!h.c&&(h.c=new Yie(E4,h,5,8)),h.c),0),84));if(Heb(TD(Gxd(h,pBc)))||Heb(TD(Gxd(D,pBc)))||Heb(TD(Gxd(F,pBc)))){continue}q=ozd(h)&&Heb(TD(Gxd(D,NAc)))&&Heb(TD(Gxd(h,OAc)));v=f;q||NGd(F,D)?(v=D):NGd(D,F)&&(v=F);A=c;B=RD(Wjb(a.a,v),10);!!B&&(A=B.e);s=f5b(a,h,v,A);pQb(s,(Ywc(),Zvc),_4b(a,h,b,c))}n=dE(Gxd(f,IAc))===dE((Fnd(),Cnd));if(n){for(e=new dMd((!f.a&&(f.a=new C5d(J4,f,10,11)),f.a));e.e!=e.i.gc();){d=RD(bMd(e),27);G=!Hxd(d,(umd(),Akd))||khb(WD(Gxd(d,Akd)));C=dE(Gxd(d,IAc))===dE(Cnd);G&&C&&(Pub(g,d,g.c.b,g.c),true)}}}} +function Ywc(){Ywc=geb;var a,b;Awc=new jGd(rAe);Zvc=new jGd('coordinateOrigin');Kwc=new jGd('processors');Yvc=new kGd('compoundNode',(Geb(),false));nwc=new kGd('insideConnections',false);Bwc=new jGd('originalBendpoints');Cwc=new jGd('originalDummyNodePosition');Dwc=new jGd('originalLabelEdge');Mwc=new jGd('representedLabels');cwc=new jGd('endLabels');dwc=new jGd('endLabel.origin');swc=new kGd('labelSide',(Pnd(),Ond));ywc=new kGd('maxEdgeThickness',0);Nwc=new kGd('reversed',false);Lwc=new jGd(sAe);vwc=new kGd('longEdgeSource',null);wwc=new kGd('longEdgeTarget',null);uwc=new kGd('longEdgeHasLabelDummies',false);twc=new kGd('longEdgeBeforeLabelDummy',false);bwc=new kGd('edgeConstraint',(huc(),fuc));pwc=new jGd('inLayerLayoutUnit');owc=new kGd('inLayerConstraint',(Gvc(),Evc));qwc=new kGd('inLayerSuccessorConstraint',new bnb);rwc=new kGd('inLayerSuccessorConstraintBetweenNonDummies',false);Iwc=new jGd('portDummy');$vc=new kGd('crossingHint',sgb(0));kwc=new kGd('graphProperties',(b=RD(mfb(iX),9),new Fsb(b,RD(WEb(b,b.length),9),0)));hwc=new kGd('externalPortSide',(qpd(),opd));iwc=new kGd('externalPortSize',new pjd);fwc=new jGd('externalPortReplacedDummies');gwc=new jGd('externalPortReplacedDummy');ewc=new kGd('externalPortConnections',(a=RD(mfb(E3),9),new Fsb(a,RD(WEb(a,a.length),9),0)));Jwc=new kGd(Xye,0);Uvc=new jGd('barycenterAssociates');Xwc=new jGd('TopSideComments');Vvc=new jGd('BottomSideComments');Xvc=new jGd('CommentConnectionPort');mwc=new kGd('inputCollect',false);Gwc=new kGd('outputCollect',false);awc=new kGd('cyclic',false);_vc=new jGd('crossHierarchyMap');Wwc=new jGd('targetOffset');new kGd('splineLabelSize',new pjd);Qwc=new jGd('spacings');Hwc=new kGd('partitionConstraint',false);Wvc=new jGd('breakingPoint.info');Uwc=new jGd('splines.survivingEdge');Twc=new jGd('splines.route.start');Rwc=new jGd('splines.edgeChain');Fwc=new jGd('originalPortConstraints');Pwc=new jGd('selfLoopHolder');Swc=new jGd('splines.nsPortY');zwc=new jGd('modelOrder');xwc=new jGd('longEdgeTargetNode');jwc=new kGd(GBe,false);Owc=new kGd(GBe,false);lwc=new jGd('layerConstraints.hiddenNodes');Ewc=new jGd('layerConstraints.opposidePort');Vwc=new jGd('targetNode.modelOrder')} +function D0c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;for(l=Sub(a.b,0);l.b!=l.d.c;){k=RD(evb(l),40);if(lhb(k.c,IEe)){continue}f=RD(zDb(new SDb(null,new Swb(hWc(k,a),16)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);b==(Cmd(),ymd)||b==zmd?f.jd(new L1c):f.jd(new R1c);o=f.gc();for(e=0;e0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(i-n)/($wnd.Math.abs(h-m)/40)>50&&(n>i?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a+d/5.3,k.e.b+k.f.b*g-d/2)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a+d/5.3,k.e.b+k.f.b*g+d/2)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a,k.e.b+k.f.b*g))}else if(b==zmd){j=Kfb(UD(mQb(k,(q$c(),f$c))));if(k.e.a-d>j){Oub(RD(f.Xb(e),65).a,new rjd(j-c,k.e.b+k.f.b*g))}else if(RD(f.Xb(e),65).a.b>0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(i-n)/($wnd.Math.abs(h-m)/40)>50&&(n>i?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a-d/5.3,k.e.b+k.f.b*g-d/2)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a-d/5.3,k.e.b+k.f.b*g+d/2)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a,k.e.b+k.f.b*g))}else if(b==Bmd){j=Kfb(UD(mQb(k,(q$c(),e$c))));if(k.e.b+k.f.b+d0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(h-m)/($wnd.Math.abs(i-n)/40)>50&&(m>h?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g-d/2,k.e.b+d/5.3+k.f.b)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g+d/2,k.e.b+d/5.3+k.f.b)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,k.e.b+k.f.b))}else{j=Kfb(UD(mQb(k,(q$c(),f$c))));if(mWc(RD(f.Xb(e),65),a)){Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,RD(Rub(RD(f.Xb(e),65).a),8).b))}else if(k.e.b-d>j){Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,j-c))}else if(RD(f.Xb(e),65).a.b>0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(h-m)/($wnd.Math.abs(i-n)/40)>50&&(m>h?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g-d/2,k.e.b-d/5.3)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g+d/2,k.e.b-d/5.3)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,k.e.b))}}}} +function umd(){umd=geb;var a,b;Akd=new jGd(OGe);Tld=new jGd(PGe);Ckd=(Rjd(),Ljd);Bkd=new lGd(MDe,Ckd);new Xsd;Dkd=new lGd(Dze,null);Ekd=new jGd(QGe);Lkd=(ukd(),ysb(tkd,cD(WC(q3,1),jwe,298,0,[pkd])));Kkd=new lGd(YDe,Lkd);Mkd=new lGd(LDe,(Geb(),false));Okd=(Cmd(),Amd);Nkd=new lGd(PDe,Okd);Tkd=(Ymd(),Xmd);Skd=new lGd(kDe,Tkd);Wkd=new lGd(MGe,false);Ykd=(Fnd(),Dnd);Xkd=new lGd(fDe,Ykd);uld=new A3b(12);tld=new lGd(Eze,uld);ald=new lGd(dAe,false);bld=new lGd(iEe,false);sld=new lGd(gAe,false);Ild=(Bod(),Aod);Hld=new lGd(eAe,Ild);Qld=new jGd(fEe);Rld=new jGd($ze);Sld=new jGd(bAe);Vld=new jGd(cAe);dld=new Ejd;cld=new lGd(ZDe,dld);Jkd=new lGd(aEe,false);Zkd=new lGd(bEe,false);new jGd(RGe);fld=new P2b;eld=new lGd(gEe,fld);rld=new lGd(JDe,false);new Xsd;Uld=new lGd(SGe,1);Ikd=new jGd(TGe);Hkd=new jGd(UGe);mmd=new lGd(mAe,false);new lGd(VGe,true);sgb(0);new lGd(WGe,sgb(100));new lGd(XGe,false);sgb(0);new lGd(YGe,sgb(4000));sgb(0);new lGd(ZGe,sgb(400));new lGd($Ge,false);new lGd(_Ge,false);new lGd(aHe,true);new lGd(bHe,false);Gkd=(Grd(),Frd);Fkd=new lGd(NGe,Gkd);Wld=new lGd(xDe,10);Xld=new lGd(yDe,10);Yld=new lGd(Bze,20);Zld=new lGd(zDe,10);$ld=new lGd(aAe,2);_ld=new lGd(ADe,10);bmd=new lGd(BDe,0);cmd=new lGd(EDe,5);dmd=new lGd(CDe,1);emd=new lGd(DDe,1);fmd=new lGd(_ze,20);gmd=new lGd(FDe,10);jmd=new lGd(GDe,10);amd=new jGd(HDe);imd=new Q2b;hmd=new lGd(hEe,imd);xld=new jGd(eEe);wld=false;vld=new lGd(dEe,wld);hld=new A3b(5);gld=new lGd(QDe,hld);jld=(dod(),b=RD(mfb(A3),9),new Fsb(b,RD(WEb(b,b.length),9),0));ild=new lGd(kAe,jld);Ald=(pod(),mod);zld=new lGd(TDe,Ald);Cld=new jGd(UDe);Dld=new jGd(VDe);Eld=new jGd(WDe);Bld=new jGd(XDe);lld=(a=RD(mfb(H3),9),new Fsb(a,RD(WEb(a,a.length),9),0));kld=new lGd(jAe,lld);qld=xsb((dqd(),Ypd));pld=new lGd(iAe,qld);old=new rjd(0,0);nld=new lGd(CAe,old);mld=new lGd(hAe,false);Rkd=(Omd(),Lmd);Qkd=new lGd($De,Rkd);Pkd=new lGd(fAe,false);new jGd(cHe);sgb(1);new lGd(dHe,null);Fld=new jGd(cEe);Jld=new jGd(_De);Pld=(qpd(),opd);Old=new lGd(KDe,Pld);Gld=new jGd(IDe);Mld=(Pod(),xsb(Nod));Lld=new lGd(lAe,Mld);Kld=new lGd(RDe,false);Nld=new lGd(SDe,true);new Xsd;qmd=new lGd(nAe,1);smd=new lGd(eHe,null);lmd=new lGd(oAe,150);kmd=new lGd(pAe,1.414);nmd=new lGd(qAe,null);omd=new lGd(fHe,1);$kd=new lGd(NDe,false);_kd=new lGd(ODe,false);Ukd=new lGd(Cze,1);Vkd=(ind(),gnd);new lGd(gHe,Vkd);yld=true;rmd=(mqd(),jqd);tmd=jqd;pmd=jqd} +function hcc(){hcc=geb;nbc=new icc('DIRECTION_PREPROCESSOR',0);kbc=new icc('COMMENT_PREPROCESSOR',1);obc=new icc('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);Ebc=new icc('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);Xbc=new icc('PARTITION_PREPROCESSOR',4);Ibc=new icc('LABEL_DUMMY_INSERTER',5);bcc=new icc('SELF_LOOP_PREPROCESSOR',6);Nbc=new icc('LAYER_CONSTRAINT_PREPROCESSOR',7);Vbc=new icc('PARTITION_MIDPROCESSOR',8);zbc=new icc('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);Rbc=new icc('NODE_PROMOTION',10);Mbc=new icc('LAYER_CONSTRAINT_POSTPROCESSOR',11);Wbc=new icc('PARTITION_POSTPROCESSOR',12);vbc=new icc('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);dcc=new icc('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);ebc=new icc('BREAKING_POINT_INSERTER',15);Qbc=new icc('LONG_EDGE_SPLITTER',16);Zbc=new icc('PORT_SIDE_PROCESSOR',17);Fbc=new icc('INVERTED_PORT_PROCESSOR',18);Ybc=new icc('PORT_LIST_SORTER',19);fcc=new icc('SORT_BY_INPUT_ORDER_OF_MODEL',20);Tbc=new icc('NORTH_SOUTH_PORT_PREPROCESSOR',21);fbc=new icc('BREAKING_POINT_PROCESSOR',22);Ubc=new icc(jBe,23);gcc=new icc(kBe,24);_bc=new icc('SELF_LOOP_PORT_RESTORER',25);ecc=new icc('SINGLE_EDGE_GRAPH_WRAPPER',26);Gbc=new icc('IN_LAYER_CONSTRAINT_PROCESSOR',27);sbc=new icc('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);Hbc=new icc('LABEL_AND_NODE_SIZE_PROCESSOR',29);Dbc=new icc('INNERMOST_NODE_MARGIN_CALCULATOR',30);ccc=new icc('SELF_LOOP_ROUTER',31);ibc=new icc('COMMENT_NODE_MARGIN_CALCULATOR',32);qbc=new icc('END_LABEL_PREPROCESSOR',33);Kbc=new icc('LABEL_DUMMY_SWITCHER',34);hbc=new icc('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);Lbc=new icc('LABEL_SIDE_SELECTOR',36);Bbc=new icc('HYPEREDGE_DUMMY_MERGER',37);wbc=new icc('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);Obc=new icc('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);ybc=new icc('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);lbc=new icc('CONSTRAINTS_POSTPROCESSOR',41);jbc=new icc('COMMENT_POSTPROCESSOR',42);Cbc=new icc('HYPERNODE_PROCESSOR',43);xbc=new icc('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);Pbc=new icc('LONG_EDGE_JOINER',45);acc=new icc('SELF_LOOP_POSTPROCESSOR',46);gbc=new icc('BREAKING_POINT_REMOVER',47);Sbc=new icc('NORTH_SOUTH_PORT_POSTPROCESSOR',48);Abc=new icc('HORIZONTAL_COMPACTOR',49);Jbc=new icc('LABEL_DUMMY_REMOVER',50);tbc=new icc('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);rbc=new icc('END_LABEL_SORTER',52);$bc=new icc('REVERSED_EDGE_RESTORER',53);pbc=new icc('END_LABEL_POSTPROCESSOR',54);ubc=new icc('HIERARCHICAL_NODE_RESIZER',55);mbc=new icc('DIRECTION_POSTPROCESSOR',56)} +function Ozc(){Ozc=geb;Uxc=($tc(),Ytc);Txc=new lGd(HBe,Uxc);jyc=new lGd(IBe,(Geb(),false));pyc=(Ovc(),Mvc);oyc=new lGd(JBe,pyc);Hyc=new lGd(KBe,false);Iyc=new lGd(LBe,true);ixc=new lGd(MBe,false);azc=(sEc(),qEc);_yc=new lGd(NBe,azc);sgb(1);izc=new lGd(OBe,sgb(7));jzc=new lGd(PBe,false);kyc=new lGd(QBe,false);Sxc=(Ptc(),Ltc);Rxc=new lGd(RBe,Sxc);Gyc=(_Cc(),ZCc);Fyc=new lGd(SBe,Gyc);wyc=(cxc(),bxc);vyc=new lGd(TBe,wyc);sgb(-1);uyc=new lGd(UBe,null);sgb(-1);xyc=new lGd(VBe,sgb(-1));sgb(-1);yyc=new lGd(WBe,sgb(4));sgb(-1);Ayc=new lGd(XBe,sgb(2));Eyc=(aEc(),$Dc);Dyc=new lGd(YBe,Eyc);sgb(0);Cyc=new lGd(ZBe,sgb(0));syc=new lGd($Be,sgb(lve));Qxc=(stc(),qtc);Pxc=new lGd(_Be,Qxc);yxc=new lGd(aCe,false);Hxc=new lGd(bCe,0.1);Nxc=new lGd(cCe,false);Jxc=new lGd(dCe,null);Kxc=new lGd(eCe,null);sgb(-1);Lxc=new lGd(fCe,null);sgb(-1);Mxc=new lGd(gCe,sgb(-1));sgb(0);zxc=new lGd(hCe,sgb(40));Fxc=(xvc(),wvc);Exc=new lGd(iCe,Fxc);Bxc=uvc;Axc=new lGd(jCe,Bxc);$yc=(JDc(),EDc);Zyc=new lGd(kCe,$yc);Pyc=new jGd(lCe);Kyc=(Cuc(),Auc);Jyc=new lGd(mCe,Kyc);Nyc=(Ouc(),Luc);Myc=new lGd(nCe,Nyc);new Xsd;Syc=new lGd(oCe,0.3);Uyc=new jGd(pCe);Wyc=(wDc(),uDc);Vyc=new lGd(qCe,Wyc);ayc=(KEc(),IEc);_xc=new lGd(rCe,ayc);cyc=(TEc(),SEc);byc=new lGd(sCe,cyc);eyc=(lFc(),kFc);dyc=new lGd(tCe,eyc);gyc=new lGd(uCe,0.2);Zxc=new lGd(vCe,2);ezc=new lGd(wCe,null);gzc=new lGd(xCe,10);fzc=new lGd(yCe,10);hzc=new lGd(zCe,20);sgb(0);bzc=new lGd(ACe,sgb(0));sgb(0);czc=new lGd(BCe,sgb(0));sgb(0);dzc=new lGd(CCe,sgb(0));jxc=new lGd(DCe,false);nxc=($uc(),Yuc);mxc=new lGd(ECe,nxc);lxc=(jtc(),itc);kxc=new lGd(FCe,lxc);myc=new lGd(GCe,false);sgb(0);lyc=new lGd(HCe,sgb(16));sgb(0);nyc=new lGd(ICe,sgb(5));Gzc=(DFc(),BFc);Fzc=new lGd(JCe,Gzc);kzc=new lGd(KCe,10);nzc=new lGd(LCe,1);wzc=(Etc(),Dtc);vzc=new lGd(MCe,wzc);qzc=new jGd(NCe);tzc=sgb(1);sgb(0);szc=new lGd(OCe,tzc);Lzc=(uFc(),rFc);Kzc=new lGd(PCe,Lzc);Hzc=new jGd(QCe);Bzc=new lGd(RCe,true);zzc=new lGd(SCe,2);Dzc=new lGd(TCe,true);Yxc=(tuc(),ruc);Xxc=new lGd(UCe,Yxc);Wxc=(btc(),Zsc);Vxc=new lGd(VCe,Wxc);xxc=(kEc(),hEc);wxc=new lGd(WCe,xxc);vxc=new lGd(XCe,false);uxc=new lGd(YCe,false);pxc=(U$b(),T$b);oxc=new lGd(ZCe,pxc);txc=(lDc(),iDc);sxc=new lGd($Ce,txc);qxc=new lGd(_Ce,0);rxc=new lGd(aDe,0);ryc=Ntc;qyc=ptc;zyc=YCc;Byc=YCc;tyc=TCc;Ixc=(Fnd(),Cnd);Oxc=qtc;Gxc=qtc;Cxc=qtc;Dxc=Cnd;Qyc=HDc;Ryc=EDc;Lyc=EDc;Oyc=EDc;Tyc=GDc;Yyc=HDc;Xyc=HDc;fyc=(Ymd(),Wmd);hyc=Wmd;iyc=kFc;$xc=Vmd;lzc=CFc;mzc=AFc;ozc=CFc;pzc=AFc;xzc=CFc;yzc=AFc;rzc=Ctc;uzc=Dtc;Mzc=CFc;Nzc=AFc;Izc=CFc;Jzc=AFc;Czc=AFc;Azc=AFc;Ezc=AFc} +function iNc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sFb(Y.b>0),RD(Y.a.Xb(Y.c=--Y.b),12));X=0;for(h=new Anb(U.e);h.a0){if(U.j==(qpd(),Yod)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Tsb;o=new Iub;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Wnb(p,0,p.length,null);gb=$C(kE,Pwe,28,p.length,15,1);d=$C(kE,Pwe,28,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=$C(NY,rve,374,p.length*2,0,1);for(u=0;u0&&(ltd(J.f),false)){if(RD(Gxd(r,nmd),280)==jqd){throw Adb(new Jed('Topdown Layout Providers should only be used on parallel nodes.'))}fE(ltd(J.f));null.Um();zyd(r,$wnd.Math.max(r.g,null.Vm),$wnd.Math.max(r.f,null.Vm))}else if(Gxd(r,smd)!=null){h=RD(Gxd(r,smd),347);W=h.Tg(r);zyd(r,$wnd.Math.max(r.g,W.a),$wnd.Math.max(r.f,W.b))}}}O=RD(Gxd(b,tld),107);n=b.g-(O.b+O.c);m=b.f-(O.d+O.a);Z.bh('Available Child Area: ('+n+'|'+m+')');Ixd(b,Dkd,n/m);Ced(b,e,d.eh(M));if(RD(Gxd(b,nmd),280)==lqd){psd(b);zyd(b,O.b+Kfb(UD(Gxd(b,Ikd)))+O.c,O.d+Kfb(UD(Gxd(b,Hkd)))+O.a)}Z.bh('Executed layout algorithm: '+WD(Gxd(b,Akd))+' on node '+b.k);if(RD(Gxd(b,nmd),280)==jqd){if(n<0||m<0){throw Adb(new Jed('The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. '+b.k))}Hxd(b,Ikd)||Hxd(b,Hkd)||psd(b);p=Kfb(UD(Gxd(b,Ikd)));o=Kfb(UD(Gxd(b,Hkd)));Z.bh('Desired Child Area: ('+p+'|'+o+')');Q=n/p;R=m/o;P=$wnd.Math.min(Q,$wnd.Math.min(R,Kfb(UD(Gxd(b,omd)))));Ixd(b,qmd,P);Z.bh(b.k+' -- Local Scale Factor (X|Y): ('+Q+'|'+R+')');u=RD(Gxd(b,Kkd),21);f=0;g=0;P'?":lhb(XIe,a)?"'(?<' or '(? toIndex: ',bye=', toIndex: ',cye='Index: ',dye=', Size: ',eye='org.eclipse.elk.alg.common',fye={50:1},gye='org.eclipse.elk.alg.common.compaction',hye='Scanline/EventHandler',iye='org.eclipse.elk.alg.common.compaction.oned',jye='CNode belongs to another CGroup.',kye='ISpacingsHandler/1',lye='The ',mye=' instance has been finished already.',nye='The direction ',oye=' is not supported by the CGraph instance.',pye='OneDimensionalCompactor',qye='OneDimensionalCompactor/lambda$0$Type',rye='Quadruplet',sye='ScanlineConstraintCalculator',tye='ScanlineConstraintCalculator/ConstraintsScanlineHandler',uye='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',vye='ScanlineConstraintCalculator/Timestamp',wye='ScanlineConstraintCalculator/lambda$0$Type',xye={178:1,46:1},yye='org.eclipse.elk.alg.common.compaction.options',zye='org.eclipse.elk.core.data',Aye='org.eclipse.elk.polyomino.traversalStrategy',Bye='org.eclipse.elk.polyomino.lowLevelSort',Cye='org.eclipse.elk.polyomino.highLevelSort',Dye='org.eclipse.elk.polyomino.fill',Eye={134:1},Fye='polyomino',Gye='org.eclipse.elk.alg.common.networksimplex',Hye={183:1,3:1,4:1},Iye='org.eclipse.elk.alg.common.nodespacing',Jye='org.eclipse.elk.alg.common.nodespacing.cellsystem',Kye='CENTER',Lye={217:1,336:1},Mye={3:1,4:1,5:1,603:1},Nye='LEFT',Oye='RIGHT',Pye='Vertical alignment cannot be null',Qye='BOTTOM',Rye='org.eclipse.elk.alg.common.nodespacing.internal',Sye='UNDEFINED',Tye=0.01,Uye='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',Vye='LabelPlacer/lambda$0$Type',Wye='LabelPlacer/lambda$1$Type',Xye='portRatioOrPosition',Yye='org.eclipse.elk.alg.common.overlaps',Zye='DOWN',$ye='org.eclipse.elk.alg.common.polyomino',_ye='NORTH',aze='EAST',bze='SOUTH',cze='WEST',dze='org.eclipse.elk.alg.common.polyomino.structures',eze='Direction',fze='Grid is only of size ',gze='. Requested point (',hze=') is out of bounds.',ize=' Given center based coordinates were (',jze='org.eclipse.elk.graph.properties',kze='IPropertyHolder',lze={3:1,96:1,137:1},mze='org.eclipse.elk.alg.common.spore',nze='org.eclipse.elk.alg.common.utils',oze={205:1},pze='org.eclipse.elk.core',qze='Connected Components Compaction',rze='org.eclipse.elk.alg.disco',sze='org.eclipse.elk.alg.disco.graph',tze='org.eclipse.elk.alg.disco.options',uze='CompactionStrategy',vze='org.eclipse.elk.disco.componentCompaction.strategy',wze='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',xze='org.eclipse.elk.disco.debug.discoGraph',yze='org.eclipse.elk.disco.debug.discoPolys',zze='componentCompaction',Aze='org.eclipse.elk.disco',Bze='org.eclipse.elk.spacing.componentComponent',Cze='org.eclipse.elk.edge.thickness',Dze='org.eclipse.elk.aspectRatio',Eze='org.eclipse.elk.padding',Fze='org.eclipse.elk.alg.disco.transform',Gze=1.5707963267948966,Hze=1.7976931348623157E308,Ize={3:1,4:1,5:1,198:1},Jze={3:1,6:1,4:1,5:1,100:1,115:1},Kze='org.eclipse.elk.alg.force',Lze='ComponentsProcessor',Mze='ComponentsProcessor/1',Nze='ElkGraphImporter/lambda$0$Type',Oze='org.eclipse.elk.alg.force.graph',Pze='Component Layout',Qze='org.eclipse.elk.alg.force.model',Rze='org.eclipse.elk.force.model',Sze='org.eclipse.elk.force.iterations',Tze='org.eclipse.elk.force.repulsivePower',Uze='org.eclipse.elk.force.temperature',Vze=0.001,Wze='org.eclipse.elk.force.repulsion',Xze='org.eclipse.elk.alg.force.options',Yze=1.600000023841858,Zze='org.eclipse.elk.force',$ze='org.eclipse.elk.priority',_ze='org.eclipse.elk.spacing.nodeNode',aAe='org.eclipse.elk.spacing.edgeLabel',bAe='org.eclipse.elk.randomSeed',cAe='org.eclipse.elk.separateConnectedComponents',dAe='org.eclipse.elk.interactive',eAe='org.eclipse.elk.portConstraints',fAe='org.eclipse.elk.edgeLabels.inline',gAe='org.eclipse.elk.omitNodeMicroLayout',hAe='org.eclipse.elk.nodeSize.fixedGraphSize',iAe='org.eclipse.elk.nodeSize.options',jAe='org.eclipse.elk.nodeSize.constraints',kAe='org.eclipse.elk.nodeLabels.placement',lAe='org.eclipse.elk.portLabels.placement',mAe='org.eclipse.elk.topdownLayout',nAe='org.eclipse.elk.topdown.scaleFactor',oAe='org.eclipse.elk.topdown.hierarchicalNodeWidth',pAe='org.eclipse.elk.topdown.hierarchicalNodeAspectRatio',qAe='org.eclipse.elk.topdown.nodeType',rAe='origin',sAe='random',tAe='boundingBox.upLeft',uAe='boundingBox.lowRight',vAe='org.eclipse.elk.stress.fixed',wAe='org.eclipse.elk.stress.desiredEdgeLength',xAe='org.eclipse.elk.stress.dimension',yAe='org.eclipse.elk.stress.epsilon',zAe='org.eclipse.elk.stress.iterationLimit',AAe='org.eclipse.elk.stress',BAe='ELK Stress',CAe='org.eclipse.elk.nodeSize.minimum',DAe='org.eclipse.elk.alg.force.stress',EAe='Layered layout',FAe='org.eclipse.elk.alg.layered',GAe='org.eclipse.elk.alg.layered.compaction.components',HAe='org.eclipse.elk.alg.layered.compaction.oned',IAe='org.eclipse.elk.alg.layered.compaction.oned.algs',JAe='org.eclipse.elk.alg.layered.compaction.recthull',KAe='org.eclipse.elk.alg.layered.components',LAe='NONE',MAe='MODEL_ORDER',NAe={3:1,6:1,4:1,9:1,5:1,126:1},OAe={3:1,6:1,4:1,5:1,150:1,100:1,115:1},PAe='org.eclipse.elk.alg.layered.compound',QAe={47:1},RAe='org.eclipse.elk.alg.layered.graph',SAe=' -> ',TAe='Not supported by LGraph',UAe='Port side is undefined',VAe={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},WAe={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},XAe={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},YAe='([{"\' \t\r\n',ZAe=')]}"\' \t\r\n',$Ae='The given string contains parts that cannot be parsed as numbers.',_Ae='org.eclipse.elk.core.math',aBe={3:1,4:1,140:1,214:1,423:1},bBe={3:1,4:1,107:1,214:1,423:1},cBe='org.eclipse.elk.alg.layered.graph.transform',dBe='ElkGraphImporter',eBe='ElkGraphImporter/lambda$1$Type',fBe='ElkGraphImporter/lambda$2$Type',gBe='ElkGraphImporter/lambda$4$Type',hBe='org.eclipse.elk.alg.layered.intermediate',iBe='Node margin calculation',jBe='ONE_SIDED_GREEDY_SWITCH',kBe='TWO_SIDED_GREEDY_SWITCH',lBe='No implementation is available for the layout processor ',mBe='IntermediateProcessorStrategy',nBe="Node '",oBe='FIRST_SEPARATE',pBe='LAST_SEPARATE',qBe='Odd port side processing',rBe='org.eclipse.elk.alg.layered.intermediate.compaction',sBe='org.eclipse.elk.alg.layered.intermediate.greedyswitch',tBe='org.eclipse.elk.alg.layered.p3order.counting',uBe={230:1},vBe='org.eclipse.elk.alg.layered.intermediate.loops',wBe='org.eclipse.elk.alg.layered.intermediate.loops.ordering',xBe='org.eclipse.elk.alg.layered.intermediate.loops.routing',yBe='org.eclipse.elk.alg.layered.intermediate.preserveorder',zBe='org.eclipse.elk.alg.layered.intermediate.wrapping',ABe='org.eclipse.elk.alg.layered.options',BBe='INTERACTIVE',CBe='GREEDY',DBe='DEPTH_FIRST',EBe='EDGE_LENGTH',FBe='SELF_LOOPS',GBe='firstTryWithInitialOrder',HBe='org.eclipse.elk.layered.directionCongruency',IBe='org.eclipse.elk.layered.feedbackEdges',JBe='org.eclipse.elk.layered.interactiveReferencePoint',KBe='org.eclipse.elk.layered.mergeEdges',LBe='org.eclipse.elk.layered.mergeHierarchyEdges',MBe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',NBe='org.eclipse.elk.layered.portSortingStrategy',OBe='org.eclipse.elk.layered.thoroughness',PBe='org.eclipse.elk.layered.unnecessaryBendpoints',QBe='org.eclipse.elk.layered.generatePositionAndLayerIds',RBe='org.eclipse.elk.layered.cycleBreaking.strategy',SBe='org.eclipse.elk.layered.layering.strategy',TBe='org.eclipse.elk.layered.layering.layerConstraint',UBe='org.eclipse.elk.layered.layering.layerChoiceConstraint',VBe='org.eclipse.elk.layered.layering.layerId',WBe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',XBe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',YBe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ZBe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',$Be='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',_Be='org.eclipse.elk.layered.crossingMinimization.strategy',aCe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',bCe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',cCe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',dCe='org.eclipse.elk.layered.crossingMinimization.inLayerPredOf',eCe='org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf',fCe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',gCe='org.eclipse.elk.layered.crossingMinimization.positionId',hCe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',iCe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',jCe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',kCe='org.eclipse.elk.layered.nodePlacement.strategy',lCe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',mCe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',nCe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',oCe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',pCe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',qCe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',rCe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',sCe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',tCe='org.eclipse.elk.layered.edgeRouting.splines.mode',uCe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',vCe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',wCe='org.eclipse.elk.layered.spacing.baseValue',xCe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',yCe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',zCe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',ACe='org.eclipse.elk.layered.priority.direction',BCe='org.eclipse.elk.layered.priority.shortness',CCe='org.eclipse.elk.layered.priority.straightness',DCe='org.eclipse.elk.layered.compaction.connectedComponents',ECe='org.eclipse.elk.layered.compaction.postCompaction.strategy',FCe='org.eclipse.elk.layered.compaction.postCompaction.constraints',GCe='org.eclipse.elk.layered.highDegreeNodes.treatment',HCe='org.eclipse.elk.layered.highDegreeNodes.threshold',ICe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',JCe='org.eclipse.elk.layered.wrapping.strategy',KCe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',LCe='org.eclipse.elk.layered.wrapping.correctionFactor',MCe='org.eclipse.elk.layered.wrapping.cutting.strategy',NCe='org.eclipse.elk.layered.wrapping.cutting.cuts',OCe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',PCe='org.eclipse.elk.layered.wrapping.validify.strategy',QCe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',RCe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',SCe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',TCe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',UCe='org.eclipse.elk.layered.edgeLabels.sideSelection',VCe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',WCe='org.eclipse.elk.layered.considerModelOrder.strategy',XCe='org.eclipse.elk.layered.considerModelOrder.portModelOrder',YCe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',ZCe='org.eclipse.elk.layered.considerModelOrder.components',$Ce='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',_Ce='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',aDe='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',bDe='layering',cDe='layering.minWidth',dDe='layering.nodePromotion',eDe='crossingMinimization',fDe='org.eclipse.elk.hierarchyHandling',gDe='crossingMinimization.greedySwitch',hDe='nodePlacement',iDe='nodePlacement.bk',jDe='edgeRouting',kDe='org.eclipse.elk.edgeRouting',lDe='spacing',mDe='priority',nDe='compaction',oDe='compaction.postCompaction',pDe='Specifies whether and how post-process compaction is applied.',qDe='highDegreeNodes',rDe='wrapping',sDe='wrapping.cutting',tDe='wrapping.validify',uDe='wrapping.multiEdge',vDe='edgeLabels',wDe='considerModelOrder',xDe='org.eclipse.elk.spacing.commentComment',yDe='org.eclipse.elk.spacing.commentNode',zDe='org.eclipse.elk.spacing.edgeEdge',ADe='org.eclipse.elk.spacing.edgeNode',BDe='org.eclipse.elk.spacing.labelLabel',CDe='org.eclipse.elk.spacing.labelPortHorizontal',DDe='org.eclipse.elk.spacing.labelPortVertical',EDe='org.eclipse.elk.spacing.labelNode',FDe='org.eclipse.elk.spacing.nodeSelfLoop',GDe='org.eclipse.elk.spacing.portPort',HDe='org.eclipse.elk.spacing.individual',IDe='org.eclipse.elk.port.borderOffset',JDe='org.eclipse.elk.noLayout',KDe='org.eclipse.elk.port.side',LDe='org.eclipse.elk.debugMode',MDe='org.eclipse.elk.alignment',NDe='org.eclipse.elk.insideSelfLoops.activate',ODe='org.eclipse.elk.insideSelfLoops.yo',PDe='org.eclipse.elk.direction',QDe='org.eclipse.elk.nodeLabels.padding',RDe='org.eclipse.elk.portLabels.nextToPortIfPossible',SDe='org.eclipse.elk.portLabels.treatAsGroup',TDe='org.eclipse.elk.portAlignment.default',UDe='org.eclipse.elk.portAlignment.north',VDe='org.eclipse.elk.portAlignment.south',WDe='org.eclipse.elk.portAlignment.west',XDe='org.eclipse.elk.portAlignment.east',YDe='org.eclipse.elk.contentAlignment',ZDe='org.eclipse.elk.junctionPoints',$De='org.eclipse.elk.edgeLabels.placement',_De='org.eclipse.elk.port.index',aEe='org.eclipse.elk.commentBox',bEe='org.eclipse.elk.hypernode',cEe='org.eclipse.elk.port.anchor',dEe='org.eclipse.elk.partitioning.activate',eEe='org.eclipse.elk.partitioning.partition',fEe='org.eclipse.elk.position',gEe='org.eclipse.elk.margins',hEe='org.eclipse.elk.spacing.portsSurrounding',iEe='org.eclipse.elk.interactiveLayout',jEe='org.eclipse.elk.core.util',kEe={3:1,4:1,5:1,601:1},lEe='NETWORK_SIMPLEX',mEe='SIMPLE',nEe={106:1,47:1},oEe='org.eclipse.elk.alg.layered.p1cycles',pEe='org.eclipse.elk.alg.layered.p2layers',qEe={413:1,230:1},rEe={846:1,3:1,4:1},sEe='org.eclipse.elk.alg.layered.p3order',tEe='org.eclipse.elk.alg.layered.p4nodes',uEe={3:1,4:1,5:1,854:1},vEe=1.0E-5,wEe='org.eclipse.elk.alg.layered.p4nodes.bk',xEe='org.eclipse.elk.alg.layered.p5edges',yEe='org.eclipse.elk.alg.layered.p5edges.orthogonal',zEe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',AEe=1.0E-6,BEe='org.eclipse.elk.alg.layered.p5edges.splines',CEe=0.09999999999999998,DEe=1.0E-8,EEe=4.71238898038469,FEe=3.141592653589793,GEe='org.eclipse.elk.alg.mrtree',HEe=0.10000000149011612,IEe='SUPER_ROOT',JEe='org.eclipse.elk.alg.mrtree.graph',KEe=-1.7976931348623157E308,LEe='org.eclipse.elk.alg.mrtree.intermediate',MEe='Processor compute fanout',NEe={3:1,6:1,4:1,5:1,534:1,100:1,115:1},OEe='Set neighbors in level',PEe='org.eclipse.elk.alg.mrtree.options',QEe='DESCENDANTS',REe='org.eclipse.elk.mrtree.compaction',SEe='org.eclipse.elk.mrtree.edgeEndTextureLength',TEe='org.eclipse.elk.mrtree.treeLevel',UEe='org.eclipse.elk.mrtree.positionConstraint',VEe='org.eclipse.elk.mrtree.weighting',WEe='org.eclipse.elk.mrtree.edgeRoutingMode',XEe='org.eclipse.elk.mrtree.searchOrder',YEe='Position Constraint',ZEe='org.eclipse.elk.mrtree',$Ee='org.eclipse.elk.tree',_Ee='Processor arrange level',aFe='org.eclipse.elk.alg.mrtree.p2order',bFe='org.eclipse.elk.alg.mrtree.p4route',cFe='org.eclipse.elk.alg.radial',dFe=6.283185307179586,eFe='Before',fFe=4.9E-324,gFe='After',hFe='org.eclipse.elk.alg.radial.intermediate',iFe='COMPACTION',jFe='org.eclipse.elk.alg.radial.intermediate.compaction',kFe={3:1,4:1,5:1,100:1},lFe='org.eclipse.elk.alg.radial.intermediate.optimization',mFe='No implementation is available for the layout option ',nFe='org.eclipse.elk.alg.radial.options',oFe='org.eclipse.elk.radial.centerOnRoot',pFe='org.eclipse.elk.radial.orderId',qFe='org.eclipse.elk.radial.radius',rFe='org.eclipse.elk.radial.rotate',sFe='org.eclipse.elk.radial.compactor',tFe='org.eclipse.elk.radial.compactionStepSize',uFe='org.eclipse.elk.radial.sorter',vFe='org.eclipse.elk.radial.wedgeCriteria',wFe='org.eclipse.elk.radial.optimizationCriteria',xFe='org.eclipse.elk.radial.rotation.targetAngle',yFe='org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace',zFe='org.eclipse.elk.radial.rotation.outgoingEdgeAngles',AFe='Compaction',BFe='rotation',CFe='org.eclipse.elk.radial',DFe='org.eclipse.elk.alg.radial.p1position.wedge',EFe='org.eclipse.elk.alg.radial.sorting',FFe=5.497787143782138,GFe=3.9269908169872414,HFe=2.356194490192345,IFe='org.eclipse.elk.alg.rectpacking',JFe='org.eclipse.elk.alg.rectpacking.intermediate',KFe='org.eclipse.elk.alg.rectpacking.options',LFe='org.eclipse.elk.rectpacking.trybox',MFe='org.eclipse.elk.rectpacking.currentPosition',NFe='org.eclipse.elk.rectpacking.desiredPosition',OFe='org.eclipse.elk.rectpacking.inNewRow',PFe='org.eclipse.elk.rectpacking.widthApproximation.strategy',QFe='org.eclipse.elk.rectpacking.widthApproximation.targetWidth',RFe='org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal',SFe='org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift',TFe='org.eclipse.elk.rectpacking.packing.strategy',UFe='org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation',VFe='org.eclipse.elk.rectpacking.packing.compaction.iterations',WFe='org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy',XFe='widthApproximation',YFe='Compaction Strategy',ZFe='packing.compaction',$Fe='org.eclipse.elk.rectpacking',_Fe='org.eclipse.elk.alg.rectpacking.p1widthapproximation',aGe='org.eclipse.elk.alg.rectpacking.p2packing',bGe='No Compaction',cGe='org.eclipse.elk.alg.rectpacking.p3whitespaceelimination',dGe='org.eclipse.elk.alg.rectpacking.util',eGe='No implementation available for ',fGe='org.eclipse.elk.alg.spore',gGe='org.eclipse.elk.alg.spore.options',hGe='org.eclipse.elk.sporeCompaction',iGe='org.eclipse.elk.underlyingLayoutAlgorithm',jGe='org.eclipse.elk.processingOrder.treeConstruction',kGe='org.eclipse.elk.processingOrder.spanningTreeCostFunction',lGe='org.eclipse.elk.processingOrder.preferredRoot',mGe='org.eclipse.elk.processingOrder.rootSelection',nGe='org.eclipse.elk.structure.structureExtractionStrategy',oGe='org.eclipse.elk.compaction.compactionStrategy',pGe='org.eclipse.elk.compaction.orthogonal',qGe='org.eclipse.elk.overlapRemoval.maxIterations',rGe='org.eclipse.elk.overlapRemoval.runScanline',sGe='processingOrder',tGe='overlapRemoval',uGe='org.eclipse.elk.sporeOverlap',vGe='org.eclipse.elk.alg.spore.p1structure',wGe='org.eclipse.elk.alg.spore.p2processingorder',xGe='org.eclipse.elk.alg.spore.p3execution',yGe='Topdown Layout',zGe='Invalid index: ',AGe='org.eclipse.elk.core.alg',BGe={341:1},CGe={295:1},DGe='Make sure its type is registered with the ',EGe=' utility class.',FGe='true',GGe='false',HGe="Couldn't clone property '",IGe=0.05,JGe='org.eclipse.elk.core.options',KGe=1.2999999523162842,LGe='org.eclipse.elk.box',MGe='org.eclipse.elk.expandNodes',NGe='org.eclipse.elk.box.packingMode',OGe='org.eclipse.elk.algorithm',PGe='org.eclipse.elk.resolvedAlgorithm',QGe='org.eclipse.elk.bendPoints',RGe='org.eclipse.elk.labelManager',SGe='org.eclipse.elk.scaleFactor',TGe='org.eclipse.elk.childAreaWidth',UGe='org.eclipse.elk.childAreaHeight',VGe='org.eclipse.elk.animate',WGe='org.eclipse.elk.animTimeFactor',XGe='org.eclipse.elk.layoutAncestors',YGe='org.eclipse.elk.maxAnimTime',ZGe='org.eclipse.elk.minAnimTime',$Ge='org.eclipse.elk.progressBar',_Ge='org.eclipse.elk.validateGraph',aHe='org.eclipse.elk.validateOptions',bHe='org.eclipse.elk.zoomToFit',cHe='org.eclipse.elk.font.name',dHe='org.eclipse.elk.font.size',eHe='org.eclipse.elk.topdown.sizeApproximator',fHe='org.eclipse.elk.topdown.scaleCap',gHe='org.eclipse.elk.edge.type',hHe='partitioning',iHe='nodeLabels',jHe='portAlignment',kHe='nodeSize',lHe='port',mHe='portLabels',nHe='topdown',oHe='insideSelfLoops',pHe='org.eclipse.elk.fixed',qHe='org.eclipse.elk.random',rHe={3:1,34:1,22:1,347:1},sHe='port must have a parent node to calculate the port side',tHe='The edge needs to have exactly one edge section. Found: ',uHe='org.eclipse.elk.core.util.adapters',vHe='org.eclipse.emf.ecore',wHe='org.eclipse.elk.graph',xHe='EMapPropertyHolder',yHe='ElkBendPoint',zHe='ElkGraphElement',AHe='ElkConnectableShape',BHe='ElkEdge',CHe='ElkEdgeSection',DHe='EModelElement',EHe='ENamedElement',FHe='ElkLabel',GHe='ElkNode',HHe='ElkPort',IHe={94:1,93:1},JHe='org.eclipse.emf.common.notify.impl',KHe="The feature '",LHe="' is not a valid changeable feature",MHe='Expecting null',NHe="' is not a valid feature",OHe='The feature ID',PHe=' is not a valid feature ID',QHe=32768,RHe={110:1,94:1,93:1,58:1,54:1,99:1},SHe='org.eclipse.emf.ecore.impl',THe='org.eclipse.elk.graph.impl',UHe='Recursive containment not allowed for ',VHe="The datatype '",WHe="' is not a valid classifier",XHe="The value '",YHe={195:1,3:1,4:1},ZHe="The class '",$He='http://www.eclipse.org/elk/ElkGraph',_He='property',aIe='value',bIe='source',cIe='properties',dIe='identifier',eIe='height',fIe='width',gIe='parent',hIe='text',iIe='children',jIe='hierarchical',kIe='sources',lIe='targets',mIe='sections',nIe='bendPoints',oIe='outgoingShape',pIe='incomingShape',qIe='outgoingSections',rIe='incomingSections',sIe='org.eclipse.emf.common.util',tIe='Severe implementation error in the Json to ElkGraph importer.',uIe='id',vIe='org.eclipse.elk.graph.json',wIe='Unhandled parameter types: ',xIe='startPoint',yIe="An edge must have at least one source and one target (edge id: '",zIe="').",AIe='Referenced edge section does not exist: ',BIe=" (edge id: '",CIe='target',DIe='sourcePoint',EIe='targetPoint',FIe='group',GIe='name',HIe='connectableShape cannot be null',IIe='edge cannot be null',JIe="Passed edge is not 'simple'.",KIe='org.eclipse.elk.graph.util',LIe="The 'no duplicates' constraint is violated",MIe='targetIndex=',NIe=', size=',OIe='sourceIndex=',PIe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},QIe={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},RIe='logging',SIe='measureExecutionTime',TIe='parser.parse.1',UIe='parser.parse.2',VIe='parser.next.1',WIe='parser.next.2',XIe='parser.next.3',YIe='parser.next.4',ZIe='parser.factor.1',$Ie='parser.factor.2',_Ie='parser.factor.3',aJe='parser.factor.4',bJe='parser.factor.5',cJe='parser.factor.6',dJe='parser.atom.1',eJe='parser.atom.2',fJe='parser.atom.3',gJe='parser.atom.4',hJe='parser.atom.5',iJe='parser.cc.1',jJe='parser.cc.2',kJe='parser.cc.3',lJe='parser.cc.5',mJe='parser.cc.6',nJe='parser.cc.7',oJe='parser.cc.8',pJe='parser.ope.1',qJe='parser.ope.2',rJe='parser.ope.3',sJe='parser.descape.1',tJe='parser.descape.2',uJe='parser.descape.3',vJe='parser.descape.4',wJe='parser.descape.5',xJe='parser.process.1',yJe='parser.quantifier.1',zJe='parser.quantifier.2',AJe='parser.quantifier.3',BJe='parser.quantifier.4',CJe='parser.quantifier.5',DJe='org.eclipse.emf.common.notify',EJe={424:1,686:1},FJe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},GJe={378:1,152:1},HJe='index=',IJe={3:1,4:1,5:1,129:1},JJe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},KJe={3:1,6:1,4:1,5:1,198:1},LJe={3:1,4:1,5:1,173:1,379:1},MJe=';/?:@&=+$,',NJe='invalid authority: ',OJe='EAnnotation',PJe='ETypedElement',QJe='EStructuralFeature',RJe='EAttribute',SJe='EClassifier',TJe='EEnumLiteral',UJe='EGenericType',VJe='EOperation',WJe='EParameter',XJe='EReference',YJe='ETypeParameter',ZJe='org.eclipse.emf.ecore.util',$Je={79:1},_Je={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},aKe='org.eclipse.emf.ecore.util.FeatureMap$Entry',bKe=8192,cKe=2048,dKe='byte',eKe='char',fKe='double',gKe='float',hKe='int',iKe='long',jKe='short',kKe='java.lang.Object',lKe={3:1,4:1,5:1,254:1},mKe={3:1,4:1,5:1,688:1},nKe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},oKe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},pKe='mixed',qKe='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',rKe='kind',sKe={3:1,4:1,5:1,689:1},tKe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},uKe={20:1,31:1,56:1,16:1,15:1,61:1,71:1},vKe={51:1,128:1,287:1},wKe={76:1,343:1},xKe="The value of type '",yKe="' must be of type '",zKe=1352,AKe='http://www.eclipse.org/emf/2002/Ecore',BKe=-32768,CKe='constraints',DKe='baseType',EKe='getEStructuralFeature',FKe='getFeatureID',GKe='feature',HKe='getOperationID',IKe='operation',JKe='defaultValue',KKe='eTypeParameters',LKe='isInstance',MKe='getEEnumLiteral',NKe='eContainingClass',OKe={57:1},PKe={3:1,4:1,5:1,124:1},QKe='org.eclipse.emf.ecore.resource',RKe={94:1,93:1,599:1,2034:1},SKe='org.eclipse.emf.ecore.resource.impl',TKe='unspecified',UKe='simple',VKe='attribute',WKe='attributeWildcard',XKe='element',YKe='elementWildcard',ZKe='collapse',$Ke='itemType',_Ke='namespace',aLe='##targetNamespace',bLe='whiteSpace',cLe='wildcards',dLe='http://www.eclipse.org/emf/2003/XMLType',eLe='##any',fLe='uninitialized',gLe='The multiplicity constraint is violated',hLe='org.eclipse.emf.ecore.xml.type',iLe='ProcessingInstruction',jLe='SimpleAnyType',kLe='XMLTypeDocumentRoot',lLe='org.eclipse.emf.ecore.xml.type.impl',mLe='INF',nLe='processing',oLe='ENTITIES_._base',pLe='minLength',qLe='ENTITY',rLe='NCName',sLe='IDREFS_._base',tLe='integer',uLe='token',vLe='pattern',wLe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',xLe='\\i\\c*',yLe='[\\i-[:]][\\c-[:]]*',zLe='nonPositiveInteger',ALe='maxInclusive',BLe='NMTOKEN',CLe='NMTOKENS_._base',DLe='nonNegativeInteger',ELe='minInclusive',FLe='normalizedString',GLe='unsignedByte',HLe='unsignedInt',ILe='18446744073709551615',JLe='unsignedShort',KLe='processingInstruction',LLe='org.eclipse.emf.ecore.xml.type.internal',MLe=1114111,NLe='Internal Error: shorthands: \\u',OLe='xml:isDigit',PLe='xml:isWord',QLe='xml:isSpace',RLe='xml:isNameChar',SLe='xml:isInitialNameChar',TLe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',ULe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',VLe='Private Use',WLe='ASSIGNED',XLe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',YLe='UNASSIGNED',ZLe={3:1,122:1},$Le='org.eclipse.emf.ecore.xml.type.util',_Le={3:1,4:1,5:1,381:1},aMe='org.eclipse.xtext.xbase.lib',bMe='Cannot add elements to a Range',cMe='Cannot set elements in a Range',dMe='Cannot remove elements from a Range',eMe='user.agent';var _,eeb,_db,ydb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;eeb={};feb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.Rm};_.Hb=function sb(){return kFb(this)};_.Ib=function ub(){var a;return nfb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var ND,OD,PD;feb(297,1,{297:1,2124:1},pfb);_.ve=function qfb(a){var b;b=new pfb;b.i=4;a>1?(b.c=xfb(this,a-1)):(b.c=this);return b};_.we=function wfb(){lfb(this);return this.b};_.xe=function yfb(){return nfb(this)};_.ye=function Afb(){return lfb(this),this.k};_.ze=function Cfb(){return (this.i&4)!=0};_.Ae=function Dfb(){return (this.i&1)!=0};_.Ib=function Gfb(){return ofb(this)};_.i=0;var kfb=1;var jJ=sfb(mve,'Object',1);var UI=sfb(mve,'Class',297);feb(2096,1,nve);var oE=sfb(ove,'Optional',2096);feb(1191,2096,nve,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var mE=sfb(ove,'Absent',1191);feb(636,1,{},Gb);var nE=sfb(ove,'Joiner',636);var pE=ufb(ove,'Predicate');feb(589,1,{178:1,589:1,3:1,46:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(ZD(a,589)){b=RD(a,589);return Rt(this.a,b.a)}return false};_.Hb=function _b(){return Cob(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var qE=sfb(ove,'Predicates/AndPredicate',589);feb(419,2096,{419:1,3:1},cc);_.Fb=function dc(a){var b;if(ZD(a,419)){b=RD(a,419);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return uve+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var rE=sfb(ove,'Present',419);feb(204,1,wve);_.Nb=function kc(a){Ztb(this,a)};_.Qb=function lc(){jc()};var eI=sfb(xve,'UnmodifiableIterator',204);feb(2076,204,yve);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw Adb(new jib)};_.Wb=function oc(a){throw Adb(new jib)};var fI=sfb(xve,'UnmodifiableListIterator',2076);feb(399,2076,yve);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw Adb(new Dvb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw Adb(new Dvb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var sE=sfb(xve,'AbstractIndexedListIterator',399);feb(713,204,wve);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var tE=sfb(xve,'AbstractIterator',713);feb(2084,1,{229:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return xw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return jeb(this.Zb())};var YE=sfb(xve,'AbstractMultimap',2084);feb(742,2084,zve);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return ek(this.c.vc().Nc(),new hh,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return yob(),new xpb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return ek(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new lg(this,a,b,null)};_.d=0;var TE=sfb(xve,'AbstractMapBasedMultimap',742);feb(1696,742,zve);_.hc=function pd(){return new cnb(this.a)};_.jc=function qd(){return yob(),yob(),vob};_.cc=function sd(a){return RD(Qc(this,a),15)};_.fc=function ud(a){return RD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return xw(this,a)};_.qc=function td(a){return RD(Qc(this,a),15)};_.rc=function vd(a){return RD(Sc(this,a),15)};_.mc=function wd(a){return Hob(RD(a,15))};_.pc=function xd(a,b){return Vc(this,a,RD(b,15),null)};var uE=sfb(xve,'AbstractListMultimap',1696);feb(748,1,Ave);_.Nb=function zd(a){Ztb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=RD(this.c.Pb(),44);this.b=a.ld();this.a=RD(a.md(),16);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();RD(Hvb(this.a),16).dc()&&this.c.Qb();--this.d.d};var CE=sfb(xve,'AbstractMapBasedMultimap/Itr',748);feb(1129,748,Ave,Dd);_.sc=function Ed(a,b){return b};var vE=sfb(xve,'AbstractMapBasedMultimap/1',1129);feb(1130,1,{},Fd);_.Kb=function Gd(a){return RD(a,16).Nc()};var wE=sfb(xve,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1130);feb(1131,748,Ave,Hd);_.sc=function Id(a,b){return new gp(a,b)};var xE=sfb(xve,'AbstractMapBasedMultimap/2',1131);var VK=ufb(Bve,'Map');feb(2065,1,Cve);_.wc=function Td(a){Bvb(this,a)};_.yc=function $d(a,b,c){return Cvb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=RD(c.Pb(),44);d=b.md();if(dE(a)===dE(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!ZD(a,85)){return false}d=RD(a,85);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=RD(c.Pb(),44);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return Bob(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Xkb(this)};_.zc=function _d(a,b){throw Adb(new kib('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new glb(this)};var KJ=sfb(Bve,'AbstractMap',2065);feb(2085,2065,Cve);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new nw(this)):a};var uH=sfb(xve,'Maps/ViewCachingAbstractMap',2085);feb(402,2085,Cve,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():Ar(new mf(this))};_._b=function pe(a){return Wv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return jeb(this.d)};var BE=sfb(xve,'AbstractMapBasedMultimap/AsMap',402);var cJ=ufb(mve,'Iterable');feb(31,1,Dve);_.Jc=function Le(a){xgb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Swb(this,0)};_.Oc=function Qe(){return new SDb(null,this.Nc())};_.Fc=function Ge(a){throw Adb(new kib('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var vJ=sfb(Bve,'AbstractCollection',31);var bL=ufb(Bve,'Set');feb(Eve,31,Fve);_.Nc=function Ye(){return new Swb(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return Bob(this)};var RJ=sfb(Bve,'AbstractSet',Eve);feb(2068,Eve,Fve);var UH=sfb(xve,'Sets/ImprovedAbstractSet',2068);feb(2069,2068,Fve);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)&&ZD(a,44)){b=RD(a,44);return this.Rc().ec().Mc(b.ld())}return false};_.gc=function cf(){return this.Rc().gc()};var nH=sfb(xve,'Maps/EntrySet',2069);feb(1127,2069,Fve,df);_.Hc=function ef(a){return Nk(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Nk(this.a.d.vc(),a)){return false}b=RD(Hvb(RD(a,44)),44);Tc(this.a.e,b.ld());return true};_.Nc=function jf(){return gk(this.a.d.vc().Nc(),new kf(this.a))};var zE=sfb(xve,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1127);feb(1128,1,{},kf);_.Kb=function lf(a){return me(this.a,RD(a,44))};var yE=sfb(xve,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1128);feb(746,1,Ave,mf);_.Nb=function nf(a){Ztb(this,a)};_.Pb=function pf(){var a;return a=RD(this.b.Pb(),44),this.a=RD(a.md(),16),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var AE=sfb(xve,'AbstractMapBasedMultimap/AsMap/AsMapIterator',746);feb(542,2068,Fve,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new lw(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new aw(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var rH=sfb(xve,'Maps/KeySet',542);feb(327,542,Fve,zf);_.$b=function Af(){var a;Ar((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=RD(this.b.Bc(a),16);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var EE=sfb(xve,'AbstractMapBasedMultimap/KeySet',327);feb(747,1,Ave,Hf);_.Nb=function If(a){Ztb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=RD(this.c.Pb(),44);return this.a.ld()};_.Qb=function Lf(){var a;Vb(!!this.a);a=RD(this.a.md(),16);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var DE=sfb(xve,'AbstractMapBasedMultimap/KeySet/1',747);feb(503,402,{85:1,133:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Qf(){return this.Uc()};_.Sc=function Of(){return new eg(this.c,this.Wc())};_.Tc=function Pf(){return this.Wc().Tc()};_.Uc=function Rf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Vc=function Sf(){return this.Wc().Vc()};_.Wc=function Tf(){return RD(this.d,133)};var IE=sfb(xve,'AbstractMapBasedMultimap/SortedAsMap',503);feb(446,503,Gve,Uf);_.bc=function Wf(){return new gg(this.a,RD(RD(this.d,133),139))};_.Sc=function Xf(){return new gg(this.a,RD(RD(this.d,133),139))};_.ec=function _f(){var a;return a=this.b,RD(!a?(this.b=new gg(this.a,RD(RD(this.d,133),139))):a,277)};_.Uc=function ag(){var a;return a=this.b,RD(!a?(this.b=new gg(this.a,RD(RD(this.d,133),139))):a,277)};_.Wc=function cg(){return RD(RD(this.d,133),139)};_.Xc=function Vf(a){return RD(RD(this.d,133),139).Xc(a)};_.Yc=function Yf(a){return RD(RD(this.d,133),139).Yc(a)};_.Zc=function Zf(a,b){return new Uf(this.a,RD(RD(this.d,133),139).Zc(a,b))};_.$c=function $f(a){return RD(RD(this.d,133),139).$c(a)};_._c=function bg(a){return RD(RD(this.d,133),139)._c(a)};_.ad=function dg(a,b){return new Uf(this.a,RD(RD(this.d,133),139).ad(a,b))};var FE=sfb(xve,'AbstractMapBasedMultimap/NavigableAsMap',446);feb(502,327,Hve,eg);_.Nc=function fg(){return this.b.ec().Nc()};var JE=sfb(xve,'AbstractMapBasedMultimap/SortedKeySet',502);feb(401,502,Ive,gg);var GE=sfb(xve,'AbstractMapBasedMultimap/NavigableKeySet',401);feb(551,31,Dve,lg);_.Fc=function mg(a){var b,c;ig(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&hg(this)}return b};_.Gc=function ng(a){var b,c,d;if(a.dc()){return false}d=(ig(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&hg(this)}return b};_.$b=function og(){var a;a=(ig(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;jg(this)};_.Hc=function pg(a){ig(this);return this.d.Hc(a)};_.Ic=function qg(a){ig(this);return this.d.Ic(a)};_.Fb=function rg(a){if(a===this){return true}ig(this);return pb(this.d,a)};_.Hb=function sg(){ig(this);return tb(this.d)};_.Kc=function tg(){ig(this);return new Og(this)};_.Mc=function ug(a){var b;ig(this);b=this.d.Mc(a);if(b){--this.f.d;jg(this)}return b};_.gc=function vg(){return kg(this)};_.Nc=function wg(){return ig(this),this.d.Nc()};_.Ib=function xg(){ig(this);return jeb(this.d)};var LE=sfb(xve,'AbstractMapBasedMultimap/WrappedCollection',551);var QK=ufb(Bve,'List');feb(744,551,{20:1,31:1,16:1,15:1},yg);_.jd=function Hg(a){tvb(this,a)};_.Nc=function Ig(){return ig(this),this.d.Nc()};_.bd=function zg(a,b){var c;ig(this);c=this.d.dc();RD(this.d,15).bd(a,b);++this.a.d;c&&hg(this)};_.cd=function Ag(a,b){var c,d,e;if(b.dc()){return false}e=(ig(this),this.d.gc());c=RD(this.d,15).cd(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&hg(this)}return c};_.Xb=function Bg(a){ig(this);return RD(this.d,15).Xb(a)};_.dd=function Cg(a){ig(this);return RD(this.d,15).dd(a)};_.ed=function Dg(){ig(this);return new Ug(this)};_.fd=function Eg(a){ig(this);return new Vg(this,a)};_.gd=function Fg(a){var b;ig(this);b=RD(this.d,15).gd(a);--this.a.d;jg(this);return b};_.hd=function Gg(a,b){ig(this);return RD(this.d,15).hd(a,b)};_.kd=function Jg(a,b){ig(this);return Vc(this.a,this.e,RD(this.d,15).kd(a,b),!this.b?this:this.b)};var NE=sfb(xve,'AbstractMapBasedMultimap/WrappedList',744);feb(1126,744,{20:1,31:1,16:1,15:1,59:1},Kg);var HE=sfb(xve,'AbstractMapBasedMultimap/RandomAccessWrappedList',1126);feb(628,1,Ave,Og);_.Nb=function Qg(a){Ztb(this,a)};_.Ob=function Rg(){Ng(this);return this.b.Ob()};_.Pb=function Sg(){Ng(this);return this.b.Pb()};_.Qb=function Tg(){Mg(this)};var KE=sfb(xve,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',628);feb(745,628,Jve,Ug,Vg);_.Qb=function _g(){Mg(this)};_.Rb=function Wg(a){var b;b=kg(this.a)==0;(Ng(this),RD(this.b,128)).Rb(a);++this.a.a.d;b&&hg(this.a)};_.Sb=function Xg(){return (Ng(this),RD(this.b,128)).Sb()};_.Tb=function Yg(){return (Ng(this),RD(this.b,128)).Tb()};_.Ub=function Zg(){return (Ng(this),RD(this.b,128)).Ub()};_.Vb=function $g(){return (Ng(this),RD(this.b,128)).Vb()};_.Wb=function ah(a){(Ng(this),RD(this.b,128)).Wb(a)};var ME=sfb(xve,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',745);feb(743,551,Hve,bh);_.Nc=function dh(){return ig(this),this.d.Nc()};var QE=sfb(xve,'AbstractMapBasedMultimap/WrappedSortedSet',743);feb(1125,743,Ive,eh);var OE=sfb(xve,'AbstractMapBasedMultimap/WrappedNavigableSet',1125);feb(1124,551,Fve,fh);_.Nc=function gh(){return ig(this),this.d.Nc()};var PE=sfb(xve,'AbstractMapBasedMultimap/WrappedSet',1124);feb(1133,1,{},hh);_.Kb=function ih(a){return fd(RD(a,44))};var RE=sfb(xve,'AbstractMapBasedMultimap/lambda$1$Type',1133);feb(1132,1,{},jh);_.Kb=function kh(a){return new gp(this.a,a)};var SE=sfb(xve,'AbstractMapBasedMultimap/lambda$2$Type',1132);var UK=ufb(Bve,'Map/Entry');feb(358,1,Kve);_.Fb=function lh(a){var b;if(ZD(a,44)){b=RD(a,44);return Hb(this.ld(),b.ld())&&Hb(this.md(),b.md())}return false};_.Hb=function mh(){var a,b;a=this.ld();b=this.md();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.nd=function nh(a){throw Adb(new jib)};_.Ib=function oh(){return this.ld()+'='+this.md()};var UE=sfb(xve,Lve,358);feb(2086,31,Dve);_.$b=function ph(){this.od().$b()};_.Hc=function qh(a){var b;if(ZD(a,44)){b=RD(a,44);return Cc(this.od(),b.ld(),b.md())}return false};_.Mc=function rh(a){var b;if(ZD(a,44)){b=RD(a,44);return Gc(this.od(),b.ld(),b.md())}return false};_.gc=function sh(){return this.od().d};var yH=sfb(xve,'Multimaps/Entries',2086);feb(749,2086,Dve,th);_.Kc=function uh(){return this.a.kc()};_.od=function vh(){return this.a};_.Nc=function wh(){return this.a.lc()};var VE=sfb(xve,'AbstractMultimap/Entries',749);feb(750,749,Fve,xh);_.Nc=function Ah(){return this.a.lc()};_.Fb=function yh(a){return Rx(this,a)};_.Hb=function zh(){return Sx(this)};var WE=sfb(xve,'AbstractMultimap/EntrySet',750);feb(751,31,Dve,Bh);_.$b=function Ch(){this.a.$b()};_.Hc=function Dh(a){return Dc(this.a,a)};_.Kc=function Eh(){return this.a.nc()};_.gc=function Fh(){return this.a.d};_.Nc=function Gh(){return this.a.oc()};var XE=sfb(xve,'AbstractMultimap/Values',751);feb(2087,31,{849:1,20:1,31:1,16:1});_.Jc=function Oh(a){Qb(a);Ih(this).Jc(new lx(a))};_.Nc=function Sh(){var a;return a=Ih(this).Nc(),ek(a,new sx,64|a.yd()&1296,this.a.d)};_.Fc=function Kh(a){Hh();return true};_.Gc=function Lh(a){return Qb(this),Qb(a),ZD(a,552)?nx(RD(a,849)):!a.dc()&&xr(this,a.Kc())};_.Hc=function Mh(a){var b;return b=RD(Xv(nd(this.a),a),16),(!b?0:b.gc())>0};_.Fb=function Nh(a){return ox(this,a)};_.Hb=function Ph(){return tb(Ih(this))};_.dc=function Qh(){return Ih(this).dc()};_.Mc=function Rh(a){return Rw(this,a,1)>0};_.Ib=function Th(){return jeb(Ih(this))};var $E=sfb(xve,'AbstractMultiset',2087);feb(2089,2068,Fve);_.$b=function Uh(){Nc(this.a.a)};_.Hc=function Vh(a){var b,c;if(ZD(a,504)){c=RD(a,425);if(RD(c.a.md(),16).gc()<=0){return false}b=Qw(this.a,c.a.ld());return b==RD(c.a.md(),16).gc()}return false};_.Mc=function Wh(a){var b,c,d,e;if(ZD(a,504)){c=RD(a,425);b=c.a.ld();d=RD(c.a.md(),16).gc();if(d!=0){e=this.a;return qx(e,b,d)}}return false};var IH=sfb(xve,'Multisets/EntrySet',2089);feb(1139,2089,Fve,Xh);_.Kc=function Yh(){return new _w(fe(nd(this.a.a)).Kc())};_.gc=function Zh(){return nd(this.a.a).gc()};var ZE=sfb(xve,'AbstractMultiset/EntrySet',1139);feb(627,742,zve);_.hc=function ai(){return this.pd()};_.jc=function bi(){return this.qd()};_.cc=function ei(a){return this.rd(a)};_.fc=function gi(a){return this.sd(a)};_.Zb=function _h(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.qd=function ci(){return yob(),yob(),xob};_.Fb=function di(a){return xw(this,a)};_.rd=function fi(a){return RD(Qc(this,a),21)};_.sd=function hi(a){return RD(Sc(this,a),21)};_.mc=function ii(a){return yob(),new Lqb(RD(a,21))};_.pc=function ji(a,b){return new fh(this,a,RD(b,21))};var _E=sfb(xve,'AbstractSetMultimap',627);feb(1723,627,zve);_.hc=function mi(){return new yAb(this.b)};_.pd=function ni(){return new yAb(this.b)};_.jc=function oi(){return Zx(new yAb(this.b))};_.qd=function pi(){return Zx(new yAb(this.b))};_.cc=function qi(a){return RD(RD(Qc(this,a),21),87)};_.rd=function ri(a){return RD(RD(Qc(this,a),21),87)};_.fc=function si(a){return RD(RD(Sc(this,a),21),87)};_.sd=function ti(a){return RD(RD(Sc(this,a),21),87)};_.mc=function ui(a){return ZD(a,277)?Zx(RD(a,277)):(yob(),new jrb(RD(a,87)))};_.Zb=function li(){var a;return a=this.f,!a?(this.f=ZD(this.c,139)?new Uf(this,RD(this.c,139)):ZD(this.c,133)?new Mf(this,RD(this.c,133)):new ne(this,this.c)):a};_.pc=function vi(a,b){return ZD(b,277)?new eh(this,a,RD(b,277)):new bh(this,a,RD(b,87))};var bF=sfb(xve,'AbstractSortedSetMultimap',1723);feb(1724,1723,zve);_.Zb=function xi(){var a;return a=this.f,RD(RD(!a?(this.f=ZD(this.c,139)?new Uf(this,RD(this.c,139)):ZD(this.c,133)?new Mf(this,RD(this.c,133)):new ne(this,this.c)):a,133),139)};_.ec=function zi(){var a;return a=this.i,RD(RD(!a?(this.i=ZD(this.c,139)?new gg(this,RD(this.c,139)):ZD(this.c,133)?new eg(this,RD(this.c,133)):new zf(this,this.c)):a,87),277)};_.bc=function yi(){return ZD(this.c,139)?new gg(this,RD(this.c,139)):ZD(this.c,133)?new eg(this,RD(this.c,133)):new zf(this,this.c)};var aF=sfb(xve,'AbstractSortedKeySortedSetMultimap',1724);feb(2109,1,{2046:1});_.Fb=function Ai(a){return Qy(this,a)};_.Hb=function Bi(){var a;return Bob((a=this.g,!a?(this.g=new Di(this)):a))};_.Ib=function Ci(){var a;return Md((a=this.f,!a?(this.f=new Zj(this)):a))};var eF=sfb(xve,'AbstractTable',2109);feb(679,Eve,Fve,Di);_.$b=function Ei(){Xi()};_.Hc=function Fi(a){var b,c;if(ZD(a,479)){b=RD(a,697);c=RD(Xv(bj(this.a),Qm(b.c.e,b.b)),85);return !!c&&Nk(c.vc(),new gp(Qm(b.c.c,b.a),Ui(b.c,b.b,b.a)))}return false};_.Kc=function Gi(){return Vi(this.a)};_.Mc=function Hi(a){var b,c;if(ZD(a,479)){b=RD(a,697);c=RD(Xv(bj(this.a),Qm(b.c.e,b.b)),85);return !!c&&Ok(c.vc(),new gp(Qm(b.c.c,b.a),Ui(b.c,b.b,b.a)))}return false};_.gc=function Ii(){return dj(this.a)};_.Nc=function Ji(){return Wi(this.a)};var cF=sfb(xve,'AbstractTable/CellSet',679);feb(2025,31,Dve,Ki);_.$b=function Li(){Xi()};_.Hc=function Mi(a){return Yi(this.a,a)};_.Kc=function Ni(){return fj(this.a)};_.gc=function Oi(){return dj(this.a)};_.Nc=function Pi(){return gj(this.a)};var dF=sfb(xve,'AbstractTable/Values',2025);feb(1697,1696,zve);var fF=sfb(xve,'ArrayListMultimapGwtSerializationDependencies',1697);feb(520,1697,zve,Ri,Si);_.hc=function Ti(){return new cnb(this.a)};_.a=0;var gF=sfb(xve,'ArrayListMultimap',520);feb(678,2109,{678:1,2046:1,3:1},hj);var sF=sfb(xve,'ArrayTable',678);feb(2021,399,yve,ij);_.Xb=function jj(a){return new pj(this.a,a)};var hF=sfb(xve,'ArrayTable/1',2021);feb(2022,1,{},kj);_.td=function lj(a){return new pj(this.a,a)};var iF=sfb(xve,'ArrayTable/1methodref$getCell$Type',2022);feb(2110,1,{697:1});_.Fb=function mj(a){var b;if(a===this){return true}if(ZD(a,479)){b=RD(a,697);return Hb(Qm(this.c.e,this.b),Qm(b.c.e,b.b))&&Hb(Qm(this.c.c,this.a),Qm(b.c.c,b.a))&&Hb(Ui(this.c,this.b,this.a),Ui(b.c,b.b,b.a))}return false};_.Hb=function nj(){return Tnb(cD(WC(jJ,1),rve,1,5,[Qm(this.c.e,this.b),Qm(this.c.c,this.a),Ui(this.c,this.b,this.a)]))};_.Ib=function oj(){return '('+Qm(this.c.e,this.b)+','+Qm(this.c.c,this.a)+')='+Ui(this.c,this.b,this.a)};var bI=sfb(xve,'Tables/AbstractCell',2110);feb(479,2110,{479:1,697:1},pj);_.a=0;_.b=0;_.d=0;var jF=sfb(xve,'ArrayTable/2',479);feb(2024,1,{},qj);_.td=function rj(a){return _i(this.a,a)};var kF=sfb(xve,'ArrayTable/2methodref$getValue$Type',2024);feb(2023,399,yve,sj);_.Xb=function tj(a){return _i(this.a,a)};var lF=sfb(xve,'ArrayTable/3',2023);feb(2077,2065,Cve);_.$b=function vj(){Ar(this.kc())};_.vc=function wj(){return new gw(this)};_.lc=function xj(){return new Uwb(this.kc(),this.gc())};var pH=sfb(xve,'Maps/IteratorBasedAbstractMap',2077);feb(842,2077,Cve);_.$b=function Bj(){throw Adb(new jib)};_._b=function Cj(a){return En(this.c,a)};_.kc=function Dj(){return new Rj(this,this.c.b.c.gc())};_.lc=function Ej(){return fk(this.c.b.c.gc(),16,new Lj(this))};_.xc=function Fj(a){var b;b=RD(Fn(this.c,a),17);return !b?null:this.vd(b.a)};_.dc=function Gj(){return this.c.b.c.dc()};_.ec=function Hj(){return hn(this.c)};_.zc=function Ij(a,b){var c;c=RD(Fn(this.c,a),17);if(!c){throw Adb(new agb(this.ud()+' '+a+' not in '+hn(this.c)))}return this.wd(c.a,b)};_.Bc=function Jj(a){throw Adb(new jib)};_.gc=function Kj(){return this.c.b.c.gc()};var pF=sfb(xve,'ArrayTable/ArrayMap',842);feb(2020,1,{},Lj);_.td=function Mj(a){return yj(this.a,a)};var mF=sfb(xve,'ArrayTable/ArrayMap/0methodref$getEntry$Type',2020);feb(2018,358,Kve,Nj);_.ld=function Oj(){return zj(this.a,this.b)};_.md=function Pj(){return this.a.vd(this.b)};_.nd=function Qj(a){return this.a.wd(this.b,a)};_.b=0;var nF=sfb(xve,'ArrayTable/ArrayMap/1',2018);feb(2019,399,yve,Rj);_.Xb=function Sj(a){return yj(this.a,a)};var oF=sfb(xve,'ArrayTable/ArrayMap/2',2019);feb(2017,842,Cve,Tj);_.ud=function Uj(){return 'Column'};_.vd=function Vj(a){return Ui(this.b,this.a,a)};_.wd=function Wj(a,b){return cj(this.b,this.a,a,b)};_.a=0;var rF=sfb(xve,'ArrayTable/Row',2017);feb(843,842,Cve,Zj);_.vd=function _j(a){return new Tj(this.a,a)};_.zc=function ak(a,b){return RD(b,85),Xj()};_.wd=function bk(a,b){return RD(b,85),Yj()};_.ud=function $j(){return 'Row'};var qF=sfb(xve,'ArrayTable/RowMap',843);feb(1157,1,Pve,hk);_.Ad=function lk(a){return (this.a.yd()&-262&a)!=0};_.yd=function ik(){return this.a.yd()&-262};_.zd=function jk(){return this.a.zd()};_.Nb=function kk(a){this.a.Nb(new pk(a,this.b))};_.Bd=function mk(a){return this.a.Bd(new nk(a,this.b))};var yF=sfb(xve,'CollectSpliterators/1',1157);feb(1158,1,Qve,nk);_.Cd=function ok(a){this.a.Cd(this.b.Kb(a))};var tF=sfb(xve,'CollectSpliterators/1/lambda$0$Type',1158);feb(1159,1,Qve,pk);_.Cd=function qk(a){this.a.Cd(this.b.Kb(a))};var uF=sfb(xve,'CollectSpliterators/1/lambda$1$Type',1159);feb(1154,1,Pve,rk);_.Ad=function vk(a){return ((16464|this.b)&a)!=0};_.yd=function sk(){return 16464|this.b};_.zd=function tk(){return this.a.zd()};_.Nb=function uk(a){this.a.Qe(new zk(a,this.c))};_.Bd=function wk(a){return this.a.Re(new xk(a,this.c))};_.b=0;var xF=sfb(xve,'CollectSpliterators/1WithCharacteristics',1154);feb(1155,1,Rve,xk);_.Dd=function yk(a){this.a.Cd(this.b.td(a))};var vF=sfb(xve,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1155);feb(1156,1,Rve,zk);_.Dd=function Ak(a){this.a.Cd(this.b.td(a))};var wF=sfb(xve,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1156);feb(1150,1,Pve);_.Ad=function Gk(a){return (this.a&a)!=0};_.yd=function Dk(){return this.a};_.zd=function Ek(){!!this.e&&(this.b=Kgb(this.b,this.e.zd()));return Kgb(this.b,0)};_.Nb=function Fk(a){if(this.e){this.e.Nb(a);this.e=null}this.c.Nb(new Kk(this,a));this.b=0};_.Bd=function Hk(a){while(true){if(!!this.e&&this.e.Bd(a)){Pdb(this.b,Sve)&&(this.b=Vdb(this.b,1));return true}else{this.e=null}if(!this.c.Bd(new Ik(this))){return false}}};_.a=0;_.b=0;var CF=sfb(xve,'CollectSpliterators/FlatMapSpliterator',1150);feb(1152,1,Qve,Ik);_.Cd=function Jk(a){Bk(this.a,a)};var zF=sfb(xve,'CollectSpliterators/FlatMapSpliterator/lambda$0$Type',1152);feb(1153,1,Qve,Kk);_.Cd=function Lk(a){Ck(this.a,this.b,a)};var AF=sfb(xve,'CollectSpliterators/FlatMapSpliterator/lambda$1$Type',1153);feb(1151,1150,Pve,Mk);var BF=sfb(xve,'CollectSpliterators/FlatMapSpliteratorOfObject',1151);feb(253,1,Tve);_.Fd=function Sk(a){return this.Ed(RD(a,253))};_.Ed=function Rk(a){var b;if(a==(kl(),jl)){return 1}if(a==(Wk(),Vk)){return -1}b=(ux(),Leb(this.a,a.a));if(b!=0){return b}return ZD(this,526)==ZD(a,526)?0:ZD(this,526)?1:-1};_.Id=function Tk(){return this.a};_.Fb=function Uk(a){return Pk(this,a)};var HF=sfb(xve,'Cut',253);feb(1823,253,Tve,Xk);_.Ed=function Yk(a){return a==this?0:1};_.Gd=function Zk(a){throw Adb(new Ceb)};_.Hd=function $k(a){a.a+='+\u221E)'};_.Id=function _k(){throw Adb(new dgb(Uve))};_.Hb=function al(){return gib(),jFb(this)};_.Jd=function bl(a){return false};_.Ib=function cl(){return '+\u221E'};var Vk;var DF=sfb(xve,'Cut/AboveAll',1823);feb(526,253,{253:1,526:1,3:1,34:1},dl);_.Gd=function el(a){Yhb((a.a+='(',a),this.a)};_.Hd=function fl(a){Thb(Yhb(a,this.a),93)};_.Hb=function gl(){return ~tb(this.a)};_.Jd=function hl(a){return ux(),Leb(this.a,a)<0};_.Ib=function il(){return '/'+this.a+'\\'};var EF=sfb(xve,'Cut/AboveValue',526);feb(1822,253,Tve,ll);_.Ed=function ml(a){return a==this?0:-1};_.Gd=function nl(a){a.a+='(-\u221E'};_.Hd=function ol(a){throw Adb(new Ceb)};_.Id=function pl(){throw Adb(new dgb(Uve))};_.Hb=function ql(){return gib(),jFb(this)};_.Jd=function rl(a){return true};_.Ib=function sl(){return '-\u221E'};var jl;var FF=sfb(xve,'Cut/BelowAll',1822);feb(1824,253,Tve,tl);_.Gd=function ul(a){Yhb((a.a+='[',a),this.a)};_.Hd=function vl(a){Thb(Yhb(a,this.a),41)};_.Hb=function wl(){return tb(this.a)};_.Jd=function xl(a){return ux(),Leb(this.a,a)<=0};_.Ib=function yl(){return '\\'+this.a+'/'};var GF=sfb(xve,'Cut/BelowValue',1824);feb(547,1,Vve);_.Jc=function Bl(a){xgb(this,a)};_.Ib=function Cl(){return Lr(RD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var LF=sfb(xve,'FluentIterable',547);feb(442,547,Vve,Dl);_.Kc=function El(){return new is(Mr(this.a.Kc(),new ir))};var IF=sfb(xve,'FluentIterable/2',442);feb(1059,547,Vve,Gl);_.Kc=function Hl(){return Fl(this)};var KF=sfb(xve,'FluentIterable/3',1059);feb(724,399,yve,Il);_.Xb=function Jl(a){return this.a[a].Kc()};var JF=sfb(xve,'FluentIterable/3/1',724);feb(2070,1,{});_.Ib=function Kl(){return jeb(this.Kd().b)};var SF=sfb(xve,'ForwardingObject',2070);feb(2071,2070,Wve);_.Kd=function Ql(){return this.Ld()};_.Jc=function Rl(a){xgb(this,a)};_.Lc=function Ul(){return this.Oc()};_.Nc=function Xl(){return new Swb(this,0)};_.Oc=function Yl(){return new SDb(null,this.Nc())};_.Fc=function Ll(a){return this.Ld(),qpb()};_.Gc=function Ml(a){return this.Ld(),rpb()};_.$b=function Nl(){this.Ld(),spb()};_.Hc=function Ol(a){return this.Ld().Hc(a)};_.Ic=function Pl(a){return this.Ld().Ic(a)};_.dc=function Sl(){return this.Ld().b.dc()};_.Kc=function Tl(){return this.Ld().Kc()};_.Mc=function Vl(a){return this.Ld(),vpb()};_.gc=function Wl(){return this.Ld().b.gc()};_.Pc=function Zl(){return this.Ld().Pc()};_.Qc=function $l(a){return this.Ld().Qc(a)};var MF=sfb(xve,'ForwardingCollection',2071);feb(2078,31,Xve);_.Kc=function gm(){return this.Od()};_.Fc=function am(a){throw Adb(new jib)};_.Gc=function bm(a){throw Adb(new jib)};_.Md=function cm(){var a;a=this.c;return !a?(this.c=this.Nd()):a};_.$b=function dm(){throw Adb(new jib)};_.Hc=function em(a){return a!=null&&ze(this,a,false)};_.Nd=function fm(){switch(this.gc()){case 0:return tm(),tm(),sm;case 1:return tm(),new Dy(Qb(this.Od().Pb()));default:return new Fx(this,this.Pc());}};_.Mc=function hm(a){throw Adb(new jib)};var lG=sfb(xve,'ImmutableCollection',2078);feb(727,2078,Xve,im);_.Kc=function nm(){return Nr(this.a.Kc())};_.Hc=function jm(a){return a!=null&&this.a.Hc(a)};_.Ic=function km(a){return this.a.Ic(a)};_.dc=function lm(){return this.a.dc()};_.Od=function mm(){return Nr(this.a.Kc())};_.gc=function om(){return this.a.gc()};_.Pc=function pm(){return this.a.Pc()};_.Qc=function qm(a){return this.a.Qc(a)};_.Ib=function rm(){return jeb(this.a)};var NF=sfb(xve,'ForwardingImmutableCollection',727);feb(307,2078,Yve);_.Kc=function Em(){return this.Od()};_.ed=function Fm(){return this.Pd(0)};_.fd=function Hm(a){return this.Pd(a)};_.jd=function Lm(a){tvb(this,a)};_.Nc=function Mm(){return new Swb(this,16)};_.kd=function Om(a,b){return this.Qd(a,b)};_.bd=function wm(a,b){throw Adb(new jib)};_.cd=function xm(a,b){throw Adb(new jib)};_.Md=function ym(){return this};_.Fb=function Am(a){return $u(this,a)};_.Hb=function Bm(){return _u(this)};_.dd=function Cm(a){return a==null?-1:av(this,a)};_.Od=function Dm(){return this.Pd(0)};_.Pd=function Gm(a){return um(this,a)};_.gd=function Jm(a){throw Adb(new jib)};_.hd=function Km(a,b){throw Adb(new jib)};_.Qd=function Nm(a,b){var c;return Pm((c=new pv(this),new Rkb(c,a,b)))};var sm;var qG=sfb(xve,'ImmutableList',307);feb(2105,307,Yve);_.Kc=function Zm(){return Nr(this.Rd().Kc())};_.kd=function an(a,b){return Pm(this.Rd().kd(a,b))};_.Hc=function Rm(a){return a!=null&&this.Rd().Hc(a)};_.Ic=function Sm(a){return this.Rd().Ic(a)};_.Fb=function Tm(a){return pb(this.Rd(),a)};_.Xb=function Um(a){return Qm(this,a)};_.Hb=function Vm(){return tb(this.Rd())};_.dd=function Wm(a){return this.Rd().dd(a)};_.dc=function Xm(){return this.Rd().dc()};_.Od=function Ym(){return Nr(this.Rd().Kc())};_.gc=function $m(){return this.Rd().gc()};_.Qd=function _m(a,b){return Pm(this.Rd().kd(a,b))};_.Pc=function bn(){return this.Rd().Qc($C(jJ,rve,1,this.Rd().gc(),5,1))};_.Qc=function cn(a){return this.Rd().Qc(a)};_.Ib=function dn(){return jeb(this.Rd())};var OF=sfb(xve,'ForwardingImmutableList',2105);feb(729,1,$ve);_.vc=function pn(){return gn(this)};_.wc=function rn(a){Bvb(this,a)};_.ec=function vn(){return hn(this)};_.yc=function wn(a,b,c){return Cvb(this,a,b,c)};_.Cc=function Dn(){return this.Vd()};_.$b=function kn(){throw Adb(new jib)};_._b=function ln(a){return this.xc(a)!=null};_.uc=function mn(a){return this.Vd().Hc(a)};_.Td=function nn(){return new xq(this)};_.Ud=function on(){return new Gq(this)};_.Fb=function qn(a){return Tv(this,a)};_.Hb=function tn(){return gn(this).Hb()};_.dc=function un(){return this.gc()==0};_.zc=function zn(a,b){return jn()};_.Bc=function An(a){throw Adb(new jib)};_.Ib=function Bn(){return Zv(this)};_.Vd=function Cn(){if(this.e){return this.e}return this.e=this.Ud()};_.c=null;_.d=null;_.e=null;var en;var AG=sfb(xve,'ImmutableMap',729);feb(730,729,$ve);_._b=function Hn(a){return En(this,a)};_.uc=function In(a){return pqb(this.b,a)};_.Sd=function Jn(){return go(new Xn(this))};_.Td=function Kn(){return go(sqb(this.b))};_.Ud=function Ln(){return _l(),new im(tqb(this.b))};_.Fb=function Mn(a){return rqb(this.b,a)};_.xc=function Nn(a){return Fn(this,a)};_.Hb=function On(){return tb(this.b.c)};_.dc=function Pn(){return this.b.c.dc()};_.gc=function Qn(){return this.b.c.gc()};_.Ib=function Rn(){return jeb(this.b.c)};var QF=sfb(xve,'ForwardingImmutableMap',730);feb(2072,2071,_ve);_.Kd=function Sn(){return this.Wd()};_.Ld=function Tn(){return this.Wd()};_.Nc=function Wn(){return new Swb(this,1)};_.Fb=function Un(a){return a===this||this.Wd().Fb(a)};_.Hb=function Vn(){return this.Wd().Hb()};var TF=sfb(xve,'ForwardingSet',2072);feb(1085,2072,_ve,Xn);_.Kd=function Zn(){return qqb(this.a.b)};_.Ld=function $n(){return qqb(this.a.b)};_.Hc=function Yn(b){if(ZD(b,44)&&RD(b,44).ld()==null){return false}try{return Pqb(qqb(this.a.b),b)}catch(a){a=zdb(a);if(ZD(a,212)){return false}else throw Adb(a)}};_.Wd=function _n(){return qqb(this.a.b)};_.Qc=function ao(a){var b;b=Qqb(qqb(this.a.b),a);qqb(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=AB($wnd.Math.abs(c)%60);return (Mrb(),Krb)[this.q.getDay()]+' '+Lrb[this.q.getMonth()]+' '+AB(this.q.getDate())+' '+AB(this.q.getHours())+':'+AB(this.q.getMinutes())+':'+AB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var qK=sfb(Bve,'Date',206);feb(2015,206,bxe,DB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var xI=sfb('com.google.gwt.i18n.shared.impl','DateRecord',2015);feb(2064,1,{});_.pe=function EB(){return null};_.qe=function FB(){return null};_.re=function GB(){return null};_.se=function HB(){return null};_.te=function IB(){return null};var GI=sfb(cxe,'JSONValue',2064);feb(221,2064,{221:1},MB,NB);_.Fb=function OB(a){if(!ZD(a,221)){return false}return Hz(this.a,RD(a,221).a)};_.oe=function PB(){return TB};_.Hb=function QB(){return Iz(this.a)};_.pe=function RB(){return this};_.Ib=function SB(){var a,b,c;c=new dib('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Yhb(c,JB(this,b))}c.a+=']';return c.a};var yI=sfb(cxe,'JSONArray',221);feb(493,2064,{493:1},XB);_.oe=function YB(){return _B};_.qe=function ZB(){return this};_.Ib=function $B(){return Geb(),''+this.a};_.a=false;var UB,VB;var zI=sfb(cxe,'JSONBoolean',493);feb(997,63,swe,aC);var AI=sfb(cxe,'JSONException',997);feb(1036,2064,{},dC);_.oe=function eC(){return gC};_.Ib=function fC(){return vve};var bC;var BI=sfb(cxe,'JSONNull',1036);feb(263,2064,{263:1},hC);_.Fb=function iC(a){if(!ZD(a,263)){return false}return this.a==RD(a,263).a};_.oe=function jC(){return nC};_.Hb=function kC(){return Nfb(this.a)};_.re=function lC(){return this};_.Ib=function mC(){return this.a+''};_.a=0;var CI=sfb(cxe,'JSONNumber',263);feb(190,2064,{190:1},uC,vC);_.Fb=function wC(a){if(!ZD(a,190)){return false}return Hz(this.a,RD(a,190).a)};_.oe=function xC(){return BC};_.Hb=function yC(){return Iz(this.a)};_.se=function zC(){return this};_.Ib=function AC(){var a,b,c,d,e,f,g;g=new dib('{');a=true;f=oC(this,$C(qJ,Nve,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var mJ=sfb(mve,'StackTraceElement',319);PD={3:1,484:1,34:1,2:1};var qJ=sfb(mve,uwe,2);feb(111,427,{484:1},Qhb,Rhb,Shb);var nJ=sfb(mve,'StringBuffer',111);feb(104,427,{484:1},bib,cib,dib);var oJ=sfb(mve,'StringBuilder',104);feb(702,77,lxe,eib);var pJ=sfb(mve,'StringIndexOutOfBoundsException',702);feb(2145,1,{});var fib;feb(48,63,{3:1,103:1,63:1,82:1,48:1},jib,kib);var sJ=sfb(mve,'UnsupportedOperationException',48);feb(247,242,{3:1,34:1,242:1,247:1},Aib,Bib);_.Fd=function Eib(a){return uib(this,RD(a,247))};_.ue=function Fib(){return Neb(zib(this))};_.Fb=function Gib(a){var b;if(this===a){return true}if(ZD(a,247)){b=RD(a,247);return this.e==b.e&&uib(this,b)==0}return false};_.Hb=function Hib(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Hdb(this.f);this.b=Ydb(Cdb(a,-1));this.b=33*this.b+Ydb(Cdb(Tdb(a,32),-1));this.b=17*this.b+eE(this.e);return this.b}this.b=17*Vib(this.c)+eE(this.e);return this.b};_.Ib=function Iib(){return zib(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var lib,mib,nib,oib,pib,qib,rib,sib;var tJ=sfb('java.math','BigDecimal',247);feb(92,242,{3:1,34:1,242:1,92:1},ajb,bjb,cjb,djb,ejb);_.Fd=function gjb(a){return Qib(this,RD(a,92))};_.ue=function hjb(){return Neb(Ajb(this,0))};_.Fb=function ijb(a){return Sib(this,a)};_.Hb=function ljb(){return Vib(this)};_.Ib=function njb(){return Ajb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Jib,Kib,Lib,Mib,Nib,Oib;var uJ=sfb('java.math','BigInteger',92);var vjb,wjb;var Jjb,Kjb;feb(498,2065,Cve);_.$b=function dkb(){akb(this)};_._b=function ekb(a){return Ujb(this,a)};_.uc=function fkb(a){return Vjb(this,a,this.i)||Vjb(this,a,this.f)};_.vc=function gkb(){return new mkb(this)};_.xc=function hkb(a){return Wjb(this,a)};_.zc=function ikb(a,b){return Zjb(this,a,b)};_.Bc=function jkb(a){return _jb(this,a)};_.gc=function kkb(){return bkb(this)};_.g=0;var yJ=sfb(Bve,'AbstractHashMap',498);feb(267,Eve,Fve,mkb);_.$b=function nkb(){this.a.$b()};_.Hc=function okb(a){return lkb(this,a)};_.Kc=function pkb(){return new vkb(this.a)};_.Mc=function qkb(a){var b;if(lkb(this,a)){b=RD(a,44).ld();this.a.Bc(b);return true}return false};_.gc=function rkb(){return this.a.gc()};var xJ=sfb(Bve,'AbstractHashMap/EntrySet',267);feb(268,1,Ave,vkb);_.Nb=function wkb(a){Ztb(this,a)};_.Pb=function ykb(){return tkb(this)};_.Ob=function xkb(){return this.b};_.Qb=function zkb(){ukb(this)};_.b=false;_.d=0;var wJ=sfb(Bve,'AbstractHashMap/EntrySetIterator',268);feb(426,1,Ave,Dkb);_.Nb=function Ekb(a){Ztb(this,a)};_.Ob=function Fkb(){return Akb(this)};_.Pb=function Gkb(){return Bkb(this)};_.Qb=function Hkb(){Ckb(this)};_.b=0;_.c=-1;var zJ=sfb(Bve,'AbstractList/IteratorImpl',426);feb(98,426,Jve,Jkb);_.Qb=function Pkb(){Ckb(this)};_.Rb=function Kkb(a){Ikb(this,a)};_.Sb=function Lkb(){return this.b>0};_.Tb=function Mkb(){return this.b};_.Ub=function Nkb(){return sFb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Okb(){return this.b-1};_.Wb=function Qkb(a){yFb(this.c!=-1);this.a.hd(this.c,a)};var AJ=sfb(Bve,'AbstractList/ListIteratorImpl',98);feb(244,56,kwe,Rkb);_.bd=function Skb(a,b){wFb(a,this.b);this.c.bd(this.a+a,b);++this.b};_.Xb=function Tkb(a){tFb(a,this.b);return this.c.Xb(this.a+a)};_.gd=function Ukb(a){var b;tFb(a,this.b);b=this.c.gd(this.a+a);--this.b;return b};_.hd=function Vkb(a,b){tFb(a,this.b);return this.c.hd(this.a+a,b)};_.gc=function Wkb(){return this.b};_.a=0;_.b=0;var BJ=sfb(Bve,'AbstractList/SubList',244);feb(266,Eve,Fve,Xkb);_.$b=function Ykb(){this.a.$b()};_.Hc=function Zkb(a){return this.a._b(a)};_.Kc=function $kb(){var a;return a=this.a.vc().Kc(),new blb(a)};_.Mc=function _kb(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function alb(){return this.a.gc()};var EJ=sfb(Bve,'AbstractMap/1',266);feb(541,1,Ave,blb);_.Nb=function clb(a){Ztb(this,a)};_.Ob=function dlb(){return this.a.Ob()};_.Pb=function elb(){var a;return a=RD(this.a.Pb(),44),a.ld()};_.Qb=function flb(){this.a.Qb()};var DJ=sfb(Bve,'AbstractMap/1/1',541);feb(231,31,Dve,glb);_.$b=function hlb(){this.a.$b()};_.Hc=function ilb(a){return this.a.uc(a)};_.Kc=function jlb(){var a;return a=this.a.vc().Kc(),new llb(a)};_.gc=function klb(){return this.a.gc()};var GJ=sfb(Bve,'AbstractMap/2',231);feb(301,1,Ave,llb);_.Nb=function mlb(a){Ztb(this,a)};_.Ob=function nlb(){return this.a.Ob()};_.Pb=function olb(){var a;return a=RD(this.a.Pb(),44),a.md()};_.Qb=function plb(){this.a.Qb()};var FJ=sfb(Bve,'AbstractMap/2/1',301);feb(494,1,{494:1,44:1});_.Fb=function rlb(a){var b;if(!ZD(a,44)){return false}b=RD(a,44);return Fvb(this.d,b.ld())&&Fvb(this.e,b.md())};_.ld=function slb(){return this.d};_.md=function tlb(){return this.e};_.Hb=function ulb(){return Gvb(this.d)^Gvb(this.e)};_.nd=function vlb(a){return qlb(this,a)};_.Ib=function wlb(){return this.d+'='+this.e};var HJ=sfb(Bve,'AbstractMap/AbstractEntry',494);feb(397,494,{494:1,397:1,44:1},xlb);var IJ=sfb(Bve,'AbstractMap/SimpleEntry',397);feb(2082,1,Axe);_.Fb=function ylb(a){var b;if(!ZD(a,44)){return false}b=RD(a,44);return Fvb(this.ld(),b.ld())&&Fvb(this.md(),b.md())};_.Hb=function zlb(){return Gvb(this.ld())^Gvb(this.md())};_.Ib=function Alb(){return this.ld()+'='+this.md()};var JJ=sfb(Bve,Lve,2082);feb(2090,2065,Gve);_.Xc=function Dlb(a){return Vd(this.Ee(a))};_.tc=function Elb(a){return Blb(this,a)};_._b=function Flb(a){return Clb(this,a)};_.vc=function Glb(){return new Plb(this)};_.Tc=function Hlb(){return Klb(this.Ge())};_.Yc=function Ilb(a){return Vd(this.He(a))};_.xc=function Jlb(a){var b;b=a;return Wd(this.Fe(b))};_.$c=function Llb(a){return Vd(this.Ie(a))};_.ec=function Mlb(){return new Ulb(this)};_.Vc=function Nlb(){return Klb(this.Je())};_._c=function Olb(a){return Vd(this.Ke(a))};var OJ=sfb(Bve,'AbstractNavigableMap',2090);feb(629,Eve,Fve,Plb);_.Hc=function Qlb(a){return ZD(a,44)&&Blb(this.b,RD(a,44))};_.Kc=function Rlb(){return this.b.De()};_.Mc=function Slb(a){var b;if(ZD(a,44)){b=RD(a,44);return this.b.Le(b)}return false};_.gc=function Tlb(){return this.b.gc()};var LJ=sfb(Bve,'AbstractNavigableMap/EntrySet',629);feb(1146,Eve,Ive,Ulb);_.Nc=function $lb(){return new $wb(this)};_.$b=function Vlb(){this.a.$b()};_.Hc=function Wlb(a){return Clb(this.a,a)};_.Kc=function Xlb(){var a;a=this.a.vc().b.De();return new _lb(a)};_.Mc=function Ylb(a){if(Clb(this.a,a)){this.a.Bc(a);return true}return false};_.gc=function Zlb(){return this.a.gc()};var NJ=sfb(Bve,'AbstractNavigableMap/NavigableKeySet',1146);feb(1147,1,Ave,_lb);_.Nb=function amb(a){Ztb(this,a)};_.Ob=function bmb(){return Akb(this.a.a)};_.Pb=function cmb(){var a;a=vzb(this.a);return a.ld()};_.Qb=function dmb(){wzb(this.a)};var MJ=sfb(Bve,'AbstractNavigableMap/NavigableKeySet/1',1147);feb(2103,31,Dve);_.Fc=function emb(a){return zFb(lwb(this,a),Bxe),true};_.Gc=function fmb(a){uFb(a);mFb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function gmb(){while(mwb(this)!=null);};var PJ=sfb(Bve,'AbstractQueue',2103);feb(310,31,{4:1,20:1,31:1,16:1},wmb,xmb);_.Fc=function ymb(a){return imb(this,a),true};_.$b=function Amb(){jmb(this)};_.Hc=function Bmb(a){return kmb(new Kmb(this),a)};_.dc=function Cmb(){return nmb(this)};_.Kc=function Dmb(){return new Kmb(this)};_.Mc=function Emb(a){return qmb(new Kmb(this),a)};_.gc=function Fmb(){return this.c-this.b&this.a.length-1};_.Nc=function Gmb(){return new Swb(this,272)};_.Qc=function Hmb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&bD(a,b,null);return a};_.b=0;_.c=0;var TJ=sfb(Bve,'ArrayDeque',310);feb(459,1,Ave,Kmb);_.Nb=function Lmb(a){Ztb(this,a)};_.Ob=function Mmb(){return this.a!=this.b};_.Pb=function Nmb(){return Imb(this)};_.Qb=function Omb(){Jmb(this)};_.a=0;_.b=0;_.c=-1;var SJ=sfb(Bve,'ArrayDeque/IteratorImpl',459);feb(13,56,Cxe,bnb,cnb,dnb);_.bd=function enb(a,b){Qmb(this,a,b)};_.Fc=function fnb(a){return Rmb(this,a)};_.cd=function gnb(a,b){return Smb(this,a,b)};_.Gc=function hnb(a){return Tmb(this,a)};_.$b=function inb(){aFb(this.c,0)};_.Hc=function jnb(a){return Wmb(this,a,0)!=-1};_.Jc=function knb(a){Umb(this,a)};_.Xb=function lnb(a){return Vmb(this,a)};_.dd=function mnb(a){return Wmb(this,a,0)};_.dc=function nnb(){return this.c.length==0};_.Kc=function onb(){return new Anb(this)};_.gd=function pnb(a){return Xmb(this,a)};_.Mc=function qnb(a){return Ymb(this,a)};_.ce=function rnb(a,b){Zmb(this,a,b)};_.hd=function snb(a,b){return $mb(this,a,b)};_.gc=function tnb(){return this.c.length};_.jd=function unb(a){_mb(this,a)};_.Pc=function vnb(){return UEb(this.c)};_.Qc=function wnb(a){return anb(this,a)};var VJ=sfb(Bve,'ArrayList',13);feb(7,1,Ave,Anb);_.Nb=function Bnb(a){Ztb(this,a)};_.Ob=function Cnb(){return xnb(this)};_.Pb=function Dnb(){return ynb(this)};_.Qb=function Enb(){znb(this)};_.a=0;_.b=-1;var UJ=sfb(Bve,'ArrayList/1',7);feb(2112,$wnd.Function,{},iob);_.Me=function job(a,b){return Qfb(a,b)};feb(151,56,Dxe,mob);_.Hc=function nob(a){return St(this,a)!=-1};_.Jc=function oob(a){var b,c,d,e;uFb(a);for(c=this.a,d=0,e=c.length;d0){throw Adb(new agb(Sxe+a+' greater than '+this.e))}return this.f.Te()?bzb(this.c,this.b,this.a,a,b):Ryb(this.c,a,b)};_.zc=function Vzb(a,b){if(!Tyb(this.c,this.f,a,this.b,this.a,this.e,this.d)){throw Adb(new agb(a+' outside the range '+this.b+' to '+this.e))}return Wyb(this.c,a,b)};_.Bc=function Wzb(a){var b;b=a;if(!Tyb(this.c,this.f,b,this.b,this.a,this.e,this.d)){return null}return Xyb(this.c,b)};_.Le=function Xzb(a){return Jzb(this,a.ld())&&Yyb(this.c,a)};_.gc=function Yzb(){var a,b,c;this.f.Te()?this.a?(b=Pyb(this.c,this.b,true)):(b=Pyb(this.c,this.b,false)):(b=Nyb(this.c));if(!(!!b&&Jzb(this,b.d)?b:null)){return 0}a=0;for(c=new yzb(this.c,this.f,this.b,this.a,this.e,this.d);Akb(c.a);c.b=RD(Bkb(c.a),44)){++a}return a};_.ad=function Zzb(a,b){if(this.f.Te()&&this.c.a.Ne(a,this.b)<0){throw Adb(new agb(Sxe+a+Txe+this.b))}return this.f.Ue()?bzb(this.c,a,b,this.e,this.d):czb(this.c,a,b)};_.a=false;_.d=false;var BL=sfb(Bve,'TreeMap/SubMap',631);feb(304,22,Uxe,dAb);_.Te=function eAb(){return false};_.Ue=function fAb(){return false};var $zb,_zb,aAb,bAb;var AL=tfb(Bve,'TreeMap/SubMapType',304,WI,hAb,gAb);feb(1143,304,Uxe,iAb);_.Ue=function jAb(){return true};var xL=tfb(Bve,'TreeMap/SubMapType/1',1143,AL,null,null);feb(1144,304,Uxe,kAb);_.Te=function lAb(){return true};_.Ue=function mAb(){return true};var yL=tfb(Bve,'TreeMap/SubMapType/2',1144,AL,null,null);feb(1145,304,Uxe,nAb);_.Te=function oAb(){return true};var zL=tfb(Bve,'TreeMap/SubMapType/3',1145,AL,null,null);var pAb;feb(157,Eve,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},xAb,yAb,zAb);_.Nc=function GAb(){return new $wb(this)};_.Fc=function AAb(a){return rAb(this,a)};_.$b=function BAb(){this.a.$b()};_.Hc=function CAb(a){return this.a._b(a)};_.Kc=function DAb(){return this.a.ec().Kc()};_.Mc=function EAb(a){return wAb(this,a)};_.gc=function FAb(){return this.a.gc()};var DL=sfb(Bve,'TreeSet',157);feb(1082,1,{},JAb);_.Ve=function KAb(a,b){return HAb(this.a,a,b)};var FL=sfb(Vxe,'BinaryOperator/lambda$0$Type',1082);feb(1083,1,{},LAb);_.Ve=function MAb(a,b){return IAb(this.a,a,b)};var GL=sfb(Vxe,'BinaryOperator/lambda$1$Type',1083);feb(952,1,{},NAb);_.Kb=function OAb(a){return a};var HL=sfb(Vxe,'Function/lambda$0$Type',952);feb(395,1,nwe,PAb);_.Mb=function QAb(a){return !this.a.Mb(a)};var IL=sfb(Vxe,'Predicate/lambda$2$Type',395);feb(581,1,{581:1});var JL=sfb(Wxe,'Handler',581);feb(2107,1,nve);_.xe=function TAb(){return 'DUMMY'};_.Ib=function UAb(){return this.xe()};var RAb;var LL=sfb(Wxe,'Level',2107);feb(1706,2107,nve,VAb);_.xe=function WAb(){return 'INFO'};var KL=sfb(Wxe,'Level/LevelInfo',1706);feb(1843,1,{},$Ab);var XAb;var ML=sfb(Wxe,'LogManager',1843);feb(1896,1,nve,aBb);_.b=null;var NL=sfb(Wxe,'LogRecord',1896);feb(525,1,{525:1},oBb);_.e=false;var bBb=false,cBb=false,dBb=false,eBb=false,fBb=false;var OL=sfb(Wxe,'Logger',525);feb(835,581,{581:1},rBb);var PL=sfb(Wxe,'SimpleConsoleLogHandler',835);feb(108,22,{3:1,34:1,22:1,108:1},yBb);var uBb,vBb,wBb;var QL=tfb(Zxe,'Collector/Characteristics',108,WI,ABb,zBb);var BBb;feb(758,1,{},DBb);var RL=sfb(Zxe,'CollectorImpl',758);feb(1074,1,{},RBb);_.Ve=function SBb(a,b){return Hyb(RD(a,213),RD(b,213))};var SL=sfb(Zxe,'Collectors/10methodref$merge$Type',1074);feb(1075,1,{},TBb);_.Kb=function UBb(a){return Iyb(RD(a,213))};var TL=sfb(Zxe,'Collectors/11methodref$toString$Type',1075);feb(1076,1,{},VBb);_.Kb=function WBb(a){return Geb(),SSb(a)?true:false};var UL=sfb(Zxe,'Collectors/12methodref$test$Type',1076);feb(144,1,{},XBb);_.Yd=function YBb(a,b){RD(a,16).Fc(b)};var VL=sfb(Zxe,'Collectors/20methodref$add$Type',144);feb(146,1,{},ZBb);_.Xe=function $Bb(){return new bnb};var WL=sfb(Zxe,'Collectors/21methodref$ctor$Type',146);feb(359,1,{},_Bb);_.Xe=function aCb(){return new _sb};var XL=sfb(Zxe,'Collectors/23methodref$ctor$Type',359);feb(360,1,{},bCb);_.Yd=function cCb(a,b){Ysb(RD(a,49),b)};var YL=sfb(Zxe,'Collectors/24methodref$add$Type',360);feb(1069,1,{},dCb);_.Ve=function eCb(a,b){return EBb(RD(a,15),RD(b,16))};var ZL=sfb(Zxe,'Collectors/4methodref$addAll$Type',1069);feb(1073,1,{},fCb);_.Yd=function gCb(a,b){Gyb(RD(a,213),RD(b,484))};var $L=sfb(Zxe,'Collectors/9methodref$add$Type',1073);feb(1072,1,{},hCb);_.Xe=function iCb(){return new Jyb(this.a,this.b,this.c)};var _L=sfb(Zxe,'Collectors/lambda$15$Type',1072);feb(1077,1,{},jCb);_.Xe=function kCb(){var a;return a=new gub,dub(a,(Geb(),false),new bnb),dub(a,true,new bnb),a};var aM=sfb(Zxe,'Collectors/lambda$22$Type',1077);feb(1078,1,{},lCb);_.Xe=function mCb(){return cD(WC(jJ,1),rve,1,5,[this.a])};var bM=sfb(Zxe,'Collectors/lambda$25$Type',1078);feb(1079,1,{},nCb);_.Yd=function oCb(a,b){GBb(this.a,SD(a))};var cM=sfb(Zxe,'Collectors/lambda$26$Type',1079);feb(1080,1,{},pCb);_.Ve=function qCb(a,b){return HBb(this.a,SD(a),SD(b))};var dM=sfb(Zxe,'Collectors/lambda$27$Type',1080);feb(1081,1,{},rCb);_.Kb=function sCb(a){return SD(a)[0]};var eM=sfb(Zxe,'Collectors/lambda$28$Type',1081);feb(728,1,{},uCb);_.Ve=function vCb(a,b){return tCb(a,b)};var fM=sfb(Zxe,'Collectors/lambda$4$Type',728);feb(145,1,{},wCb);_.Ve=function xCb(a,b){return JBb(RD(a,16),RD(b,16))};var gM=sfb(Zxe,'Collectors/lambda$42$Type',145);feb(361,1,{},yCb);_.Ve=function zCb(a,b){return KBb(RD(a,49),RD(b,49))};var hM=sfb(Zxe,'Collectors/lambda$50$Type',361);feb(362,1,{},ACb);_.Kb=function BCb(a){return RD(a,49)};var iM=sfb(Zxe,'Collectors/lambda$51$Type',362);feb(1068,1,{},CCb);_.Yd=function DCb(a,b){LBb(this.a,RD(a,85),b)};var jM=sfb(Zxe,'Collectors/lambda$7$Type',1068);feb(1070,1,{},ECb);_.Ve=function FCb(a,b){return NBb(RD(a,85),RD(b,85),new dCb)};var kM=sfb(Zxe,'Collectors/lambda$8$Type',1070);feb(1071,1,{},GCb);_.Kb=function HCb(a){return MBb(this.a,RD(a,85))};var lM=sfb(Zxe,'Collectors/lambda$9$Type',1071);feb(550,1,{});_.$e=function OCb(){ICb(this)};_.d=false;var TM=sfb(Zxe,'TerminatableStream',550);feb(827,550,$xe,WCb);_.$e=function XCb(){ICb(this)};var qM=sfb(Zxe,'DoubleStreamImpl',827);feb(1847,736,Pve,$Cb);_.Re=function aDb(a){return ZCb(this,RD(a,189))};_.a=null;var nM=sfb(Zxe,'DoubleStreamImpl/2',1847);feb(1848,1,Gxe,bDb);_.Pe=function cDb(a){_Cb(this.a,a)};var mM=sfb(Zxe,'DoubleStreamImpl/2/lambda$0$Type',1848);feb(1845,1,Gxe,dDb);_.Pe=function eDb(a){YCb(this.a,a)};var oM=sfb(Zxe,'DoubleStreamImpl/lambda$0$Type',1845);feb(1846,1,Gxe,fDb);_.Pe=function gDb(a){Nrb(this.a,a)};var pM=sfb(Zxe,'DoubleStreamImpl/lambda$2$Type',1846);feb(1397,735,Pve,kDb);_.Re=function lDb(a){return jDb(this,RD(a,202))};_.a=0;_.b=0;_.c=0;var rM=sfb(Zxe,'IntStream/5',1397);feb(806,550,$xe,oDb);_.$e=function pDb(){ICb(this)};_._e=function qDb(){return LCb(this),this.a};var vM=sfb(Zxe,'IntStreamImpl',806);feb(807,550,$xe,rDb);_.$e=function sDb(){ICb(this)};_._e=function tDb(){return LCb(this),Txb(),Sxb};var sM=sfb(Zxe,'IntStreamImpl/Empty',807);feb(1687,1,Rve,uDb);_.Dd=function vDb(a){ktb(this.a,a)};var uM=sfb(Zxe,'IntStreamImpl/lambda$4$Type',1687);var RM=ufb(Zxe,'Stream');feb(26,550,{533:1,687:1,848:1},SDb);_.$e=function TDb(){ICb(this)};var wDb;var QM=sfb(Zxe,'StreamImpl',26);feb(1102,500,Pve,YDb);_.Bd=function ZDb(a){while(WDb(this)){if(this.a.Bd(a)){return true}else{ICb(this.b);this.b=null;this.a=null}}return false};var xM=sfb(Zxe,'StreamImpl/1',1102);feb(1103,1,Qve,$Db);_.Cd=function _Db(a){XDb(this.a,RD(a,848))};var wM=sfb(Zxe,'StreamImpl/1/lambda$0$Type',1103);feb(1104,1,nwe,aEb);_.Mb=function bEb(a){return Ysb(this.a,a)};var yM=sfb(Zxe,'StreamImpl/1methodref$add$Type',1104);feb(1105,500,Pve,cEb);_.Bd=function dEb(a){var b;if(!this.a){b=new bnb;this.b.a.Nb(new eEb(b));yob();_mb(b,this.c);this.a=new Swb(b,16)}return Rwb(this.a,a)};_.a=null;var AM=sfb(Zxe,'StreamImpl/5',1105);feb(1106,1,Qve,eEb);_.Cd=function fEb(a){Rmb(this.a,a)};var zM=sfb(Zxe,'StreamImpl/5/2methodref$add$Type',1106);feb(737,500,Pve,hEb);_.Bd=function iEb(a){this.b=false;while(!this.b&&this.c.Bd(new jEb(this,a)));return this.b};_.b=false;var CM=sfb(Zxe,'StreamImpl/FilterSpliterator',737);feb(1096,1,Qve,jEb);_.Cd=function kEb(a){gEb(this.a,this.b,a)};var BM=sfb(Zxe,'StreamImpl/FilterSpliterator/lambda$0$Type',1096);feb(1091,736,Pve,nEb);_.Re=function oEb(a){return mEb(this,RD(a,189))};var EM=sfb(Zxe,'StreamImpl/MapToDoubleSpliterator',1091);feb(1095,1,Qve,pEb);_.Cd=function qEb(a){lEb(this.a,this.b,a)};var DM=sfb(Zxe,'StreamImpl/MapToDoubleSpliterator/lambda$0$Type',1095);feb(1090,735,Pve,tEb);_.Re=function uEb(a){return sEb(this,RD(a,202))};var GM=sfb(Zxe,'StreamImpl/MapToIntSpliterator',1090);feb(1094,1,Qve,vEb);_.Cd=function wEb(a){rEb(this.a,this.b,a)};var FM=sfb(Zxe,'StreamImpl/MapToIntSpliterator/lambda$0$Type',1094);feb(734,500,Pve,zEb);_.Bd=function AEb(a){return yEb(this,a)};var IM=sfb(Zxe,'StreamImpl/MapToObjSpliterator',734);feb(1093,1,Qve,BEb);_.Cd=function CEb(a){xEb(this.a,this.b,a)};var HM=sfb(Zxe,'StreamImpl/MapToObjSpliterator/lambda$0$Type',1093);feb(1092,500,Pve,DEb);_.Bd=function EEb(a){while(Idb(this.b,0)){if(!this.a.Bd(new FEb)){return false}this.b=Vdb(this.b,1)}return this.a.Bd(a)};_.b=0;var KM=sfb(Zxe,'StreamImpl/SkipSpliterator',1092);feb(1097,1,Qve,FEb);_.Cd=function GEb(a){};var JM=sfb(Zxe,'StreamImpl/SkipSpliterator/lambda$0$Type',1097);feb(626,1,Qve,IEb);_.Cd=function JEb(a){HEb(this,a)};var LM=sfb(Zxe,'StreamImpl/ValueConsumer',626);feb(1098,1,Qve,KEb);_.Cd=function LEb(a){xDb()};var MM=sfb(Zxe,'StreamImpl/lambda$0$Type',1098);feb(1099,1,Qve,MEb);_.Cd=function NEb(a){xDb()};var NM=sfb(Zxe,'StreamImpl/lambda$1$Type',1099);feb(1100,1,{},OEb);_.Ve=function PEb(a,b){return UDb(this.a,a,b)};var OM=sfb(Zxe,'StreamImpl/lambda$4$Type',1100);feb(1101,1,Qve,QEb);_.Cd=function REb(a){VDb(this.b,this.a,a)};var PM=sfb(Zxe,'StreamImpl/lambda$5$Type',1101);feb(1107,1,Qve,SEb);_.Cd=function TEb(a){PCb(this.a,RD(a,380))};var SM=sfb(Zxe,'TerminatableStream/lambda$0$Type',1107);feb(2142,1,{});feb(2014,1,{},gFb);var UM=sfb('javaemul.internal','ConsoleLogger',2014);var iFb=0;feb(2134,1,{});feb(1830,1,Qve,FFb);_.Cd=function GFb(a){RD(a,317)};var VM=sfb(eye,'BowyerWatsonTriangulation/lambda$0$Type',1830);feb(1831,1,Qve,HFb);_.Cd=function IFb(a){ye(this.a,RD(a,317).e)};var WM=sfb(eye,'BowyerWatsonTriangulation/lambda$1$Type',1831);feb(1832,1,Qve,JFb);_.Cd=function KFb(a){RD(a,177)};var XM=sfb(eye,'BowyerWatsonTriangulation/lambda$2$Type',1832);feb(1827,1,fye,NFb);_.Ne=function OFb(a,b){return MFb(this.a,RD(a,177),RD(b,177))};_.Fb=function PFb(a){return this===a};_.Oe=function QFb(){return new Frb(this)};var YM=sfb(eye,'NaiveMinST/lambda$0$Type',1827);feb(449,1,{},SFb);var ZM=sfb(eye,'NodeMicroLayout',449);feb(177,1,{177:1},TFb);_.Fb=function UFb(a){var b;if(ZD(a,177)){b=RD(a,177);return Fvb(this.a,b.a)&&Fvb(this.b,b.b)||Fvb(this.a,b.b)&&Fvb(this.b,b.a)}else{return false}};_.Hb=function VFb(){return Gvb(this.a)+Gvb(this.b)};var $M=sfb(eye,'TEdge',177);feb(317,1,{317:1},XFb);_.Fb=function YFb(a){var b;if(ZD(a,317)){b=RD(a,317);return WFb(this,b.a)&&WFb(this,b.b)&&WFb(this,b.c)}else{return false}};_.Hb=function ZFb(){return Gvb(this.a)+Gvb(this.b)+Gvb(this.c)};var _M=sfb(eye,'TTriangle',317);feb(225,1,{225:1},$Fb);var aN=sfb(eye,'Tree',225);feb(1218,1,{},aGb);var cN=sfb(gye,'Scanline',1218);var bN=ufb(gye,hye);feb(1758,1,{},dGb);var dN=sfb(iye,'CGraph',1758);feb(316,1,{316:1},fGb);_.b=0;_.c=0;_.d=0;_.g=0;_.i=0;_.k=pxe;var fN=sfb(iye,'CGroup',316);feb(830,1,{},jGb);var eN=sfb(iye,'CGroup/CGroupBuilder',830);feb(60,1,{60:1},kGb);_.Ib=function lGb(){var a;if(this.j){return WD(this.j.Kb(this))}return lfb(hN),hN.o+'@'+(a=kFb(this)>>>0,a.toString(16))};_.f=0;_.i=pxe;var hN=sfb(iye,'CNode',60);feb(829,1,{},qGb);var gN=sfb(iye,'CNode/CNodeBuilder',829);var vGb;feb(1590,1,{},xGb);_.ff=function yGb(a,b){return 0};_.gf=function zGb(a,b){return 0};var iN=sfb(iye,kye,1590);feb(1853,1,{},AGb);_.cf=function BGb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=oxe;for(d=new Anb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.kf=function yKb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].kf())}else if(this.g){e=vKb(this,pKb(this,null,true))}else{for(b=(ZJb(),cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.lf=function zKb(){var a,b,c,d,e;if(this.g){a=pKb(this,null,false);for(c=(ZJb(),cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);lKb(this,XJb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var iKb=0,jKb=0;var LN=sfb(Jye,'GridContainerCell',1538);feb(471,22,{3:1,34:1,22:1,471:1},FKb);var BKb,CKb,DKb;var MN=tfb(Jye,'HorizontalLabelAlignment',471,WI,HKb,GKb);var IKb;feb(314,217,{217:1,314:1},TKb,UKb,VKb);_.jf=function WKb(){return PKb(this)};_.kf=function XKb(){return QKb(this)};_.a=0;_.c=false;var NN=sfb(Jye,'LabelCell',314);feb(252,336,{217:1,336:1,252:1},dLb);_.jf=function eLb(){return YKb(this)};_.kf=function fLb(){return ZKb(this)};_.lf=function iLb(){$Kb(this)};_.mf=function jLb(){_Kb(this)};_.b=0;_.c=0;_.d=false;var SN=sfb(Jye,'StripContainerCell',252);feb(1691,1,nwe,kLb);_.Mb=function lLb(a){return gLb(RD(a,217))};var ON=sfb(Jye,'StripContainerCell/lambda$0$Type',1691);feb(1692,1,{},mLb);_.Ye=function nLb(a){return RD(a,217).kf()};var PN=sfb(Jye,'StripContainerCell/lambda$1$Type',1692);feb(1693,1,nwe,oLb);_.Mb=function pLb(a){return hLb(RD(a,217))};var QN=sfb(Jye,'StripContainerCell/lambda$2$Type',1693);feb(1694,1,{},qLb);_.Ye=function rLb(a){return RD(a,217).jf()};var RN=sfb(Jye,'StripContainerCell/lambda$3$Type',1694);feb(472,22,{3:1,34:1,22:1,472:1},wLb);var sLb,tLb,uLb;var TN=tfb(Jye,'VerticalLabelAlignment',472,WI,yLb,xLb);var zLb;feb(800,1,{},CLb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;_.F=false;var WN=sfb(Rye,'NodeContext',800);feb(1536,1,fye,FLb);_.Ne=function GLb(a,b){return ELb(RD(a,64),RD(b,64))};_.Fb=function HLb(a){return this===a};_.Oe=function ILb(){return new Frb(this)};var UN=sfb(Rye,'NodeContext/0methodref$comparePortSides$Type',1536);feb(1537,1,fye,JLb);_.Ne=function KLb(a,b){return DLb(RD(a,117),RD(b,117))};_.Fb=function LLb(a){return this===a};_.Oe=function MLb(){return new Frb(this)};var VN=sfb(Rye,'NodeContext/1methodref$comparePortContexts$Type',1537);feb(164,22,{3:1,34:1,22:1,164:1},kMb);var NLb,OLb,PLb,QLb,RLb,SLb,TLb,ULb,VLb,WLb,XLb,YLb,ZLb,$Lb,_Lb,aMb,bMb,cMb,dMb,eMb,fMb,gMb;var XN=tfb(Rye,'NodeLabelLocation',164,WI,nMb,mMb);var oMb;feb(117,1,{117:1},rMb);_.a=false;var YN=sfb(Rye,'PortContext',117);feb(1541,1,Qve,KMb);_.Cd=function LMb(a){NKb(RD(a,314))};var ZN=sfb(Uye,Vye,1541);feb(1542,1,nwe,MMb);_.Mb=function NMb(a){return !!RD(a,117).c};var $N=sfb(Uye,Wye,1542);feb(1543,1,Qve,OMb);_.Cd=function PMb(a){NKb(RD(a,117).c)};var _N=sfb(Uye,'LabelPlacer/lambda$2$Type',1543);var QMb;feb(1540,1,Qve,YMb);_.Cd=function ZMb(a){RMb();qMb(RD(a,117))};var aO=sfb(Uye,'NodeLabelAndSizeUtilities/lambda$0$Type',1540);feb(801,1,Qve,dNb);_.Cd=function eNb(a){bNb(this.b,this.c,this.a,RD(a,187))};_.a=false;_.c=false;var bO=sfb(Uye,'NodeLabelCellCreator/lambda$0$Type',801);feb(1539,1,Qve,kNb);_.Cd=function lNb(a){jNb(this.a,RD(a,187))};var cO=sfb(Uye,'PortContextCreator/lambda$0$Type',1539);var sNb;feb(1902,1,{},MNb);var eO=sfb(Yye,'GreedyRectangleStripOverlapRemover',1902);feb(1903,1,fye,ONb);_.Ne=function PNb(a,b){return NNb(RD(a,226),RD(b,226))};_.Fb=function QNb(a){return this===a};_.Oe=function RNb(){return new Frb(this)};var dO=sfb(Yye,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1903);feb(1849,1,{},YNb);_.a=5;_.e=0;var kO=sfb(Yye,'RectangleStripOverlapRemover',1849);feb(1850,1,fye,aOb);_.Ne=function bOb(a,b){return ZNb(RD(a,226),RD(b,226))};_.Fb=function cOb(a){return this===a};_.Oe=function dOb(){return new Frb(this)};var fO=sfb(Yye,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1850);feb(1852,1,fye,eOb);_.Ne=function fOb(a,b){return $Nb(RD(a,226),RD(b,226))};_.Fb=function gOb(a){return this===a};_.Oe=function hOb(){return new Frb(this)};var gO=sfb(Yye,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1852);feb(417,22,{3:1,34:1,22:1,417:1},nOb);var iOb,jOb,kOb,lOb;var hO=tfb(Yye,'RectangleStripOverlapRemover/OverlapRemovalDirection',417,WI,pOb,oOb);var qOb;feb(226,1,{226:1},sOb);var iO=sfb(Yye,'RectangleStripOverlapRemover/RectangleNode',226);feb(1851,1,Qve,tOb);_.Cd=function uOb(a){TNb(this.a,RD(a,226))};var jO=sfb(Yye,'RectangleStripOverlapRemover/lambda$1$Type',1851);feb(1323,1,fye,xOb);_.Ne=function yOb(a,b){return wOb(RD(a,176),RD(b,176))};_.Fb=function zOb(a){return this===a};_.Oe=function AOb(){return new Frb(this)};var oO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1323);feb(1326,1,{},BOb);_.Kb=function COb(a){return RD(a,334).a};var lO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1326);feb(1327,1,nwe,DOb);_.Mb=function EOb(a){return RD(a,332).a};var mO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1327);feb(1328,1,nwe,FOb);_.Mb=function GOb(a){return RD(a,332).a};var nO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1328);feb(1321,1,fye,IOb);_.Ne=function JOb(a,b){return HOb(RD(a,176),RD(b,176))};_.Fb=function KOb(a){return this===a};_.Oe=function LOb(){return new Frb(this)};var qO=sfb($ye,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1321);feb(1324,1,{},MOb);_.Kb=function NOb(a){return RD(a,334).a};var pO=sfb($ye,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1324);feb(781,1,fye,POb);_.Ne=function QOb(a,b){return OOb(RD(a,176),RD(b,176))};_.Fb=function ROb(a){return this===a};_.Oe=function SOb(){return new Frb(this)};var rO=sfb($ye,'PolyominoCompactor/MinNumOfExtensionsComparator',781);feb(1319,1,fye,UOb);_.Ne=function VOb(a,b){return TOb(RD(a,330),RD(b,330))};_.Fb=function WOb(a){return this===a};_.Oe=function XOb(){return new Frb(this)};var tO=sfb($ye,'PolyominoCompactor/MinPerimeterComparator',1319);feb(1320,1,fye,ZOb);_.Ne=function $Ob(a,b){return YOb(RD(a,330),RD(b,330))};_.Fb=function _Ob(a){return this===a};_.Oe=function aPb(){return new Frb(this)};var sO=sfb($ye,'PolyominoCompactor/MinPerimeterComparatorWithShape',1320);feb(1322,1,fye,cPb);_.Ne=function dPb(a,b){return bPb(RD(a,176),RD(b,176))};_.Fb=function ePb(a){return this===a};_.Oe=function fPb(){return new Frb(this)};var vO=sfb($ye,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1322);feb(1325,1,{},gPb);_.Kb=function hPb(a){return RD(a,334).a};var uO=sfb($ye,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1325);feb(782,1,{},kPb);_.Ve=function lPb(a,b){return jPb(this,RD(a,42),RD(b,176))};var wO=sfb($ye,'SuccessorCombination',782);feb(649,1,{},nPb);_.Ve=function oPb(a,b){var c;return mPb((c=RD(a,42),RD(b,176),c))};var xO=sfb($ye,'SuccessorJitter',649);feb(648,1,{},qPb);_.Ve=function rPb(a,b){var c;return pPb((c=RD(a,42),RD(b,176),c))};var yO=sfb($ye,'SuccessorLineByLine',648);feb(573,1,{},tPb);_.Ve=function uPb(a,b){var c;return sPb((c=RD(a,42),RD(b,176),c))};var zO=sfb($ye,'SuccessorManhattan',573);feb(1344,1,{},wPb);_.Ve=function xPb(a,b){var c;return vPb((c=RD(a,42),RD(b,176),c))};var AO=sfb($ye,'SuccessorMaxNormWindingInMathPosSense',1344);feb(409,1,{},APb);_.Ve=function BPb(a,b){return yPb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var CO=sfb($ye,'SuccessorQuadrantsGeneric',409);feb(1345,1,{},CPb);_.Kb=function DPb(a){return RD(a,334).a};var BO=sfb($ye,'SuccessorQuadrantsGeneric/lambda$0$Type',1345);feb(332,22,{3:1,34:1,22:1,332:1},JPb);_.a=false;var EPb,FPb,GPb,HPb;var DO=tfb(dze,eze,332,WI,LPb,KPb);var MPb;feb(1317,1,{});_.Ib=function UPb(){var a,b,c,d,e,f;c=' ';a=sgb(0);for(e=0;e=0?'b'+a+'['+bUb(this.a)+']':'b['+bUb(this.a)+']'}return 'b_'+kFb(this)};var rP=sfb(Oze,'FBendpoint',250);feb(290,137,{3:1,290:1,96:1,137:1},cUb);_.Ib=function dUb(){return bUb(this)};var sP=sfb(Oze,'FEdge',290);feb(235,137,{3:1,235:1,96:1,137:1},gUb);var tP=sfb(Oze,'FGraph',235);feb(454,309,{3:1,454:1,309:1,96:1,137:1},iUb);_.Ib=function jUb(){return this.b==null||this.b.length==0?'l['+bUb(this.a)+']':'l_'+this.b};var uP=sfb(Oze,'FLabel',454);feb(153,309,{3:1,153:1,309:1,96:1,137:1},lUb);_.Ib=function mUb(){return kUb(this)};_.a=0;var vP=sfb(Oze,'FNode',153);feb(2100,1,{});_.vf=function rUb(a){nUb(this,a)};_.wf=function sUb(){oUb(this)};_.d=0;var xP=sfb(Qze,'AbstractForceModel',2100);feb(641,2100,{641:1},tUb);_.uf=function vUb(a,b){var c,d,e,f,g;qUb(this.f,a,b);e=ojd(ajd(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-ejd(a.e)/2-ejd(b.e)/2);c=fUb(this.e,a,b);c>0?(f=-uUb(d,this.c)*c):(f=yUb(d,this.b)*RD(mQb(a,(yVb(),lVb)),17).a);ijd(e,f/g);return e};_.vf=function wUb(a){nUb(this,a);this.a=RD(mQb(a,(yVb(),aVb)),17).a;this.c=Kfb(UD(mQb(a,rVb)));this.b=Kfb(UD(mQb(a,nVb)))};_.xf=function xUb(a){return a0&&(f-=AUb(d,this.a)*c);ijd(e,f*this.b/g);return e};_.vf=function CUb(a){var b,c,d,e,f,g,h;nUb(this,a);this.b=Kfb(UD(mQb(a,(yVb(),sVb))));this.c=this.b/RD(mQb(a,aVb),17).a;d=a.e.c.length;f=0;e=0;for(h=new Anb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var zP=sfb(Qze,'FruchtermanReingoldModel',642);feb(860,1,Eye,PUb);_.hf=function QUb(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Rze),''),'Force Model'),'Determines the model for force calculation.'),IUb),(kid(),eid)),BP),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Sze),''),'Iterations'),'The number of iterations on the force model.'),sgb(300)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Tze),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Uze),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),Vze),did),VI),xsb(Whd))));zgd(a,Uze,Rze,NUb);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Wze),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),did),VI),xsb(Whd))));zgd(a,Wze,Rze,KUb);zVb((new AVb,a))};var GUb,HUb,IUb,JUb,KUb,LUb,MUb,NUb;var AP=sfb(Xze,'ForceMetaDataProvider',860);feb(432,22,{3:1,34:1,22:1,432:1},UUb);var RUb,SUb;var BP=tfb(Xze,'ForceModelStrategy',432,WI,WUb,VUb);var XUb;feb(Awe,1,Eye,AVb);_.hf=function BVb(a){zVb(a)};var ZUb,$Ub,_Ub,aVb,bVb,cVb,dVb,eVb,fVb,gVb,hVb,iVb,jVb,kVb,lVb,mVb,nVb,oVb,pVb,qVb,rVb,sVb,tVb,uVb,vVb,wVb,xVb;var DP=sfb(Xze,'ForceOptions',Awe);feb(1001,1,{},CVb);_.sf=function DVb(){var a;return a=new TTb,a};_.tf=function EVb(a){};var CP=sfb(Xze,'ForceOptions/ForceFactory',1001);var FVb,GVb,HVb,IVb;feb(861,1,Eye,RVb);_.hf=function SVb(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,vAe),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Geb(),false)),(kid(),cid)),QI),xsb((Yhd(),Vhd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,wAe),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Thd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,xAe),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),MVb),eid),JP),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,yAe),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),Vze),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,zAe),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),sgb(lve)),gid),bJ),xsb(Whd))));eWb((new fWb,a))};var KVb,LVb,MVb,NVb,OVb,PVb;var EP=sfb(Xze,'StressMetaDataProvider',861);feb(1004,1,Eye,fWb);_.hf=function gWb(a){eWb(a)};var TVb,UVb,VVb,WVb,XVb,YVb,ZVb,$Vb,_Vb,aWb,bWb,cWb;var GP=sfb(Xze,'StressOptions',1004);feb(1005,1,{},hWb);_.sf=function iWb(){var a;return a=new kWb,a};_.tf=function jWb(a){};var FP=sfb(Xze,'StressOptions/StressFactory',1005);feb(1110,205,oze,kWb);_.rf=function lWb(a,b){var c,d,e,f,g;b.Ug(BAe,1);Heb(TD(Gxd(a,(dWb(),XVb))))?Heb(TD(Gxd(a,bWb)))||RFb((c=new SFb((lud(),new zud(a))),c)):QTb(new TTb,a,b.eh(1));e=KTb(a);d=CTb(this.a,e);for(g=d.Kc();g.Ob();){f=RD(g.Pb(),235);if(f.e.c.length<=1){continue}uWb(this.b,f);sWb(this.b);Umb(f.d,new mWb)}e=BTb(d);JTb(e);b.Vg()};var IP=sfb(DAe,'StressLayoutProvider',1110);feb(1111,1,Qve,mWb);_.Cd=function nWb(a){hUb(RD(a,454))};var HP=sfb(DAe,'StressLayoutProvider/lambda$0$Type',1111);feb(1002,1,{},vWb);_.c=0;_.e=0;_.g=0;var LP=sfb(DAe,'StressMajorization',1002);feb(391,22,{3:1,34:1,22:1,391:1},BWb);var xWb,yWb,zWb;var JP=tfb(DAe,'StressMajorization/Dimension',391,WI,DWb,CWb);var EWb;feb(1003,1,fye,GWb);_.Ne=function HWb(a,b){return wWb(this.a,RD(a,153),RD(b,153))};_.Fb=function IWb(a){return this===a};_.Oe=function JWb(){return new Frb(this)};var KP=sfb(DAe,'StressMajorization/lambda$0$Type',1003);feb(1192,1,{},RWb);var OP=sfb(FAe,'ElkLayered',1192);feb(1193,1,Qve,UWb);_.Cd=function VWb(a){SWb(this.a,RD(a,36))};var MP=sfb(FAe,'ElkLayered/lambda$0$Type',1193);feb(1194,1,Qve,WWb);_.Cd=function XWb(a){TWb(this.a,RD(a,36))};var NP=sfb(FAe,'ElkLayered/lambda$1$Type',1194);feb(1281,1,{},dXb);var YWb,ZWb,$Wb;var SP=sfb(FAe,'GraphConfigurator',1281);feb(770,1,Qve,fXb);_.Cd=function gXb(a){aXb(this.a,RD(a,10))};var PP=sfb(FAe,'GraphConfigurator/lambda$0$Type',770);feb(771,1,{},hXb);_.Kb=function iXb(a){return _Wb(),new SDb(null,new Swb(RD(a,30).a,16))};var QP=sfb(FAe,'GraphConfigurator/lambda$1$Type',771);feb(772,1,Qve,jXb);_.Cd=function kXb(a){aXb(this.a,RD(a,10))};var RP=sfb(FAe,'GraphConfigurator/lambda$2$Type',772);feb(1109,205,oze,lXb);_.rf=function mXb(a,b){var c;c=c5b(new k5b,a);dE(Gxd(a,(yCc(),IAc)))===dE((Fnd(),Cnd))?LWb(this.a,c,b):MWb(this.a,c,b);b.$g()||J5b(new N5b,c)};var TP=sfb(FAe,'LayeredLayoutProvider',1109);feb(367,22,{3:1,34:1,22:1,367:1},tXb);var nXb,oXb,pXb,qXb,rXb;var UP=tfb(FAe,'LayeredPhases',367,WI,vXb,uXb);var wXb;feb(1717,1,{},EXb);_.i=0;var yXb;var XP=sfb(GAe,'ComponentsToCGraphTransformer',1717);var jYb;feb(1718,1,{},FXb);_.yf=function GXb(a,b){return $wnd.Math.min(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};_.zf=function HXb(a,b){return $wnd.Math.min(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};var VP=sfb(GAe,'ComponentsToCGraphTransformer/1',1718);feb(86,1,{86:1});_.i=0;_.k=true;_.o=pxe;var bQ=sfb(HAe,'CNode',86);feb(470,86,{470:1,86:1},IXb,JXb);_.Ib=function KXb(){return ''};var WP=sfb(GAe,'ComponentsToCGraphTransformer/CRectNode',470);feb(1688,1,{},XXb);var LXb,MXb;var $P=sfb(GAe,'OneDimensionalComponentsCompaction',1688);feb(1689,1,{},$Xb);_.Kb=function _Xb(a){return YXb(RD(a,42))};_.Fb=function aYb(a){return this===a};var YP=sfb(GAe,'OneDimensionalComponentsCompaction/lambda$0$Type',1689);feb(1690,1,{},bYb);_.Kb=function cYb(a){return ZXb(RD(a,42))};_.Fb=function dYb(a){return this===a};var ZP=sfb(GAe,'OneDimensionalComponentsCompaction/lambda$1$Type',1690);feb(1720,1,{},fYb);var _P=sfb(HAe,'CGraph',1720);feb(194,1,{194:1},iYb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=pxe;var aQ=sfb(HAe,'CGroup',194);feb(1719,1,{},lYb);_.yf=function mYb(a,b){return $wnd.Math.max(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};_.zf=function nYb(a,b){return $wnd.Math.max(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};var cQ=sfb(HAe,kye,1719);feb(1721,1,{},EYb);_.d=false;var oYb;var eQ=sfb(HAe,pye,1721);feb(1722,1,{},FYb);_.Kb=function GYb(a){return pYb(),Geb(),RD(RD(a,42).a,86).d.e!=0?true:false};_.Fb=function HYb(a){return this===a};var dQ=sfb(HAe,qye,1722);feb(833,1,{},KYb);_.a=false;_.b=false;_.c=false;_.d=false;var fQ=sfb(HAe,rye,833);feb(1898,1,{},QYb);var kQ=sfb(IAe,sye,1898);var wQ=ufb(JAe,hye);feb(1899,1,{382:1},UYb);_.bf=function VYb(a){SYb(this,RD(a,476))};var hQ=sfb(IAe,tye,1899);feb(Owe,1,fye,XYb);_.Ne=function YYb(a,b){return WYb(RD(a,86),RD(b,86))};_.Fb=function ZYb(a){return this===a};_.Oe=function $Yb(){return new Frb(this)};var gQ=sfb(IAe,uye,Owe);feb(476,1,{476:1},_Yb);_.a=false;var iQ=sfb(IAe,vye,476);feb(1901,1,fye,aZb);_.Ne=function bZb(a,b){return RYb(RD(a,476),RD(b,476))};_.Fb=function cZb(a){return this===a};_.Oe=function dZb(){return new Frb(this)};var jQ=sfb(IAe,wye,1901);feb(148,1,{148:1},eZb,fZb);_.Fb=function gZb(a){var b;if(a==null){return false}if(mQ!=rb(a)){return false}b=RD(a,148);return Fvb(this.c,b.c)&&Fvb(this.d,b.d)};_.Hb=function hZb(){return Tnb(cD(WC(jJ,1),rve,1,5,[this.c,this.d]))};_.Ib=function iZb(){return '('+this.c+pve+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var mQ=sfb(JAe,'Point',148);feb(416,22,{3:1,34:1,22:1,416:1},qZb);var jZb,kZb,lZb,mZb;var lQ=tfb(JAe,'Point/Quadrant',416,WI,uZb,tZb);var vZb;feb(1708,1,{},EZb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var xZb,yZb,zZb,AZb,BZb;var vQ=sfb(JAe,'RectilinearConvexHull',1708);feb(583,1,{382:1},PZb);_.bf=function QZb(a){OZb(this,RD(a,148))};_.b=0;var MZb;var oQ=sfb(JAe,'RectilinearConvexHull/MaximalElementsEventHandler',583);feb(1710,1,fye,SZb);_.Ne=function TZb(a,b){return RZb(UD(a),UD(b))};_.Fb=function UZb(a){return this===a};_.Oe=function VZb(){return new Frb(this)};var nQ=sfb(JAe,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1710);feb(1709,1,{382:1},XZb);_.bf=function YZb(a){WZb(this,RD(a,148))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var pQ=sfb(JAe,'RectilinearConvexHull/RectangleEventHandler',1709);feb(1711,1,fye,ZZb);_.Ne=function $Zb(a,b){return GZb(RD(a,148),RD(b,148))};_.Fb=function _Zb(a){return this===a};_.Oe=function a$b(){return new Frb(this)};var qQ=sfb(JAe,'RectilinearConvexHull/lambda$0$Type',1711);feb(1712,1,fye,b$b);_.Ne=function c$b(a,b){return HZb(RD(a,148),RD(b,148))};_.Fb=function d$b(a){return this===a};_.Oe=function e$b(){return new Frb(this)};var rQ=sfb(JAe,'RectilinearConvexHull/lambda$1$Type',1712);feb(1713,1,fye,f$b);_.Ne=function g$b(a,b){return IZb(RD(a,148),RD(b,148))};_.Fb=function h$b(a){return this===a};_.Oe=function i$b(){return new Frb(this)};var sQ=sfb(JAe,'RectilinearConvexHull/lambda$2$Type',1713);feb(1714,1,fye,j$b);_.Ne=function k$b(a,b){return JZb(RD(a,148),RD(b,148))};_.Fb=function l$b(a){return this===a};_.Oe=function m$b(){return new Frb(this)};var tQ=sfb(JAe,'RectilinearConvexHull/lambda$3$Type',1714);feb(1715,1,fye,n$b);_.Ne=function o$b(a,b){return KZb(RD(a,148),RD(b,148))};_.Fb=function p$b(a){return this===a};_.Oe=function q$b(){return new Frb(this)};var uQ=sfb(JAe,'RectilinearConvexHull/lambda$4$Type',1715);feb(1716,1,{},s$b);var xQ=sfb(JAe,'Scanline',1716);feb(2104,1,{});var yQ=sfb(KAe,'AbstractGraphPlacer',2104);feb(335,1,{335:1},C$b);_.Ff=function D$b(a){if(this.Gf(a)){Rc(this.b,RD(mQb(a,(Ywc(),ewc)),21),a);return true}else{return false}};_.Gf=function E$b(a){var b,c,d,e;b=RD(mQb(a,(Ywc(),ewc)),21);e=RD(Qc(y$b,b),21);for(d=e.Kc();d.Ob();){c=RD(d.Pb(),21);if(!RD(Qc(this.b,c),15).dc()){return false}}return true};var y$b;var BQ=sfb(KAe,'ComponentGroup',335);feb(779,2104,{},J$b);_.Hf=function K$b(a){var b,c;for(c=new Anb(this.a);c.ac){k=0;l+=h+d;h=0}i=f.c;w$b(f,k+i.a,l+i.b);hjd(i);e=$wnd.Math.max(e,k+j.a);h=$wnd.Math.max(h,j.b);k+=j.a+d}b.f.a=e;b.f.b=l+h};_.Jf=function Y_b(a,b){var c,d,e,f,g;if(dE(mQb(b,(yCc(),Yzc)))===dE((U$b(),T$b))){for(d=a.Kc();d.Ob();){c=RD(d.Pb(),36);g=0;for(f=new Anb(c.a);f.ac&&!RD(mQb(f,(Ywc(),ewc)),21).Hc((qpd(),Yod))||!!i&&RD(mQb(i,(Ywc(),ewc)),21).Hc((qpd(),Xod))||RD(mQb(f,(Ywc(),ewc)),21).Hc((qpd(),ppd))){m=l;n+=h+d;h=0}j=f.c;RD(mQb(f,(Ywc(),ewc)),21).Hc((qpd(),Yod))&&(m=e+d);w$b(f,m+j.a,n+j.b);e=$wnd.Math.max(e,m+k.a);RD(mQb(f,ewc),21).Hc(npd)&&(l=$wnd.Math.max(l,m+k.a+d));hjd(j);h=$wnd.Math.max(h,k.b);m+=k.a+d;i=f}b.f.a=e;b.f.b=n+h};_.Jf=function __b(a,b){};var OQ=sfb(KAe,'ModelOrderRowGraphPlacer',1313);feb(1311,1,fye,b0b);_.Ne=function c0b(a,b){return a0b(RD(a,36),RD(b,36))};_.Fb=function d0b(a){return this===a};_.Oe=function e0b(){return new Frb(this)};var PQ=sfb(KAe,'SimpleRowGraphPlacer/1',1311);var f0b;feb(1280,1,xye,l0b);_.Lb=function m0b(a){var b;return b=RD(mQb(RD(a,249).b,(yCc(),RAc)),75),!!b&&b.b!=0};_.Fb=function n0b(a){return this===a};_.Mb=function o0b(a){var b;return b=RD(mQb(RD(a,249).b,(yCc(),RAc)),75),!!b&&b.b!=0};var RQ=sfb(PAe,'CompoundGraphPostprocessor/1',1280);feb(1279,1,QAe,E0b);_.Kf=function F0b(a,b){y0b(this,RD(a,36),b)};var TQ=sfb(PAe,'CompoundGraphPreprocessor',1279);feb(453,1,{453:1},G0b);_.c=false;var SQ=sfb(PAe,'CompoundGraphPreprocessor/ExternalPort',453);feb(249,1,{249:1},J0b);_.Ib=function K0b(){return ps(this.c)+':'+_0b(this.b)};var VQ=sfb(PAe,'CrossHierarchyEdge',249);feb(777,1,fye,M0b);_.Ne=function N0b(a,b){return L0b(this,RD(a,249),RD(b,249))};_.Fb=function O0b(a){return this===a};_.Oe=function Q0b(){return new Frb(this)};var UQ=sfb(PAe,'CrossHierarchyEdgeComparator',777);feb(305,137,{3:1,305:1,96:1,137:1});_.p=0;var dR=sfb(RAe,'LGraphElement',305);feb(18,305,{3:1,18:1,305:1,96:1,137:1},a1b);_.Ib=function b1b(){return _0b(this)};var WQ=sfb(RAe,'LEdge',18);feb(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},d1b);_.Jc=function e1b(a){xgb(this,a)};_.Kc=function f1b(){return new Anb(this.b)};_.Ib=function g1b(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var eR=sfb(RAe,'LGraph',36);var h1b;feb(666,1,{});_.Lf=function j1b(){return this.e.n};_.of=function k1b(a){return mQb(this.e,a)};_.Mf=function l1b(){return this.e.o};_.Nf=function m1b(){return this.e.p};_.pf=function n1b(a){return nQb(this.e,a)};_.Of=function o1b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.Pf=function p1b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.Qf=function q1b(a){this.e.p=a};var XQ=sfb(RAe,'LGraphAdapters/AbstractLShapeAdapter',666);feb(474,1,{853:1},r1b);_.Rf=function s1b(){var a,b;if(!this.b){this.b=ev(this.a.b.c.length);for(b=new Anb(this.a.b);b.a0&&M2b((BFb(c-1,b.length),b.charCodeAt(c-1)),ZAe)){--c}if(g> ',a),M3b(c));Zhb(Yhb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var D3b,E3b,F3b,G3b,H3b,I3b;var xR=sfb(RAe,'LPort',12);feb(408,1,Vve,T3b);_.Jc=function U3b(a){xgb(this,a)};_.Kc=function V3b(){var a;a=new Anb(this.a.e);return new W3b(a)};var mR=sfb(RAe,'LPort/1',408);feb(1309,1,Ave,W3b);_.Nb=function X3b(a){Ztb(this,a)};_.Pb=function Z3b(){return RD(ynb(this.a),18).c};_.Ob=function Y3b(){return xnb(this.a)};_.Qb=function $3b(){znb(this.a)};var lR=sfb(RAe,'LPort/1/1',1309);feb(369,1,Vve,_3b);_.Jc=function a4b(a){xgb(this,a)};_.Kc=function b4b(){var a;return a=new Anb(this.a.g),new c4b(a)};var oR=sfb(RAe,'LPort/2',369);feb(776,1,Ave,c4b);_.Nb=function d4b(a){Ztb(this,a)};_.Pb=function f4b(){return RD(ynb(this.a),18).d};_.Ob=function e4b(){return xnb(this.a)};_.Qb=function g4b(){znb(this.a)};var nR=sfb(RAe,'LPort/2/1',776);feb(1302,1,Vve,h4b);_.Jc=function i4b(a){xgb(this,a)};_.Kc=function j4b(){return new l4b(this)};var qR=sfb(RAe,'LPort/CombineIter',1302);feb(208,1,Ave,l4b);_.Nb=function m4b(a){Ztb(this,a)};_.Qb=function p4b(){$tb()};_.Ob=function n4b(){return k4b(this)};_.Pb=function o4b(){return xnb(this.a)?ynb(this.a):ynb(this.b)};var pR=sfb(RAe,'LPort/CombineIter/1',208);feb(1303,1,xye,r4b);_.Lb=function s4b(a){return q4b(a)};_.Fb=function t4b(a){return this===a};_.Mb=function u4b(a){return J3b(),RD(a,12).g.c.length!=0};var rR=sfb(RAe,'LPort/lambda$0$Type',1303);feb(1304,1,xye,w4b);_.Lb=function x4b(a){return v4b(a)};_.Fb=function y4b(a){return this===a};_.Mb=function z4b(a){return J3b(),RD(a,12).e.c.length!=0};var sR=sfb(RAe,'LPort/lambda$1$Type',1304);feb(1305,1,xye,A4b);_.Lb=function B4b(a){return J3b(),RD(a,12).j==(qpd(),Yod)};_.Fb=function C4b(a){return this===a};_.Mb=function D4b(a){return J3b(),RD(a,12).j==(qpd(),Yod)};var tR=sfb(RAe,'LPort/lambda$2$Type',1305);feb(1306,1,xye,E4b);_.Lb=function F4b(a){return J3b(),RD(a,12).j==(qpd(),Xod)};_.Fb=function G4b(a){return this===a};_.Mb=function H4b(a){return J3b(),RD(a,12).j==(qpd(),Xod)};var uR=sfb(RAe,'LPort/lambda$3$Type',1306);feb(1307,1,xye,I4b);_.Lb=function J4b(a){return J3b(),RD(a,12).j==(qpd(),npd)};_.Fb=function K4b(a){return this===a};_.Mb=function L4b(a){return J3b(),RD(a,12).j==(qpd(),npd)};var vR=sfb(RAe,'LPort/lambda$4$Type',1307);feb(1308,1,xye,M4b);_.Lb=function N4b(a){return J3b(),RD(a,12).j==(qpd(),ppd)};_.Fb=function O4b(a){return this===a};_.Mb=function P4b(a){return J3b(),RD(a,12).j==(qpd(),ppd)};var wR=sfb(RAe,'LPort/lambda$5$Type',1308);feb(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},R4b);_.Jc=function S4b(a){xgb(this,a)};_.Kc=function T4b(){return new Anb(this.a)};_.Ib=function U4b(){return 'L_'+Wmb(this.b.b,this,0)+Fe(this.a)};var zR=sfb(RAe,'Layer',30);feb(1330,1,{},k5b);var JR=sfb(cBe,dBe,1330);feb(1334,1,{},o5b);_.Kb=function p5b(a){return AGd(RD(a,84))};var AR=sfb(cBe,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1334);feb(1337,1,{},q5b);_.Kb=function r5b(a){return AGd(RD(a,84))};var BR=sfb(cBe,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1337);feb(1331,1,Qve,s5b);_.Cd=function t5b(a){$4b(this.a,RD(a,123))};var CR=sfb(cBe,Nze,1331);feb(1332,1,Qve,u5b);_.Cd=function v5b(a){$4b(this.a,RD(a,123))};var DR=sfb(cBe,eBe,1332);feb(1333,1,{},w5b);_.Kb=function x5b(a){return new SDb(null,new Swb(mzd(RD(a,74)),16))};var ER=sfb(cBe,fBe,1333);feb(1335,1,nwe,y5b);_.Mb=function z5b(a){return l5b(this.a,RD(a,27))};var FR=sfb(cBe,gBe,1335);feb(1336,1,{},A5b);_.Kb=function B5b(a){return new SDb(null,new Swb(lzd(RD(a,74)),16))};var GR=sfb(cBe,'ElkGraphImporter/lambda$5$Type',1336);feb(1338,1,nwe,C5b);_.Mb=function D5b(a){return m5b(this.a,RD(a,27))};var HR=sfb(cBe,'ElkGraphImporter/lambda$7$Type',1338);feb(1339,1,nwe,E5b);_.Mb=function F5b(a){return n5b(RD(a,74))};var IR=sfb(cBe,'ElkGraphImporter/lambda$8$Type',1339);feb(1297,1,{},N5b);var G5b;var OR=sfb(cBe,'ElkGraphLayoutTransferrer',1297);feb(1298,1,nwe,Q5b);_.Mb=function R5b(a){return O5b(this.a,RD(a,18))};var KR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$0$Type',1298);feb(1299,1,Qve,S5b);_.Cd=function T5b(a){H5b();Rmb(this.a,RD(a,18))};var LR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$1$Type',1299);feb(1300,1,nwe,U5b);_.Mb=function V5b(a){return P5b(this.a,RD(a,18))};var MR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$2$Type',1300);feb(1301,1,Qve,W5b);_.Cd=function X5b(a){H5b();Rmb(this.a,RD(a,18))};var NR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$3$Type',1301);feb(819,1,{},e6b);var PR=sfb(hBe,'BiLinkedHashMultiMap',819);feb(1550,1,QAe,h6b);_.Kf=function i6b(a,b){f6b(RD(a,36),b)};var SR=sfb(hBe,'CommentNodeMarginCalculator',1550);feb(1551,1,{},j6b);_.Kb=function k6b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var QR=sfb(hBe,'CommentNodeMarginCalculator/lambda$0$Type',1551);feb(1552,1,Qve,l6b);_.Cd=function m6b(a){g6b(RD(a,10))};var RR=sfb(hBe,'CommentNodeMarginCalculator/lambda$1$Type',1552);feb(1553,1,QAe,q6b);_.Kf=function r6b(a,b){o6b(RD(a,36),b)};var TR=sfb(hBe,'CommentPostprocessor',1553);feb(1554,1,QAe,v6b);_.Kf=function w6b(a,b){s6b(RD(a,36),b)};var UR=sfb(hBe,'CommentPreprocessor',1554);feb(1555,1,QAe,y6b);_.Kf=function z6b(a,b){x6b(RD(a,36),b)};var VR=sfb(hBe,'ConstraintsPostprocessor',1555);feb(1556,1,QAe,G6b);_.Kf=function H6b(a,b){E6b(RD(a,36),b)};var WR=sfb(hBe,'EdgeAndLayerConstraintEdgeReverser',1556);feb(1557,1,QAe,K6b);_.Kf=function M6b(a,b){I6b(RD(a,36),b)};var $R=sfb(hBe,'EndLabelPostprocessor',1557);feb(1558,1,{},N6b);_.Kb=function O6b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var XR=sfb(hBe,'EndLabelPostprocessor/lambda$0$Type',1558);feb(1559,1,nwe,P6b);_.Mb=function Q6b(a){return L6b(RD(a,10))};var YR=sfb(hBe,'EndLabelPostprocessor/lambda$1$Type',1559);feb(1560,1,Qve,R6b);_.Cd=function S6b(a){J6b(RD(a,10))};var ZR=sfb(hBe,'EndLabelPostprocessor/lambda$2$Type',1560);feb(1561,1,QAe,b7b);_.Kf=function e7b(a,b){Z6b(RD(a,36),b)};var fS=sfb(hBe,'EndLabelPreprocessor',1561);feb(1562,1,{},f7b);_.Kb=function g7b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var _R=sfb(hBe,'EndLabelPreprocessor/lambda$0$Type',1562);feb(1563,1,Qve,h7b);_.Cd=function i7b(a){V6b(this.a,this.b,this.c,RD(a,10))};_.a=0;_.b=0;_.c=false;var aS=sfb(hBe,'EndLabelPreprocessor/lambda$1$Type',1563);feb(1564,1,nwe,j7b);_.Mb=function k7b(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Nmd))};var bS=sfb(hBe,'EndLabelPreprocessor/lambda$2$Type',1564);feb(1565,1,Qve,l7b);_.Cd=function m7b(a){Mub(this.a,RD(a,72))};var cS=sfb(hBe,'EndLabelPreprocessor/lambda$3$Type',1565);feb(1566,1,nwe,n7b);_.Mb=function o7b(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Mmd))};var dS=sfb(hBe,'EndLabelPreprocessor/lambda$4$Type',1566);feb(1567,1,Qve,p7b);_.Cd=function q7b(a){Mub(this.a,RD(a,72))};var eS=sfb(hBe,'EndLabelPreprocessor/lambda$5$Type',1567);feb(1615,1,QAe,z7b);_.Kf=function A7b(a,b){w7b(RD(a,36),b)};var r7b;var nS=sfb(hBe,'EndLabelSorter',1615);feb(1616,1,fye,C7b);_.Ne=function D7b(a,b){return B7b(RD(a,466),RD(b,466))};_.Fb=function E7b(a){return this===a};_.Oe=function F7b(){return new Frb(this)};var gS=sfb(hBe,'EndLabelSorter/1',1616);feb(466,1,{466:1},G7b);var hS=sfb(hBe,'EndLabelSorter/LabelGroup',466);feb(1617,1,{},H7b);_.Kb=function I7b(a){return s7b(),new SDb(null,new Swb(RD(a,30).a,16))};var iS=sfb(hBe,'EndLabelSorter/lambda$0$Type',1617);feb(1618,1,nwe,J7b);_.Mb=function K7b(a){return s7b(),RD(a,10).k==(r3b(),p3b)};var jS=sfb(hBe,'EndLabelSorter/lambda$1$Type',1618);feb(1619,1,Qve,L7b);_.Cd=function M7b(a){x7b(RD(a,10))};var kS=sfb(hBe,'EndLabelSorter/lambda$2$Type',1619);feb(1620,1,nwe,N7b);_.Mb=function O7b(a){return s7b(),dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Mmd))};var lS=sfb(hBe,'EndLabelSorter/lambda$3$Type',1620);feb(1621,1,nwe,P7b);_.Mb=function Q7b(a){return s7b(),dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Nmd))};var mS=sfb(hBe,'EndLabelSorter/lambda$4$Type',1621);feb(1568,1,QAe,a8b);_.Kf=function b8b(a,b){$7b(this,RD(a,36))};_.b=0;_.c=0;var uS=sfb(hBe,'FinalSplineBendpointsCalculator',1568);feb(1569,1,{},c8b);_.Kb=function d8b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var oS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$0$Type',1569);feb(1570,1,{},e8b);_.Kb=function f8b(a){return new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var pS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$1$Type',1570);feb(1571,1,nwe,g8b);_.Mb=function h8b(a){return !W0b(RD(a,18))};var qS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$2$Type',1571);feb(1572,1,nwe,i8b);_.Mb=function j8b(a){return nQb(RD(a,18),(Ywc(),Twc))};var rS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$3$Type',1572);feb(1573,1,Qve,k8b);_.Cd=function l8b(a){T7b(this.a,RD(a,131))};var sS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$4$Type',1573);feb(1574,1,Qve,m8b);_.Cd=function n8b(a){Eob(RD(a,18).a)};var tS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$5$Type',1574);feb(803,1,QAe,L8b);_.Kf=function M8b(a,b){C8b(this,RD(a,36),b)};var wS=sfb(hBe,'GraphTransformer',803);feb(517,22,{3:1,34:1,22:1,517:1},Q8b);var N8b,O8b;var vS=tfb(hBe,'GraphTransformer/Mode',517,WI,S8b,R8b);var T8b;feb(1575,1,QAe,Z8b);_.Kf=function $8b(a,b){W8b(RD(a,36),b)};var xS=sfb(hBe,'HierarchicalNodeResizingProcessor',1575);feb(1576,1,QAe,f9b);_.Kf=function g9b(a,b){b9b(RD(a,36),b)};var zS=sfb(hBe,'HierarchicalPortConstraintProcessor',1576);feb(1577,1,fye,i9b);_.Ne=function j9b(a,b){return h9b(RD(a,10),RD(b,10))};_.Fb=function k9b(a){return this===a};_.Oe=function l9b(){return new Frb(this)};var yS=sfb(hBe,'HierarchicalPortConstraintProcessor/NodeComparator',1577);feb(1578,1,QAe,o9b);_.Kf=function p9b(a,b){m9b(RD(a,36),b)};var AS=sfb(hBe,'HierarchicalPortDummySizeProcessor',1578);feb(1579,1,QAe,C9b);_.Kf=function D9b(a,b){v9b(this,RD(a,36),b)};_.a=0;var DS=sfb(hBe,'HierarchicalPortOrthogonalEdgeRouter',1579);feb(1580,1,fye,F9b);_.Ne=function G9b(a,b){return E9b(RD(a,10),RD(b,10))};_.Fb=function H9b(a){return this===a};_.Oe=function I9b(){return new Frb(this)};var BS=sfb(hBe,'HierarchicalPortOrthogonalEdgeRouter/1',1580);feb(1581,1,fye,K9b);_.Ne=function L9b(a,b){return J9b(RD(a,10),RD(b,10))};_.Fb=function M9b(a){return this===a};_.Oe=function N9b(){return new Frb(this)};var CS=sfb(hBe,'HierarchicalPortOrthogonalEdgeRouter/2',1581);feb(1582,1,QAe,Q9b);_.Kf=function R9b(a,b){P9b(RD(a,36),b)};var ES=sfb(hBe,'HierarchicalPortPositionProcessor',1582);feb(1583,1,QAe,$9b);_.Kf=function _9b(a,b){Z9b(this,RD(a,36))};_.a=0;_.c=0;var S9b,T9b;var IS=sfb(hBe,'HighDegreeNodeLayeringProcessor',1583);feb(580,1,{580:1},aac);_.b=-1;_.d=-1;var FS=sfb(hBe,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',580);feb(1584,1,{},bac);_.Kb=function cac(a){return U9b(),Z2b(RD(a,10))};_.Fb=function dac(a){return this===a};var GS=sfb(hBe,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1584);feb(1585,1,{},eac);_.Kb=function fac(a){return U9b(),a3b(RD(a,10))};_.Fb=function gac(a){return this===a};var HS=sfb(hBe,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1585);feb(1591,1,QAe,mac);_.Kf=function nac(a,b){lac(this,RD(a,36),b)};var NS=sfb(hBe,'HyperedgeDummyMerger',1591);feb(804,1,{},oac);_.a=false;_.b=false;_.c=false;var JS=sfb(hBe,'HyperedgeDummyMerger/MergeState',804);feb(1592,1,{},pac);_.Kb=function qac(a){return new SDb(null,new Swb(RD(a,30).a,16))};var KS=sfb(hBe,'HyperedgeDummyMerger/lambda$0$Type',1592);feb(1593,1,{},rac);_.Kb=function sac(a){return new SDb(null,new Swb(RD(a,10).j,16))};var LS=sfb(hBe,'HyperedgeDummyMerger/lambda$1$Type',1593);feb(1594,1,Qve,tac);_.Cd=function uac(a){RD(a,12).p=-1};var MS=sfb(hBe,'HyperedgeDummyMerger/lambda$2$Type',1594);feb(1595,1,QAe,xac);_.Kf=function yac(a,b){wac(RD(a,36),b)};var OS=sfb(hBe,'HypernodesProcessor',1595);feb(1596,1,QAe,Aac);_.Kf=function Bac(a,b){zac(RD(a,36),b)};var PS=sfb(hBe,'InLayerConstraintProcessor',1596);feb(1597,1,QAe,Dac);_.Kf=function Eac(a,b){Cac(RD(a,36),b)};var QS=sfb(hBe,'InnermostNodeMarginCalculator',1597);feb(1598,1,QAe,Iac);_.Kf=function Nac(a,b){Hac(this,RD(a,36))};_.a=pxe;_.b=pxe;_.c=oxe;_.d=oxe;var XS=sfb(hBe,'InteractiveExternalPortPositioner',1598);feb(1599,1,{},Oac);_.Kb=function Pac(a){return RD(a,18).d.i};_.Fb=function Qac(a){return this===a};var RS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$0$Type',1599);feb(1600,1,{},Rac);_.Kb=function Sac(a){return Jac(this.a,UD(a))};_.Fb=function Tac(a){return this===a};var SS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$1$Type',1600);feb(1601,1,{},Uac);_.Kb=function Vac(a){return RD(a,18).c.i};_.Fb=function Wac(a){return this===a};var TS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$2$Type',1601);feb(1602,1,{},Xac);_.Kb=function Yac(a){return Kac(this.a,UD(a))};_.Fb=function Zac(a){return this===a};var US=sfb(hBe,'InteractiveExternalPortPositioner/lambda$3$Type',1602);feb(1603,1,{},$ac);_.Kb=function _ac(a){return Lac(this.a,UD(a))};_.Fb=function abc(a){return this===a};var VS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$4$Type',1603);feb(1604,1,{},bbc);_.Kb=function cbc(a){return Mac(this.a,UD(a))};_.Fb=function dbc(a){return this===a};var WS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$5$Type',1604);feb(81,22,{3:1,34:1,22:1,81:1,196:1},icc);_.dg=function jcc(){switch(this.g){case 15:return new Hrc;case 22:return new bsc;case 47:return new ksc;case 28:case 35:return new Ldc;case 32:return new h6b;case 42:return new q6b;case 1:return new v6b;case 41:return new y6b;case 56:return new L8b((P8b(),O8b));case 0:return new L8b((P8b(),N8b));case 2:return new G6b;case 54:return new K6b;case 33:return new b7b;case 51:return new a8b;case 55:return new Z8b;case 13:return new f9b;case 38:return new o9b;case 44:return new C9b;case 40:return new Q9b;case 9:return new $9b;case 49:return new Yjc;case 37:return new mac;case 43:return new xac;case 27:return new Aac;case 30:return new Dac;case 3:return new Iac;case 18:return new scc;case 29:return new ycc;case 5:return new Lcc;case 50:return new Ucc;case 34:return new pdc;case 36:return new Zdc;case 52:return new z7b;case 11:return new fec;case 7:return new pec;case 39:return new Dec;case 45:return new Gec;case 16:return new Kec;case 10:return new _ec;case 48:return new Bfc;case 21:return new Ifc;case 23:return new FKc((RKc(),PKc));case 8:return new Rfc;case 12:return new Zfc;case 4:return new cgc;case 19:return new xgc;case 17:return new Vgc;case 53:return new Ygc;case 6:return new Nhc;case 25:return new ahc;case 46:return new rhc;case 31:return new Yhc;case 14:return new jic;case 26:return new Ssc;case 20:return new yic;case 24:return new FKc((RKc(),QKc));default:throw Adb(new agb(lBe+(this.f!=null?this.f:''+this.g)));}};var ebc,fbc,gbc,hbc,ibc,jbc,kbc,lbc,mbc,nbc,obc,pbc,qbc,rbc,sbc,tbc,ubc,vbc,wbc,xbc,ybc,zbc,Abc,Bbc,Cbc,Dbc,Ebc,Fbc,Gbc,Hbc,Ibc,Jbc,Kbc,Lbc,Mbc,Nbc,Obc,Pbc,Qbc,Rbc,Sbc,Tbc,Ubc,Vbc,Wbc,Xbc,Ybc,Zbc,$bc,_bc,acc,bcc,ccc,dcc,ecc,fcc,gcc;var YS=tfb(hBe,mBe,81,WI,lcc,kcc);var mcc;feb(1605,1,QAe,scc);_.Kf=function tcc(a,b){qcc(RD(a,36),b)};var ZS=sfb(hBe,'InvertedPortProcessor',1605);feb(1606,1,QAe,ycc);_.Kf=function zcc(a,b){xcc(RD(a,36),b)};var bT=sfb(hBe,'LabelAndNodeSizeProcessor',1606);feb(1607,1,nwe,Acc);_.Mb=function Bcc(a){return RD(a,10).k==(r3b(),p3b)};var $S=sfb(hBe,'LabelAndNodeSizeProcessor/lambda$0$Type',1607);feb(1608,1,nwe,Ccc);_.Mb=function Dcc(a){return RD(a,10).k==(r3b(),m3b)};var _S=sfb(hBe,'LabelAndNodeSizeProcessor/lambda$1$Type',1608);feb(1609,1,Qve,Ecc);_.Cd=function Fcc(a){vcc(this.b,this.a,this.c,RD(a,10))};_.a=false;_.c=false;var aT=sfb(hBe,'LabelAndNodeSizeProcessor/lambda$2$Type',1609);feb(1610,1,QAe,Lcc);_.Kf=function Mcc(a,b){Jcc(RD(a,36),b)};var Gcc;var dT=sfb(hBe,'LabelDummyInserter',1610);feb(1611,1,xye,Ncc);_.Lb=function Occ(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Lmd))};_.Fb=function Pcc(a){return this===a};_.Mb=function Qcc(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Lmd))};var cT=sfb(hBe,'LabelDummyInserter/1',1611);feb(1612,1,QAe,Ucc);_.Kf=function Vcc(a,b){Tcc(RD(a,36),b)};var fT=sfb(hBe,'LabelDummyRemover',1612);feb(1613,1,nwe,Wcc);_.Mb=function Xcc(a){return Heb(TD(mQb(RD(a,72),(yCc(),vAc))))};var eT=sfb(hBe,'LabelDummyRemover/lambda$0$Type',1613);feb(1378,1,QAe,pdc);_.Kf=function tdc(a,b){ldc(this,RD(a,36),b)};_.a=null;var Ycc;var mT=sfb(hBe,'LabelDummySwitcher',1378);feb(293,1,{293:1},xdc);_.c=0;_.d=null;_.f=0;var gT=sfb(hBe,'LabelDummySwitcher/LabelDummyInfo',293);feb(1379,1,{},ydc);_.Kb=function zdc(a){return Zcc(),new SDb(null,new Swb(RD(a,30).a,16))};var hT=sfb(hBe,'LabelDummySwitcher/lambda$0$Type',1379);feb(1380,1,nwe,Adc);_.Mb=function Bdc(a){return Zcc(),RD(a,10).k==(r3b(),n3b)};var iT=sfb(hBe,'LabelDummySwitcher/lambda$1$Type',1380);feb(1381,1,{},Cdc);_.Kb=function Ddc(a){return qdc(this.a,RD(a,10))};var jT=sfb(hBe,'LabelDummySwitcher/lambda$2$Type',1381);feb(1382,1,Qve,Edc);_.Cd=function Fdc(a){rdc(this.a,RD(a,293))};var kT=sfb(hBe,'LabelDummySwitcher/lambda$3$Type',1382);feb(1383,1,fye,Gdc);_.Ne=function Hdc(a,b){return sdc(RD(a,293),RD(b,293))};_.Fb=function Idc(a){return this===a};_.Oe=function Jdc(){return new Frb(this)};var lT=sfb(hBe,'LabelDummySwitcher/lambda$4$Type',1383);feb(802,1,QAe,Ldc);_.Kf=function Mdc(a,b){Kdc(RD(a,36),b)};var nT=sfb(hBe,'LabelManagementProcessor',802);feb(1614,1,QAe,Zdc);_.Kf=function $dc(a,b){Tdc(RD(a,36),b)};var oT=sfb(hBe,'LabelSideSelector',1614);feb(1622,1,QAe,fec);_.Kf=function gec(a,b){bec(RD(a,36),b)};var pT=sfb(hBe,'LayerConstraintPostprocessor',1622);feb(1623,1,QAe,pec);_.Kf=function qec(a,b){nec(RD(a,36),b)};var hec;var rT=sfb(hBe,'LayerConstraintPreprocessor',1623);feb(371,22,{3:1,34:1,22:1,371:1},xec);var rec,sec,tec,uec;var qT=tfb(hBe,'LayerConstraintPreprocessor/HiddenNodeConnections',371,WI,zec,yec);var Aec;feb(1624,1,QAe,Dec);_.Kf=function Eec(a,b){Cec(RD(a,36),b)};var sT=sfb(hBe,'LayerSizeAndGraphHeightCalculator',1624);feb(1625,1,QAe,Gec);_.Kf=function Iec(a,b){Fec(RD(a,36),b)};var tT=sfb(hBe,'LongEdgeJoiner',1625);feb(1626,1,QAe,Kec);_.Kf=function Mec(a,b){Jec(RD(a,36),b)};var uT=sfb(hBe,'LongEdgeSplitter',1626);feb(1627,1,QAe,_ec);_.Kf=function cfc(a,b){Vec(this,RD(a,36),b)};_.e=0;_.f=0;_.j=0;_.k=0;_.n=0;_.o=0;var Pec,Qec;var AT=sfb(hBe,'NodePromotion',1627);feb(1628,1,fye,efc);_.Ne=function ffc(a,b){return dfc(RD(a,10),RD(b,10))};_.Fb=function gfc(a){return this===a};_.Oe=function hfc(){return new Frb(this)};var vT=sfb(hBe,'NodePromotion/1',1628);feb(1629,1,fye,jfc);_.Ne=function kfc(a,b){return ifc(RD(a,10),RD(b,10))};_.Fb=function lfc(a){return this===a};_.Oe=function mfc(){return new Frb(this)};var wT=sfb(hBe,'NodePromotion/2',1629);feb(1630,1,{},nfc);_.Kb=function ofc(a){return RD(a,42),Rec(),Geb(),true};_.Fb=function pfc(a){return this===a};var xT=sfb(hBe,'NodePromotion/lambda$0$Type',1630);feb(1631,1,{},qfc);_.Kb=function rfc(a){return afc(this.a,RD(a,42))};_.Fb=function sfc(a){return this===a};_.a=0;var yT=sfb(hBe,'NodePromotion/lambda$1$Type',1631);feb(1632,1,{},tfc);_.Kb=function ufc(a){return bfc(this.a,RD(a,42))};_.Fb=function vfc(a){return this===a};_.a=0;var zT=sfb(hBe,'NodePromotion/lambda$2$Type',1632);feb(1633,1,QAe,Bfc);_.Kf=function Cfc(a,b){wfc(RD(a,36),b)};var BT=sfb(hBe,'NorthSouthPortPostprocessor',1633);feb(1634,1,QAe,Ifc);_.Kf=function Kfc(a,b){Gfc(RD(a,36),b)};var DT=sfb(hBe,'NorthSouthPortPreprocessor',1634);feb(1635,1,fye,Lfc);_.Ne=function Mfc(a,b){return Jfc(RD(a,12),RD(b,12))};_.Fb=function Nfc(a){return this===a};_.Oe=function Ofc(){return new Frb(this)};var CT=sfb(hBe,'NorthSouthPortPreprocessor/lambda$0$Type',1635);feb(1636,1,QAe,Rfc);_.Kf=function Tfc(a,b){Qfc(RD(a,36),b)};var GT=sfb(hBe,'PartitionMidprocessor',1636);feb(1637,1,nwe,Ufc);_.Mb=function Vfc(a){return nQb(RD(a,10),(yCc(),tBc))};var ET=sfb(hBe,'PartitionMidprocessor/lambda$0$Type',1637);feb(1638,1,Qve,Wfc);_.Cd=function Xfc(a){Sfc(this.a,RD(a,10))};var FT=sfb(hBe,'PartitionMidprocessor/lambda$1$Type',1638);feb(1639,1,QAe,Zfc);_.Kf=function $fc(a,b){Yfc(RD(a,36),b)};var HT=sfb(hBe,'PartitionPostprocessor',1639);feb(1640,1,QAe,cgc);_.Kf=function dgc(a,b){agc(RD(a,36),b)};var MT=sfb(hBe,'PartitionPreprocessor',1640);feb(1641,1,nwe,egc);_.Mb=function fgc(a){return nQb(RD(a,10),(yCc(),tBc))};var IT=sfb(hBe,'PartitionPreprocessor/lambda$0$Type',1641);feb(1642,1,{},ggc);_.Kb=function hgc(a){return new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var JT=sfb(hBe,'PartitionPreprocessor/lambda$1$Type',1642);feb(1643,1,nwe,igc);_.Mb=function jgc(a){return _fc(RD(a,18))};var KT=sfb(hBe,'PartitionPreprocessor/lambda$2$Type',1643);feb(1644,1,Qve,kgc);_.Cd=function lgc(a){bgc(RD(a,18))};var LT=sfb(hBe,'PartitionPreprocessor/lambda$3$Type',1644);feb(1645,1,QAe,xgc);_.Kf=function Bgc(a,b){ugc(RD(a,36),b)};var mgc,ngc,ogc,pgc,qgc,rgc;var ST=sfb(hBe,'PortListSorter',1645);feb(1648,1,fye,Dgc);_.Ne=function Egc(a,b){return ygc(RD(a,12),RD(b,12))};_.Fb=function Fgc(a){return this===a};_.Oe=function Ggc(){return new Frb(this)};var NT=sfb(hBe,'PortListSorter/lambda$0$Type',1648);feb(1650,1,fye,Hgc);_.Ne=function Igc(a,b){return zgc(RD(a,12),RD(b,12))};_.Fb=function Jgc(a){return this===a};_.Oe=function Kgc(){return new Frb(this)};var OT=sfb(hBe,'PortListSorter/lambda$1$Type',1650);feb(1646,1,{},Lgc);_.Kb=function Mgc(a){return sgc(),RD(a,12).e};var PT=sfb(hBe,'PortListSorter/lambda$2$Type',1646);feb(1647,1,{},Ngc);_.Kb=function Ogc(a){return sgc(),RD(a,12).g};var QT=sfb(hBe,'PortListSorter/lambda$3$Type',1647);feb(1649,1,fye,Pgc);_.Ne=function Qgc(a,b){return Agc(RD(a,12),RD(b,12))};_.Fb=function Rgc(a){return this===a};_.Oe=function Sgc(){return new Frb(this)};var RT=sfb(hBe,'PortListSorter/lambda$4$Type',1649);feb(1651,1,QAe,Vgc);_.Kf=function Wgc(a,b){Tgc(RD(a,36),b)};var TT=sfb(hBe,'PortSideProcessor',1651);feb(1652,1,QAe,Ygc);_.Kf=function Zgc(a,b){Xgc(RD(a,36),b)};var UT=sfb(hBe,'ReversedEdgeRestorer',1652);feb(1657,1,QAe,ahc);_.Kf=function bhc(a,b){$gc(this,RD(a,36),b)};var _T=sfb(hBe,'SelfLoopPortRestorer',1657);feb(1658,1,{},chc);_.Kb=function dhc(a){return new SDb(null,new Swb(RD(a,30).a,16))};var VT=sfb(hBe,'SelfLoopPortRestorer/lambda$0$Type',1658);feb(1659,1,nwe,ehc);_.Mb=function fhc(a){return RD(a,10).k==(r3b(),p3b)};var WT=sfb(hBe,'SelfLoopPortRestorer/lambda$1$Type',1659);feb(1660,1,nwe,ghc);_.Mb=function hhc(a){return nQb(RD(a,10),(Ywc(),Pwc))};var XT=sfb(hBe,'SelfLoopPortRestorer/lambda$2$Type',1660);feb(1661,1,{},ihc);_.Kb=function jhc(a){return RD(mQb(RD(a,10),(Ywc(),Pwc)),337)};var YT=sfb(hBe,'SelfLoopPortRestorer/lambda$3$Type',1661);feb(1662,1,Qve,khc);_.Cd=function lhc(a){_gc(this.a,RD(a,337))};var ZT=sfb(hBe,'SelfLoopPortRestorer/lambda$4$Type',1662);feb(805,1,Qve,mhc);_.Cd=function nhc(a){Rmc(RD(a,105))};var $T=sfb(hBe,'SelfLoopPortRestorer/lambda$5$Type',805);feb(1663,1,QAe,rhc);_.Kf=function thc(a,b){ohc(RD(a,36),b)};var iU=sfb(hBe,'SelfLoopPostProcessor',1663);feb(1664,1,{},uhc);_.Kb=function vhc(a){return new SDb(null,new Swb(RD(a,30).a,16))};var aU=sfb(hBe,'SelfLoopPostProcessor/lambda$0$Type',1664);feb(1665,1,nwe,whc);_.Mb=function xhc(a){return RD(a,10).k==(r3b(),p3b)};var bU=sfb(hBe,'SelfLoopPostProcessor/lambda$1$Type',1665);feb(1666,1,nwe,yhc);_.Mb=function zhc(a){return nQb(RD(a,10),(Ywc(),Pwc))};var cU=sfb(hBe,'SelfLoopPostProcessor/lambda$2$Type',1666);feb(1667,1,Qve,Ahc);_.Cd=function Bhc(a){phc(RD(a,10))};var dU=sfb(hBe,'SelfLoopPostProcessor/lambda$3$Type',1667);feb(1668,1,{},Chc);_.Kb=function Dhc(a){return new SDb(null,new Swb(RD(a,105).f,1))};var eU=sfb(hBe,'SelfLoopPostProcessor/lambda$4$Type',1668);feb(1669,1,Qve,Ehc);_.Cd=function Fhc(a){qhc(this.a,RD(a,340))};var fU=sfb(hBe,'SelfLoopPostProcessor/lambda$5$Type',1669);feb(1670,1,nwe,Ghc);_.Mb=function Hhc(a){return !!RD(a,105).i};var gU=sfb(hBe,'SelfLoopPostProcessor/lambda$6$Type',1670);feb(1671,1,Qve,Ihc);_.Cd=function Jhc(a){shc(this.a,RD(a,105))};var hU=sfb(hBe,'SelfLoopPostProcessor/lambda$7$Type',1671);feb(1653,1,QAe,Nhc);_.Kf=function Ohc(a,b){Mhc(RD(a,36),b)};var mU=sfb(hBe,'SelfLoopPreProcessor',1653);feb(1654,1,{},Phc);_.Kb=function Qhc(a){return new SDb(null,new Swb(RD(a,105).f,1))};var jU=sfb(hBe,'SelfLoopPreProcessor/lambda$0$Type',1654);feb(1655,1,{},Rhc);_.Kb=function Shc(a){return RD(a,340).a};var kU=sfb(hBe,'SelfLoopPreProcessor/lambda$1$Type',1655);feb(1656,1,Qve,Thc);_.Cd=function Uhc(a){Lhc(RD(a,18))};var lU=sfb(hBe,'SelfLoopPreProcessor/lambda$2$Type',1656);feb(1672,1,QAe,Yhc);_.Kf=function Zhc(a,b){Whc(this,RD(a,36),b)};var sU=sfb(hBe,'SelfLoopRouter',1672);feb(1673,1,{},$hc);_.Kb=function _hc(a){return new SDb(null,new Swb(RD(a,30).a,16))};var nU=sfb(hBe,'SelfLoopRouter/lambda$0$Type',1673);feb(1674,1,nwe,aic);_.Mb=function bic(a){return RD(a,10).k==(r3b(),p3b)};var oU=sfb(hBe,'SelfLoopRouter/lambda$1$Type',1674);feb(1675,1,nwe,cic);_.Mb=function dic(a){return nQb(RD(a,10),(Ywc(),Pwc))};var pU=sfb(hBe,'SelfLoopRouter/lambda$2$Type',1675);feb(1676,1,{},eic);_.Kb=function fic(a){return RD(mQb(RD(a,10),(Ywc(),Pwc)),337)};var qU=sfb(hBe,'SelfLoopRouter/lambda$3$Type',1676);feb(1677,1,Qve,gic);_.Cd=function hic(a){Vhc(this.a,this.b,RD(a,337))};var rU=sfb(hBe,'SelfLoopRouter/lambda$4$Type',1677);feb(1678,1,QAe,jic);_.Kf=function mic(a,b){iic(RD(a,36),b)};var xU=sfb(hBe,'SemiInteractiveCrossMinProcessor',1678);feb(1679,1,nwe,nic);_.Mb=function oic(a){return RD(a,10).k==(r3b(),p3b)};var tU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1679);feb(1680,1,nwe,pic);_.Mb=function qic(a){return lQb(RD(a,10))._b((yCc(),IBc))};var uU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1680);feb(1681,1,fye,ric);_.Ne=function sic(a,b){return kic(RD(a,10),RD(b,10))};_.Fb=function tic(a){return this===a};_.Oe=function uic(){return new Frb(this)};var vU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1681);feb(1682,1,{},vic);_.Ve=function wic(a,b){return lic(RD(a,10),RD(b,10))};var wU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1682);feb(1684,1,QAe,yic);_.Kf=function Cic(a,b){xic(RD(a,36),b)};var AU=sfb(hBe,'SortByInputModelProcessor',1684);feb(1685,1,nwe,Dic);_.Mb=function Eic(a){return RD(a,12).g.c.length!=0};var yU=sfb(hBe,'SortByInputModelProcessor/lambda$0$Type',1685);feb(1686,1,Qve,Fic);_.Cd=function Gic(a){Aic(this.a,RD(a,12))};var zU=sfb(hBe,'SortByInputModelProcessor/lambda$1$Type',1686);feb(1759,817,{},Pic);_.df=function Qic(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new bnb;FDb(CDb(new SDb(null,new Swb(this.c.a.b,16)),new Rjc),new Tjc(this,b));eHb(this,new Zic);Umb(b,new bjc);b.c.length=0;FDb(CDb(new SDb(null,new Swb(this.c.a.b,16)),new djc),new fjc(b));eHb(this,new jjc);Umb(b,new njc);b.c.length=0;c=Wvb(TCb(HDb(new SDb(null,new Swb(this.c.a.b,16)),new pjc(this))),new rjc);FDb(new SDb(null,new Swb(this.c.a.a,16)),new vjc(c,b));eHb(this,new zjc);Umb(b,new Djc);b.c.length=0;break;case 3:d=new bnb;eHb(this,new Ric);e=Wvb(TCb(HDb(new SDb(null,new Swb(this.c.a.b,16)),new Vic(this))),new tjc);FDb(CDb(new SDb(null,new Swb(this.c.a.b,16)),new Fjc),new Hjc(e,d));eHb(this,new Ljc);Umb(d,new Pjc);d.c.length=0;break;default:throw Adb(new Ied);}};_.b=0;var ZU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation',1759);feb(1760,1,xye,Ric);_.Lb=function Sic(a){return ZD(RD(a,60).g,154)};_.Fb=function Tic(a){return this===a};_.Mb=function Uic(a){return ZD(RD(a,60).g,154)};var BU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1760);feb(1761,1,{},Vic);_.Ye=function Wic(a){return Jic(this.a,RD(a,60))};var CU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1761);feb(1769,1,owe,Xic);_.de=function Yic(){Iic(this.a,this.b,-1)};_.b=0;var DU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1769);feb(1771,1,xye,Zic);_.Lb=function $ic(a){return ZD(RD(a,60).g,154)};_.Fb=function _ic(a){return this===a};_.Mb=function ajc(a){return ZD(RD(a,60).g,154)};var EU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1771);feb(1772,1,Qve,bjc);_.Cd=function cjc(a){RD(a,380).de()};var FU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1772);feb(1773,1,nwe,djc);_.Mb=function ejc(a){return ZD(RD(a,60).g,10)};var GU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1773);feb(1775,1,Qve,fjc);_.Cd=function gjc(a){Kic(this.a,RD(a,60))};var HU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1775);feb(1774,1,owe,hjc);_.de=function ijc(){Iic(this.b,this.a,-1)};_.a=0;var IU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1774);feb(1776,1,xye,jjc);_.Lb=function kjc(a){return ZD(RD(a,60).g,10)};_.Fb=function ljc(a){return this===a};_.Mb=function mjc(a){return ZD(RD(a,60).g,10)};var JU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1776);feb(1777,1,Qve,njc);_.Cd=function ojc(a){RD(a,380).de()};var KU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1777);feb(1778,1,{},pjc);_.Ye=function qjc(a){return Lic(this.a,RD(a,60))};var LU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1778);feb(1779,1,{},rjc);_.We=function sjc(){return 0};var MU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1779);feb(1762,1,{},tjc);_.We=function ujc(){return 0};var NU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1762);feb(1781,1,Qve,vjc);_.Cd=function wjc(a){Mic(this.a,this.b,RD(a,316))};_.a=0;var OU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1781);feb(1780,1,owe,xjc);_.de=function yjc(){Hic(this.a,this.b,-1)};_.b=0;var PU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1780);feb(1782,1,xye,zjc);_.Lb=function Ajc(a){return RD(a,60),true};_.Fb=function Bjc(a){return this===a};_.Mb=function Cjc(a){return RD(a,60),true};var QU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1782);feb(1783,1,Qve,Djc);_.Cd=function Ejc(a){RD(a,380).de()};var RU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1783);feb(1763,1,nwe,Fjc);_.Mb=function Gjc(a){return ZD(RD(a,60).g,10)};var SU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1763);feb(1765,1,Qve,Hjc);_.Cd=function Ijc(a){Nic(this.a,this.b,RD(a,60))};_.a=0;var TU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1765);feb(1764,1,owe,Jjc);_.de=function Kjc(){Iic(this.b,this.a,-1)};_.a=0;var UU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1764);feb(1766,1,xye,Ljc);_.Lb=function Mjc(a){return RD(a,60),true};_.Fb=function Njc(a){return this===a};_.Mb=function Ojc(a){return RD(a,60),true};var VU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1766);feb(1767,1,Qve,Pjc);_.Cd=function Qjc(a){RD(a,380).de()};var WU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1767);feb(1768,1,nwe,Rjc);_.Mb=function Sjc(a){return ZD(RD(a,60).g,154)};var XU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1768);feb(1770,1,Qve,Tjc);_.Cd=function Ujc(a){Oic(this.a,this.b,RD(a,60))};var YU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1770);feb(1586,1,QAe,Yjc);_.Kf=function bkc(a,b){Xjc(this,RD(a,36),b)};var Vjc;var bV=sfb(rBe,'HorizontalGraphCompactor',1586);feb(1587,1,{},ckc);_.ff=function dkc(a,b){var c,d,e;if(_jc(a,b)){return 0}c=Zjc(a);d=Zjc(b);if(!!c&&c.k==(r3b(),m3b)||!!d&&d.k==(r3b(),m3b)){return 0}e=RD(mQb(this.a.a,(Ywc(),Qwc)),312);return ZEc(e,c?c.k:(r3b(),o3b),d?d.k:(r3b(),o3b))};_.gf=function ekc(a,b){var c,d,e;if(_jc(a,b)){return 1}c=Zjc(a);d=Zjc(b);e=RD(mQb(this.a.a,(Ywc(),Qwc)),312);return aFc(e,c?c.k:(r3b(),o3b),d?d.k:(r3b(),o3b))};var $U=sfb(rBe,'HorizontalGraphCompactor/1',1587);feb(1588,1,{},fkc);_.ef=function gkc(a,b){return Wjc(),a.a.i==0};var _U=sfb(rBe,'HorizontalGraphCompactor/lambda$0$Type',1588);feb(1589,1,{},hkc);_.ef=function ikc(a,b){return akc(this.a,a,b)};var aV=sfb(rBe,'HorizontalGraphCompactor/lambda$1$Type',1589);feb(1730,1,{},Ckc);var jkc,kkc;var BV=sfb(rBe,'LGraphToCGraphTransformer',1730);feb(1738,1,nwe,Kkc);_.Mb=function Lkc(a){return a!=null};var cV=sfb(rBe,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1738);feb(1731,1,{},Mkc);_.Kb=function Nkc(a){return lkc(),jeb(mQb(RD(RD(a,60).g,10),(Ywc(),Awc)))};var dV=sfb(rBe,'LGraphToCGraphTransformer/lambda$0$Type',1731);feb(1732,1,{},Okc);_.Kb=function Pkc(a){return lkc(),Mlc(RD(RD(a,60).g,154))};var eV=sfb(rBe,'LGraphToCGraphTransformer/lambda$1$Type',1732);feb(1741,1,nwe,Qkc);_.Mb=function Rkc(a){return lkc(),ZD(RD(a,60).g,10)};var fV=sfb(rBe,'LGraphToCGraphTransformer/lambda$10$Type',1741);feb(1742,1,Qve,Skc);_.Cd=function Tkc(a){Dkc(RD(a,60))};var gV=sfb(rBe,'LGraphToCGraphTransformer/lambda$11$Type',1742);feb(1743,1,nwe,Ukc);_.Mb=function Vkc(a){return lkc(),ZD(RD(a,60).g,154)};var hV=sfb(rBe,'LGraphToCGraphTransformer/lambda$12$Type',1743);feb(1747,1,Qve,Wkc);_.Cd=function Xkc(a){Ekc(RD(a,60))};var iV=sfb(rBe,'LGraphToCGraphTransformer/lambda$13$Type',1747);feb(1744,1,Qve,Ykc);_.Cd=function Zkc(a){Fkc(this.a,RD(a,8))};_.a=0;var jV=sfb(rBe,'LGraphToCGraphTransformer/lambda$14$Type',1744);feb(1745,1,Qve,$kc);_.Cd=function _kc(a){Gkc(this.a,RD(a,116))};_.a=0;var kV=sfb(rBe,'LGraphToCGraphTransformer/lambda$15$Type',1745);feb(1746,1,Qve,alc);_.Cd=function blc(a){Hkc(this.a,RD(a,8))};_.a=0;var lV=sfb(rBe,'LGraphToCGraphTransformer/lambda$16$Type',1746);feb(1748,1,{},clc);_.Kb=function dlc(a){return lkc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var mV=sfb(rBe,'LGraphToCGraphTransformer/lambda$17$Type',1748);feb(1749,1,nwe,elc);_.Mb=function flc(a){return lkc(),W0b(RD(a,18))};var nV=sfb(rBe,'LGraphToCGraphTransformer/lambda$18$Type',1749);feb(1750,1,Qve,glc);_.Cd=function hlc(a){ukc(this.a,RD(a,18))};var oV=sfb(rBe,'LGraphToCGraphTransformer/lambda$19$Type',1750);feb(1734,1,Qve,ilc);_.Cd=function jlc(a){vkc(this.a,RD(a,154))};var pV=sfb(rBe,'LGraphToCGraphTransformer/lambda$2$Type',1734);feb(1751,1,{},klc);_.Kb=function llc(a){return lkc(),new SDb(null,new Swb(RD(a,30).a,16))};var qV=sfb(rBe,'LGraphToCGraphTransformer/lambda$20$Type',1751);feb(1752,1,{},mlc);_.Kb=function nlc(a){return lkc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var rV=sfb(rBe,'LGraphToCGraphTransformer/lambda$21$Type',1752);feb(1753,1,{},olc);_.Kb=function plc(a){return lkc(),RD(mQb(RD(a,18),(Ywc(),Twc)),15)};var sV=sfb(rBe,'LGraphToCGraphTransformer/lambda$22$Type',1753);feb(1754,1,nwe,qlc);_.Mb=function rlc(a){return Ikc(RD(a,15))};var tV=sfb(rBe,'LGraphToCGraphTransformer/lambda$23$Type',1754);feb(1755,1,Qve,slc);_.Cd=function tlc(a){nkc(this.a,RD(a,15))};var uV=sfb(rBe,'LGraphToCGraphTransformer/lambda$24$Type',1755);feb(1733,1,Qve,ulc);_.Cd=function vlc(a){wkc(this.a,this.b,RD(a,154))};var vV=sfb(rBe,'LGraphToCGraphTransformer/lambda$3$Type',1733);feb(1735,1,{},wlc);_.Kb=function xlc(a){return lkc(),new SDb(null,new Swb(RD(a,30).a,16))};var wV=sfb(rBe,'LGraphToCGraphTransformer/lambda$4$Type',1735);feb(1736,1,{},ylc);_.Kb=function zlc(a){return lkc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var xV=sfb(rBe,'LGraphToCGraphTransformer/lambda$5$Type',1736);feb(1737,1,{},Alc);_.Kb=function Blc(a){return lkc(),RD(mQb(RD(a,18),(Ywc(),Twc)),15)};var yV=sfb(rBe,'LGraphToCGraphTransformer/lambda$6$Type',1737);feb(1739,1,Qve,Clc);_.Cd=function Dlc(a){Jkc(this.a,RD(a,15))};var zV=sfb(rBe,'LGraphToCGraphTransformer/lambda$8$Type',1739);feb(1740,1,Qve,Elc);_.Cd=function Flc(a){xkc(this.a,this.b,RD(a,154))};var AV=sfb(rBe,'LGraphToCGraphTransformer/lambda$9$Type',1740);feb(1729,1,{},Jlc);_.cf=function Klc(a){var b,c,d,e,f;this.a=a;this.d=new BIb;this.c=$C(DN,rve,125,this.a.a.a.c.length,0,1);this.b=0;for(c=new Anb(this.a.a.a);c.a=p){Rmb(f,sgb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.pg=function Psc(){return false};var XW=sfb(zBe,'MSDCutIndexHeuristic',816);feb(1683,1,QAe,Ssc);_.Kf=function Tsc(a,b){Rsc(RD(a,36),b)};var YW=sfb(zBe,'SingleEdgeGraphWrapper',1683);feb(232,22,{3:1,34:1,22:1,232:1},ctc);var Xsc,Ysc,Zsc,$sc,_sc,atc;var ZW=tfb(ABe,'CenterEdgeLabelPlacementStrategy',232,WI,etc,dtc);var ftc;feb(431,22,{3:1,34:1,22:1,431:1},ktc);var htc,itc;var $W=tfb(ABe,'ConstraintCalculationStrategy',431,WI,mtc,ltc);var ntc;feb(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},utc);_.dg=function wtc(){return ttc(this)};_.qg=function vtc(){return ttc(this)};var ptc,qtc,rtc;var _W=tfb(ABe,'CrossingMinimizationStrategy',322,WI,ytc,xtc);var ztc;feb(351,22,{3:1,34:1,22:1,351:1},Ftc);var Btc,Ctc,Dtc;var aX=tfb(ABe,'CuttingStrategy',351,WI,Htc,Gtc);var Itc;feb(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},Rtc);_.dg=function Ttc(){return Qtc(this)};_.qg=function Stc(){return Qtc(this)};var Ktc,Ltc,Mtc,Ntc,Otc;var bX=tfb(ABe,'CycleBreakingStrategy',348,WI,Vtc,Utc);var Wtc;feb(428,22,{3:1,34:1,22:1,428:1},_tc);var Ytc,Ztc;var cX=tfb(ABe,'DirectionCongruency',428,WI,buc,auc);var cuc;feb(460,22,{3:1,34:1,22:1,460:1},iuc);var euc,fuc,guc;var dX=tfb(ABe,'EdgeConstraint',460,WI,kuc,juc);var luc;feb(283,22,{3:1,34:1,22:1,283:1},vuc);var nuc,ouc,puc,quc,ruc,suc;var eX=tfb(ABe,'EdgeLabelSideSelection',283,WI,xuc,wuc);var yuc;feb(488,22,{3:1,34:1,22:1,488:1},Duc);var Auc,Buc;var fX=tfb(ABe,'EdgeStraighteningStrategy',488,WI,Fuc,Euc);var Guc;feb(281,22,{3:1,34:1,22:1,281:1},Puc);var Iuc,Juc,Kuc,Luc,Muc,Nuc;var gX=tfb(ABe,'FixedAlignment',281,WI,Ruc,Quc);var Suc;feb(282,22,{3:1,34:1,22:1,282:1},_uc);var Uuc,Vuc,Wuc,Xuc,Yuc,Zuc;var hX=tfb(ABe,'GraphCompactionStrategy',282,WI,bvc,avc);var cvc;feb(259,22,{3:1,34:1,22:1,259:1},pvc);var evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc;var iX=tfb(ABe,'GraphProperties',259,WI,rvc,qvc);var svc;feb(299,22,{3:1,34:1,22:1,299:1},yvc);var uvc,vvc,wvc;var jX=tfb(ABe,'GreedySwitchType',299,WI,Avc,zvc);var Bvc;feb(311,22,{3:1,34:1,22:1,311:1},Hvc);var Dvc,Evc,Fvc;var kX=tfb(ABe,'InLayerConstraint',311,WI,Jvc,Ivc);var Kvc;feb(429,22,{3:1,34:1,22:1,429:1},Pvc);var Mvc,Nvc;var lX=tfb(ABe,'InteractiveReferencePoint',429,WI,Rvc,Qvc);var Svc;var Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc,jwc,kwc,lwc,mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc;feb(171,22,{3:1,34:1,22:1,171:1},dxc);var Zwc,$wc,_wc,axc,bxc;var mX=tfb(ABe,'LayerConstraint',171,WI,fxc,exc);var gxc;feb(859,1,Eye,Pzc);_.hf=function Qzc(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,HBe),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),Uxc),(kid(),eid)),cX),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,IBe),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Geb(),false)),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,JBe),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),pyc),eid),lX),xsb(Whd))));zgd(a,JBe,RBe,ryc);zgd(a,JBe,_Be,qyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,KBe),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,LBe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),cid),QI),xsb(Whd))));Egd(a,new Ahd(Nhd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MBe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),cid),QI),xsb(Xhd)),cD(WC(qJ,1),Nve,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,NBe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),azc),eid),xX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,OBe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),sgb(7)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,PBe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,QBe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,RBe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),Sxc),eid),bX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SBe),bDe),'Node Layering Strategy'),'Strategy for node layering.'),Gyc),eid),rX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TBe),bDe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),wyc),eid),mX),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,UBe),bDe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VBe),bDe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),sgb(-1)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WBe),cDe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),sgb(4)),gid),bJ),xsb(Whd))));zgd(a,WBe,SBe,zyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XBe),cDe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),sgb(2)),gid),bJ),xsb(Whd))));zgd(a,XBe,SBe,Byc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YBe),dDe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),Eyc),eid),vX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZBe),dDe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),sgb(0)),gid),bJ),xsb(Whd))));zgd(a,ZBe,YBe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$Be),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),sgb(lve)),gid),bJ),xsb(Whd))));zgd(a,$Be,SBe,tyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_Be),eDe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),Qxc),eid),_W),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aCe),eDe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,bCe),eDe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),did),VI),xsb(Whd))));zgd(a,bCe,fDe,Ixc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,cCe),eDe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),cid),QI),xsb(Whd))));zgd(a,cCe,_Be,Oxc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,dCe),eDe),'In Layer Predecessor of'),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),iid),qJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,eCe),eDe),'In Layer Successor of'),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),iid),qJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fCe),eDe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gCe),eDe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),sgb(-1)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,hCe),gDe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),sgb(40)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,iCe),gDe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),Fxc),eid),jX),xsb(Whd))));zgd(a,iCe,_Be,Gxc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,jCe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),Bxc),eid),jX),xsb(Whd))));zgd(a,jCe,_Be,Cxc);zgd(a,jCe,fDe,Dxc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,kCe),hDe),'Node Placement Strategy'),'Strategy for node placement.'),$yc),eid),uX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,lCe),hDe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),cid),QI),xsb(Whd))));zgd(a,lCe,kCe,Qyc);zgd(a,lCe,kCe,Ryc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,mCe),iDe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),Kyc),eid),fX),xsb(Whd))));zgd(a,mCe,kCe,Lyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,nCe),iDe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),Nyc),eid),gX),xsb(Whd))));zgd(a,nCe,kCe,Oyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,oCe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),did),VI),xsb(Whd))));zgd(a,oCe,kCe,Tyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,pCe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),eid),tX),xsb(Vhd))));zgd(a,pCe,kCe,Yyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,qCe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Wyc),eid),tX),xsb(Whd))));zgd(a,qCe,kCe,Xyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,rCe),jDe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),ayc),eid),zX),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,sCe),jDe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),cyc),eid),AX),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,tCe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),eyc),eid),CX),xsb(Whd))));zgd(a,tCe,kDe,fyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,uCe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),did),VI),xsb(Whd))));zgd(a,uCe,kDe,hyc);zgd(a,uCe,tCe,iyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,vCe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),did),VI),xsb(Whd))));zgd(a,vCe,kDe,$xc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,wCe),lDe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,xCe),lDe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,yCe),lDe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,zCe),lDe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ACe),mDe),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,BCe),mDe),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,CCe),mDe),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,DCe),nDe),qze),'Tries to further compact components (disconnected sub-graphs).'),false),cid),QI),xsb(Whd))));zgd(a,DCe,cAe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ECe),oDe),'Post Compaction Strategy'),pDe),nxc),eid),hX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,FCe),oDe),'Post Compaction Constraint Calculation'),pDe),lxc),eid),$W),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,GCe),qDe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,HCe),qDe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),sgb(16)),gid),bJ),xsb(Whd))));zgd(a,HCe,GCe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ICe),qDe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),sgb(5)),gid),bJ),xsb(Whd))));zgd(a,ICe,GCe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,JCe),rDe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),Gzc),eid),EX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,KCe),rDe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),did),VI),xsb(Whd))));zgd(a,KCe,JCe,lzc);zgd(a,KCe,JCe,mzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,LCe),rDe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),did),VI),xsb(Whd))));zgd(a,LCe,JCe,ozc);zgd(a,LCe,JCe,pzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MCe),sDe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),wzc),eid),aX),xsb(Whd))));zgd(a,MCe,JCe,xzc);zgd(a,MCe,JCe,yzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,NCe),sDe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),hid),QK),xsb(Whd))));zgd(a,NCe,MCe,rzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,OCe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),tzc),gid),bJ),xsb(Whd))));zgd(a,OCe,MCe,uzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,PCe),tDe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),Lzc),eid),DX),xsb(Whd))));zgd(a,PCe,JCe,Mzc);zgd(a,PCe,JCe,Nzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,QCe),tDe),'Valid Indices for Wrapping'),null),hid),QK),xsb(Whd))));zgd(a,QCe,JCe,Izc);zgd(a,QCe,JCe,Jzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,RCe),uDe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),cid),QI),xsb(Whd))));zgd(a,RCe,JCe,Czc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SCe),uDe),'Distance Penalty When Improving Cuts'),null),2),did),VI),xsb(Whd))));zgd(a,SCe,JCe,Azc);zgd(a,SCe,RCe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TCe),uDe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),cid),QI),xsb(Whd))));zgd(a,TCe,JCe,Ezc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,UCe),vDe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),Yxc),eid),eX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VCe),vDe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),Wxc),eid),ZW),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WCe),wDe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),xxc),eid),wX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XCe),wDe),'Consider Port Order'),'If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YCe),wDe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZCe),wDe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),pxc),eid),CQ),xsb(Whd))));zgd(a,ZCe,cAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$Ce),wDe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),txc),eid),sX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_Ce),wDe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),did),VI),xsb(Whd))));zgd(a,_Ce,WCe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aDe),wDe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),did),VI),xsb(Whd))));zgd(a,aDe,WCe,null);zCc((new ACc,a))};var ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc,Nyc,Oyc,Pyc,Qyc,Ryc,Syc,Tyc,Uyc,Vyc,Wyc,Xyc,Yyc,Zyc,$yc,_yc,azc,bzc,czc,dzc,ezc,fzc,gzc,hzc,izc,jzc,kzc,lzc,mzc,nzc,ozc,pzc,qzc,rzc,szc,tzc,uzc,vzc,wzc,xzc,yzc,zzc,Azc,Bzc,Czc,Dzc,Ezc,Fzc,Gzc,Hzc,Izc,Jzc,Kzc,Lzc,Mzc,Nzc;var nX=sfb(ABe,'LayeredMetaDataProvider',859);feb(998,1,Eye,ACc);_.hf=function BCc(a){zCc(a)};var Rzc,Szc,Tzc,Uzc,Vzc,Wzc,Xzc,Yzc,Zzc,$zc,_zc,aAc,bAc,cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc,kAc,lAc,mAc,nAc,oAc,pAc,qAc,rAc,sAc,tAc,uAc,vAc,wAc,xAc,yAc,zAc,AAc,BAc,CAc,DAc,EAc,FAc,GAc,HAc,IAc,JAc,KAc,LAc,MAc,NAc,OAc,PAc,QAc,RAc,SAc,TAc,UAc,VAc,WAc,XAc,YAc,ZAc,$Ac,_Ac,aBc,bBc,cBc,dBc,eBc,fBc,gBc,hBc,iBc,jBc,kBc,lBc,mBc,nBc,oBc,pBc,qBc,rBc,sBc,tBc,uBc,vBc,wBc,xBc,yBc,zBc,ABc,BBc,CBc,DBc,EBc,FBc,GBc,HBc,IBc,JBc,KBc,LBc,MBc,NBc,OBc,PBc,QBc,RBc,SBc,TBc,UBc,VBc,WBc,XBc,YBc,ZBc,$Bc,_Bc,aCc,bCc,cCc,dCc,eCc,fCc,gCc,hCc,iCc,jCc,kCc,lCc,mCc,nCc,oCc,pCc,qCc,rCc,sCc,tCc,uCc,vCc,wCc,xCc;var pX=sfb(ABe,'LayeredOptions',998);feb(999,1,{},CCc);_.sf=function DCc(){var a;return a=new lXb,a};_.tf=function ECc(a){};var oX=sfb(ABe,'LayeredOptions/LayeredFactory',999);feb(1391,1,{});_.a=0;var FCc;var b4=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder',1391);feb(792,1391,{},RCc);var OCc,PCc;var qX=sfb(ABe,'LayeredSpacings/LayeredSpacingsBuilder',792);feb(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},bDc);_.dg=function dDc(){return aDc(this)};_.qg=function cDc(){return aDc(this)};var SCc,TCc,UCc,VCc,WCc,XCc,YCc,ZCc,$Cc;var rX=tfb(ABe,'LayeringStrategy',265,WI,fDc,eDc);var gDc;feb(390,22,{3:1,34:1,22:1,390:1},nDc);var iDc,jDc,kDc;var sX=tfb(ABe,'LongEdgeOrderingStrategy',390,WI,pDc,oDc);var qDc;feb(203,22,{3:1,34:1,22:1,203:1},yDc);var sDc,tDc,uDc,vDc;var tX=tfb(ABe,'NodeFlexibility',203,WI,BDc,ADc);var CDc;feb(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},LDc);_.dg=function NDc(){return KDc(this)};_.qg=function MDc(){return KDc(this)};var EDc,FDc,GDc,HDc,IDc;var uX=tfb(ABe,'NodePlacementStrategy',323,WI,PDc,ODc);var QDc;feb(243,22,{3:1,34:1,22:1,243:1},bEc);var SDc,TDc,UDc,VDc,WDc,XDc,YDc,ZDc,$Dc,_Dc;var vX=tfb(ABe,'NodePromotionStrategy',243,WI,dEc,cEc);var eEc;feb(284,22,{3:1,34:1,22:1,284:1},lEc);var gEc,hEc,iEc,jEc;var wX=tfb(ABe,'OrderingStrategy',284,WI,nEc,mEc);var oEc;feb(430,22,{3:1,34:1,22:1,430:1},tEc);var qEc,rEc;var xX=tfb(ABe,'PortSortingStrategy',430,WI,vEc,uEc);var wEc;feb(463,22,{3:1,34:1,22:1,463:1},CEc);var yEc,zEc,AEc;var yX=tfb(ABe,'PortType',463,WI,EEc,DEc);var FEc;feb(387,22,{3:1,34:1,22:1,387:1},LEc);var HEc,IEc,JEc;var zX=tfb(ABe,'SelfLoopDistributionStrategy',387,WI,NEc,MEc);var OEc;feb(349,22,{3:1,34:1,22:1,349:1},UEc);var QEc,REc,SEc;var AX=tfb(ABe,'SelfLoopOrderingStrategy',349,WI,WEc,VEc);var XEc;feb(312,1,{312:1},gFc);var BX=sfb(ABe,'Spacings',312);feb(350,22,{3:1,34:1,22:1,350:1},mFc);var iFc,jFc,kFc;var CX=tfb(ABe,'SplineRoutingMode',350,WI,oFc,nFc);var pFc;feb(352,22,{3:1,34:1,22:1,352:1},vFc);var rFc,sFc,tFc;var DX=tfb(ABe,'ValidifyStrategy',352,WI,xFc,wFc);var yFc;feb(388,22,{3:1,34:1,22:1,388:1},EFc);var AFc,BFc,CFc;var EX=tfb(ABe,'WrappingStrategy',388,WI,GFc,FFc);var HFc;feb(1398,1,nEe,NFc);_.rg=function OFc(a){return RD(a,36),JFc};_.Kf=function PFc(a,b){MFc(this,RD(a,36),b)};var JFc;var FX=sfb(oEe,'DepthFirstCycleBreaker',1398);feb(793,1,nEe,UFc);_.rg=function WFc(a){return RD(a,36),QFc};_.Kf=function XFc(a,b){SFc(this,RD(a,36),b)};_.sg=function VFc(a){return RD(Vmb(a,Jwb(this.d,a.c.length)),10)};var QFc;var GX=sfb(oEe,'GreedyCycleBreaker',793);feb(1401,793,nEe,YFc);_.sg=function ZFc(a){var b,c,d,e;e=null;b=lve;for(d=new Anb(a);d.a1){Heb(TD(mQb(Y2b((tFb(0,a.c.length),RD(a.c[0],10))),(yCc(),eAc))))?wLc(a,this.d,RD(this,669)):(yob(),_mb(a,this.d));nJc(this.e,a)}};_.lg=function bJc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=SIc(c,a.length)){f=a[b-(c?1:-1)];sIc(this.f,f,c?(BEc(),zEc):(BEc(),yEc))}e=a[b][0];k=!d||e.k==(r3b(),m3b);j=dv(a[b]);this.vg(j,k,false,c);g=0;for(i=new Anb(j);i.a');a0?(pMc(this.a,a[b-1],a[b]),undefined):!c&&b1){Heb(TD(mQb(Y2b((tFb(0,a.c.length),RD(a.c[0],10))),(yCc(),eAc))))?wLc(a,this.d,this):(yob(),_mb(a,this.d));Heb(TD(mQb(Y2b((tFb(0,a.c.length),RD(a.c[0],10))),eAc)))||nJc(this.e,a)}};var wY=sfb(sEe,'ModelOrderBarycenterHeuristic',669);feb(1866,1,fye,yLc);_.Ne=function zLc(a,b){return tLc(this.a,RD(a,10),RD(b,10))};_.Fb=function ALc(a){return this===a};_.Oe=function BLc(){return new Frb(this)};var vY=sfb(sEe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1866);feb(1423,1,nEe,FLc);_.rg=function GLc(a){var b;return RD(a,36),b=vfd(CLc),pfd(b,(sXb(),pXb),(hcc(),Ybc)),b};_.Kf=function HLc(a,b){ELc((RD(a,36),b))};var CLc;var xY=sfb(sEe,'NoCrossingMinimizer',1423);feb(809,413,qEe,ILc);_.tg=function JLc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new Anb(a.j);k.a1&&(e.j==(qpd(),Xod)?(this.b[a]=true):e.j==ppd&&a>0&&(this.b[a-1]=true))};_.f=0;var AY=sfb(tBe,'AllCrossingsCounter',1861);feb(595,1,{},_Lc);_.b=0;_.d=0;var BY=sfb(tBe,'BinaryIndexedTree',595);feb(532,1,{},DMc);var bMc,cMc;var LY=sfb(tBe,'CrossingsCounter',532);feb(1950,1,fye,HMc);_.Ne=function IMc(a,b){return wMc(this.a,RD(a,12),RD(b,12))};_.Fb=function JMc(a){return this===a};_.Oe=function KMc(){return new Frb(this)};var CY=sfb(tBe,'CrossingsCounter/lambda$0$Type',1950);feb(1951,1,fye,LMc);_.Ne=function MMc(a,b){return xMc(this.a,RD(a,12),RD(b,12))};_.Fb=function NMc(a){return this===a};_.Oe=function OMc(){return new Frb(this)};var DY=sfb(tBe,'CrossingsCounter/lambda$1$Type',1951);feb(1952,1,fye,PMc);_.Ne=function QMc(a,b){return yMc(this.a,RD(a,12),RD(b,12))};_.Fb=function RMc(a){return this===a};_.Oe=function SMc(){return new Frb(this)};var EY=sfb(tBe,'CrossingsCounter/lambda$2$Type',1952);feb(1953,1,fye,TMc);_.Ne=function UMc(a,b){return zMc(this.a,RD(a,12),RD(b,12))};_.Fb=function VMc(a){return this===a};_.Oe=function WMc(){return new Frb(this)};var FY=sfb(tBe,'CrossingsCounter/lambda$3$Type',1953);feb(1954,1,Qve,XMc);_.Cd=function YMc(a){EMc(this.a,RD(a,12))};var GY=sfb(tBe,'CrossingsCounter/lambda$4$Type',1954);feb(1955,1,nwe,ZMc);_.Mb=function $Mc(a){return FMc(this.a,RD(a,12))};var HY=sfb(tBe,'CrossingsCounter/lambda$5$Type',1955);feb(1956,1,Qve,aNc);_.Cd=function bNc(a){_Mc(this,a)};var IY=sfb(tBe,'CrossingsCounter/lambda$6$Type',1956);feb(1957,1,Qve,cNc);_.Cd=function dNc(a){var b;dMc();hmb(this.b,(b=this.a,RD(a,12),b))};var JY=sfb(tBe,'CrossingsCounter/lambda$7$Type',1957);feb(839,1,xye,eNc);_.Lb=function fNc(a){return dMc(),nQb(RD(a,12),(Ywc(),Iwc))};_.Fb=function gNc(a){return this===a};_.Mb=function hNc(a){return dMc(),nQb(RD(a,12),(Ywc(),Iwc))};var KY=sfb(tBe,'CrossingsCounter/lambda$8$Type',839);feb(1949,1,{},jNc);var PY=sfb(tBe,'HyperedgeCrossingsCounter',1949);feb(478,1,{34:1,478:1},lNc);_.Fd=function mNc(a){return kNc(this,RD(a,478))};_.b=0;_.c=0;_.e=0;_.f=0;var OY=sfb(tBe,'HyperedgeCrossingsCounter/Hyperedge',478);feb(374,1,{34:1,374:1},oNc);_.Fd=function pNc(a){return nNc(this,RD(a,374))};_.b=0;_.c=0;var NY=sfb(tBe,'HyperedgeCrossingsCounter/HyperedgeCorner',374);feb(531,22,{3:1,34:1,22:1,531:1},tNc);var qNc,rNc;var MY=tfb(tBe,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',531,WI,vNc,uNc);var wNc;feb(1425,1,nEe,DNc);_.rg=function ENc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?zNc:null};_.Kf=function FNc(a,b){CNc(this,RD(a,36),b)};var zNc;var RY=sfb(tEe,'InteractiveNodePlacer',1425);feb(1426,1,nEe,TNc);_.rg=function UNc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?GNc:null};_.Kf=function VNc(a,b){RNc(this,RD(a,36),b)};var GNc,HNc,INc;var TY=sfb(tEe,'LinearSegmentsNodePlacer',1426);feb(261,1,{34:1,261:1},ZNc);_.Fd=function $Nc(a){return WNc(this,RD(a,261))};_.Fb=function _Nc(a){var b;if(ZD(a,261)){b=RD(a,261);return this.b==b.b}return false};_.Hb=function aOc(){return this.b};_.Ib=function bOc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var SY=sfb(tEe,'LinearSegmentsNodePlacer/LinearSegment',261);feb(1428,1,nEe,yOc);_.rg=function zOc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?cOc:null};_.Kf=function HOc(a,b){uOc(this,RD(a,36),b)};_.b=0;_.g=0;var cOc;var DZ=sfb(tEe,'NetworkSimplexPlacer',1428);feb(1447,1,fye,IOc);_.Ne=function JOc(a,b){return hgb(RD(a,17).a,RD(b,17).a)};_.Fb=function KOc(a){return this===a};_.Oe=function LOc(){return new Frb(this)};var UY=sfb(tEe,'NetworkSimplexPlacer/0methodref$compare$Type',1447);feb(1449,1,fye,MOc);_.Ne=function NOc(a,b){return hgb(RD(a,17).a,RD(b,17).a)};_.Fb=function OOc(a){return this===a};_.Oe=function POc(){return new Frb(this)};var VY=sfb(tEe,'NetworkSimplexPlacer/1methodref$compare$Type',1449);feb(655,1,{655:1},QOc);var WY=sfb(tEe,'NetworkSimplexPlacer/EdgeRep',655);feb(412,1,{412:1},ROc);_.b=false;var XY=sfb(tEe,'NetworkSimplexPlacer/NodeRep',412);feb(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},VOc);var aZ=sfb(tEe,'NetworkSimplexPlacer/Path',515);feb(1429,1,{},WOc);_.Kb=function XOc(a){return RD(a,18).d.i.k};var YY=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$0$Type',1429);feb(1430,1,nwe,YOc);_.Mb=function ZOc(a){return RD(a,273)==(r3b(),o3b)};var ZY=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$1$Type',1430);feb(1431,1,{},$Oc);_.Kb=function _Oc(a){return RD(a,18).d.i};var $Y=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$2$Type',1431);feb(1432,1,nwe,aPc);_.Mb=function bPc(a){return EPc(zDc(RD(a,10)))};var _Y=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$3$Type',1432);feb(1433,1,nwe,cPc);_.Mb=function dPc(a){return DOc(RD(a,12))};var bZ=sfb(tEe,'NetworkSimplexPlacer/lambda$0$Type',1433);feb(1434,1,Qve,ePc);_.Cd=function fPc(a){jOc(this.a,this.b,RD(a,12))};var cZ=sfb(tEe,'NetworkSimplexPlacer/lambda$1$Type',1434);feb(1443,1,Qve,gPc);_.Cd=function hPc(a){kOc(this.a,RD(a,18))};var dZ=sfb(tEe,'NetworkSimplexPlacer/lambda$10$Type',1443);feb(1444,1,{},iPc);_.Kb=function jPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var eZ=sfb(tEe,'NetworkSimplexPlacer/lambda$11$Type',1444);feb(1445,1,Qve,kPc);_.Cd=function lPc(a){lOc(this.a,RD(a,10))};var fZ=sfb(tEe,'NetworkSimplexPlacer/lambda$12$Type',1445);feb(1446,1,{},mPc);_.Kb=function nPc(a){return dOc(),sgb(RD(a,125).e)};var gZ=sfb(tEe,'NetworkSimplexPlacer/lambda$13$Type',1446);feb(1448,1,{},oPc);_.Kb=function pPc(a){return dOc(),sgb(RD(a,125).e)};var hZ=sfb(tEe,'NetworkSimplexPlacer/lambda$15$Type',1448);feb(1450,1,nwe,qPc);_.Mb=function rPc(a){return dOc(),RD(a,412).c.k==(r3b(),p3b)};var iZ=sfb(tEe,'NetworkSimplexPlacer/lambda$17$Type',1450);feb(1451,1,nwe,sPc);_.Mb=function tPc(a){return dOc(),RD(a,412).c.j.c.length>1};var jZ=sfb(tEe,'NetworkSimplexPlacer/lambda$18$Type',1451);feb(1452,1,Qve,uPc);_.Cd=function vPc(a){EOc(this.c,this.b,this.d,this.a,RD(a,412))};_.c=0;_.d=0;var kZ=sfb(tEe,'NetworkSimplexPlacer/lambda$19$Type',1452);feb(1435,1,{},wPc);_.Kb=function xPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var lZ=sfb(tEe,'NetworkSimplexPlacer/lambda$2$Type',1435);feb(1453,1,Qve,yPc);_.Cd=function zPc(a){FOc(this.a,RD(a,12))};_.a=0;var mZ=sfb(tEe,'NetworkSimplexPlacer/lambda$20$Type',1453);feb(1454,1,{},APc);_.Kb=function BPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var nZ=sfb(tEe,'NetworkSimplexPlacer/lambda$21$Type',1454);feb(1455,1,Qve,CPc);_.Cd=function DPc(a){mOc(this.a,RD(a,10))};var oZ=sfb(tEe,'NetworkSimplexPlacer/lambda$22$Type',1455);feb(1456,1,nwe,FPc);_.Mb=function GPc(a){return EPc(a)};var pZ=sfb(tEe,'NetworkSimplexPlacer/lambda$23$Type',1456);feb(1457,1,{},HPc);_.Kb=function IPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var qZ=sfb(tEe,'NetworkSimplexPlacer/lambda$24$Type',1457);feb(1458,1,nwe,JPc);_.Mb=function KPc(a){return nOc(this.a,RD(a,10))};var rZ=sfb(tEe,'NetworkSimplexPlacer/lambda$25$Type',1458);feb(1459,1,Qve,LPc);_.Cd=function MPc(a){oOc(this.a,this.b,RD(a,10))};var sZ=sfb(tEe,'NetworkSimplexPlacer/lambda$26$Type',1459);feb(1460,1,nwe,NPc);_.Mb=function OPc(a){return dOc(),!W0b(RD(a,18))};var tZ=sfb(tEe,'NetworkSimplexPlacer/lambda$27$Type',1460);feb(1461,1,nwe,PPc);_.Mb=function QPc(a){return dOc(),!W0b(RD(a,18))};var uZ=sfb(tEe,'NetworkSimplexPlacer/lambda$28$Type',1461);feb(1462,1,{},RPc);_.Ve=function SPc(a,b){return pOc(this.a,RD(a,30),RD(b,30))};var vZ=sfb(tEe,'NetworkSimplexPlacer/lambda$29$Type',1462);feb(1436,1,{},TPc);_.Kb=function UPc(a){return dOc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var wZ=sfb(tEe,'NetworkSimplexPlacer/lambda$3$Type',1436);feb(1437,1,nwe,VPc);_.Mb=function WPc(a){return dOc(),COc(RD(a,18))};var xZ=sfb(tEe,'NetworkSimplexPlacer/lambda$4$Type',1437);feb(1438,1,Qve,XPc);_.Cd=function YPc(a){vOc(this.a,RD(a,18))};var yZ=sfb(tEe,'NetworkSimplexPlacer/lambda$5$Type',1438);feb(1439,1,{},ZPc);_.Kb=function $Pc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var zZ=sfb(tEe,'NetworkSimplexPlacer/lambda$6$Type',1439);feb(1440,1,nwe,_Pc);_.Mb=function aQc(a){return dOc(),RD(a,10).k==(r3b(),p3b)};var AZ=sfb(tEe,'NetworkSimplexPlacer/lambda$7$Type',1440);feb(1441,1,{},bQc);_.Kb=function cQc(a){return dOc(),new SDb(null,new Twb(new is(Mr(W2b(RD(a,10)).a.Kc(),new ir))))};var BZ=sfb(tEe,'NetworkSimplexPlacer/lambda$8$Type',1441);feb(1442,1,nwe,dQc);_.Mb=function eQc(a){return dOc(),V0b(RD(a,18))};var CZ=sfb(tEe,'NetworkSimplexPlacer/lambda$9$Type',1442);feb(1424,1,nEe,iQc);_.rg=function jQc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?fQc:null};_.Kf=function kQc(a,b){hQc(RD(a,36),b)};var fQc;var EZ=sfb(tEe,'SimpleNodePlacer',1424);feb(185,1,{185:1},sQc);_.Ib=function tQc(){var a;a='';this.c==(wQc(),vQc)?(a+=Oye):this.c==uQc&&(a+=Nye);this.o==(EQc(),CQc)?(a+=Zye):this.o==DQc?(a+='UP'):(a+='BALANCED');return a};var HZ=sfb(wEe,'BKAlignedLayout',185);feb(523,22,{3:1,34:1,22:1,523:1},xQc);var uQc,vQc;var FZ=tfb(wEe,'BKAlignedLayout/HDirection',523,WI,zQc,yQc);var AQc;feb(522,22,{3:1,34:1,22:1,522:1},FQc);var CQc,DQc;var GZ=tfb(wEe,'BKAlignedLayout/VDirection',522,WI,HQc,GQc);var IQc;feb(1699,1,{},MQc);var IZ=sfb(wEe,'BKAligner',1699);feb(1702,1,{},RQc);var LZ=sfb(wEe,'BKCompactor',1702);feb(663,1,{663:1},SQc);_.a=0;var JZ=sfb(wEe,'BKCompactor/ClassEdge',663);feb(467,1,{467:1},UQc);_.a=null;_.b=0;var KZ=sfb(wEe,'BKCompactor/ClassNode',467);feb(1427,1,nEe,aRc);_.rg=function eRc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?VQc:null};_.Kf=function fRc(a,b){_Qc(this,RD(a,36),b)};_.d=false;var VQc;var MZ=sfb(wEe,'BKNodePlacer',1427);feb(1700,1,{},hRc);_.d=0;var OZ=sfb(wEe,'NeighborhoodInformation',1700);feb(1701,1,fye,mRc);_.Ne=function nRc(a,b){return lRc(this,RD(a,42),RD(b,42))};_.Fb=function oRc(a){return this===a};_.Oe=function pRc(){return new Frb(this)};var NZ=sfb(wEe,'NeighborhoodInformation/NeighborComparator',1701);feb(823,1,{});var SZ=sfb(wEe,'ThresholdStrategy',823);feb(1825,823,{},uRc);_.wg=function vRc(a,b,c){return this.a.o==(EQc(),DQc)?oxe:pxe};_.xg=function wRc(){};var PZ=sfb(wEe,'ThresholdStrategy/NullThresholdStrategy',1825);feb(587,1,{587:1},xRc);_.c=false;_.d=false;var QZ=sfb(wEe,'ThresholdStrategy/Postprocessable',587);feb(1826,823,{},BRc);_.wg=function CRc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(wQc(),vQc)){e&&(f=yRc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=yRc(this,c,false))}else{e&&(f=yRc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=yRc(this,c,false))}return f};_.xg=function DRc(){var a,b,c,d,e;while(this.d.b!=0){e=RD(Tub(this.d),587);d=zRc(this,e);if(!d.a){continue}a=d.a;c=Heb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!W0b(a)&&a.c.i.c==a.d.i.c){continue}b=ARc(this,e);b||Eyb(this.e,e)}while(this.e.a.c.length!=0){ARc(this,RD(Dyb(this.e),587))}};var RZ=sfb(wEe,'ThresholdStrategy/SimpleThresholdStrategy',1826);feb(645,1,{645:1,188:1,196:1},HRc);_.dg=function JRc(){return GRc(this)};_.qg=function IRc(){return GRc(this)};var ERc;var TZ=sfb(xEe,'EdgeRouterFactory',645);feb(1485,1,nEe,WRc);_.rg=function XRc(a){return URc(RD(a,36))};_.Kf=function YRc(a,b){VRc(RD(a,36),b)};var LRc,MRc,NRc,ORc,PRc,QRc,RRc,SRc;var UZ=sfb(xEe,'OrthogonalEdgeRouter',1485);feb(1478,1,nEe,lSc);_.rg=function mSc(a){return gSc(RD(a,36))};_.Kf=function nSc(a,b){iSc(this,RD(a,36),b)};var ZRc,$Rc,_Rc,aSc,bSc,cSc;var WZ=sfb(xEe,'PolylineEdgeRouter',1478);feb(1479,1,xye,pSc);_.Lb=function qSc(a){return oSc(RD(a,10))};_.Fb=function rSc(a){return this===a};_.Mb=function sSc(a){return oSc(RD(a,10))};var VZ=sfb(xEe,'PolylineEdgeRouter/1',1479);feb(1872,1,nwe,xSc);_.Mb=function ySc(a){return RD(a,132).c==(fTc(),dTc)};var XZ=sfb(yEe,'HyperEdgeCycleDetector/lambda$0$Type',1872);feb(1873,1,{},zSc);_.Ze=function ASc(a){return RD(a,132).d};var YZ=sfb(yEe,'HyperEdgeCycleDetector/lambda$1$Type',1873);feb(1874,1,nwe,BSc);_.Mb=function CSc(a){return RD(a,132).c==(fTc(),dTc)};var ZZ=sfb(yEe,'HyperEdgeCycleDetector/lambda$2$Type',1874);feb(1875,1,{},DSc);_.Ze=function ESc(a){return RD(a,132).d};var $Z=sfb(yEe,'HyperEdgeCycleDetector/lambda$3$Type',1875);feb(1876,1,{},FSc);_.Ze=function GSc(a){return RD(a,132).d};var _Z=sfb(yEe,'HyperEdgeCycleDetector/lambda$4$Type',1876);feb(1877,1,{},HSc);_.Ze=function ISc(a){return RD(a,132).d};var a$=sfb(yEe,'HyperEdgeCycleDetector/lambda$5$Type',1877);feb(118,1,{34:1,118:1},USc);_.Fd=function VSc(a){return KSc(this,RD(a,118))};_.Fb=function WSc(a){var b;if(ZD(a,118)){b=RD(a,118);return this.g==b.g}return false};_.Hb=function XSc(){return this.g};_.Ib=function ZSc(){var a,b,c,d;a=new dib('{');d=new Anb(this.n);while(d.a'+this.b+' ('+os(this.c)+')'};_.d=0;var c$=sfb(yEe,'HyperEdgeSegmentDependency',132);feb(528,22,{3:1,34:1,22:1,528:1},gTc);var dTc,eTc;var b$=tfb(yEe,'HyperEdgeSegmentDependency/DependencyType',528,WI,iTc,hTc);var jTc;feb(1878,1,{},xTc);var k$=sfb(yEe,'HyperEdgeSegmentSplitter',1878);feb(1879,1,{},ATc);_.a=0;_.b=0;var d$=sfb(yEe,'HyperEdgeSegmentSplitter/AreaRating',1879);feb(339,1,{339:1},BTc);_.a=0;_.b=0;_.c=0;var e$=sfb(yEe,'HyperEdgeSegmentSplitter/FreeArea',339);feb(1880,1,fye,CTc);_.Ne=function DTc(a,b){return zTc(RD(a,118),RD(b,118))};_.Fb=function ETc(a){return this===a};_.Oe=function FTc(){return new Frb(this)};var f$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$0$Type',1880);feb(1881,1,Qve,GTc);_.Cd=function HTc(a){rTc(this.a,this.d,this.c,this.b,RD(a,118))};_.b=0;var g$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$1$Type',1881);feb(1882,1,{},ITc);_.Kb=function JTc(a){return new SDb(null,new Swb(RD(a,118).e,16))};var h$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$2$Type',1882);feb(1883,1,{},KTc);_.Kb=function LTc(a){return new SDb(null,new Swb(RD(a,118).j,16))};var i$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$3$Type',1883);feb(1884,1,{},MTc);_.Ye=function NTc(a){return Kfb(UD(a))};var j$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$4$Type',1884);feb(664,1,{},TTc);_.a=0;_.b=0;_.c=0;var o$=sfb(yEe,'OrthogonalRoutingGenerator',664);feb(1703,1,{},XTc);_.Kb=function YTc(a){return new SDb(null,new Swb(RD(a,118).e,16))};var m$=sfb(yEe,'OrthogonalRoutingGenerator/lambda$0$Type',1703);feb(1704,1,{},ZTc);_.Kb=function $Tc(a){return new SDb(null,new Swb(RD(a,118).j,16))};var n$=sfb(yEe,'OrthogonalRoutingGenerator/lambda$1$Type',1704);feb(670,1,{});var p$=sfb(zEe,'BaseRoutingDirectionStrategy',670);feb(1870,670,{},cUc);_.yg=function dUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new Anb(a.n);j.aVze){f=k;e=a;d=new rjd(l,f);Mub(g.a,d);_Tc(this,g,e,d,false);m=a.r;if(m){n=Kfb(UD(ju(m.e,0)));d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false);f=b+m.o*c;e=m;d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false)}d=new rjd(p,f);Mub(g.a,d);_Tc(this,g,e,d,false)}}}}};_.zg=function eUc(a){return a.i.n.a+a.n.a+a.a.a};_.Ag=function fUc(){return qpd(),npd};_.Bg=function gUc(){return qpd(),Yod};var q$=sfb(zEe,'NorthToSouthRoutingStrategy',1870);feb(1871,670,{},hUc);_.yg=function iUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new Anb(a.n);j.aVze){f=k;e=a;d=new rjd(l,f);Mub(g.a,d);_Tc(this,g,e,d,false);m=a.r;if(m){n=Kfb(UD(ju(m.e,0)));d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false);f=b-m.o*c;e=m;d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false)}d=new rjd(p,f);Mub(g.a,d);_Tc(this,g,e,d,false)}}}}};_.zg=function jUc(a){return a.i.n.a+a.n.a+a.a.a};_.Ag=function kUc(){return qpd(),Yod};_.Bg=function lUc(){return qpd(),npd};var r$=sfb(zEe,'SouthToNorthRoutingStrategy',1871);feb(1869,670,{},mUc);_.yg=function nUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new Anb(a.n);j.aVze){f=k;e=a;d=new rjd(f,l);Mub(g.a,d);_Tc(this,g,e,d,true);m=a.r;if(m){n=Kfb(UD(ju(m.e,0)));d=new rjd(f,n);Mub(g.a,d);_Tc(this,g,e,d,true);f=b+m.o*c;e=m;d=new rjd(f,n);Mub(g.a,d);_Tc(this,g,e,d,true)}d=new rjd(f,p);Mub(g.a,d);_Tc(this,g,e,d,true)}}}}};_.zg=function oUc(a){return a.i.n.b+a.n.b+a.a.b};_.Ag=function pUc(){return qpd(),Xod};_.Bg=function qUc(){return qpd(),ppd};var s$=sfb(zEe,'WestToEastRoutingStrategy',1869);feb(828,1,{},wUc);_.Ib=function xUc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var u$=sfb(BEe,'NubSpline',828);feb(418,1,{418:1},AUc,BUc);var t$=sfb(BEe,'NubSpline/PolarCP',418);feb(1480,1,nEe,VUc);_.rg=function XUc(a){return QUc(RD(a,36))};_.Kf=function YUc(a,b){UUc(this,RD(a,36),b)};var CUc,DUc,EUc,FUc,GUc;var B$=sfb(BEe,'SplineEdgeRouter',1480);feb(274,1,{274:1},_Uc);_.Ib=function aVc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var v$=sfb(BEe,'SplineEdgeRouter/Dependency',274);feb(465,22,{3:1,34:1,22:1,465:1},eVc);var bVc,cVc;var w$=tfb(BEe,'SplineEdgeRouter/SideToProcess',465,WI,gVc,fVc);var hVc;feb(1481,1,nwe,jVc);_.Mb=function kVc(a){return HUc(),!RD(a,131).o};var x$=sfb(BEe,'SplineEdgeRouter/lambda$0$Type',1481);feb(1482,1,{},lVc);_.Ze=function mVc(a){return HUc(),RD(a,131).v+1};var y$=sfb(BEe,'SplineEdgeRouter/lambda$1$Type',1482);feb(1483,1,Qve,nVc);_.Cd=function oVc(a){SUc(this.a,this.b,RD(a,42))};var z$=sfb(BEe,'SplineEdgeRouter/lambda$2$Type',1483);feb(1484,1,Qve,pVc);_.Cd=function qVc(a){TUc(this.a,this.b,RD(a,42))};var A$=sfb(BEe,'SplineEdgeRouter/lambda$3$Type',1484);feb(131,1,{34:1,131:1},wVc,xVc);_.Fd=function yVc(a){return uVc(this,RD(a,131))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var D$=sfb(BEe,'SplineSegment',131);feb(468,1,{468:1},zVc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var C$=sfb(BEe,'SplineSegment/EdgeInformation',468);feb(1198,1,{},IVc);var F$=sfb(GEe,Lze,1198);feb(1199,1,fye,KVc);_.Ne=function LVc(a,b){return JVc(RD(a,121),RD(b,121))};_.Fb=function MVc(a){return this===a};_.Oe=function NVc(){return new Frb(this)};var E$=sfb(GEe,Mze,1199);feb(1197,1,{},TVc);var G$=sfb(GEe,'MrTree',1197);feb(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},$Vc);_.dg=function aWc(){return ZVc(this)};_.qg=function _Vc(){return ZVc(this)};var UVc,VVc,WVc,XVc;var H$=tfb(GEe,'TreeLayoutPhases',405,WI,cWc,bWc);var dWc;feb(1112,205,oze,fWc);_.rf=function gWc(a,b){var c,d,e,f,g,h,i,j;Heb(TD(Gxd(a,(h_c(),S$c))))||RFb((c=new SFb((lud(),new zud(a))),c));g=b.eh(HEe);g.Ug('build tGraph',1);h=(i=new YWc,kQb(i,a),pQb(i,(q$c(),h$c),a),j=new Tsb,QVc(a,i,j),PVc(a,i,j),i);g.Vg();g=b.eh(HEe);g.Ug('Split graph',1);f=HVc(this.a,h);g.Vg();for(e=new Anb(f);e.a'+aXc(this.c):'e_'+tb(this)};var U$=sfb(JEe,'TEdge',65);feb(121,137,{3:1,121:1,96:1,137:1},YWc);_.Ib=function ZWc(){var a,b,c,d,e;e=null;for(d=Sub(this.b,0);d.b!=d.d.c;){c=RD(evb(d),40);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Sub(this.a,0);b.b!=b.d.c;){a=RD(evb(b),65);e+=(!!a.b&&!!a.c?aXc(a.b)+'->'+aXc(a.c):'e_'+tb(a))+'\n'}return e};var W$=sfb(JEe,'TGraph',121);feb(643,508,{3:1,508:1,643:1,96:1,137:1});var $$=sfb(JEe,'TShape',643);feb(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},bXc);_.Ib=function cXc(){return aXc(this)};var Z$=sfb(JEe,'TNode',40);feb(236,1,Vve,dXc);_.Jc=function eXc(a){xgb(this,a)};_.Kc=function fXc(){var a;return a=Sub(this.a.d,0),new gXc(a)};var Y$=sfb(JEe,'TNode/2',236);feb(329,1,Ave,gXc);_.Nb=function hXc(a){Ztb(this,a)};_.Pb=function jXc(){return RD(evb(this.a),65).c};_.Ob=function iXc(){return dvb(this.a)};_.Qb=function kXc(){gvb(this.a)};var X$=sfb(JEe,'TNode/2/1',329);feb(1923,1,QAe,qXc);_.Kf=function DXc(a,b){oXc(this,RD(a,121),b)};var m_=sfb(LEe,'CompactionProcessor',1923);feb(1924,1,fye,EXc);_.Ne=function FXc(a,b){return rXc(this.a,RD(a,40),RD(b,40))};_.Fb=function GXc(a){return this===a};_.Oe=function HXc(){return new Frb(this)};var _$=sfb(LEe,'CompactionProcessor/lambda$0$Type',1924);feb(1925,1,nwe,IXc);_.Mb=function JXc(a){return sXc(this.b,this.a,RD(a,42))};_.a=0;_.b=0;var a_=sfb(LEe,'CompactionProcessor/lambda$1$Type',1925);feb(1934,1,fye,KXc);_.Ne=function LXc(a,b){return tXc(RD(a,40),RD(b,40))};_.Fb=function MXc(a){return this===a};_.Oe=function NXc(){return new Frb(this)};var b_=sfb(LEe,'CompactionProcessor/lambda$10$Type',1934);feb(1935,1,fye,OXc);_.Ne=function PXc(a,b){return uXc(RD(a,40),RD(b,40))};_.Fb=function QXc(a){return this===a};_.Oe=function RXc(){return new Frb(this)};var c_=sfb(LEe,'CompactionProcessor/lambda$11$Type',1935);feb(1936,1,fye,SXc);_.Ne=function TXc(a,b){return vXc(RD(a,40),RD(b,40))};_.Fb=function UXc(a){return this===a};_.Oe=function VXc(){return new Frb(this)};var d_=sfb(LEe,'CompactionProcessor/lambda$12$Type',1936);feb(1926,1,nwe,WXc);_.Mb=function XXc(a){return wXc(this.a,RD(a,42))};_.a=0;var e_=sfb(LEe,'CompactionProcessor/lambda$2$Type',1926);feb(1927,1,nwe,YXc);_.Mb=function ZXc(a){return xXc(this.a,RD(a,42))};_.a=0;var f_=sfb(LEe,'CompactionProcessor/lambda$3$Type',1927);feb(1928,1,nwe,$Xc);_.Mb=function _Xc(a){return RD(a,40).c.indexOf(IEe)==-1};var g_=sfb(LEe,'CompactionProcessor/lambda$4$Type',1928);feb(1929,1,{},aYc);_.Kb=function bYc(a){return yXc(this.a,RD(a,40))};_.a=0;var h_=sfb(LEe,'CompactionProcessor/lambda$5$Type',1929);feb(1930,1,{},cYc);_.Kb=function dYc(a){return zXc(this.a,RD(a,40))};_.a=0;var i_=sfb(LEe,'CompactionProcessor/lambda$6$Type',1930);feb(1931,1,fye,eYc);_.Ne=function fYc(a,b){return AXc(this.a,RD(a,240),RD(b,240))};_.Fb=function gYc(a){return this===a};_.Oe=function hYc(){return new Frb(this)};var j_=sfb(LEe,'CompactionProcessor/lambda$7$Type',1931);feb(1932,1,fye,iYc);_.Ne=function jYc(a,b){return BXc(this.a,RD(a,40),RD(b,40))};_.Fb=function kYc(a){return this===a};_.Oe=function lYc(){return new Frb(this)};var k_=sfb(LEe,'CompactionProcessor/lambda$8$Type',1932);feb(1933,1,fye,mYc);_.Ne=function nYc(a,b){return CXc(RD(a,40),RD(b,40))};_.Fb=function oYc(a){return this===a};_.Oe=function pYc(){return new Frb(this)};var l_=sfb(LEe,'CompactionProcessor/lambda$9$Type',1933);feb(1921,1,QAe,rYc);_.Kf=function sYc(a,b){qYc(RD(a,121),b)};var n_=sfb(LEe,'DirectionProcessor',1921);feb(1913,1,QAe,vYc);_.Kf=function xYc(a,b){uYc(this,RD(a,121),b)};var o_=sfb(LEe,'FanProcessor',1913);feb(1937,1,QAe,zYc);_.Kf=function CYc(a,b){yYc(RD(a,121),b)};var t_=sfb(LEe,'GraphBoundsProcessor',1937);feb(1938,1,{},DYc);_.Ye=function EYc(a){return RD(a,40).e.a};var p_=sfb(LEe,'GraphBoundsProcessor/lambda$0$Type',1938);feb(1939,1,{},FYc);_.Ye=function GYc(a){return RD(a,40).e.b};var q_=sfb(LEe,'GraphBoundsProcessor/lambda$1$Type',1939);feb(1940,1,{},HYc);_.Ye=function IYc(a){return AYc(RD(a,40))};var r_=sfb(LEe,'GraphBoundsProcessor/lambda$2$Type',1940);feb(1941,1,{},JYc);_.Ye=function KYc(a){return BYc(RD(a,40))};var s_=sfb(LEe,'GraphBoundsProcessor/lambda$3$Type',1941);feb(262,22,{3:1,34:1,22:1,262:1,196:1},XYc);_.dg=function YYc(){switch(this.g){case 0:return new DZc;case 1:return new vYc;case 2:return new nZc;case 3:return new tZc;case 4:return new gZc;case 8:return new cZc;case 5:return new rYc;case 6:return new AZc;case 7:return new qXc;case 9:return new zYc;case 10:return new GZc;default:throw Adb(new agb(lBe+(this.f!=null?this.f:''+this.g)));}};var LYc,MYc,NYc,OYc,PYc,QYc,RYc,SYc,TYc,UYc,VYc;var u_=tfb(LEe,mBe,262,WI,$Yc,ZYc);var _Yc;feb(1920,1,QAe,cZc);_.Kf=function dZc(a,b){bZc(RD(a,121),b)};var v_=sfb(LEe,'LevelCoordinatesProcessor',1920);feb(1918,1,QAe,gZc);_.Kf=function hZc(a,b){eZc(this,RD(a,121),b)};_.a=0;var x_=sfb(LEe,'LevelHeightProcessor',1918);feb(1919,1,Vve,iZc);_.Jc=function jZc(a){xgb(this,a)};_.Kc=function kZc(){return yob(),Qob(),Pob};var w_=sfb(LEe,'LevelHeightProcessor/1',1919);feb(1914,1,QAe,nZc);_.Kf=function oZc(a,b){lZc(this,RD(a,121),b)};var z_=sfb(LEe,'LevelProcessor',1914);feb(1915,1,nwe,pZc);_.Mb=function qZc(a){return Heb(TD(mQb(RD(a,40),(q$c(),n$c))))};var y_=sfb(LEe,'LevelProcessor/lambda$0$Type',1915);feb(1916,1,QAe,tZc);_.Kf=function uZc(a,b){rZc(this,RD(a,121),b)};_.a=0;var B_=sfb(LEe,'NeighborsProcessor',1916);feb(1917,1,Vve,vZc);_.Jc=function wZc(a){xgb(this,a)};_.Kc=function xZc(){return yob(),Qob(),Pob};var A_=sfb(LEe,'NeighborsProcessor/1',1917);feb(1922,1,QAe,AZc);_.Kf=function BZc(a,b){yZc(this,RD(a,121),b)};_.a=0;var C_=sfb(LEe,'NodePositionProcessor',1922);feb(1912,1,QAe,DZc);_.Kf=function EZc(a,b){CZc(this,RD(a,121),b)};var D_=sfb(LEe,'RootProcessor',1912);feb(1942,1,QAe,GZc);_.Kf=function HZc(a,b){FZc(RD(a,121),b)};var E_=sfb(LEe,'Untreeifyer',1942);feb(392,22,{3:1,34:1,22:1,392:1},MZc);var IZc,JZc,KZc;var F_=tfb(PEe,'EdgeRoutingMode',392,WI,OZc,NZc);var PZc;var RZc,SZc,TZc,UZc,VZc,WZc,XZc,YZc,ZZc,$Zc,_Zc,a$c,b$c,c$c,d$c,e$c,f$c,g$c,h$c,i$c,j$c,k$c,l$c,m$c,n$c,o$c,p$c;feb(862,1,Eye,C$c);_.hf=function D$c(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,REe),''),YEe),'Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level'),(Geb(),false)),(kid(),cid)),QI),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SEe),''),'Edge End Texture Length'),'Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing.'),7),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TEe),''),'Tree Level'),'The index for the tree level the node is in'),sgb(0)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,UEe),''),YEe),'When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint'),sgb(-1)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VEe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),A$c),eid),J_),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WEe),''),'Edge Routing Mode'),'Chooses an Edge Routing algorithm.'),u$c),eid),F_),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XEe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),x$c),eid),K_),xsb(Whd))));i_c((new j_c,a))};var r$c,s$c,t$c,u$c,v$c,w$c,x$c,y$c,z$c,A$c;var G_=sfb(PEe,'MrTreeMetaDataProvider',862);feb(1006,1,Eye,j_c);_.hf=function k_c(a){i_c(a)};var E$c,F$c,G$c,H$c,I$c,J$c,K$c,L$c,M$c,N$c,O$c,P$c,Q$c,R$c,S$c,T$c,U$c,V$c,W$c,X$c,Y$c,Z$c,$$c,_$c,a_c,b_c,c_c,d_c,e_c,f_c,g_c;var I_=sfb(PEe,'MrTreeOptions',1006);feb(1007,1,{},l_c);_.sf=function m_c(){var a;return a=new fWc,a};_.tf=function n_c(a){};var H_=sfb(PEe,'MrTreeOptions/MrtreeFactory',1007);feb(353,22,{3:1,34:1,22:1,353:1},t_c);var o_c,p_c,q_c,r_c;var J_=tfb(PEe,'OrderWeighting',353,WI,v_c,u_c);var w_c;feb(433,22,{3:1,34:1,22:1,433:1},B_c);var y_c,z_c;var K_=tfb(PEe,'TreeifyingOrder',433,WI,D_c,C_c);var E_c;feb(1486,1,nEe,N_c);_.rg=function O_c(a){return RD(a,121),G_c};_.Kf=function P_c(a,b){M_c(this,RD(a,121),b)};var G_c;var L_=sfb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1486);feb(1487,1,nEe,V_c);_.rg=function W_c(a){return RD(a,121),Q_c};_.Kf=function $_c(a,b){U_c(this,RD(a,121),b)};var Q_c;var T_=sfb(aFe,'NodeOrderer',1487);feb(1494,1,{},a0c);_.td=function b0c(a){return __c(a)};var M_=sfb(aFe,'NodeOrderer/0methodref$lambda$6$Type',1494);feb(1488,1,nwe,c0c);_.Mb=function d0c(a){return R_c(),Heb(TD(mQb(RD(a,40),(q$c(),n$c))))};var N_=sfb(aFe,'NodeOrderer/lambda$0$Type',1488);feb(1489,1,nwe,e0c);_.Mb=function f0c(a){return R_c(),RD(mQb(RD(a,40),(h_c(),W$c)),17).a<0};var O_=sfb(aFe,'NodeOrderer/lambda$1$Type',1489);feb(1490,1,nwe,g0c);_.Mb=function h0c(a){return X_c(this.a,RD(a,40))};var P_=sfb(aFe,'NodeOrderer/lambda$2$Type',1490);feb(1491,1,nwe,i0c);_.Mb=function j0c(a){return Y_c(this.a,RD(a,40))};var Q_=sfb(aFe,'NodeOrderer/lambda$3$Type',1491);feb(1492,1,fye,k0c);_.Ne=function l0c(a,b){return Z_c(RD(a,40),RD(b,40))};_.Fb=function m0c(a){return this===a};_.Oe=function n0c(){return new Frb(this)};var R_=sfb(aFe,'NodeOrderer/lambda$4$Type',1492);feb(1493,1,nwe,o0c);_.Mb=function p0c(a){return R_c(),RD(mQb(RD(a,40),(q$c(),XZc)),17).a!=0};var S_=sfb(aFe,'NodeOrderer/lambda$5$Type',1493);feb(1495,1,nEe,x0c);_.rg=function y0c(a){return RD(a,121),q0c};_.Kf=function z0c(a,b){v0c(this,RD(a,121),b)};_.b=0;var q0c;var U_=sfb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1495);feb(1496,1,nEe,J0c);_.rg=function K0c(a){return RD(a,121),A0c};_.Kf=function Y0c(a,b){I0c(RD(a,121),b)};var A0c;var o0=sfb(bFe,'EdgeRouter',1496);feb(1498,1,fye,Z0c);_.Ne=function $0c(a,b){return hgb(RD(a,17).a,RD(b,17).a)};_.Fb=function _0c(a){return this===a};_.Oe=function a1c(){return new Frb(this)};var V_=sfb(bFe,'EdgeRouter/0methodref$compare$Type',1498);feb(1503,1,{},b1c);_.Ye=function c1c(a){return Kfb(UD(a))};var W_=sfb(bFe,'EdgeRouter/1methodref$doubleValue$Type',1503);feb(1505,1,fye,d1c);_.Ne=function e1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function f1c(a){return this===a};_.Oe=function g1c(){return new Frb(this)};var X_=sfb(bFe,'EdgeRouter/2methodref$compare$Type',1505);feb(1507,1,fye,h1c);_.Ne=function i1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function j1c(a){return this===a};_.Oe=function k1c(){return new Frb(this)};var Y_=sfb(bFe,'EdgeRouter/3methodref$compare$Type',1507);feb(1509,1,{},l1c);_.Ye=function m1c(a){return Kfb(UD(a))};var Z_=sfb(bFe,'EdgeRouter/4methodref$doubleValue$Type',1509);feb(1511,1,fye,n1c);_.Ne=function o1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function p1c(a){return this===a};_.Oe=function q1c(){return new Frb(this)};var $_=sfb(bFe,'EdgeRouter/5methodref$compare$Type',1511);feb(1513,1,fye,r1c);_.Ne=function s1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function t1c(a){return this===a};_.Oe=function u1c(){return new Frb(this)};var __=sfb(bFe,'EdgeRouter/6methodref$compare$Type',1513);feb(1497,1,{},v1c);_.Kb=function w1c(a){return B0c(),RD(mQb(RD(a,40),(h_c(),f_c)),17)};var a0=sfb(bFe,'EdgeRouter/lambda$0$Type',1497);feb(1508,1,{},x1c);_.Kb=function y1c(a){return L0c(RD(a,40))};var b0=sfb(bFe,'EdgeRouter/lambda$11$Type',1508);feb(1510,1,{},z1c);_.Kb=function A1c(a){return M0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var c0=sfb(bFe,'EdgeRouter/lambda$13$Type',1510);feb(1512,1,{},B1c);_.Kb=function C1c(a){return N0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var d0=sfb(bFe,'EdgeRouter/lambda$15$Type',1512);feb(1514,1,fye,D1c);_.Ne=function E1c(a,b){return O0c(RD(a,65),RD(b,65))};_.Fb=function F1c(a){return this===a};_.Oe=function G1c(){return new Frb(this)};var e0=sfb(bFe,'EdgeRouter/lambda$17$Type',1514);feb(1515,1,fye,H1c);_.Ne=function I1c(a,b){return P0c(RD(a,65),RD(b,65))};_.Fb=function J1c(a){return this===a};_.Oe=function K1c(){return new Frb(this)};var f0=sfb(bFe,'EdgeRouter/lambda$18$Type',1515);feb(1516,1,fye,L1c);_.Ne=function M1c(a,b){return Q0c(RD(a,65),RD(b,65))};_.Fb=function N1c(a){return this===a};_.Oe=function O1c(){return new Frb(this)};var g0=sfb(bFe,'EdgeRouter/lambda$19$Type',1516);feb(1499,1,nwe,P1c);_.Mb=function Q1c(a){return R0c(this.a,RD(a,40))};_.a=0;var h0=sfb(bFe,'EdgeRouter/lambda$2$Type',1499);feb(1517,1,fye,R1c);_.Ne=function S1c(a,b){return S0c(RD(a,65),RD(b,65))};_.Fb=function T1c(a){return this===a};_.Oe=function U1c(){return new Frb(this)};var i0=sfb(bFe,'EdgeRouter/lambda$20$Type',1517);feb(1500,1,fye,V1c);_.Ne=function W1c(a,b){return T0c(RD(a,40),RD(b,40))};_.Fb=function X1c(a){return this===a};_.Oe=function Y1c(){return new Frb(this)};var j0=sfb(bFe,'EdgeRouter/lambda$3$Type',1500);feb(1501,1,fye,Z1c);_.Ne=function $1c(a,b){return U0c(RD(a,40),RD(b,40))};_.Fb=function _1c(a){return this===a};_.Oe=function a2c(){return new Frb(this)};var k0=sfb(bFe,'EdgeRouter/lambda$4$Type',1501);feb(1502,1,{},b2c);_.Kb=function c2c(a){return V0c(RD(a,40))};var l0=sfb(bFe,'EdgeRouter/lambda$5$Type',1502);feb(1504,1,{},d2c);_.Kb=function e2c(a){return W0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var m0=sfb(bFe,'EdgeRouter/lambda$7$Type',1504);feb(1506,1,{},f2c);_.Kb=function g2c(a){return X0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var n0=sfb(bFe,'EdgeRouter/lambda$9$Type',1506);feb(675,1,{675:1},i2c);_.e=0;_.f=false;_.g=false;var r0=sfb(bFe,'MultiLevelEdgeNodeNodeGap',675);feb(1943,1,fye,l2c);_.Ne=function m2c(a,b){return j2c(RD(a,240),RD(b,240))};_.Fb=function n2c(a){return this===a};_.Oe=function o2c(){return new Frb(this)};var p0=sfb(bFe,'MultiLevelEdgeNodeNodeGap/lambda$0$Type',1943);feb(1944,1,fye,p2c);_.Ne=function q2c(a,b){return k2c(RD(a,240),RD(b,240))};_.Fb=function r2c(a){return this===a};_.Oe=function s2c(){return new Frb(this)};var q0=sfb(bFe,'MultiLevelEdgeNodeNodeGap/lambda$1$Type',1944);var t2c;feb(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},z2c);_.dg=function B2c(){return y2c(this)};_.qg=function A2c(){return y2c(this)};var v2c,w2c;var s0=tfb(cFe,'RadialLayoutPhases',501,WI,D2c,C2c);var E2c;feb(1113,205,oze,H2c);_.rf=function I2c(a,b){var c,d,e,f,g,h;c=G2c(this,a);b.Ug('Radial layout',c.c.length);Heb(TD(Gxd(a,($4c(),N4c))))||RFb((d=new SFb((lud(),new zud(a))),d));h=K2c(a);Ixd(a,(u2c(),t2c),h);if(!h){throw Adb(new agb('The given graph is not a tree!'))}e=Kfb(UD(Gxd(a,S4c)));e==0&&(e=J2c(a));Ixd(a,S4c,e);for(g=new Anb(G2c(this,a));g.a=3){v=RD(QHd(t,0),27);w=RD(QHd(t,1),27);f=0;while(f+2=v.f+w.f+k||w.f>=u.f+v.f+k){B=true;break}else{++f}}}else{B=true}if(!B){m=t.i;for(h=new dMd(t);h.e!=h.i.gc();){g=RD(bMd(h),27);Ixd(g,(umd(),Rld),sgb(m));--m}crd(a,new Oqd);b.Vg();return}c=(Sed(this.a),Ved(this.a,(f6c(),c6c),RD(Gxd(a,V7c),188)),Ved(this.a,d6c,RD(Gxd(a,M7c),188)),Ved(this.a,e6c,RD(Gxd(a,S7c),188)),Ped(this.a,(D=new ufd,pfd(D,c6c,(z6c(),y6c)),pfd(D,d6c,x6c),Heb(TD(Gxd(a,B7c)))&&pfd(D,c6c,w6c),D)),Qed(this.a,a));j=1/c.c.length;A=0;for(o=new Anb(c);o.a0&&vjd((BFb(c-1,b.length),b.charCodeAt(c-1)),ZAe)){--c}if(e>=c){throw Adb(new agb('The given string does not contain any numbers.'))}f=vhb((AFb(e,c,b.length),b.substr(e,c-e)),',|;|\r|\n');if(f.length!=2){throw Adb(new agb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Neb(Dhb(f[0]));this.b=Neb(Dhb(f[1]))}catch(a){a=zdb(a);if(ZD(a,130)){d=a;throw Adb(new agb($Ae+d))}else throw Adb(a)}};_.Ib=function yjd(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var l3=sfb(_Ae,'KVector',8);feb(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},Ejd,Fjd,Gjd);_.Pc=function Jjd(){return Djd(this)};_.cg=function Hjd(b){var c,d,e,f,g,h;e=vhb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Xub(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Neb(e[d])):(h=Neb(e[d]));g>0&&g%2!=0&&Mub(this,new rjd(f,h));++g}++d}}catch(a){a=zdb(a);if(ZD(a,130)){c=a;throw Adb(new agb('The given string does not match the expected format for vectors.'+c))}else throw Adb(a)}};_.Ib=function Kjd(){var a,b,c;a=new dib('(');b=Sub(this,0);while(b.b!=b.d.c){c=RD(evb(b),8);Zhb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var k3=sfb(_Ae,'KVectorChain',75);feb(255,22,{3:1,34:1,22:1,255:1},Sjd);var Ljd,Mjd,Njd,Ojd,Pjd,Qjd;var n3=tfb(JGe,'Alignment',255,WI,Ujd,Tjd);var Vjd;feb(991,1,Eye,jkd);_.hf=function kkd(a){ikd(a)};var Xjd,Yjd,Zjd,$jd,_jd,akd,bkd,ckd,dkd,ekd,fkd,gkd;var p3=sfb(JGe,'BoxLayouterOptions',991);feb(992,1,{},lkd);_.sf=function mkd(){var a;return a=new jrd,a};_.tf=function nkd(a){};var o3=sfb(JGe,'BoxLayouterOptions/BoxFactory',992);feb(298,22,{3:1,34:1,22:1,298:1},vkd);var okd,pkd,qkd,rkd,skd,tkd;var q3=tfb(JGe,'ContentAlignment',298,WI,xkd,wkd);var ykd;feb(699,1,Eye,vmd);_.hf=function wmd(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,OGe),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(kid(),iid)),qJ),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,PGe),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),hid),D2),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MDe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),Ckd),eid),n3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,Dze),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,QGe),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),hid),k3),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YDe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),Lkd),fid),q3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,LDe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Geb(),false)),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,PDe),''),eze),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),Okd),eid),s3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,kDe),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),Tkd),eid),u3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MGe),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fDe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),Ykd),eid),y3),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Eze),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),uld),hid),i3),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,dAe),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,iEe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gAe),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,eAe),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),Ild),eid),C3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,fEe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),hid),l3),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Xhd,Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,$ze),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),gid),bJ),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Thd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,bAe),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,cAe),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZDe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),dld),hid),k3),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aEe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,bEe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,RGe),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),hid),g3),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gEe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),fld),hid),h3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,JDe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),cid),QI),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Thd,Xhd,Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SGe),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),did),VI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,TGe),''),'Child Area Width'),'The width of the area occupied by the laid out children of a node.'),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,UGe),''),'Child Area Height'),'The height of the area occupied by the laid out children of a node.'),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,mAe),''),yGe),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),false),cid),QI),xsb(Whd))));zgd(a,mAe,qAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VGe),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WGe),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),sgb(100)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XGe),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YGe),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),sgb(4000)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZGe),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),sgb(400)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$Ge),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_Ge),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aHe),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,bHe),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,NGe),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),Gkd),eid),R3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,xDe),lDe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,yDe),lDe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Bze),lDe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,zDe),lDe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aAe),lDe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ADe),lDe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,BDe),lDe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,EDe),lDe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,CDe),lDe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,DDe),lDe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_ze),lDe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,FDe),lDe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,GDe),lDe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,HDe),lDe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),hid),l4),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Thd,Xhd,Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,hEe),lDe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),imd),hid),h3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,eEe),hHe),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),gid),bJ),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));zgd(a,eEe,dEe,yld);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,dEe),hHe),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),wld),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,QDe),iHe),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),hld),hid),i3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,kAe),iHe),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),jld),fid),A3),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TDe),jHe),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),Ald),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,UDe),jHe),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,VDe),jHe),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,WDe),jHe),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,XDe),jHe),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,jAe),kHe),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),lld),fid),H3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,iAe),kHe),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),qld),fid),I3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,CAe),kHe),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),old),hid),l3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,hAe),kHe),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$De),vDe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),Rkd),eid),t3),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fAe),vDe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),cid),QI),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,cHe),'font'),'Font Name'),'Font name used for a label.'),iid),qJ),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,dHe),'font'),'Font Size'),'Font size used for a label.'),gid),bJ),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,cEe),lHe),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),hid),l3),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,_De),lHe),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),gid),bJ),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,KDe),lHe),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),Pld),eid),E3),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,IDe),lHe),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),did),VI),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,lAe),mHe),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),Mld),fid),D3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,RDe),mHe),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SDe),mHe),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,nAe),nHe),'Topdown Scale Factor'),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),did),VI),xsb(Whd))));zgd(a,nAe,qAe,rmd);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,eHe),nHe),'Topdown Size Approximator'),'The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size.'),null),eid),M3),xsb(Vhd))));zgd(a,eHe,qAe,tmd);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,oAe),nHe),'Topdown Hierarchical Node Width'),'The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself.'),150),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));zgd(a,oAe,qAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,pAe),nHe),'Topdown Hierarchical Node Aspect Ratio'),'The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself.'),1.414),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));zgd(a,pAe,qAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,qAe),nHe),'Topdown Node Type'),'The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes.'),null),eid),J3),xsb(Vhd))));zgd(a,qAe,hAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fHe),nHe),'Topdown Scale Cap'),'Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes.'),1),did),VI),xsb(Whd))));zgd(a,fHe,qAe,pmd);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,NDe),oHe),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ODe),oHe),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),cid),QI),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Cze),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),did),VI),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gHe),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),Vkd),eid),v3),xsb(Thd))));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,sxe),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,Zze),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,$Ee),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,CFe),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));wnd((new xnd,a));ikd((new jkd,a));Gpd((new Hpd,a))};var Akd,Bkd,Ckd,Dkd,Ekd,Fkd,Gkd,Hkd,Ikd,Jkd,Kkd,Lkd,Mkd,Nkd,Okd,Pkd,Qkd,Rkd,Skd,Tkd,Ukd,Vkd,Wkd,Xkd,Ykd,Zkd,$kd,_kd,ald,bld,cld,dld,eld,fld,gld,hld,ild,jld,kld,lld,mld,nld,old,pld,qld,rld,sld,tld,uld,vld,wld,xld,yld,zld,Ald,Bld,Cld,Dld,Eld,Fld,Gld,Hld,Ild,Jld,Kld,Lld,Mld,Nld,Old,Pld,Qld,Rld,Sld,Tld,Uld,Vld,Wld,Xld,Yld,Zld,$ld,_ld,amd,bmd,cmd,dmd,emd,fmd,gmd,hmd,imd,jmd,kmd,lmd,mmd,nmd,omd,pmd,qmd,rmd,smd,tmd;var r3=sfb(JGe,'CoreOptions',699);feb(88,22,{3:1,34:1,22:1,88:1},Gmd);var xmd,ymd,zmd,Amd,Bmd;var s3=tfb(JGe,eze,88,WI,Imd,Hmd);var Jmd;feb(278,22,{3:1,34:1,22:1,278:1},Pmd);var Lmd,Mmd,Nmd;var t3=tfb(JGe,'EdgeLabelPlacement',278,WI,Rmd,Qmd);var Smd;feb(223,22,{3:1,34:1,22:1,223:1},Zmd);var Umd,Vmd,Wmd,Xmd;var u3=tfb(JGe,'EdgeRouting',223,WI,_md,$md);var and;feb(321,22,{3:1,34:1,22:1,321:1},jnd);var cnd,dnd,end,fnd,gnd,hnd;var v3=tfb(JGe,'EdgeType',321,WI,lnd,knd);var mnd;feb(989,1,Eye,xnd);_.hf=function ynd(a){wnd(a)};var ond,pnd,qnd,rnd,snd,tnd,und;var x3=sfb(JGe,'FixedLayouterOptions',989);feb(990,1,{},znd);_.sf=function And(){var a;return a=new btd,a};_.tf=function Bnd(a){};var w3=sfb(JGe,'FixedLayouterOptions/FixedFactory',990);feb(346,22,{3:1,34:1,22:1,346:1},Gnd);var Cnd,Dnd,End;var y3=tfb(JGe,'HierarchyHandling',346,WI,Ind,Hnd);var Jnd;feb(291,22,{3:1,34:1,22:1,291:1},Rnd);var Lnd,Mnd,Nnd,Ond;var z3=tfb(JGe,'LabelSide',291,WI,Tnd,Snd);var Und;feb(95,22,{3:1,34:1,22:1,95:1},eod);var Wnd,Xnd,Ynd,Znd,$nd,_nd,aod,bod,cod;var A3=tfb(JGe,'NodeLabelPlacement',95,WI,hod,god);var iod;feb(256,22,{3:1,34:1,22:1,256:1},qod);var kod,lod,mod,nod,ood;var B3=tfb(JGe,'PortAlignment',256,WI,sod,rod);var tod;feb(101,22,{3:1,34:1,22:1,101:1},Eod);var vod,wod,xod,yod,zod,Aod;var C3=tfb(JGe,'PortConstraints',101,WI,God,Fod);var Hod;feb(279,22,{3:1,34:1,22:1,279:1},Qod);var Jod,Kod,Lod,Mod,Nod,Ood;var D3=tfb(JGe,'PortLabelPlacement',279,WI,Uod,Tod);var Vod;feb(64,22,{3:1,34:1,22:1,64:1},upd);var Xod,Yod,Zod,$od,_od,apd,bpd,cpd,dpd,epd,fpd,gpd,hpd,ipd,jpd,kpd,lpd,mpd,npd,opd,ppd;var E3=tfb(JGe,'PortSide',64,WI,xpd,wpd);var ypd;feb(993,1,Eye,Hpd);_.hf=function Ipd(a){Gpd(a)};var Apd,Bpd,Cpd,Dpd,Epd;var G3=sfb(JGe,'RandomLayouterOptions',993);feb(994,1,{},Jpd);_.sf=function Kpd(){var a;return a=new eud,a};_.tf=function Lpd(a){};var F3=sfb(JGe,'RandomLayouterOptions/RandomFactory',994);feb(386,22,{3:1,34:1,22:1,386:1},Rpd);var Mpd,Npd,Opd,Ppd;var H3=tfb(JGe,'SizeConstraint',386,WI,Tpd,Spd);var Upd;feb(264,22,{3:1,34:1,22:1,264:1},eqd);var Wpd,Xpd,Ypd,Zpd,$pd,_pd,aqd,bqd,cqd;var I3=tfb(JGe,'SizeOptions',264,WI,gqd,fqd);var hqd;feb(280,22,{3:1,34:1,22:1,280:1},nqd);var jqd,kqd,lqd;var J3=tfb(JGe,'TopdownNodeTypes',280,WI,pqd,oqd);var qqd;feb(347,22,rHe);var sqd,tqd;var M3=tfb(JGe,'TopdownSizeApproximator',347,WI,xqd,wqd);feb(987,347,rHe,zqd);_.Tg=function Aqd(a){return yqd(a)};var K3=tfb(JGe,'TopdownSizeApproximator/1',987,M3,null,null);feb(988,347,rHe,Bqd);_.Tg=function Cqd(b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c=RD(Gxd(b,(umd(),Tld)),143);A=(bvd(),o=new ACd,o);zxd(A,b);B=new Tsb;for(g=new dMd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));g.e!=g.i.gc();){e=RD(bMd(g),27);t=(n=new ACd,n);yCd(t,A);zxd(t,e);D=yqd(e);zyd(t,$wnd.Math.max(e.g,D.a),$wnd.Math.max(e.f,D.b));rtb(B.f,e,t)}for(f=new dMd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));f.e!=f.i.gc();){e=RD(bMd(f),27);for(l=new dMd((!e.e&&(e.e=new Yie(G4,e,7,4)),e.e));l.e!=l.i.gc();){k=RD(bMd(l),74);v=RD(Wd(qtb(B.f,e)),27);w=RD(Wjb(B,QHd((!k.c&&(k.c=new Yie(E4,k,5,8)),k.c),0)),27);u=(m=new rzd,m);WGd((!u.b&&(u.b=new Yie(E4,u,4,7)),u.b),v);WGd((!u.c&&(u.c=new Yie(E4,u,5,8)),u.c),w);pzd(u,vCd(v));zxd(u,k)}}q=RD(ltd(c.f),205);try{q.rf(A,new ztd);mtd(c.f,q)}catch(a){a=zdb(a);if(ZD(a,103)){p=a;throw Adb(p)}else throw Adb(a)}Hxd(A,Ikd)||Hxd(A,Hkd)||psd(A);j=Kfb(UD(Gxd(A,Ikd)));i=Kfb(UD(Gxd(A,Hkd)));h=j/i;d=Kfb(UD(Gxd(A,lmd)))*$wnd.Math.sqrt((!A.a&&(A.a=new C5d(J4,A,10,11)),A.a).i);C=RD(Gxd(A,tld),107);s=C.b+C.c+1;r=C.d+C.a+1;return new rjd($wnd.Math.max(s,d),$wnd.Math.max(r,d/h))};var L3=tfb(JGe,'TopdownSizeApproximator/2',988,M3,null,null);var Dqd;feb(344,1,{871:1},Oqd);_.Ug=function Pqd(a,b){return Fqd(this,a,b)};_.Vg=function Qqd(){Hqd(this)};_.Wg=function Rqd(){return this.q};_.Xg=function Sqd(){return !this.f?null:Hob(this.f)};_.Yg=function Tqd(){return Hob(this.a)};_.Zg=function Uqd(){return this.p};_.$g=function Vqd(){return false};_._g=function Wqd(){return this.n};_.ah=function Xqd(){return this.p!=null&&!this.b};_.bh=function Yqd(a){var b;if(this.n){b=a;Rmb(this.f,b)}};_.dh=function Zqd(a,b){var c,d;this.n&&!!a&&Jqd(this,(c=new Zje,d=Rje(c,a),Yje(c),d),(ttd(),qtd))};_.eh=function $qd(a){var b;if(this.b){return null}else{b=Gqd(this,this.g);Mub(this.a,b);b.i=this;this.d=a;return b}};_.fh=function _qd(a){a>0&&!this.b&&Iqd(this,a)};_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var O3=sfb(jEe,'BasicProgressMonitor',344);feb(717,205,oze,jrd);_.rf=function nrd(a,b){crd(a,b)};var V3=sfb(jEe,'BoxLayoutProvider',717);feb(983,1,fye,prd);_.Ne=function qrd(a,b){return ord(this,RD(a,27),RD(b,27))};_.Fb=function rrd(a){return this===a};_.Oe=function srd(){return new Frb(this)};_.a=false;var P3=sfb(jEe,'BoxLayoutProvider/1',983);feb(163,1,{163:1},zrd,Ard);_.Ib=function Brd(){return this.c?zCd(this.c):Fe(this.b)};var Q3=sfb(jEe,'BoxLayoutProvider/Group',163);feb(320,22,{3:1,34:1,22:1,320:1},Hrd);var Crd,Drd,Erd,Frd;var R3=tfb(jEe,'BoxLayoutProvider/PackingMode',320,WI,Jrd,Ird);var Krd;feb(984,1,fye,Mrd);_.Ne=function Nrd(a,b){return krd(RD(a,163),RD(b,163))};_.Fb=function Ord(a){return this===a};_.Oe=function Prd(){return new Frb(this)};var S3=sfb(jEe,'BoxLayoutProvider/lambda$0$Type',984);feb(985,1,fye,Qrd);_.Ne=function Rrd(a,b){return lrd(RD(a,163),RD(b,163))};_.Fb=function Srd(a){return this===a};_.Oe=function Trd(){return new Frb(this)};var T3=sfb(jEe,'BoxLayoutProvider/lambda$1$Type',985);feb(986,1,fye,Urd);_.Ne=function Vrd(a,b){return mrd(RD(a,163),RD(b,163))};_.Fb=function Wrd(a){return this===a};_.Oe=function Xrd(){return new Frb(this)};var U3=sfb(jEe,'BoxLayoutProvider/lambda$2$Type',986);feb(1384,1,{845:1},Yrd);_.Mg=function Zrd(a,b){return GCc(),!ZD(b,167)||ued((hed(),ged,RD(a,167)),b)};var W3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1384);feb(1385,1,Qve,$rd);_.Cd=function _rd(a){JCc(this.a,RD(a,149))};var X3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1385);feb(1386,1,Qve,asd);_.Cd=function bsd(a){RD(a,96);GCc()};var Y3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1386);feb(1390,1,Qve,csd);_.Cd=function dsd(a){KCc(this.a,RD(a,96))};var Z3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1390);feb(1388,1,nwe,esd);_.Mb=function fsd(a){return LCc(this.a,this.b,RD(a,149))};var $3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1388);feb(1387,1,nwe,gsd);_.Mb=function hsd(a){return NCc(this.a,this.b,RD(a,845))};var _3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1387);feb(1389,1,Qve,isd);_.Cd=function jsd(a){MCc(this.a,this.b,RD(a,149))};var a4=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1389);feb(947,1,{},Lsd);_.Kb=function Msd(a){return Ksd(a)};_.Fb=function Nsd(a){return this===a};var c4=sfb(jEe,'ElkUtil/lambda$0$Type',947);feb(948,1,Qve,Osd);_.Cd=function Psd(a){ysd(this.a,this.b,RD(a,74))};_.a=0;_.b=0;var d4=sfb(jEe,'ElkUtil/lambda$1$Type',948);feb(949,1,Qve,Qsd);_.Cd=function Rsd(a){zsd(this.a,this.b,RD(a,166))};_.a=0;_.b=0;var e4=sfb(jEe,'ElkUtil/lambda$2$Type',949);feb(950,1,Qve,Ssd);_.Cd=function Tsd(a){Asd(this.a,this.b,RD(a,135))};_.a=0;_.b=0;var f4=sfb(jEe,'ElkUtil/lambda$3$Type',950);feb(951,1,Qve,Usd);_.Cd=function Vsd(a){Bsd(this.a,RD(a,377))};var g4=sfb(jEe,'ElkUtil/lambda$4$Type',951);feb(325,1,{34:1,325:1},Xsd);_.Fd=function Ysd(a){return Wsd(this,RD(a,242))};_.Fb=function Zsd(a){var b;if(ZD(a,325)){b=RD(a,325);return this.a==b.a}return false};_.Hb=function $sd(){return eE(this.a)};_.Ib=function _sd(){return this.a+' (exclusive)'};_.a=0;var h4=sfb(jEe,'ExclusiveBounds/ExclusiveLowerBound',325);feb(1119,205,oze,btd);_.rf=function ctd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;b.Ug('Fixed Layout',1);f=RD(Gxd(a,(umd(),Skd)),223);l=0;m=0;for(s=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));s.e!=s.i.gc();){q=RD(bMd(s),27);B=RD(Gxd(q,(vnd(),und)),8);if(B){Byd(q,B.a,B.b);if(RD(Gxd(q,pnd),181).Hc((Qpd(),Mpd))){n=RD(Gxd(q,rnd),8);n.a>0&&n.b>0&&Esd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new dMd((!q.n&&(q.n=new C5d(I4,q,1,7)),q.n));j.e!=j.i.gc();){h=RD(bMd(j),135);B=RD(Gxd(h,und),8);!!B&&Byd(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new dMd((!q.c&&(q.c=new C5d(K4,q,9,9)),q.c));v.e!=v.i.gc();){u=RD(bMd(v),123);B=RD(Gxd(u,und),8);!!B&&Byd(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new dMd((!u.n&&(u.n=new C5d(I4,u,1,7)),u.n));i.e!=i.i.gc();){h=RD(bMd(i),135);B=RD(Gxd(h,und),8);!!B&&Byd(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new is(Mr(zGd(q).a.Kc(),new ir));gs(e);){c=RD(hs(e),74);k=atd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new is(Mr(yGd(q).a.Kc(),new ir));gs(d);){c=RD(hs(d),74);if(vCd(JGd(c))!=a){k=atd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Ymd(),Umd)){for(r=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));r.e!=r.i.gc();){q=RD(bMd(r),27);for(d=new is(Mr(zGd(q).a.Kc(),new ir));gs(d);){c=RD(hs(d),74);g=tsd(c);g.b==0?Ixd(c,cld,null):Ixd(c,cld,g)}}}if(!Heb(TD(Gxd(a,(vnd(),qnd))))){t=RD(Gxd(a,snd),107);p=l+t.b+t.c;o=m+t.d+t.a;Esd(a,p,o,true,true)}b.Vg()};var i4=sfb(jEe,'FixedLayoutProvider',1119);feb(385,137,{3:1,423:1,385:1,96:1,137:1},dtd,etd);_.cg=function htd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=vhb(b,';,;');for(g=j,h=0,i=g.length;h>16&Bwe|b^d<<16};_.Kc=function Ttd(){return new Vtd(this)};_.Ib=function Utd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+jeb(this.b)+')':this.b==null?'pair('+jeb(this.a)+',null)':'pair('+jeb(this.a)+','+jeb(this.b)+')'};var r4=sfb(jEe,'Pair',42);feb(995,1,Ave,Vtd);_.Nb=function Wtd(a){Ztb(this,a)};_.Ob=function Xtd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Ytd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw Adb(new Dvb)};_.Qb=function Ztd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw Adb(new cgb)};_.b=false;_.c=false;var q4=sfb(jEe,'Pair/1',995);feb(455,1,{455:1},$td);_.Fb=function _td(a){return Fvb(this.a,RD(a,455).a)&&Fvb(this.c,RD(a,455).c)&&Fvb(this.d,RD(a,455).d)&&Fvb(this.b,RD(a,455).b)};_.Hb=function aud(){return Tnb(cD(WC(jJ,1),rve,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function bud(){return '('+this.a+pve+this.c+pve+this.d+pve+this.b+')'};var s4=sfb(jEe,'Quadruple',455);feb(1108,205,oze,eud);_.rf=function fud(a,b){var c,d,e,f,g;b.Ug('Random Layout',1);if((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a).i==0){b.Vg();return}f=RD(Gxd(a,(Fpd(),Dpd)),17);!!f&&f.a!=0?(e=new Pwb(f.a)):(e=new Owb);c=Mfb(UD(Gxd(a,Apd)));g=Mfb(UD(Gxd(a,Epd)));d=RD(Gxd(a,Bpd),107);dud(a,e,c,g,d);b.Vg()};var t4=sfb(jEe,'RandomLayoutProvider',1108);feb(240,1,{240:1},gud);_.Fb=function hud(a){return Fvb(this.a,RD(a,240).a)&&Fvb(this.b,RD(a,240).b)&&Fvb(this.c,RD(a,240).c)};_.Hb=function iud(){return Tnb(cD(WC(jJ,1),rve,1,5,[this.a,this.b,this.c]))};_.Ib=function jud(){return '('+this.a+pve+this.b+pve+this.c+')'};var u4=sfb(jEe,'Triple',240);var kud;feb(562,1,{});_.Lf=function oud(){return new rjd(this.f.i,this.f.j)};_.of=function pud(a){if(hGd(a,(umd(),Gld))){return Gxd(this.f,mud)}return Gxd(this.f,a)};_.Mf=function qud(){return new rjd(this.f.g,this.f.f)};_.Nf=function rud(){return this.g};_.pf=function sud(a){return Hxd(this.f,a)};_.Of=function tud(a){Dyd(this.f,a.a);Eyd(this.f,a.b)};_.Pf=function uud(a){Cyd(this.f,a.a);Ayd(this.f,a.b)};_.Qf=function vud(a){this.g=a};_.g=0;var mud;var v4=sfb(uHe,'ElkGraphAdapters/AbstractElkGraphElementAdapter',562);feb(563,1,{853:1},wud);_.Rf=function xud(){var a,b;if(!this.b){this.b=fv(iyd(this.a).i);for(b=new dMd(iyd(this.a));b.e!=b.i.gc();){a=RD(bMd(b),135);Rmb(this.b,new Bud(a))}}return this.b};_.b=null;var w4=sfb(uHe,'ElkGraphAdapters/ElkEdgeAdapter',563);feb(289,562,{},zud);_.Sf=function Aud(){return yud(this)};_.a=null;var x4=sfb(uHe,'ElkGraphAdapters/ElkGraphAdapter',289);feb(640,562,{187:1},Bud);var y4=sfb(uHe,'ElkGraphAdapters/ElkLabelAdapter',640);feb(639,562,{695:1},Fud);_.Rf=function Iud(){return Cud(this)};_.Vf=function Jud(){var a;return a=RD(Gxd(this.f,(umd(),eld)),140),!a&&(a=new P2b),a};_.Xf=function Lud(){return Dud(this)};_.Zf=function Nud(a){var b;b=new S2b(a);Ixd(this.f,(umd(),eld),b)};_.$f=function Oud(a){Ixd(this.f,(umd(),tld),new B3b(a))};_.Tf=function Gud(){return this.d};_.Uf=function Hud(){var a,b;if(!this.a){this.a=new bnb;for(b=new is(Mr(yGd(RD(this.f,27)).a.Kc(),new ir));gs(b);){a=RD(hs(b),74);Rmb(this.a,new wud(a))}}return this.a};_.Wf=function Kud(){var a,b;if(!this.c){this.c=new bnb;for(b=new is(Mr(zGd(RD(this.f,27)).a.Kc(),new ir));gs(b);){a=RD(hs(b),74);Rmb(this.c,new wud(a))}}return this.c};_.Yf=function Mud(){return tCd(RD(this.f,27)).i!=0||Heb(TD(RD(this.f,27).of((umd(),$kd))))};_._f=function Pud(){Eud(this,(lud(),kud))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var z4=sfb(uHe,'ElkGraphAdapters/ElkNodeAdapter',639);feb(1284,562,{852:1},Rud);_.Rf=function Tud(){return Qud(this)};_.Uf=function Sud(){var a,b;if(!this.a){this.a=ev(RD(this.f,123).hh().i);for(b=new dMd(RD(this.f,123).hh());b.e!=b.i.gc();){a=RD(bMd(b),74);Rmb(this.a,new wud(a))}}return this.a};_.Wf=function Uud(){var a,b;if(!this.c){this.c=ev(RD(this.f,123).ih().i);for(b=new dMd(RD(this.f,123).ih());b.e!=b.i.gc();){a=RD(bMd(b),74);Rmb(this.c,new wud(a))}}return this.c};_.ag=function Vud(){return RD(RD(this.f,123).of((umd(),Old)),64)};_.bg=function Wud(){var a,b,c,d,e,f,g,h;d=MCd(RD(this.f,123));for(c=new dMd(RD(this.f,123).ih());c.e!=c.i.gc();){a=RD(bMd(c),74);for(h=new dMd((!a.c&&(a.c=new Yie(E4,a,5,8)),a.c));h.e!=h.i.gc();){g=RD(bMd(h),84);if(NGd(AGd(g),d)){return true}else if(AGd(g)==d&&Heb(TD(Gxd(a,(umd(),_kd))))){return true}}}for(b=new dMd(RD(this.f,123).hh());b.e!=b.i.gc();){a=RD(bMd(b),74);for(f=new dMd((!a.b&&(a.b=new Yie(E4,a,4,7)),a.b));f.e!=f.i.gc();){e=RD(bMd(f),84);if(NGd(AGd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var A4=sfb(uHe,'ElkGraphAdapters/ElkPortAdapter',1284);feb(1285,1,fye,Yud);_.Ne=function Zud(a,b){return Xud(RD(a,123),RD(b,123))};_.Fb=function $ud(a){return this===a};_.Oe=function _ud(){return new Frb(this)};var B4=sfb(uHe,'ElkGraphAdapters/PortComparator',1285);var r7=ufb(vHe,'EObject');var C4=ufb(wHe,xHe);var D4=ufb(wHe,yHe);var H4=ufb(wHe,zHe);var L4=ufb(wHe,'ElkShape');var E4=ufb(wHe,AHe);var G4=ufb(wHe,BHe);var F4=ufb(wHe,CHe);var p7=ufb(vHe,DHe);var n7=ufb(vHe,'EFactory');var avd;var q7=ufb(vHe,EHe);var t7=ufb(vHe,'EPackage');var cvd;var evd,fvd,gvd,hvd,ivd,jvd,kvd,lvd,mvd,nvd,ovd;var I4=ufb(wHe,FHe);var J4=ufb(wHe,GHe);var K4=ufb(wHe,HHe);feb(93,1,IHe);_.th=function rvd(){this.uh();return null};_.uh=function svd(){return null};_.vh=function tvd(){return this.uh(),false};_.wh=function uvd(){return false};_.xh=function vvd(a){qvd(this,a)};var g6=sfb(JHe,'BasicNotifierImpl',93);feb(99,93,RHe);_.Yh=function Dwd(){return Mvd(this)};_.yh=function bwd(a,b){return a};_.zh=function cwd(){throw Adb(new jib)};_.Ah=function dwd(a){var b;return b=Z5d(RD(vYd(this.Dh(),this.Fh()),19)),this.Ph().Th(this,b.n,b.f,a)};_.Bh=function ewd(a,b){throw Adb(new jib)};_.Ch=function fwd(a,b,c){return xvd(this,a,b,c)};_.Dh=function gwd(){var a;if(this.zh()){a=this.zh().Nk();if(a){return a}}return this.ii()};_.Eh=function hwd(){return yvd(this)};_.Fh=function iwd(){throw Adb(new jib)};_.Gh=function kwd(){var a,b;b=this.$h().Ok();!b&&this.zh().Tk(b=(N2d(),a=P$d(rYd(this.Dh())),a==null?M2d:new Q2d(this,a)));return b};_.Hh=function mwd(a,b){return a};_.Ih=function nwd(a){var b;b=a.pk();return !b?BYd(this.Dh(),a):a.Lj()};_.Jh=function owd(){var a;a=this.zh();return !a?null:a.Qk()};_.Kh=function pwd(){return !this.zh()?null:this.zh().Nk()};_.Lh=function qwd(a,b,c){return Dvd(this,a,b,c)};_.Mh=function rwd(a){return Evd(this,a)};_.Nh=function swd(a,b){return Fvd(this,a,b)};_.Oh=function twd(){var a;a=this.zh();return !!a&&a.Rk()};_.Ph=function uwd(){throw Adb(new jib)};_.Qh=function vwd(){return Hvd(this)};_.Rh=function wwd(a,b,c,d){return Ivd(this,a,b,d)};_.Sh=function xwd(a,b,c){var d;return d=RD(vYd(this.Dh(),b),69),d.wk().zk(this,this.hi(),b-this.ji(),a,c)};_.Th=function ywd(a,b,c,d){return Jvd(this,a,b,d)};_.Uh=function zwd(a,b,c){var d;return d=RD(vYd(this.Dh(),b),69),d.wk().Ak(this,this.hi(),b-this.ji(),a,c)};_.Vh=function Awd(){return !!this.zh()&&!!this.zh().Pk()};_.Wh=function Bwd(a){return Kvd(this,a)};_.Xh=function Cwd(a){return Lvd(this,a)};_.Zh=function Ewd(a){return Pvd(this,a)};_.$h=function Fwd(){throw Adb(new jib)};_._h=function Gwd(){return !this.zh()?null:this.zh().Pk()};_.ai=function Hwd(){return Hvd(this)};_.bi=function Iwd(a,b){Wvd(this,a,b)};_.ci=function Jwd(a){this.$h().Sk(a)};_.di=function Kwd(a){this.$h().Vk(a)};_.ei=function Lwd(a){this.$h().Uk(a)};_.fi=function Mwd(a,b){var c,d,e,f;f=this.Jh();if(!!f&&!!a){b=rLd(f.El(),this,b);f.Il(this)}d=this.Ph();if(d){if((jwd(this,this.Ph(),this.Fh()).Bb&txe)!=0){e=d.Qh();!!e&&(!a?e.Hl(this):!f&&e.Il(this))}else{b=(c=this.Fh(),c>=0?this.Ah(b):this.Ph().Th(this,-1-c,null,b));b=this.Ch(null,-1,b)}}this.di(a);return b};_.gi=function Nwd(a){var b,c,d,e,f,g,h,i;c=this.Dh();f=BYd(c,a);b=this.ji();if(f>=b){return RD(a,69).wk().Dk(this,this.hi(),f-b)}else if(f<=-1){g=Eee((lke(),jke),c,a);if(g){nke();RD(g,69).xk()||(g=zfe(Qee(jke,g)));e=(d=this.Ih(g),RD(d>=0?this.Lh(d,true,true):Qvd(this,g,true),160));i=g.Ik();if(i>1||i==-1){return RD(RD(e,220).Sl(a,false),79)}}else{throw Adb(new agb(KHe+a.xe()+NHe))}}else if(a.Jk()){return d=this.Ih(a),RD(d>=0?this.Lh(d,false,true):Qvd(this,a,false),79)}h=new NTd(this,a);return h};_.hi=function Owd(){return Yvd(this)};_.ii=function Pwd(){return (lTd(),kTd).S};_.ji=function Qwd(){return AYd(this.ii())};_.ki=function Rwd(a){$vd(this,a)};_.Ib=function Swd(){return awd(this)};var G7=sfb(SHe,'BasicEObjectImpl',99);var ZSd;feb(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1});_.li=function _wd(a){var b;b=Vwd(this);return b[a]};_.mi=function axd(a,b){var c;c=Vwd(this);bD(c,a,b)};_.ni=function bxd(a){var b;b=Vwd(this);bD(b,a,null)};_.th=function cxd(){return RD(Ywd(this,4),129)};_.uh=function dxd(){throw Adb(new jib)};_.vh=function exd(){return (this.Db&4)!=0};_.zh=function fxd(){throw Adb(new jib)};_.oi=function gxd(a){$wd(this,2,a)};_.Bh=function hxd(a,b){this.Db=b<<16|this.Db&255;this.oi(a)};_.Dh=function ixd(){return Uwd(this)};_.Fh=function jxd(){return this.Db>>16};_.Gh=function kxd(){var a,b;return N2d(),b=P$d(rYd((a=RD(Ywd(this,16),29),!a?this.ii():a))),b==null?(null,M2d):new Q2d(this,b)};_.wh=function lxd(){return (this.Db&1)==0};_.Jh=function mxd(){return RD(Ywd(this,128),2034)};_.Kh=function nxd(){return RD(Ywd(this,16),29)};_.Oh=function oxd(){return (this.Db&32)!=0};_.Ph=function pxd(){return RD(Ywd(this,2),54)};_.Vh=function qxd(){return (this.Db&64)!=0};_.$h=function rxd(){throw Adb(new jib)};_._h=function sxd(){return RD(Ywd(this,64),288)};_.ci=function txd(a){$wd(this,16,a)};_.di=function uxd(a){$wd(this,128,a)};_.ei=function vxd(a){$wd(this,64,a)};_.hi=function wxd(){return Wwd(this)};_.Db=0;var xab=sfb(SHe,'MinimalEObjectImpl',119);feb(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.oi=function xxd(a){this.Cb=a};_.Ph=function yxd(){return this.Cb};var wab=sfb(SHe,'MinimalEObjectImpl/Container',120);feb(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function Jxd(a,b,c){return Axd(this,a,b,c)};_.Uh=function Kxd(a,b,c){return Bxd(this,a,b,c)};_.Wh=function Lxd(a){return Cxd(this,a)};_.bi=function Mxd(a,b){Dxd(this,a,b)};_.ii=function Nxd(){return pvd(),ovd};_.ki=function Oxd(a){Exd(this,a)};_.nf=function Pxd(){return Fxd(this)};_.gh=function Qxd(){return !this.o&&(this.o=new DVd((pvd(),mvd),X4,this,0)),this.o};_.of=function Rxd(a){return Gxd(this,a)};_.pf=function Sxd(a){return Hxd(this,a)};_.qf=function Txd(a,b){return Ixd(this,a,b)};var M4=sfb(THe,'EMapPropertyHolderImpl',2083);feb(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Xxd);_.Lh=function Yxd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return Dvd(this,a,b,c)};_.Wh=function Zxd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return Kvd(this,a)};_.bi=function $xd(a,b){switch(a){case 0:Vxd(this,Kfb(UD(b)));return;case 1:Wxd(this,Kfb(UD(b)));return;}Wvd(this,a,b)};_.ii=function _xd(){return pvd(),evd};_.ki=function ayd(a){switch(a){case 0:Vxd(this,0);return;case 1:Wxd(this,0);return;}$vd(this,a)};_.Ib=function byd(){var a;if((this.Db&64)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (x: ';Khb(a,this.a);a.a+=', y: ';Khb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var N4=sfb(THe,'ElkBendPointImpl',572);feb(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function lyd(a,b,c){return cyd(this,a,b,c)};_.Sh=function myd(a,b,c){return dyd(this,a,b,c)};_.Uh=function nyd(a,b,c){return eyd(this,a,b,c)};_.Wh=function oyd(a){return fyd(this,a)};_.bi=function pyd(a,b){gyd(this,a,b)};_.ii=function qyd(){return pvd(),ivd};_.ki=function ryd(a){hyd(this,a)};_.jh=function syd(){return this.k};_.kh=function tyd(){return iyd(this)};_.Ib=function uyd(){return kyd(this)};_.k=null;var R4=sfb(THe,'ElkGraphElementImpl',739);feb(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function Gyd(a,b,c){return vyd(this,a,b,c)};_.Wh=function Hyd(a){return wyd(this,a)};_.bi=function Iyd(a,b){xyd(this,a,b)};_.ii=function Jyd(){return pvd(),nvd};_.ki=function Kyd(a){yyd(this,a)};_.lh=function Lyd(){return this.f};_.mh=function Myd(){return this.g};_.nh=function Nyd(){return this.i};_.oh=function Oyd(){return this.j};_.ph=function Pyd(a,b){zyd(this,a,b)};_.qh=function Qyd(a,b){Byd(this,a,b)};_.rh=function Ryd(a){Dyd(this,a)};_.sh=function Syd(a){Eyd(this,a)};_.Ib=function Tyd(){return Fyd(this)};_.f=0;_.g=0;_.i=0;_.j=0;var Y4=sfb(THe,'ElkShapeImpl',740);feb(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function _yd(a,b,c){return Uyd(this,a,b,c)};_.Sh=function azd(a,b,c){return Vyd(this,a,b,c)};_.Uh=function bzd(a,b,c){return Wyd(this,a,b,c)};_.Wh=function czd(a){return Xyd(this,a)};_.bi=function dzd(a,b){Yyd(this,a,b)};_.ii=function ezd(){return pvd(),fvd};_.ki=function fzd(a){Zyd(this,a)};_.hh=function gzd(){return !this.d&&(this.d=new Yie(G4,this,8,5)),this.d};_.ih=function hzd(){return !this.e&&(this.e=new Yie(G4,this,7,4)),this.e};var O4=sfb(THe,'ElkConnectableShapeImpl',741);feb(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},rzd);_.Ah=function szd(a){return jzd(this,a)};_.Lh=function tzd(a,b,c){switch(a){case 3:return kzd(this);case 4:return !this.b&&(this.b=new Yie(E4,this,4,7)),this.b;case 5:return !this.c&&(this.c=new Yie(E4,this,5,8)),this.c;case 6:return !this.a&&(this.a=new C5d(F4,this,6,6)),this.a;case 7:return Geb(),!this.b&&(this.b=new Yie(E4,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i<=1)?false:true;case 8:return Geb(),nzd(this)?true:false;case 9:return Geb(),ozd(this)?true:false;case 10:return Geb(),!this.b&&(this.b=new Yie(E4,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i!=0)?true:false;}return cyd(this,a,b,c)};_.Sh=function uzd(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?jzd(this,c):this.Cb.Th(this,-1-d,null,c)));return izd(this,RD(a,27),c);case 4:return !this.b&&(this.b=new Yie(E4,this,4,7)),qLd(this.b,a,c);case 5:return !this.c&&(this.c=new Yie(E4,this,5,8)),qLd(this.c,a,c);case 6:return !this.a&&(this.a=new C5d(F4,this,6,6)),qLd(this.a,a,c);}return dyd(this,a,b,c)};_.Uh=function vzd(a,b,c){switch(b){case 3:return izd(this,null,c);case 4:return !this.b&&(this.b=new Yie(E4,this,4,7)),rLd(this.b,a,c);case 5:return !this.c&&(this.c=new Yie(E4,this,5,8)),rLd(this.c,a,c);case 6:return !this.a&&(this.a=new C5d(F4,this,6,6)),rLd(this.a,a,c);}return eyd(this,a,b,c)};_.Wh=function wzd(a){switch(a){case 3:return !!kzd(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new Yie(E4,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i<=1));case 8:return nzd(this);case 9:return ozd(this);case 10:return !this.b&&(this.b=new Yie(E4,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i!=0);}return fyd(this,a)};_.bi=function xzd(a,b){switch(a){case 3:pzd(this,RD(b,27));return;case 4:!this.b&&(this.b=new Yie(E4,this,4,7));sLd(this.b);!this.b&&(this.b=new Yie(E4,this,4,7));YGd(this.b,RD(b,16));return;case 5:!this.c&&(this.c=new Yie(E4,this,5,8));sLd(this.c);!this.c&&(this.c=new Yie(E4,this,5,8));YGd(this.c,RD(b,16));return;case 6:!this.a&&(this.a=new C5d(F4,this,6,6));sLd(this.a);!this.a&&(this.a=new C5d(F4,this,6,6));YGd(this.a,RD(b,16));return;}gyd(this,a,b)};_.ii=function yzd(){return pvd(),gvd};_.ki=function zzd(a){switch(a){case 3:pzd(this,null);return;case 4:!this.b&&(this.b=new Yie(E4,this,4,7));sLd(this.b);return;case 5:!this.c&&(this.c=new Yie(E4,this,5,8));sLd(this.c);return;case 6:!this.a&&(this.a=new C5d(F4,this,6,6));sLd(this.a);return;}hyd(this,a)};_.Ib=function Azd(){return qzd(this)};var P4=sfb(THe,'ElkEdgeImpl',326);feb(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Rzd);_.Ah=function Szd(a){return Czd(this,a)};_.Lh=function Tzd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new XZd(D4,this,5)),this.a;case 6:return Fzd(this);case 7:if(b)return Ezd(this);return this.i;case 8:if(b)return Dzd(this);return this.f;case 9:return !this.g&&(this.g=new Yie(F4,this,9,10)),this.g;case 10:return !this.e&&(this.e=new Yie(F4,this,10,9)),this.e;case 11:return this.d;}return Axd(this,a,b,c)};_.Sh=function Uzd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Czd(this,c):this.Cb.Th(this,-1-e,null,c)));return Bzd(this,RD(a,74),c);case 9:return !this.g&&(this.g=new Yie(F4,this,9,10)),qLd(this.g,a,c);case 10:return !this.e&&(this.e=new Yie(F4,this,10,9)),qLd(this.e,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(pvd(),hvd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((pvd(),hvd)),a,c)};_.Uh=function Vzd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new XZd(D4,this,5)),rLd(this.a,a,c);case 6:return Bzd(this,null,c);case 9:return !this.g&&(this.g=new Yie(F4,this,9,10)),rLd(this.g,a,c);case 10:return !this.e&&(this.e=new Yie(F4,this,10,9)),rLd(this.e,a,c);}return Bxd(this,a,b,c)};_.Wh=function Wzd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!Fzd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return Cxd(this,a)};_.bi=function Xzd(a,b){switch(a){case 1:Ozd(this,Kfb(UD(b)));return;case 2:Pzd(this,Kfb(UD(b)));return;case 3:Hzd(this,Kfb(UD(b)));return;case 4:Izd(this,Kfb(UD(b)));return;case 5:!this.a&&(this.a=new XZd(D4,this,5));sLd(this.a);!this.a&&(this.a=new XZd(D4,this,5));YGd(this.a,RD(b,16));return;case 6:Mzd(this,RD(b,74));return;case 7:Lzd(this,RD(b,84));return;case 8:Kzd(this,RD(b,84));return;case 9:!this.g&&(this.g=new Yie(F4,this,9,10));sLd(this.g);!this.g&&(this.g=new Yie(F4,this,9,10));YGd(this.g,RD(b,16));return;case 10:!this.e&&(this.e=new Yie(F4,this,10,9));sLd(this.e);!this.e&&(this.e=new Yie(F4,this,10,9));YGd(this.e,RD(b,16));return;case 11:Jzd(this,WD(b));return;}Dxd(this,a,b)};_.ii=function Yzd(){return pvd(),hvd};_.ki=function Zzd(a){switch(a){case 1:Ozd(this,0);return;case 2:Pzd(this,0);return;case 3:Hzd(this,0);return;case 4:Izd(this,0);return;case 5:!this.a&&(this.a=new XZd(D4,this,5));sLd(this.a);return;case 6:Mzd(this,null);return;case 7:Lzd(this,null);return;case 8:Kzd(this,null);return;case 9:!this.g&&(this.g=new Yie(F4,this,9,10));sLd(this.g);return;case 10:!this.e&&(this.e=new Yie(F4,this,10,9));sLd(this.e);return;case 11:Jzd(this,null);return;}Exd(this,a)};_.Ib=function $zd(){return Qzd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var Q4=sfb(THe,'ElkEdgeSectionImpl',452);feb(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1});_.Lh=function cAd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Sh=function dAd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c)}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().zk(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Uh=function eAd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c)}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function fAd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.Zh=function gAd(a){return _zd(this,a)};_.bi=function hAd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.di=function iAd(a){$wd(this,128,a)};_.ii=function jAd(){return JTd(),xTd};_.ki=function kAd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.pi=function lAd(){this.Bb|=1};_.qi=function mAd(a){return bAd(this,a)};_.Bb=0;var k8=sfb(SHe,'EModelElementImpl',158);feb(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},yAd);_.ri=function zAd(a,b){return tAd(this,a,b)};_.si=function AAd(a){var b,c,d,e,f;if(this.a!=BXd(a)||(a.Bb&256)!=0){throw Adb(new agb(ZHe+a.zb+WHe))}for(d=zYd(a);tYd(d.a).i!=0;){c=RD(N_d(d,0,(b=RD(QHd(tYd(d.a),0),89),f=b.c,ZD(f,90)?RD(f,29):(JTd(),zTd))),29);if(DXd(c)){e=BXd(c).wi().si(c);RD(e,54).ci(a);return e}d=zYd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new LUd(a):new zUd(a)};_.ti=function BAd(a,b){return uAd(this,a,b)};_.Lh=function CAd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.a;}return zvd(this,a-AYd((JTd(),uTd)),vYd((d=RD(Ywd(this,16),29),!d?uTd:d),a),b,c)};_.Sh=function DAd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 1:!!this.a&&(c=RD(this.a,54).Th(this,4,t7,c));return rAd(this,RD(a,241),c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),uTd):d),b),69),e.wk().zk(this,Wwd(this),b-AYd((JTd(),uTd)),a,c)};_.Uh=function EAd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 1:return rAd(this,null,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),uTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),uTd)),a,c)};_.Wh=function FAd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return Avd(this,a-AYd((JTd(),uTd)),vYd((b=RD(Ywd(this,16),29),!b?uTd:b),a))};_.bi=function GAd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:wAd(this,RD(b,241));return;}Bvd(this,a-AYd((JTd(),uTd)),vYd((c=RD(Ywd(this,16),29),!c?uTd:c),a),b)};_.ii=function HAd(){return JTd(),uTd};_.ki=function IAd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:wAd(this,null);return;}Cvd(this,a-AYd((JTd(),uTd)),vYd((b=RD(Ywd(this,16),29),!b?uTd:b),a))};var nAd,oAd,pAd;var i8=sfb(SHe,'EFactoryImpl',720);feb(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},KAd);_.ri=function LAd(a,b){switch(a.hk()){case 12:return RD(b,149).Pg();case 13:return jeb(b);default:throw Adb(new agb(VHe+a.xe()+WHe));}};_.si=function MAd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=BXd(a),b?fZd(b.vi(),a):-1)),a.G){case 4:return f=new hCd,f;case 6:return g=new ACd,g;case 7:return h=new PCd,h;case 8:return d=new rzd,d;case 9:return c=new Xxd,c;case 10:return e=new Rzd,e;case 11:return i=new _Cd,i;default:throw Adb(new agb(ZHe+a.zb+WHe));}};_.ti=function NAd(a,b){switch(a.hk()){case 13:case 12:return null;default:throw Adb(new agb(VHe+a.xe()+WHe));}};var S4=sfb(THe,'ElkGraphFactoryImpl',1037);feb(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1});_.Gh=function RAd(){var a,b;b=(a=RD(Ywd(this,16),29),P$d(rYd(!a?this.ii():a)));return b==null?(N2d(),N2d(),M2d):new e3d(this,b)};_.Lh=function SAd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.xe();}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Wh=function TAd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function UAd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:this.ui(WD(b));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function VAd(){return JTd(),yTd};_.ki=function WAd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:this.ui(null);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.xe=function XAd(){return this.zb};_.ui=function YAd(a){PAd(this,a)};_.Ib=function ZAd(){return QAd(this)};_.zb=null;var o8=sfb(SHe,'ENamedElementImpl',448);feb(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},EBd);_.Ah=function GBd(a){return qBd(this,a)};_.Lh=function HBd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new J5d(this,i7,this)),this.rb;case 6:return !this.vb&&(this.vb=new G5d(t7,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?RD(this.Cb,241):null;return gBd(this);}return zvd(this,a-AYd((JTd(),CTd)),vYd((d=RD(Ywd(this,16),29),!d?CTd:d),a),b,c)};_.Sh=function IBd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 4:!!this.sb&&(c=RD(this.sb,54).Th(this,1,n7,c));return hBd(this,RD(a,480),c);case 5:return !this.rb&&(this.rb=new J5d(this,i7,this)),qLd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new G5d(t7,this,6,7)),qLd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qBd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,7,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),CTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),CTd)),a,c)};_.Uh=function JBd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 4:return hBd(this,null,c);case 5:return !this.rb&&(this.rb=new J5d(this,i7,this)),rLd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new G5d(t7,this,6,7)),rLd(this.vb,a,c);case 7:return xvd(this,null,7,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),CTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),CTd)),a,c)};_.Wh=function KBd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!gBd(this);}return Avd(this,a-AYd((JTd(),CTd)),vYd((b=RD(Ywd(this,16),29),!b?CTd:b),a))};_.Zh=function LBd(a){var b;b=sBd(this,a);return b?b:_zd(this,a)};_.bi=function MBd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:DBd(this,WD(b));return;case 3:CBd(this,WD(b));return;case 4:BBd(this,RD(b,480));return;case 5:!this.rb&&(this.rb=new J5d(this,i7,this));sLd(this.rb);!this.rb&&(this.rb=new J5d(this,i7,this));YGd(this.rb,RD(b,16));return;case 6:!this.vb&&(this.vb=new G5d(t7,this,6,7));sLd(this.vb);!this.vb&&(this.vb=new G5d(t7,this,6,7));YGd(this.vb,RD(b,16));return;}Bvd(this,a-AYd((JTd(),CTd)),vYd((c=RD(Ywd(this,16),29),!c?CTd:c),a),b)};_.ei=function NBd(a){var b,c;if(!!a&&!!this.rb){for(c=new dMd(this.rb);c.e!=c.i.gc();){b=bMd(c);ZD(b,364)&&(RD(b,364).w=null)}}$wd(this,64,a)};_.ii=function OBd(){return JTd(),CTd};_.ki=function PBd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:DBd(this,null);return;case 3:CBd(this,null);return;case 4:BBd(this,null);return;case 5:!this.rb&&(this.rb=new J5d(this,i7,this));sLd(this.rb);return;case 6:!this.vb&&(this.vb=new G5d(t7,this,6,7));sLd(this.vb);return;}Cvd(this,a-AYd((JTd(),CTd)),vYd((b=RD(Ywd(this,16),29),!b?CTd:b),a))};_.pi=function QBd(){rBd(this)};_.vi=function RBd(){return !this.rb&&(this.rb=new J5d(this,i7,this)),this.rb};_.wi=function SBd(){return this.sb};_.xi=function TBd(){return this.ub};_.yi=function UBd(){return this.xb};_.zi=function VBd(){return this.yb};_.Ai=function WBd(a){this.ub=a};_.Ib=function XBd(){var a;if((this.Db&64)!=0)return QAd(this);a=new Shb(QAd(this));a.a+=' (nsURI: ';Nhb(a,this.yb);a.a+=', nsPrefix: ';Nhb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var $Ad;var y8=sfb(SHe,'EPackageImpl',184);feb(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},_Bd);_.q=false;_.r=false;var YBd=false;var T4=sfb(THe,'ElkGraphPackageImpl',569);feb(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},hCd);_.Ah=function iCd(a){return cCd(this,a)};_.Lh=function jCd(a,b,c){switch(a){case 7:return dCd(this);case 8:return this.a;}return vyd(this,a,b,c)};_.Sh=function kCd(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?cCd(this,c):this.Cb.Th(this,-1-d,null,c)));return bCd(this,RD(a,167),c);}return dyd(this,a,b,c)};_.Uh=function lCd(a,b,c){if(b==7){return bCd(this,null,c)}return eyd(this,a,b,c)};_.Wh=function mCd(a){switch(a){case 7:return !!dCd(this);case 8:return !lhb('',this.a);}return wyd(this,a)};_.bi=function nCd(a,b){switch(a){case 7:eCd(this,RD(b,167));return;case 8:fCd(this,WD(b));return;}xyd(this,a,b)};_.ii=function oCd(){return pvd(),jvd};_.ki=function pCd(a){switch(a){case 7:eCd(this,null);return;case 8:fCd(this,'');return;}yyd(this,a)};_.Ib=function qCd(){return gCd(this)};_.a='';var U4=sfb(THe,'ElkLabelImpl',366);feb(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},ACd);_.Ah=function BCd(a){return sCd(this,a)};_.Lh=function CCd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new C5d(K4,this,9,9)),this.c;case 10:return !this.a&&(this.a=new C5d(J4,this,10,11)),this.a;case 11:return vCd(this);case 12:return !this.b&&(this.b=new C5d(G4,this,12,3)),this.b;case 13:return Geb(),!this.a&&(this.a=new C5d(J4,this,10,11)),this.a.i>0?true:false;}return Uyd(this,a,b,c)};_.Sh=function DCd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new C5d(K4,this,9,9)),qLd(this.c,a,c);case 10:return !this.a&&(this.a=new C5d(J4,this,10,11)),qLd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?sCd(this,c):this.Cb.Th(this,-1-d,null,c)));return rCd(this,RD(a,27),c);case 12:return !this.b&&(this.b=new C5d(G4,this,12,3)),qLd(this.b,a,c);}return Vyd(this,a,b,c)};_.Uh=function ECd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new C5d(K4,this,9,9)),rLd(this.c,a,c);case 10:return !this.a&&(this.a=new C5d(J4,this,10,11)),rLd(this.a,a,c);case 11:return rCd(this,null,c);case 12:return !this.b&&(this.b=new C5d(G4,this,12,3)),rLd(this.b,a,c);}return Wyd(this,a,b,c)};_.Wh=function FCd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!vCd(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new C5d(J4,this,10,11)),this.a.i>0;}return Xyd(this,a)};_.bi=function GCd(a,b){switch(a){case 9:!this.c&&(this.c=new C5d(K4,this,9,9));sLd(this.c);!this.c&&(this.c=new C5d(K4,this,9,9));YGd(this.c,RD(b,16));return;case 10:!this.a&&(this.a=new C5d(J4,this,10,11));sLd(this.a);!this.a&&(this.a=new C5d(J4,this,10,11));YGd(this.a,RD(b,16));return;case 11:yCd(this,RD(b,27));return;case 12:!this.b&&(this.b=new C5d(G4,this,12,3));sLd(this.b);!this.b&&(this.b=new C5d(G4,this,12,3));YGd(this.b,RD(b,16));return;}Yyd(this,a,b)};_.ii=function HCd(){return pvd(),kvd};_.ki=function ICd(a){switch(a){case 9:!this.c&&(this.c=new C5d(K4,this,9,9));sLd(this.c);return;case 10:!this.a&&(this.a=new C5d(J4,this,10,11));sLd(this.a);return;case 11:yCd(this,null);return;case 12:!this.b&&(this.b=new C5d(G4,this,12,3));sLd(this.b);return;}Zyd(this,a)};_.Ib=function JCd(){return zCd(this)};var V4=sfb(THe,'ElkNodeImpl',207);feb(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},PCd);_.Ah=function QCd(a){return LCd(this,a)};_.Lh=function RCd(a,b,c){if(a==9){return MCd(this)}return Uyd(this,a,b,c)};_.Sh=function SCd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?LCd(this,c):this.Cb.Th(this,-1-d,null,c)));return KCd(this,RD(a,27),c);}return Vyd(this,a,b,c)};_.Uh=function TCd(a,b,c){if(b==9){return KCd(this,null,c)}return Wyd(this,a,b,c)};_.Wh=function UCd(a){if(a==9){return !!MCd(this)}return Xyd(this,a)};_.bi=function VCd(a,b){switch(a){case 9:NCd(this,RD(b,27));return;}Yyd(this,a,b)};_.ii=function WCd(){return pvd(),lvd};_.ki=function XCd(a){switch(a){case 9:NCd(this,null);return;}Zyd(this,a)};_.Ib=function YCd(){return OCd(this)};var W4=sfb(THe,'ElkPortImpl',193);var O6=ufb(sIe,'BasicEMap/Entry');feb(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},_Cd);_.Fb=function fDd(a){return this===a};_.ld=function hDd(){return this.b};_.Hb=function jDd(){return kFb(this)};_.Di=function lDd(a){ZCd(this,RD(a,149))};_.Lh=function aDd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return Dvd(this,a,b,c)};_.Wh=function bDd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return Kvd(this,a)};_.bi=function cDd(a,b){switch(a){case 0:ZCd(this,RD(b,149));return;case 1:$Cd(this,b);return;}Wvd(this,a,b)};_.ii=function dDd(){return pvd(),mvd};_.ki=function eDd(a){switch(a){case 0:ZCd(this,null);return;case 1:$Cd(this,null);return;}$vd(this,a)};_.Bi=function gDd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.md=function iDd(){return this.c};_.Ci=function kDd(a){this.a=a};_.nd=function mDd(a){var b;b=this.c;$Cd(this,a);return b};_.Ib=function nDd(){var a;if((this.Db&64)!=0)return awd(this);a=new bib;Zhb(Zhb(Zhb(a,this.b?this.b.Pg():vve),SAe),Ghb(this.c));return a.a};_.a=-1;_.c=null;var X4=sfb(THe,'ElkPropertyToValueMapEntryImpl',1122);feb(996,1,{},BDd);var Z4=sfb(vIe,'JsonAdapter',996);feb(216,63,swe,CDd);var $4=sfb(vIe,'JsonImportException',216);feb(868,1,{},IEd);var O5=sfb(vIe,'JsonImporter',868);feb(903,1,{},JEd);var _4=sfb(vIe,'JsonImporter/lambda$0$Type',903);feb(904,1,{},KEd);var a5=sfb(vIe,'JsonImporter/lambda$1$Type',904);feb(912,1,{},LEd);var b5=sfb(vIe,'JsonImporter/lambda$10$Type',912);feb(914,1,{},MEd);var c5=sfb(vIe,'JsonImporter/lambda$11$Type',914);feb(915,1,{},NEd);var d5=sfb(vIe,'JsonImporter/lambda$12$Type',915);feb(921,1,{},OEd);var e5=sfb(vIe,'JsonImporter/lambda$13$Type',921);feb(920,1,{},PEd);var f5=sfb(vIe,'JsonImporter/lambda$14$Type',920);feb(916,1,{},QEd);var g5=sfb(vIe,'JsonImporter/lambda$15$Type',916);feb(917,1,{},REd);var h5=sfb(vIe,'JsonImporter/lambda$16$Type',917);feb(918,1,{},SEd);var i5=sfb(vIe,'JsonImporter/lambda$17$Type',918);feb(919,1,{},TEd);var j5=sfb(vIe,'JsonImporter/lambda$18$Type',919);feb(924,1,{},UEd);var k5=sfb(vIe,'JsonImporter/lambda$19$Type',924);feb(905,1,{},VEd);var l5=sfb(vIe,'JsonImporter/lambda$2$Type',905);feb(922,1,{},WEd);var m5=sfb(vIe,'JsonImporter/lambda$20$Type',922);feb(923,1,{},XEd);var n5=sfb(vIe,'JsonImporter/lambda$21$Type',923);feb(927,1,{},YEd);var o5=sfb(vIe,'JsonImporter/lambda$22$Type',927);feb(925,1,{},ZEd);var p5=sfb(vIe,'JsonImporter/lambda$23$Type',925);feb(926,1,{},$Ed);var q5=sfb(vIe,'JsonImporter/lambda$24$Type',926);feb(929,1,{},_Ed);var r5=sfb(vIe,'JsonImporter/lambda$25$Type',929);feb(928,1,{},aFd);var s5=sfb(vIe,'JsonImporter/lambda$26$Type',928);feb(930,1,Qve,bFd);_.Cd=function cFd(a){_Dd(this.b,this.a,WD(a))};var t5=sfb(vIe,'JsonImporter/lambda$27$Type',930);feb(931,1,Qve,dFd);_.Cd=function eFd(a){aEd(this.b,this.a,WD(a))};var u5=sfb(vIe,'JsonImporter/lambda$28$Type',931);feb(932,1,{},fFd);var v5=sfb(vIe,'JsonImporter/lambda$29$Type',932);feb(908,1,{},gFd);var w5=sfb(vIe,'JsonImporter/lambda$3$Type',908);feb(933,1,{},hFd);var x5=sfb(vIe,'JsonImporter/lambda$30$Type',933);feb(934,1,{},iFd);var y5=sfb(vIe,'JsonImporter/lambda$31$Type',934);feb(935,1,{},jFd);var z5=sfb(vIe,'JsonImporter/lambda$32$Type',935);feb(936,1,{},kFd);var A5=sfb(vIe,'JsonImporter/lambda$33$Type',936);feb(937,1,{},lFd);var B5=sfb(vIe,'JsonImporter/lambda$34$Type',937);feb(870,1,{},nFd);var C5=sfb(vIe,'JsonImporter/lambda$35$Type',870);feb(941,1,{},pFd);var D5=sfb(vIe,'JsonImporter/lambda$36$Type',941);feb(938,1,Qve,qFd);_.Cd=function rFd(a){jEd(this.a,RD(a,377))};var E5=sfb(vIe,'JsonImporter/lambda$37$Type',938);feb(939,1,Qve,sFd);_.Cd=function tFd(a){kEd(this.a,this.b,RD(a,166))};var F5=sfb(vIe,'JsonImporter/lambda$38$Type',939);feb(940,1,Qve,uFd);_.Cd=function vFd(a){lEd(this.a,this.b,RD(a,166))};var G5=sfb(vIe,'JsonImporter/lambda$39$Type',940);feb(906,1,{},wFd);var H5=sfb(vIe,'JsonImporter/lambda$4$Type',906);feb(942,1,Qve,xFd);_.Cd=function yFd(a){mEd(this.a,RD(a,8))};var I5=sfb(vIe,'JsonImporter/lambda$40$Type',942);feb(907,1,{},zFd);var J5=sfb(vIe,'JsonImporter/lambda$5$Type',907);feb(911,1,{},AFd);var K5=sfb(vIe,'JsonImporter/lambda$6$Type',911);feb(909,1,{},BFd);var L5=sfb(vIe,'JsonImporter/lambda$7$Type',909);feb(910,1,{},CFd);var M5=sfb(vIe,'JsonImporter/lambda$8$Type',910);feb(913,1,{},DFd);var N5=sfb(vIe,'JsonImporter/lambda$9$Type',913);feb(961,1,Qve,MFd);_.Cd=function NFd(a){oDd(this.a,new OC(WD(a)))};var P5=sfb(vIe,'JsonMetaDataConverter/lambda$0$Type',961);feb(962,1,Qve,OFd);_.Cd=function PFd(a){IFd(this.a,RD(a,245))};var Q5=sfb(vIe,'JsonMetaDataConverter/lambda$1$Type',962);feb(963,1,Qve,QFd);_.Cd=function RFd(a){JFd(this.a,RD(a,143))};var R5=sfb(vIe,'JsonMetaDataConverter/lambda$2$Type',963);feb(964,1,Qve,SFd);_.Cd=function TFd(a){KFd(this.a,RD(a,170))};var S5=sfb(vIe,'JsonMetaDataConverter/lambda$3$Type',964);feb(245,22,{3:1,34:1,22:1,245:1},bGd);var UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd;var T5=tfb(jze,'GraphFeature',245,WI,dGd,cGd);var eGd;feb(11,1,{34:1,149:1},jGd,kGd,lGd,mGd);_.Fd=function nGd(a){return gGd(this,RD(a,149))};_.Fb=function oGd(a){return hGd(this,a)};_.Sg=function pGd(){return iGd(this)};_.Pg=function qGd(){return this.b};_.Hb=function rGd(){return ohb(this.b)};_.Ib=function sGd(){return this.b};var Y5=sfb(jze,'Property',11);feb(671,1,fye,uGd);_.Ne=function vGd(a,b){return tGd(this,RD(a,96),RD(b,96))};_.Fb=function wGd(a){return this===a};_.Oe=function xGd(){return new Frb(this)};var X5=sfb(jze,'PropertyHolderComparator',671);feb(709,1,Ave,QGd);_.Nb=function RGd(a){Ztb(this,a)};_.Pb=function TGd(){return PGd(this)};_.Qb=function UGd(){$tb()};_.Ob=function SGd(){return !!this.a};var Z5=sfb(KIe,'ElkGraphUtil/AncestorIterator',709);var Y6=ufb(sIe,'EList');feb(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1});_.bd=function hHd(a,b){VGd(this,a,b)};_.Fc=function iHd(a){return WGd(this,a)};_.cd=function jHd(a,b){return XGd(this,a,b)};_.Gc=function kHd(a){return YGd(this,a)};_.Ii=function lHd(){return new yMd(this)};_.Ji=function mHd(){return new BMd(this)};_.Ki=function nHd(a){return ZGd(this,a)};_.Li=function oHd(){return true};_.Mi=function pHd(a,b){};_.Ni=function qHd(){};_.Oi=function rHd(a,b){$Gd(this,a,b)};_.Pi=function sHd(a,b,c){};_.Qi=function tHd(a,b){};_.Ri=function uHd(a,b,c){};_.Fb=function vHd(a){return _Gd(this,a)};_.Hb=function wHd(){return cHd(this)};_.Si=function xHd(){return false};_.Kc=function yHd(){return new dMd(this)};_.ed=function zHd(){return new mMd(this)};_.fd=function AHd(a){var b;b=this.gc();if(a<0||a>b)throw Adb(new aMd(a,b));return new nMd(this,a)};_.Ui=function BHd(a,b){this.Ti(a,this.dd(b))};_.Mc=function CHd(a){return dHd(this,a)};_.Wi=function DHd(a,b){return b};_.hd=function EHd(a,b){return eHd(this,a,b)};_.Ib=function FHd(){return fHd(this)};_.Yi=function GHd(){return true};_.Zi=function HHd(a,b){return gHd(this,b)};var u6=sfb(sIe,'AbstractEList',70);feb(66,70,PIe,YHd,ZHd,$Hd);_.Ei=function _Hd(a,b){return IHd(this,a,b)};_.Fi=function aId(a){return JHd(this,a)};_.Gi=function bId(a,b){KHd(this,a,b)};_.Hi=function cId(a){LHd(this,a)};_.$i=function dId(a){return NHd(this,a)};_.$b=function eId(){OHd(this)};_.Hc=function fId(a){return PHd(this,a)};_.Xb=function gId(a){return QHd(this,a)};_._i=function hId(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.gd(b);return true}else{return false}};_.Xi=function LJd(a,b){return this.Dj(a,this.Zi(a,b))};_.gc=function MJd(){return this.Ej()};_.Pc=function NJd(){return this.Fj()};_.Qc=function OJd(a){return this.Gj(a)};_.Ib=function PJd(){return this.Hj()};var R6=sfb(sIe,'DelegatingEList',2093);feb(2094,2093,FJe);_.Ei=function XJd(a,b){return QJd(this,a,b)};_.Fi=function YJd(a){return this.Ei(this.Ej(),a)};_.Gi=function ZJd(a,b){RJd(this,a,b)};_.Hi=function $Jd(a){SJd(this,a)};_.Li=function _Jd(){return !this.Mj()};_.$b=function aKd(){VJd(this)};_.Ij=function bKd(a,b,c,d,e){return new aLd(this,a,b,c,d,e)};_.Jj=function cKd(a){qvd(this.jj(),a)};_.Kj=function dKd(){return null};_.Lj=function eKd(){return -1};_.jj=function fKd(){return null};_.Mj=function gKd(){return false};_.Nj=function hKd(a,b){return b};_.Oj=function iKd(a,b){return b};_.Pj=function jKd(){return false};_.Qj=function kKd(){return !this.Aj()};_.Ti=function lKd(a,b){var c,d;if(this.Pj()){d=this.Qj();c=bJd(this,a,b);this.Jj(this.Ij(7,sgb(b),c,a,d));return c}else{return bJd(this,a,b)}};_.gd=function mKd(a){var b,c,d,e;if(this.Pj()){c=null;d=this.Qj();b=this.Ij(4,e=cJd(this,a),null,a,d);if(this.Mj()&&!!e){c=this.Oj(e,c);if(!c){this.Jj(b)}else{c.nj(b);c.oj()}}else{if(!c){this.Jj(b)}else{c.nj(b);c.oj()}}return e}else{e=cJd(this,a);if(this.Mj()&&!!e){c=this.Oj(e,null);!!c&&c.oj()}return e}};_.Xi=function nKd(a,b){return WJd(this,a,b)};var i6=sfb(JHe,'DelegatingNotifyingListImpl',2094);feb(152,1,GJe);_.nj=function PKd(a){return oKd(this,a)};_.oj=function QKd(){pKd(this)};_.gj=function RKd(){return this.d};_.Kj=function SKd(){return null};_.Rj=function TKd(){return null};_.hj=function UKd(a){return -1};_.ij=function VKd(){return yKd(this)};_.jj=function WKd(){return null};_.kj=function XKd(){return HKd(this)};_.lj=function YKd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.Sj=function ZKd(){return false};_.mj=function $Kd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.gj();switch(e){case 1:case 2:{f=a.jj();if(dE(f)===dE(this.jj())&&this.hj(null)==a.hj(null)){this.g=a.ij();a.gj()==1&&(this.d=1);return true}}}}case 4:{e=a.gj();switch(e){case 4:{f=a.jj();if(dE(f)===dE(this.jj())&&this.hj(null)==a.hj(null)){j=JKd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.lj();this.d=6;l=new ZHd(2);if(i<=g){WGd(l,this.n);WGd(l,a.kj());this.g=cD(WC(kE,1),Pwe,28,15,[this.o=i,g+1])}else{WGd(l,a.kj());WGd(l,this.n);this.g=cD(WC(kE,1),Pwe,28,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.gj();switch(e){case 4:{f=a.jj();if(dE(f)===dE(this.jj())&&this.hj(null)==a.hj(null)){j=JKd(this);g=a.lj();k=RD(this.g,53);d=$C(kE,Pwe,28,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Lhb(d,this.d);break}}IKd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Lhb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Mhb(d,this.jj());d.a+=', feature: ';Mhb(d,this.Kj());d.a+=', oldValue: ';Mhb(d,HKd(this));d.a+=', newValue: ';if(this.d==6&&ZD(this.g,53)){c=RD(this.g,53);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new btb(this);this.a=this.j}return Zsb(this.b,a)}else{return PHd(this,a)}};_.Yi=function _Ld(){return true};_.a=0;var o6=sfb(sIe,'AbstractEList/1',966);feb(302,77,lxe,aMd);var p6=sfb(sIe,'AbstractEList/BasicIndexOutOfBoundsException',302);feb(37,1,Ave,dMd);_.Nb=function gMd(a){Ztb(this,a)};_.Xj=function eMd(){if(this.i.j!=this.f){throw Adb(new Jrb)}};_.Yj=function fMd(){return bMd(this)};_.Ob=function hMd(){return this.e!=this.i.gc()};_.Pb=function iMd(){return this.Yj()};_.Qb=function jMd(){cMd(this)};_.e=0;_.f=0;_.g=-1;var q6=sfb(sIe,'AbstractEList/EIterator',37);feb(286,37,Jve,mMd,nMd);_.Qb=function vMd(){cMd(this)};_.Rb=function oMd(a){kMd(this,a)};_.Zj=function pMd(){var b;try{b=this.d.Xb(--this.e);this.Xj();this.g=this.e;return b}catch(a){a=zdb(a);if(ZD(a,77)){this.Xj();throw Adb(new Dvb)}else throw Adb(a)}};_.$j=function qMd(a){lMd(this,a)};_.Sb=function rMd(){return this.e!=0};_.Tb=function sMd(){return this.e};_.Ub=function tMd(){return this.Zj()};_.Vb=function uMd(){return this.e-1};_.Wb=function wMd(a){this.$j(a)};var r6=sfb(sIe,'AbstractEList/EListIterator',286);feb(355,37,Ave,yMd);_.Yj=function zMd(){return xMd(this)};_.Qb=function AMd(){throw Adb(new jib)};var s6=sfb(sIe,'AbstractEList/NonResolvingEIterator',355);feb(398,286,Jve,BMd,CMd);_.Rb=function DMd(a){throw Adb(new jib)};_.Yj=function EMd(){var b;try{b=this.c.Vi(this.e);this.Xj();this.g=this.e++;return b}catch(a){a=zdb(a);if(ZD(a,77)){this.Xj();throw Adb(new Dvb)}else throw Adb(a)}};_.Zj=function FMd(){var b;try{b=this.c.Vi(--this.e);this.Xj();this.g=this.e;return b}catch(a){a=zdb(a);if(ZD(a,77)){this.Xj();throw Adb(new Dvb)}else throw Adb(a)}};_.Qb=function GMd(){throw Adb(new jib)};_.Wb=function HMd(a){throw Adb(new jib)};var t6=sfb(sIe,'AbstractEList/NonResolvingEListIterator',398);feb(2080,70,JJe);_.Ei=function PMd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=RD(Ywd(this.a,4),129);k=j==null?0:j.length;m=k+e;d=NMd(this,m);l=k-a;l>0&&hib(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw Adb(new aMd(a,c));return new wNd(this,a)};_.$b=function WMd(){var a,b;++this.j;a=RD(Ywd(this.a,4),129);b=a==null?0:a.length;Bde(this,null);$Gd(this,b,a)};_.Hc=function XMd(a){var b,c,d,e,f;b=RD(Ywd(this.a,4),129);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw Adb(new aMd(a,c));return b[a]};_.dd=function ZMd(a){var b,c,d;b=RD(Ywd(this.a,4),129);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw Adb(new aMd(a,c));return new oNd(this,a)};_.Ti=function cNd(a,b){var c,d,e;c=MMd(this);e=c==null?0:c.length;if(a>=e)throw Adb(new veb(MIe+a+NIe+e));if(b>=e)throw Adb(new veb(OIe+b+NIe+e));d=c[b];if(a!=b){a0&&hib(a,0,b,0,c);return b};_.Qc=function iNd(a){var b,c,d;b=RD(Ywd(this.a,4),129);d=b==null?0:b.length;if(d>0){if(a.lengthd&&bD(a,d,null);return a};var JMd;var A6=sfb(sIe,'ArrayDelegatingEList',2080);feb(1051,37,Ave,jNd);_.Xj=function kNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};_.Qb=function lNd(){cMd(this);this.a=RD(Ywd(this.b.a,4),129)};var w6=sfb(sIe,'ArrayDelegatingEList/EIterator',1051);feb(722,286,Jve,nNd,oNd);_.Xj=function pNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};_.$j=function qNd(a){lMd(this,a);this.a=RD(Ywd(this.b.a,4),129)};_.Qb=function rNd(){cMd(this);this.a=RD(Ywd(this.b.a,4),129)};var x6=sfb(sIe,'ArrayDelegatingEList/EListIterator',722);feb(1052,355,Ave,sNd);_.Xj=function tNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};var y6=sfb(sIe,'ArrayDelegatingEList/NonResolvingEIterator',1052);feb(723,398,Jve,vNd,wNd);_.Xj=function xNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};var z6=sfb(sIe,'ArrayDelegatingEList/NonResolvingEListIterator',723);feb(615,302,lxe,yNd);var B6=sfb(sIe,'BasicEList/BasicIndexOutOfBoundsException',615);feb(710,66,PIe,zNd);_.bd=function ANd(a,b){throw Adb(new jib)};_.Fc=function BNd(a){throw Adb(new jib)};_.cd=function CNd(a,b){throw Adb(new jib)};_.Gc=function DNd(a){throw Adb(new jib)};_.$b=function ENd(){throw Adb(new jib)};_._i=function FNd(a){throw Adb(new jib)};_.Kc=function GNd(){return this.Ii()};_.ed=function HNd(){return this.Ji()};_.fd=function INd(a){return this.Ki(a)};_.Ti=function JNd(a,b){throw Adb(new jib)};_.Ui=function KNd(a,b){throw Adb(new jib)};_.gd=function LNd(a){throw Adb(new jib)};_.Mc=function MNd(a){throw Adb(new jib)};_.hd=function NNd(a,b){throw Adb(new jib)};var C6=sfb(sIe,'BasicEList/UnmodifiableEList',710);feb(721,1,{3:1,20:1,16:1,15:1,61:1,597:1});_.bd=function mOd(a,b){ONd(this,a,RD(b,44))};_.Fc=function nOd(a){return PNd(this,RD(a,44))};_.Jc=function vOd(a){xgb(this,a)};_.Xb=function wOd(a){return RD(QHd(this.c,a),136)};_.Ti=function FOd(a,b){return RD(this.c.Ti(a,b),44)};_.Ui=function GOd(a,b){eOd(this,a,RD(b,44))};_.Lc=function JOd(){return new SDb(null,new Swb(this,16))};_.gd=function KOd(a){return RD(this.c.gd(a),44)};_.hd=function MOd(a,b){return kOd(this,a,RD(b,44))};_.jd=function OOd(a){tvb(this,a)};_.Nc=function POd(){return new Swb(this,16)};_.Oc=function QOd(){return new SDb(null,new Swb(this,16))};_.cd=function oOd(a,b){return this.c.cd(a,b)};_.Gc=function pOd(a){return this.c.Gc(a)};_.$b=function qOd(){this.c.$b()};_.Hc=function rOd(a){return this.c.Hc(a)};_.Ic=function sOd(a){return Be(this.c,a)};_._j=function tOd(){var a,b,c;if(this.d==null){this.d=$C(D6,KJe,66,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=RD(b.Yj(),136);UNd(this,a)}this.e=c}};_.Fb=function uOd(a){return ZNd(this,a)};_.Hb=function xOd(){return cHd(this.c)};_.dd=function yOd(a){return this.c.dd(a)};_.ak=function zOd(){this.c=new YOd(this)};_.dc=function AOd(){return this.f==0};_.Kc=function BOd(){return this.c.Kc()};_.ed=function COd(){return this.c.ed()};_.fd=function DOd(a){return this.c.fd(a)};_.bk=function EOd(){return dOd(this)};_.ck=function HOd(a,b,c){return new ZPd(a,b,c)};_.dk=function IOd(){return new cPd};_.Mc=function LOd(a){return hOd(this,a)};_.gc=function NOd(){return this.f};_.kd=function ROd(a,b){return new Rkb(this.c,a,b)};_.Pc=function SOd(){return this.c.Pc()};_.Qc=function TOd(a){return this.c.Qc(a)};_.Ib=function UOd(){return fHd(this.c)};_.e=0;_.f=0;var Q6=sfb(sIe,'BasicEMap',721);feb(1046,66,PIe,YOd);_.Mi=function ZOd(a,b){VOd(this,RD(b,136))};_.Pi=function _Od(a,b,c){var d;++(d=this,RD(b,136),d).a.e};_.Qi=function aPd(a,b){WOd(this,RD(b,136))};_.Ri=function bPd(a,b,c){XOd(this,RD(b,136),RD(c,136))};_.Oi=function $Od(a,b){TNd(this.a)};var E6=sfb(sIe,'BasicEMap/1',1046);feb(1047,66,PIe,cPd);_.aj=function dPd(a){return $C(N6,LJe,621,a,0,1)};var F6=sfb(sIe,'BasicEMap/2',1047);feb(1048,Eve,Fve,ePd);_.$b=function fPd(){this.a.c.$b()};_.Hc=function gPd(a){return QNd(this.a,a)};_.Kc=function hPd(){return this.a.f==0?(jQd(),iQd.a):new DPd(this.a)};_.Mc=function iPd(a){var b;b=this.a.f;jOd(this.a,a);return this.a.f!=b};_.gc=function jPd(){return this.a.f};var G6=sfb(sIe,'BasicEMap/3',1048);feb(1049,31,Dve,kPd);_.$b=function lPd(){this.a.c.$b()};_.Hc=function mPd(a){return RNd(this.a,a)};_.Kc=function nPd(){return this.a.f==0?(jQd(),iQd.a):new FPd(this.a)};_.gc=function oPd(){return this.a.f};var H6=sfb(sIe,'BasicEMap/4',1049);feb(1050,Eve,Fve,qPd);_.$b=function rPd(){this.a.c.$b()};_.Hc=function sPd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&ZD(a,44)){this.a._j();i=RD(a,44);h=i.ld();e=h==null?0:tb(h);f=bOd(this.a,e);b=this.a.d[f];if(b){c=RD(b.g,379);j=b.i;for(g=0;g'+this.c};_.a=0;var N6=sfb(sIe,'BasicEMap/EntryImpl',621);feb(546,1,{},hQd);var P6=sfb(sIe,'BasicEMap/View',546);var iQd;feb(783,1,{});_.Fb=function xQd(a){return Rt((yob(),vob),a)};_.Hb=function yQd(){return Cob((yob(),vob))};_.Ib=function zQd(){return Fe((yob(),vob))};var V6=sfb(sIe,'ECollections/BasicEmptyUnmodifiableEList',783);feb(1348,1,Jve,AQd);_.Nb=function CQd(a){Ztb(this,a)};_.Rb=function BQd(a){throw Adb(new jib)};_.Ob=function DQd(){return false};_.Sb=function EQd(){return false};_.Pb=function FQd(){throw Adb(new Dvb)};_.Tb=function GQd(){return 0};_.Ub=function HQd(){throw Adb(new Dvb)};_.Vb=function IQd(){return -1};_.Qb=function JQd(){throw Adb(new jib)};_.Wb=function KQd(a){throw Adb(new jib)};var U6=sfb(sIe,'ECollections/BasicEmptyUnmodifiableEList/1',1348);feb(1346,783,{20:1,16:1,15:1,61:1},LQd);_.bd=function MQd(a,b){mQd()};_.Fc=function NQd(a){return nQd()};_.cd=function OQd(a,b){return oQd()};_.Gc=function PQd(a){return pQd()};_.$b=function QQd(){qQd()};_.Hc=function RQd(a){return false};_.Ic=function SQd(a){return false};_.Jc=function TQd(a){xgb(this,a)};_.Xb=function UQd(a){return Iob((yob(),vob,a)),null};_.dd=function VQd(a){return -1};_.dc=function WQd(){return true};_.Kc=function XQd(){return this.a};_.ed=function YQd(){return this.a};_.fd=function ZQd(a){return this.a};_.Ti=function $Qd(a,b){return rQd()};_.Ui=function _Qd(a,b){sQd()};_.Lc=function aRd(){return new SDb(null,new Swb(this,16))};_.gd=function bRd(a){return tQd()};_.Mc=function cRd(a){return uQd()};_.hd=function dRd(a,b){return vQd()};_.gc=function eRd(){return 0};_.jd=function fRd(a){tvb(this,a)};_.Nc=function gRd(){return new Swb(this,16)};_.Oc=function hRd(){return new SDb(null,new Swb(this,16))};_.kd=function iRd(a,b){return yob(),new Rkb(vob,a,b)};_.Pc=function jRd(){return De((yob(),vob))};_.Qc=function kRd(a){return yob(),Ee(vob,a)};var W6=sfb(sIe,'ECollections/EmptyUnmodifiableEList',1346);feb(1347,783,{20:1,16:1,15:1,61:1,597:1},lRd);_.bd=function mRd(a,b){mQd()};_.Fc=function nRd(a){return nQd()};_.cd=function oRd(a,b){return oQd()};_.Gc=function pRd(a){return pQd()};_.$b=function qRd(){qQd()};_.Hc=function rRd(a){return false};_.Ic=function sRd(a){return false};_.Jc=function tRd(a){xgb(this,a)};_.Xb=function uRd(a){return Iob((yob(),vob,a)),null};_.dd=function vRd(a){return -1};_.dc=function wRd(){return true};_.Kc=function xRd(){return this.a};_.ed=function yRd(){return this.a};_.fd=function zRd(a){return this.a};_.Ti=function BRd(a,b){return rQd()};_.Ui=function CRd(a,b){sQd()};_.Lc=function DRd(){return new SDb(null,new Swb(this,16))};_.gd=function ERd(a){return tQd()};_.Mc=function FRd(a){return uQd()};_.hd=function GRd(a,b){return vQd()};_.gc=function HRd(){return 0};_.jd=function IRd(a){tvb(this,a)};_.Nc=function JRd(){return new Swb(this,16)};_.Oc=function KRd(){return new SDb(null,new Swb(this,16))};_.kd=function LRd(a,b){return yob(),new Rkb(vob,a,b)};_.Pc=function MRd(){return De((yob(),vob))};_.Qc=function NRd(a){return yob(),Ee(vob,a)};_.bk=function ARd(){return yob(),yob(),wob};var X6=sfb(sIe,'ECollections/EmptyUnmodifiableEMap',1347);var Z6=ufb(sIe,'Enumerator');var ORd;feb(288,1,{288:1},lSd);_.Fb=function pSd(a){var b;if(this===a)return true;if(!ZD(a,288))return false;b=RD(a,288);return this.f==b.f&&rSd(this.i,b.i)&&qSd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&qSd(this.d,b.d)&&qSd(this.g,b.g)&&qSd(this.e,b.e)&&iSd(this,b)};_.Hb=function uSd(){return this.f};_.Ib=function CSd(){return jSd(this)};_.f=0;var SRd=0,TRd=0,URd=0,VRd=0,WRd=0,XRd=0,YRd=0,ZRd=0,$Rd=0,_Rd,aSd=0,bSd=0,cSd=0,dSd=0,eSd,fSd;var c7=sfb(sIe,'URI',288);feb(1121,45,Hxe,MSd);_.zc=function NSd(a,b){return RD($jb(this,WD(a),RD(b,288)),288)};var b7=sfb(sIe,'URI/URICache',1121);feb(506,66,PIe,OSd,PSd);_.Si=function QSd(){return true};var d7=sfb(sIe,'UniqueEList',506);feb(590,63,swe,RSd);var e7=sfb(sIe,'WrappedException',590);var f7=ufb(vHe,OJe);var A7=ufb(vHe,PJe);var y7=ufb(vHe,QJe);var g7=ufb(vHe,RJe);var i7=ufb(vHe,SJe);var h7=ufb(vHe,'EClass');var k7=ufb(vHe,'EDataType');var SSd;feb(1233,45,Hxe,VSd);_.xc=function WSd(a){return bE(a)?Xjb(this,a):Wd(qtb(this.f,a))};var j7=sfb(vHe,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1233);var m7=ufb(vHe,'EEnum');var l7=ufb(vHe,TJe);var o7=ufb(vHe,UJe);var s7=ufb(vHe,VJe);var XSd;var u7=ufb(vHe,WJe);var v7=ufb(vHe,XJe);feb(1042,1,{},_Sd);_.Ib=function aTd(){return 'NIL'};var w7=sfb(vHe,'EStructuralFeature/Internal/DynamicValueHolder/1',1042);var bTd;feb(1041,45,Hxe,eTd);_.xc=function fTd(a){return bE(a)?Xjb(this,a):Wd(qtb(this.f,a))};var x7=sfb(vHe,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1041);var z7=ufb(vHe,YJe);var B7=ufb(vHe,'EValidator/PatternMatcher');var gTd;var iTd;var kTd;var mTd,nTd,oTd,pTd,qTd,rTd,sTd,tTd,uTd,vTd,wTd,xTd,yTd,zTd,ATd,BTd,CTd,DTd,ETd,FTd,GTd,HTd,ITd;var Jbb=ufb(ZJe,'FeatureMap/Entry');feb(545,1,{76:1},KTd);_.Lk=function LTd(){return this.a};_.md=function MTd(){return this.b};var C7=sfb(SHe,'BasicEObjectImpl/1',545);feb(1040,1,$Je,NTd);_.Fk=function OTd(a){return Fvd(this.a,this.b,a)};_.Qj=function PTd(){return Lvd(this.a,this.b)};_.Wb=function QTd(a){Xvd(this.a,this.b,a)};_.Gk=function RTd(){_vd(this.a,this.b)};var D7=sfb(SHe,'BasicEObjectImpl/4',1040);feb(2081,1,{114:1});_.Mk=function UTd(a){this.e=a==0?STd:$C(jJ,rve,1,a,5,1)};_.li=function VTd(a){return this.e[a]};_.mi=function WTd(a,b){this.e[a]=b};_.ni=function XTd(a){this.e[a]=null};_.Nk=function YTd(){return this.c};_.Ok=function ZTd(){throw Adb(new jib)};_.Pk=function $Td(){throw Adb(new jib)};_.Qk=function _Td(){return this.d};_.Rk=function aUd(){return this.e!=null};_.Sk=function bUd(a){this.c=a};_.Tk=function cUd(a){throw Adb(new jib)};_.Uk=function dUd(a){throw Adb(new jib)};_.Vk=function eUd(a){this.d=a};var STd;var E7=sfb(SHe,'BasicEObjectImpl/EPropertiesHolderBaseImpl',2081);feb(192,2081,{114:1},fUd);_.Ok=function gUd(){return this.a};_.Pk=function hUd(){return this.b};_.Tk=function iUd(a){this.a=a};_.Uk=function jUd(a){this.b=a};var F7=sfb(SHe,'BasicEObjectImpl/EPropertiesHolderImpl',192);feb(516,99,RHe,kUd);_.uh=function lUd(){return this.f};_.zh=function mUd(){return this.k};_.Bh=function nUd(a,b){this.g=a;this.i=b};_.Dh=function oUd(){return (this.j&2)==0?this.ii():this.$h().Nk()};_.Fh=function pUd(){return this.i};_.wh=function qUd(){return (this.j&1)!=0};_.Ph=function rUd(){return this.g};_.Vh=function sUd(){return (this.j&4)!=0};_.$h=function tUd(){return !this.k&&(this.k=new fUd),this.k};_.ci=function uUd(a){this.$h().Sk(a);a?(this.j|=2):(this.j&=-3)};_.ei=function vUd(a){this.$h().Uk(a);a?(this.j|=4):(this.j&=-5)};_.ii=function wUd(){return (lTd(),kTd).S};_.i=0;_.j=1;var q8=sfb(SHe,'EObjectImpl',516);feb(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},zUd);_.li=function AUd(a){return this.e[a]};_.mi=function BUd(a,b){this.e[a]=b};_.ni=function CUd(a){this.e[a]=null};_.Dh=function DUd(){return this.d};_.Ih=function EUd(a){return BYd(this.d,a)};_.Kh=function FUd(){return this.d};_.Oh=function GUd(){return this.e!=null};_.$h=function HUd(){!this.k&&(this.k=new VUd);return this.k};_.ci=function IUd(a){this.d=a};_.hi=function JUd(){var a;if(this.e==null){a=AYd(this.d);this.e=a==0?xUd:$C(jJ,rve,1,a,5,1)}return this};_.ji=function KUd(){return 0};var xUd;var J7=sfb(SHe,'DynamicEObjectImpl',798);feb(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},LUd);_.Fb=function NUd(a){return this===a};_.Hb=function RUd(){return kFb(this)};_.ci=function MUd(a){this.d=a;this.b=wYd(a,'key');this.c=wYd(a,aIe)};_.Bi=function OUd(){var a;if(this.a==-1){a=Gvd(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.ld=function PUd(){return Gvd(this,this.b)};_.md=function QUd(){return Gvd(this,this.c)};_.Ci=function SUd(a){this.a=a};_.Di=function TUd(a){Xvd(this,this.b,a)};_.nd=function UUd(a){var b;b=Gvd(this,this.c);Xvd(this,this.c,a);return b};_.a=0;var H7=sfb(SHe,'DynamicEObjectImpl/BasicEMapEntry',1522);feb(1523,1,{114:1},VUd);_.Mk=function WUd(a){throw Adb(new jib)};_.li=function XUd(a){throw Adb(new jib)};_.mi=function YUd(a,b){throw Adb(new jib)};_.ni=function ZUd(a){throw Adb(new jib)};_.Nk=function $Ud(){throw Adb(new jib)};_.Ok=function _Ud(){return this.a};_.Pk=function aVd(){return this.b};_.Qk=function bVd(){return this.c};_.Rk=function cVd(){throw Adb(new jib)};_.Sk=function dVd(a){throw Adb(new jib)};_.Tk=function eVd(a){this.a=a};_.Uk=function fVd(a){this.b=a};_.Vk=function gVd(a){this.c=a};var I7=sfb(SHe,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1523);feb(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},pVd);_.Ah=function qVd(a){return iVd(this,a)};_.Lh=function rVd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new SVd((JTd(),FTd),C8,this)),this.b):(!this.b&&(this.b=new SVd((JTd(),FTd),C8,this)),dOd(this.b));case 3:return kVd(this);case 4:return !this.a&&(this.a=new XZd(r7,this,4)),this.a;case 5:return !this.c&&(this.c=new zie(r7,this,5)),this.c;}return zvd(this,a-AYd((JTd(),mTd)),vYd((d=RD(Ywd(this,16),29),!d?mTd:d),a),b,c)};_.Sh=function sVd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?iVd(this,c):this.Cb.Th(this,-1-e,null,c)));return hVd(this,RD(a,155),c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),mTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),mTd)),a,c)};_.Uh=function tVd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 2:return !this.b&&(this.b=new SVd((JTd(),FTd),C8,this)),BVd(this.b,a,c);case 3:return hVd(this,null,c);case 4:return !this.a&&(this.a=new XZd(r7,this,4)),rLd(this.a,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),mTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),mTd)),a,c)};_.Wh=function uVd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!kVd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return Avd(this,a-AYd((JTd(),mTd)),vYd((b=RD(Ywd(this,16),29),!b?mTd:b),a))};_.bi=function vVd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:mVd(this,WD(b));return;case 2:!this.b&&(this.b=new SVd((JTd(),FTd),C8,this));CVd(this.b,b);return;case 3:lVd(this,RD(b,155));return;case 4:!this.a&&(this.a=new XZd(r7,this,4));sLd(this.a);!this.a&&(this.a=new XZd(r7,this,4));YGd(this.a,RD(b,16));return;case 5:!this.c&&(this.c=new zie(r7,this,5));sLd(this.c);!this.c&&(this.c=new zie(r7,this,5));YGd(this.c,RD(b,16));return;}Bvd(this,a-AYd((JTd(),mTd)),vYd((c=RD(Ywd(this,16),29),!c?mTd:c),a),b)};_.ii=function wVd(){return JTd(),mTd};_.ki=function xVd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:nVd(this,null);return;case 2:!this.b&&(this.b=new SVd((JTd(),FTd),C8,this));this.b.c.$b();return;case 3:lVd(this,null);return;case 4:!this.a&&(this.a=new XZd(r7,this,4));sLd(this.a);return;case 5:!this.c&&(this.c=new zie(r7,this,5));sLd(this.c);return;}Cvd(this,a-AYd((JTd(),mTd)),vYd((b=RD(Ywd(this,16),29),!b?mTd:b),a))};_.Ib=function yVd(){return oVd(this)};_.d=null;var L7=sfb(SHe,'EAnnotationImpl',519);feb(141,721,_Je,DVd);_.Gi=function EVd(a,b){zVd(this,a,RD(b,44))};_.Wk=function FVd(a,b){return AVd(this,RD(a,44),b)};_.$i=function GVd(a){return RD(RD(this.c,71).$i(a),136)};_.Ii=function HVd(){return RD(this.c,71).Ii()};_.Ji=function IVd(){return RD(this.c,71).Ji()};_.Ki=function JVd(a){return RD(this.c,71).Ki(a)};_.Xk=function KVd(a,b){return BVd(this,a,b)};_.Fk=function LVd(a){return RD(this.c,79).Fk(a)};_.ak=function MVd(){};_.Qj=function NVd(){return RD(this.c,79).Qj()};_.ck=function OVd(a,b,c){var d;d=RD(BXd(this.b).wi().si(this.b),136);d.Ci(a);d.Di(b);d.nd(c);return d};_.dk=function PVd(){return new uje(this)};_.Wb=function QVd(a){CVd(this,a)};_.Gk=function RVd(){RD(this.c,79).Gk()};var Dbb=sfb(ZJe,'EcoreEMap',141);feb(165,141,_Je,SVd);_._j=function TVd(){var a,b,c,d,e,f;if(this.d==null){f=$C(D6,KJe,66,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=RD(c.Yj(),136);d=b.Bi();e=(d&lve)%f.length;a=f[e];!a&&(a=f[e]=new uje(this));a.Fc(b)}this.d=f}};var K7=sfb(SHe,'EAnnotationImpl/1',165);feb(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1});_.Lh=function eWd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),this.Jk()?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Uh=function fWd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function gWd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function hWd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:this.ui(WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:this.Zk(RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function iWd(){return JTd(),HTd};_.ki=function jWd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:this.ui(null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:this.Zk(1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.pi=function kWd(){WVd(this);this.Bb|=1};_.Hk=function lWd(){return WVd(this)};_.Ik=function mWd(){return this.t};_.Jk=function nWd(){var a;return a=this.t,a>1||a==-1};_.Si=function oWd(){return (this.Bb&512)!=0};_.Yk=function pWd(a,b){return ZVd(this,a,b)};_.Zk=function qWd(a){bWd(this,a)};_.Ib=function rWd(){return cWd(this)};_.s=0;_.t=1;var A9=sfb(SHe,'ETypedElementImpl',292);feb(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1});_.Ah=function IWd(a){return sWd(this,a)};_.Lh=function JWd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),this.Jk()?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return Geb(),(this.Bb&gwe)!=0?true:false;case 11:return Geb(),(this.Bb&cKe)!=0?true:false;case 12:return Geb(),(this.Bb&qxe)!=0?true:false;case 13:return this.j;case 14:return tWd(this);case 15:return Geb(),(this.Bb&bKe)!=0?true:false;case 16:return Geb(),(this.Bb&Ove)!=0?true:false;case 17:return uWd(this);}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Sh=function KWd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?sWd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,17,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),f.wk().zk(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Uh=function LWd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);case 17:return xvd(this,null,17,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function MWd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return (this.Bb&gwe)==0;case 11:return (this.Bb&cKe)!=0;case 12:return (this.Bb&qxe)!=0;case 13:return this.j!=null;case 14:return tWd(this)!=null;case 15:return (this.Bb&bKe)!=0;case 16:return (this.Bb&Ove)!=0;case 17:return !!uWd(this);}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function NWd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:CWd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:this.Zk(RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 10:xWd(this,Heb(TD(b)));return;case 11:FWd(this,Heb(TD(b)));return;case 12:DWd(this,Heb(TD(b)));return;case 13:yWd(this,WD(b));return;case 15:EWd(this,Heb(TD(b)));return;case 16:AWd(this,Heb(TD(b)));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function OWd(){return JTd(),GTd};_.ki=function PWd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),4);PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:this.Zk(1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 10:xWd(this,true);return;case 11:FWd(this,false);return;case 12:DWd(this,false);return;case 13:this.i=null;zWd(this,null);return;case 15:EWd(this,false);return;case 16:AWd(this,false);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.pi=function QWd(){Afe(Qee((lke(),jke),this));WVd(this);this.Bb|=1};_.pk=function RWd(){return this.f};_.ik=function SWd(){return tWd(this)};_.qk=function TWd(){return uWd(this)};_.uk=function UWd(){return null};_.$k=function VWd(){return this.k};_.Lj=function WWd(){return this.n};_.vk=function XWd(){return vWd(this)};_.wk=function YWd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=uWd(this);(c.i==null&&rYd(c),c.i).length;d=this.uk();!!d&&AYd(uWd(d));e=WVd(this);g=e.kk();a=!g?null:(g.i&1)!=0?g==xdb?QI:g==kE?bJ:g==jE?ZI:g==iE?VI:g==lE?eJ:g==wdb?lJ:g==gE?RI:SI:g;b=tWd(this);h=e.ik();Mje(this);(this.Bb&Ove)!=0&&(!!(f=Tee((lke(),jke),c))&&f!=this||!!(f=zfe(Qee(jke,this))))?(this.p=new Z6d(this,f)):this.Jk()?this.al()?!d?(this.Bb&bKe)!=0?!a?this.bl()?(this.p=new i7d(42,this)):(this.p=new i7d(0,this)):a==UK?(this.p=new g7d(50,O6,this)):this.bl()?(this.p=new g7d(43,a,this)):(this.p=new g7d(1,a,this)):!a?this.bl()?(this.p=new i7d(44,this)):(this.p=new i7d(2,this)):a==UK?(this.p=new g7d(41,O6,this)):this.bl()?(this.p=new g7d(45,a,this)):(this.p=new g7d(3,a,this)):(this.Bb&bKe)!=0?!a?this.bl()?(this.p=new j7d(46,this,d)):(this.p=new j7d(4,this,d)):this.bl()?(this.p=new h7d(47,a,this,d)):(this.p=new h7d(5,a,this,d)):!a?this.bl()?(this.p=new j7d(48,this,d)):(this.p=new j7d(6,this,d)):this.bl()?(this.p=new h7d(49,a,this,d)):(this.p=new h7d(7,a,this,d)):ZD(e,156)?a==Jbb?(this.p=new i7d(40,this)):(this.Bb&512)!=0?(this.Bb&bKe)!=0?!a?(this.p=new i7d(8,this)):(this.p=new g7d(9,a,this)):!a?(this.p=new i7d(10,this)):(this.p=new g7d(11,a,this)):(this.Bb&bKe)!=0?!a?(this.p=new i7d(12,this)):(this.p=new g7d(13,a,this)):!a?(this.p=new i7d(14,this)):(this.p=new g7d(15,a,this)):!d?this.bl()?(this.Bb&bKe)!=0?!a?(this.p=new i7d(16,this)):(this.p=new g7d(17,a,this)):!a?(this.p=new i7d(18,this)):(this.p=new g7d(19,a,this)):(this.Bb&bKe)!=0?!a?(this.p=new i7d(20,this)):(this.p=new g7d(21,a,this)):!a?(this.p=new i7d(22,this)):(this.p=new g7d(23,a,this)):(i=d.t,i>1||i==-1?this.bl()?(this.Bb&bKe)!=0?!a?(this.p=new j7d(24,this,d)):(this.p=new h7d(25,a,this,d)):!a?(this.p=new j7d(26,this,d)):(this.p=new h7d(27,a,this,d)):(this.Bb&bKe)!=0?!a?(this.p=new j7d(28,this,d)):(this.p=new h7d(29,a,this,d)):!a?(this.p=new j7d(30,this,d)):(this.p=new h7d(31,a,this,d)):this.bl()?(this.Bb&bKe)!=0?!a?(this.p=new j7d(32,this,d)):(this.p=new h7d(33,a,this,d)):!a?(this.p=new j7d(34,this,d)):(this.p=new h7d(35,a,this,d)):(this.Bb&bKe)!=0?!a?(this.p=new j7d(36,this,d)):(this.p=new h7d(37,a,this,d)):!a?(this.p=new j7d(38,this,d)):(this.p=new h7d(39,a,this,d))):this._k()?this.bl()?(this.p=new K7d(RD(e,29),this,d)):(this.p=new C7d(RD(e,29),this,d)):ZD(e,156)?a==Jbb?(this.p=new i7d(40,this)):(this.Bb&bKe)!=0?!a?(this.p=new J8d(RD(e,156),b,h,this)):(this.p=new L8d(b,h,this,(a8d(),g==kE?Y7d:g==xdb?T7d:g==lE?Z7d:g==jE?X7d:g==iE?W7d:g==wdb?_7d:g==gE?U7d:g==hE?V7d:$7d))):!a?(this.p=new C8d(RD(e,156),b,h,this)):(this.p=new E8d(b,h,this,(a8d(),g==kE?Y7d:g==xdb?T7d:g==lE?Z7d:g==jE?X7d:g==iE?W7d:g==wdb?_7d:g==gE?U7d:g==hE?V7d:$7d))):this.al()?!d?(this.Bb&bKe)!=0?this.bl()?(this.p=new d9d(RD(e,29),this)):(this.p=new b9d(RD(e,29),this)):this.bl()?(this.p=new _8d(RD(e,29),this)):(this.p=new Z8d(RD(e,29),this)):(this.Bb&bKe)!=0?this.bl()?(this.p=new l9d(RD(e,29),this,d)):(this.p=new j9d(RD(e,29),this,d)):this.bl()?(this.p=new h9d(RD(e,29),this,d)):(this.p=new f9d(RD(e,29),this,d)):this.bl()?!d?(this.Bb&bKe)!=0?(this.p=new p9d(RD(e,29),this)):(this.p=new n9d(RD(e,29),this)):(this.Bb&bKe)!=0?(this.p=new t9d(RD(e,29),this,d)):(this.p=new r9d(RD(e,29),this,d)):!d?(this.Bb&bKe)!=0?(this.p=new v9d(RD(e,29),this)):(this.p=new N8d(RD(e,29),this)):(this.Bb&bKe)!=0?(this.p=new z9d(RD(e,29),this,d)):(this.p=new x9d(RD(e,29),this,d))}return this.p};_.rk=function ZWd(){return (this.Bb&gwe)!=0};_._k=function $Wd(){return false};_.al=function _Wd(){return false};_.sk=function aXd(){return (this.Bb&Ove)!=0};_.xk=function bXd(){return wWd(this)};_.bl=function cXd(){return false};_.tk=function dXd(){return (this.Bb&bKe)!=0};_.cl=function eXd(a){this.k=a};_.ui=function fXd(a){CWd(this,a)};_.Ib=function gXd(){return GWd(this)};_.e=false;_.n=0;var s9=sfb(SHe,'EStructuralFeatureImpl',462);feb(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},mXd);_.Lh=function nXd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),jXd(this)?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return Geb(),(this.Bb&gwe)!=0?true:false;case 11:return Geb(),(this.Bb&cKe)!=0?true:false;case 12:return Geb(),(this.Bb&qxe)!=0?true:false;case 13:return this.j;case 14:return tWd(this);case 15:return Geb(),(this.Bb&bKe)!=0?true:false;case 16:return Geb(),(this.Bb&Ove)!=0?true:false;case 17:return uWd(this);case 18:return Geb(),(this.Bb&QHe)!=0?true:false;case 19:if(b)return iXd(this);return hXd(this);}return zvd(this,a-AYd((JTd(),nTd)),vYd((d=RD(Ywd(this,16),29),!d?nTd:d),a),b,c)};_.Wh=function oXd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return jXd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return (this.Bb&gwe)==0;case 11:return (this.Bb&cKe)!=0;case 12:return (this.Bb&qxe)!=0;case 13:return this.j!=null;case 14:return tWd(this)!=null;case 15:return (this.Bb&bKe)!=0;case 16:return (this.Bb&Ove)!=0;case 17:return !!uWd(this);case 18:return (this.Bb&QHe)!=0;case 19:return !!hXd(this);}return Avd(this,a-AYd((JTd(),nTd)),vYd((b=RD(Ywd(this,16),29),!b?nTd:b),a))};_.bi=function pXd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:CWd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:lXd(this,RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 10:xWd(this,Heb(TD(b)));return;case 11:FWd(this,Heb(TD(b)));return;case 12:DWd(this,Heb(TD(b)));return;case 13:yWd(this,WD(b));return;case 15:EWd(this,Heb(TD(b)));return;case 16:AWd(this,Heb(TD(b)));return;case 18:kXd(this,Heb(TD(b)));return;}Bvd(this,a-AYd((JTd(),nTd)),vYd((c=RD(Ywd(this,16),29),!c?nTd:c),a),b)};_.ii=function qXd(){return JTd(),nTd};_.ki=function rXd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),4);PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:this.b=0;bWd(this,1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 10:xWd(this,true);return;case 11:FWd(this,false);return;case 12:DWd(this,false);return;case 13:this.i=null;zWd(this,null);return;case 15:EWd(this,false);return;case 16:AWd(this,false);return;case 18:kXd(this,false);return;}Cvd(this,a-AYd((JTd(),nTd)),vYd((b=RD(Ywd(this,16),29),!b?nTd:b),a))};_.pi=function sXd(){iXd(this);Afe(Qee((lke(),jke),this));WVd(this);this.Bb|=1};_.Jk=function tXd(){return jXd(this)};_.Yk=function uXd(a,b){this.b=0;this.a=null;return ZVd(this,a,b)};_.Zk=function vXd(a){lXd(this,a)};_.Ib=function wXd(){var a;if((this.Db&64)!=0)return GWd(this);a=new Shb(GWd(this));a.a+=' (iD: ';Ohb(a,(this.Bb&QHe)!=0);a.a+=')';return a.a};_.b=0;var M7=sfb(SHe,'EAttributeImpl',331);feb(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1});_.dl=function NXd(a){return a.Dh()==this};_.Ah=function OXd(a){return AXd(this,a)};_.Bh=function PXd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_.Lh=function QXd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return DXd(this);case 4:return this.ik();case 5:return this.F;case 6:if(b)return BXd(this);return xXd(this);case 7:return !this.A&&(this.A=new iie(z7,this,7)),this.A;}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Sh=function RXd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?AXd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,6,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),f.wk().zk(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Uh=function SXd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 6:return xvd(this,null,6,c);case 7:return !this.A&&(this.A=new iie(z7,this,7)),rLd(this.A,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function TXd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!DXd(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!xXd(this);case 7:return !!this.A&&this.A.i!=0;}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function UXd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:LXd(this,WD(b));return;case 2:IXd(this,WD(b));return;case 5:KXd(this,WD(b));return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);!this.A&&(this.A=new iie(z7,this,7));YGd(this.A,RD(b,16));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function VXd(){return JTd(),pTd};_.ki=function WXd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,184)&&(RD(this.Cb,184).tb=null);PAd(this,null);return;case 2:yXd(this,null);zXd(this,this.D);return;case 5:KXd(this,null);return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.hk=function XXd(){var a;return this.G==-1&&(this.G=(a=BXd(this),a?fZd(a.vi(),this):-1)),this.G};_.ik=function YXd(){return null};_.jk=function ZXd(){return BXd(this)};_.el=function $Xd(){return this.v};_.kk=function _Xd(){return DXd(this)};_.lk=function aYd(){return this.D!=null?this.D:this.B};_.mk=function bYd(){return this.F};_.fk=function cYd(a){return FXd(this,a)};_.fl=function dYd(a){this.v=a};_.gl=function eYd(a){GXd(this,a)};_.hl=function fYd(a){this.C=a};_.ui=function gYd(a){LXd(this,a)};_.Ib=function hYd(){return MXd(this)};_.C=null;_.D=null;_.G=-1;var c8=sfb(SHe,'EClassifierImpl',364);feb(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},HYd);_.dl=function IYd(a){return DYd(this,a.Dh())};_.Lh=function JYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return DXd(this);case 4:return null;case 5:return this.F;case 6:if(b)return BXd(this);return xXd(this);case 7:return !this.A&&(this.A=new iie(z7,this,7)),this.A;case 8:return Geb(),(this.Bb&256)!=0?true:false;case 9:return Geb(),(this.Bb&512)!=0?true:false;case 10:return zYd(this);case 11:return !this.q&&(this.q=new C5d(s7,this,11,10)),this.q;case 12:return mYd(this);case 13:return qYd(this);case 14:return qYd(this),this.r;case 15:return mYd(this),this.k;case 16:return nYd(this);case 17:return pYd(this);case 18:return rYd(this);case 19:return sYd(this);case 20:return mYd(this),this.o;case 21:return !this.s&&(this.s=new C5d(y7,this,21,17)),this.s;case 22:return tYd(this);case 23:return oYd(this);}return zvd(this,a-AYd((JTd(),oTd)),vYd((d=RD(Ywd(this,16),29),!d?oTd:d),a),b,c)};_.Sh=function KYd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?AXd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,6,c);case 11:return !this.q&&(this.q=new C5d(s7,this,11,10)),qLd(this.q,a,c);case 21:return !this.s&&(this.s=new C5d(y7,this,21,17)),qLd(this.s,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),oTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),oTd)),a,c)};_.Uh=function LYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 6:return xvd(this,null,6,c);case 7:return !this.A&&(this.A=new iie(z7,this,7)),rLd(this.A,a,c);case 11:return !this.q&&(this.q=new C5d(s7,this,11,10)),rLd(this.q,a,c);case 21:return !this.s&&(this.s=new C5d(y7,this,21,17)),rLd(this.s,a,c);case 22:return rLd(tYd(this),a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),oTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),oTd)),a,c)};_.Wh=function MYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!DXd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!xXd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&tYd(this.u.a).i!=0&&!(!!this.n&&d$d(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return mYd(this).i!=0;case 13:return qYd(this).i!=0;case 14:return qYd(this),this.r.i!=0;case 15:return mYd(this),this.k.i!=0;case 16:return nYd(this).i!=0;case 17:return pYd(this).i!=0;case 18:return rYd(this).i!=0;case 19:return sYd(this).i!=0;case 20:return mYd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&d$d(this.n);case 23:return oYd(this).i!=0;}return Avd(this,a-AYd((JTd(),oTd)),vYd((b=RD(Ywd(this,16),29),!b?oTd:b),a))};_.Zh=function NYd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:wYd(this,a);return b?b:_zd(this,a)};_.bi=function OYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:LXd(this,WD(b));return;case 2:IXd(this,WD(b));return;case 5:KXd(this,WD(b));return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);!this.A&&(this.A=new iie(z7,this,7));YGd(this.A,RD(b,16));return;case 8:EYd(this,Heb(TD(b)));return;case 9:FYd(this,Heb(TD(b)));return;case 10:VJd(zYd(this));YGd(zYd(this),RD(b,16));return;case 11:!this.q&&(this.q=new C5d(s7,this,11,10));sLd(this.q);!this.q&&(this.q=new C5d(s7,this,11,10));YGd(this.q,RD(b,16));return;case 21:!this.s&&(this.s=new C5d(y7,this,21,17));sLd(this.s);!this.s&&(this.s=new C5d(y7,this,21,17));YGd(this.s,RD(b,16));return;case 22:sLd(tYd(this));YGd(tYd(this),RD(b,16));return;}Bvd(this,a-AYd((JTd(),oTd)),vYd((c=RD(Ywd(this,16),29),!c?oTd:c),a),b)};_.ii=function PYd(){return JTd(),oTd};_.ki=function QYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,184)&&(RD(this.Cb,184).tb=null);PAd(this,null);return;case 2:yXd(this,null);zXd(this,this.D);return;case 5:KXd(this,null);return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);return;case 8:EYd(this,false);return;case 9:FYd(this,false);return;case 10:!!this.u&&VJd(this.u);return;case 11:!this.q&&(this.q=new C5d(s7,this,11,10));sLd(this.q);return;case 21:!this.s&&(this.s=new C5d(y7,this,21,17));sLd(this.s);return;case 22:!!this.n&&sLd(this.n);return;}Cvd(this,a-AYd((JTd(),oTd)),vYd((b=RD(Ywd(this,16),29),!b?oTd:b),a))};_.pi=function RYd(){var a,b;mYd(this);qYd(this);nYd(this);pYd(this);rYd(this);sYd(this);oYd(this);OHd(q$d(yYd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){QHd(this,b)}}return XHd(this,a)};_.Gk=function NZd(){sLd(this)};_.Zi=function OZd(a,b){return jZd(this,a,b)};var ybb=sfb(ZJe,'EcoreEList',632);feb(505,632,oKe,PZd);_.Li=function QZd(){return false};_.Lj=function RZd(){return this.c};_.Mj=function SZd(){return false};_.ol=function TZd(){return true};_.Si=function UZd(){return true};_.Wi=function VZd(a,b){return b};_.Yi=function WZd(){return false};_.c=0;var ibb=sfb(ZJe,'EObjectEList',505);feb(83,505,oKe,XZd);_.Mj=function YZd(){return true};_.ml=function ZZd(){return false};_.al=function $Zd(){return true};var cbb=sfb(ZJe,'EObjectContainmentEList',83);feb(555,83,oKe,_Zd);_.Ni=function a$d(){this.b=true};_.Qj=function b$d(){return this.b};_.Gk=function c$d(){var a;sLd(this);if(Mvd(this.e)){a=this.b;this.b=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var bbb=sfb(ZJe,'EObjectContainmentEList/Unsettable',555);feb(1161,555,oKe,h$d);_.Ti=function l$d(a,b){var c,d;return c=RD(uLd(this,a,b),89),Mvd(this.e)&&eZd(this,new c4d(this.a,7,(JTd(),qTd),sgb(b),(d=c.c,ZD(d,90)?RD(d,29):zTd),a)),c};_.Uj=function m$d(a,b){return e$d(this,RD(a,89),b)};_.Vj=function n$d(a,b){return f$d(this,RD(a,89),b)};_.Wj=function o$d(a,b,c){return g$d(this,RD(a,89),RD(b,89),c)};_.Ij=function i$d(a,b,c,d,e){switch(a){case 3:{return dZd(this,a,b,c,d,this.i>1)}case 5:{return dZd(this,a,b,c,d,this.i-RD(c,15).gc()>0)}default:{return new P3d(this.e,a,this.c,b,c,d,true)}}};_.Tj=function j$d(){return true};_.Qj=function k$d(){return d$d(this)};_.Gk=function p$d(){sLd(this)};var S7=sfb(SHe,'EClassImpl/1',1161);feb(1175,1174,EJe);_.dj=function t$d(a){var b,c,d,e,f,g,h;c=a.gj();if(c!=8){d=s$d(a);if(d==0){switch(c){case 1:case 9:{h=a.kj();if(h!=null){b=yYd(RD(h,482));!b.c&&(b.c=new X9d);dHd(b.c,a.jj())}g=a.ij();if(g!=null){e=RD(g,482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);WGd(b.c,RD(a.jj(),29))}}break}case 3:{g=a.ij();if(g!=null){e=RD(g,482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);WGd(b.c,RD(a.jj(),29))}}break}case 5:{g=a.ij();if(g!=null){for(f=RD(g,16).Kc();f.Ob();){e=RD(f.Pb(),482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);WGd(b.c,RD(a.jj(),29))}}}break}case 4:{h=a.kj();if(h!=null){e=RD(h,482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);dHd(b.c,a.jj())}}break}case 6:{h=a.kj();if(h!=null){for(f=RD(h,16).Kc();f.Ob();){e=RD(f.Pb(),482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);dHd(b.c,a.jj())}}}break}}}this.ql(d)}};_.ql=function u$d(a){r$d(this,a)};_.b=63;var u9=sfb(SHe,'ESuperAdapter',1175);feb(1176,1175,EJe,w$d);_.ql=function x$d(a){v$d(this,a)};var N7=sfb(SHe,'EClassImpl/10',1176);feb(1165,710,oKe);_.Ei=function y$d(a,b){return IHd(this,a,b)};_.Fi=function z$d(a){return JHd(this,a)};_.Gi=function A$d(a,b){KHd(this,a,b)};_.Hi=function B$d(a){LHd(this,a)};_.$i=function D$d(a){return NHd(this,a)};_.Xi=function L$d(a,b){return UHd(this,a,b)};_.Wk=function C$d(a,b){throw Adb(new jib)};_.Ii=function E$d(){return new yMd(this)};_.Ji=function F$d(){return new BMd(this)};_.Ki=function G$d(a){return ZGd(this,a)};_.Xk=function H$d(a,b){throw Adb(new jib)};_.Fk=function I$d(a){return this};_.Qj=function J$d(){return this.i!=0};_.Wb=function K$d(a){throw Adb(new jib)};_.Gk=function M$d(){throw Adb(new jib)};var xbb=sfb(ZJe,'EcoreEList/UnmodifiableEList',1165);feb(328,1165,oKe,N$d);_.Yi=function O$d(){return false};var wbb=sfb(ZJe,'EcoreEList/UnmodifiableEList/FastCompare',328);feb(1168,328,oKe,R$d);_.dd=function S$d(a){var b,c,d;if(ZD(a,179)){b=RD(a,179);c=b.Lj();if(c!=-1){for(d=this.i;c4){if(this.fk(a)){if(this.al()){d=RD(a,54);c=d.Eh();h=c==this.b&&(this.ml()?d.yh(d.Fh(),RD(vYd(Uwd(this.b),this.Lj()).Hk(),29).kk())==Z5d(RD(vYd(Uwd(this.b),this.Lj()),19)).n:-1-d.Fh()==this.Lj());if(this.nl()&&!h&&!c&&!!d.Jh()){for(e=0;e1||d==-1)}else{return false}};_.ml=function a0d(){var a,b,c;b=vYd(Uwd(this.b),this.Lj());if(ZD(b,102)){a=RD(b,19);c=Z5d(a);return !!c}else{return false}};_.nl=function b0d(){var a,b;b=vYd(Uwd(this.b),this.Lj());if(ZD(b,102)){a=RD(b,19);return (a.Bb&txe)!=0}else{return false}};_.dd=function c0d(a){var b,c,d,e;d=this.zj(a);if(d>=0)return d;if(this.ol()){for(c=0,e=this.Ej();c=0;--a){N_d(this,a,this.xj(a))}}return this.Fj()};_.Qc=function o0d(a){var b;if(this.nl()){for(b=this.Ej()-1;b>=0;--b){N_d(this,b,this.xj(b))}}return this.Gj(a)};_.Gk=function p0d(){VJd(this)};_.Zi=function q0d(a,b){return P_d(this,a,b)};var Pab=sfb(ZJe,'DelegatingEcoreEList',756);feb(1171,756,tKe,w0d);_.qj=function z0d(a,b){r0d(this,a,RD(b,29))};_.rj=function A0d(a){s0d(this,RD(a,29))};_.xj=function G0d(a){var b,c;return b=RD(QHd(tYd(this.a),a),89),c=b.c,ZD(c,90)?RD(c,29):(JTd(),zTd)};_.Cj=function L0d(a){var b,c;return b=RD(vLd(tYd(this.a),a),89),c=b.c,ZD(c,90)?RD(c,29):(JTd(),zTd)};_.Dj=function M0d(a,b){return u0d(this,a,RD(b,29))};_.Li=function x0d(){return false};_.Ij=function y0d(a,b,c,d,e){return null};_.sj=function B0d(){return new c1d(this)};_.tj=function C0d(){sLd(tYd(this.a))};_.uj=function D0d(a){return t0d(this,a)};_.vj=function E0d(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!t0d(this,b)){return false}}return true};_.wj=function F0d(a){var b,c,d;if(ZD(a,15)){d=RD(a,15);if(d.gc()==tYd(this.a).i){for(b=d.Kc(),c=new dMd(this);b.Ob();){if(dE(b.Pb())!==dE(bMd(c))){return false}}return true}}return false};_.yj=function H0d(){var a,b,c,d,e;c=1;for(b=new dMd(tYd(this.a));b.e!=b.i.gc();){a=RD(bMd(b),89);d=(e=a.c,ZD(e,90)?RD(e,29):(JTd(),zTd));c=31*c+(!d?0:kFb(d))}return c};_.zj=function I0d(a){var b,c,d,e;d=0;for(c=new dMd(tYd(this.a));c.e!=c.i.gc();){b=RD(bMd(c),89);if(dE(a)===dE((e=b.c,ZD(e,90)?RD(e,29):(JTd(),zTd)))){return d}++d}return -1};_.Aj=function J0d(){return tYd(this.a).i==0};_.Bj=function K0d(){return null};_.Ej=function N0d(){return tYd(this.a).i};_.Fj=function O0d(){var a,b,c,d,e,f;f=tYd(this.a).i;e=$C(jJ,rve,1,f,5,1);c=0;for(b=new dMd(tYd(this.a));b.e!=b.i.gc();){a=RD(bMd(b),89);e[c++]=(d=a.c,ZD(d,90)?RD(d,29):(JTd(),zTd))}return e};_.Gj=function P0d(a){var b,c,d,e,f,g,h;h=tYd(this.a).i;if(a.lengthh&&bD(a,h,null);d=0;for(c=new dMd(tYd(this.a));c.e!=c.i.gc();){b=RD(bMd(c),89);f=(g=b.c,ZD(g,90)?RD(g,29):(JTd(),zTd));bD(a,d++,f)}return a};_.Hj=function Q0d(){var a,b,c,d,e;e=new Qhb;e.a+='[';a=tYd(this.a);for(b=0,d=tYd(this.a).i;b>16,e>=0?AXd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,6,c);case 9:return !this.a&&(this.a=new C5d(l7,this,9,5)),qLd(this.a,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),sTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),sTd)),a,c)};_.Uh=function D1d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 6:return xvd(this,null,6,c);case 7:return !this.A&&(this.A=new iie(z7,this,7)),rLd(this.A,a,c);case 9:return !this.a&&(this.a=new C5d(l7,this,9,5)),rLd(this.a,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),sTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),sTd)),a,c)};_.Wh=function E1d(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!DXd(this);case 4:return !!y1d(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!xXd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return Avd(this,a-AYd((JTd(),sTd)),vYd((b=RD(Ywd(this,16),29),!b?sTd:b),a))};_.bi=function F1d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:LXd(this,WD(b));return;case 2:IXd(this,WD(b));return;case 5:KXd(this,WD(b));return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);!this.A&&(this.A=new iie(z7,this,7));YGd(this.A,RD(b,16));return;case 8:j1d(this,Heb(TD(b)));return;case 9:!this.a&&(this.a=new C5d(l7,this,9,5));sLd(this.a);!this.a&&(this.a=new C5d(l7,this,9,5));YGd(this.a,RD(b,16));return;}Bvd(this,a-AYd((JTd(),sTd)),vYd((c=RD(Ywd(this,16),29),!c?sTd:c),a),b)};_.ii=function G1d(){return JTd(),sTd};_.ki=function H1d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,184)&&(RD(this.Cb,184).tb=null);PAd(this,null);return;case 2:yXd(this,null);zXd(this,this.D);return;case 5:KXd(this,null);return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);return;case 8:j1d(this,true);return;case 9:!this.a&&(this.a=new C5d(l7,this,9,5));sLd(this.a);return;}Cvd(this,a-AYd((JTd(),sTd)),vYd((b=RD(Ywd(this,16),29),!b?sTd:b),a))};_.pi=function I1d(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?RD(this.Cb,685):null;}return zvd(this,a-AYd((JTd(),tTd)),vYd((d=RD(Ywd(this,16),29),!d?tTd:d),a),b,c)};_.Sh=function U1d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?M1d(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,5,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),tTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),tTd)),a,c)};_.Uh=function V1d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 5:return xvd(this,null,5,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),tTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),tTd)),a,c)};_.Wh=function W1d(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?RD(this.Cb,685):null);}return Avd(this,a-AYd((JTd(),tTd)),vYd((b=RD(Ywd(this,16),29),!b?tTd:b),a))};_.bi=function X1d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:Q1d(this,RD(b,17).a);return;case 3:O1d(this,RD(b,2039));return;case 4:P1d(this,WD(b));return;}Bvd(this,a-AYd((JTd(),tTd)),vYd((c=RD(Ywd(this,16),29),!c?tTd:c),a),b)};_.ii=function Y1d(){return JTd(),tTd};_.ki=function Z1d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:Q1d(this,0);return;case 3:O1d(this,null);return;case 4:P1d(this,null);return;}Cvd(this,a-AYd((JTd(),tTd)),vYd((b=RD(Ywd(this,16),29),!b?tTd:b),a))};_.Ib=function _1d(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var f8=sfb(SHe,'EEnumLiteralImpl',582);var h8=ufb(SHe,'EFactoryImpl/InternalEDateTimeFormat');feb(499,1,{2114:1},c2d);var g8=sfb(SHe,'EFactoryImpl/1ClientInternalEDateTimeFormat',499);feb(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},s2d);_.Ch=function t2d(a,b,c){var d;c=xvd(this,a,b,c);if(!!this.e&&ZD(a,179)){d=k2d(this,this.e);d!=this.c&&(c=o2d(this,d,c))}return c};_.Lh=function u2d(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new XZd(o7,this,1)),this.d;case 2:if(b)return i2d(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return h2d(this);return this.a;}return zvd(this,a-AYd((JTd(),vTd)),vYd((d=RD(Ywd(this,16),29),!d?vTd:d),a),b,c)};_.Uh=function v2d(a,b,c){var d,e;switch(b){case 0:return g2d(this,null,c);case 1:return !this.d&&(this.d=new XZd(o7,this,1)),rLd(this.d,a,c);case 3:return e2d(this,null,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),vTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),vTd)),a,c)};_.Wh=function w2d(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return Avd(this,a-AYd((JTd(),vTd)),vYd((b=RD(Ywd(this,16),29),!b?vTd:b),a))};_.bi=function x2d(a,b){var c;switch(a){case 0:q2d(this,RD(b,89));return;case 1:!this.d&&(this.d=new XZd(o7,this,1));sLd(this.d);!this.d&&(this.d=new XZd(o7,this,1));YGd(this.d,RD(b,16));return;case 3:n2d(this,RD(b,89));return;case 4:p2d(this,RD(b,850));return;case 5:l2d(this,RD(b,142));return;}Bvd(this,a-AYd((JTd(),vTd)),vYd((c=RD(Ywd(this,16),29),!c?vTd:c),a),b)};_.ii=function y2d(){return JTd(),vTd};_.ki=function z2d(a){var b;switch(a){case 0:q2d(this,null);return;case 1:!this.d&&(this.d=new XZd(o7,this,1));sLd(this.d);return;case 3:n2d(this,null);return;case 4:p2d(this,null);return;case 5:l2d(this,null);return;}Cvd(this,a-AYd((JTd(),vTd)),vYd((b=RD(Ywd(this,16),29),!b?vTd:b),a))};_.Ib=function A2d(){var a;a=new dib(awd(this));a.a+=' (expression: ';r2d(this,a);a.a+=')';return a.a};var d2d;var j8=sfb(SHe,'EGenericTypeImpl',248);feb(2067,2062,uKe);_.Gi=function C2d(a,b){B2d(this,a,b)};_.Wk=function D2d(a,b){B2d(this,this.gc(),a);return b};_.$i=function E2d(a){return ju(this.pj(),a)};_.Ii=function F2d(){return this.Ji()};_.pj=function G2d(){return new mee(this)};_.Ji=function H2d(){return this.Ki(0)};_.Ki=function I2d(a){return this.pj().fd(a)};_.Xk=function J2d(a,b){ze(this,a,true);return b};_.Ti=function K2d(a,b){var c,d;d=ku(this,b);c=this.fd(a);c.Rb(d);return d};_.Ui=function L2d(a,b){var c;ze(this,b,true);c=this.fd(a);c.Rb(b)};var Gab=sfb(ZJe,'AbstractSequentialInternalEList',2067);feb(496,2067,uKe,Q2d);_.$i=function R2d(a){return ju(this.pj(),a)};_.Ii=function S2d(){if(this.b==null){return j3d(),j3d(),i3d}return this.sl()};_.pj=function T2d(){return new Whe(this.a,this.b)};_.Ji=function U2d(){if(this.b==null){return j3d(),j3d(),i3d}return this.sl()};_.Ki=function V2d(a){var b,c;if(this.b==null){if(a<0||a>1){throw Adb(new veb(HJe+a+', size=0'))}return j3d(),j3d(),i3d}c=this.sl();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.pk()!=C4||b.Lj()!=0)&&(!this.vl()||this.b.Xh(b))){f=this.b.Nh(b,this.ul());this.f=(nke(),RD(b,69).xk());if(this.f||b.Jk()){if(this.ul()){d=RD(f,15);this.k=d}else{d=RD(f,71);this.k=this.j=d}if(ZD(this.k,59)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.fd(this.k.gc()):this.j.Ki(this.k.gc())}if(!this.p?n3d(this):o3d(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.$i(--this.n):this.p.Ub();if(this.f){a=RD(e,76);a.Lk();c=a.md();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.$i(--this.n):this.p.Ub();if(this.f){a=RD(e,76);a.Lk();c=a.md();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function v3d(){return k3d(this)};_.Tb=function w3d(){return this.a};_.Ub=function x3d(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw Adb(new Dvb)}};_.Vb=function y3d(){return this.a-1};_.Qb=function z3d(){throw Adb(new jib)};_.ul=function A3d(){return false};_.Wb=function B3d(a){throw Adb(new jib)};_.vl=function C3d(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var i3d;var Uab=sfb(ZJe,'EContentsEList/FeatureIteratorImpl',287);feb(711,287,vKe,D3d);_.ul=function E3d(){return true};var Vab=sfb(ZJe,'EContentsEList/ResolvingFeatureIteratorImpl',711);feb(1178,711,vKe,F3d);_.vl=function G3d(){return false};var l8=sfb(SHe,'ENamedElementImpl/1/1',1178);feb(1179,287,vKe,H3d);_.vl=function I3d(){return false};var m8=sfb(SHe,'ENamedElementImpl/1/2',1179);feb(39,152,GJe,L3d,M3d,N3d,O3d,P3d,Q3d,R3d,S3d,T3d,U3d,V3d,W3d,X3d,Y3d,Z3d,$3d,_3d,a4d,b4d,c4d,d4d,e4d,f4d,g4d,h4d);_.Kj=function i4d(){return K3d(this)};_.Rj=function j4d(){var a;a=K3d(this);if(a){return a.ik()}return null};_.hj=function k4d(a){this.b==-1&&!!this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk()));return this.c.yh(this.b,a)};_.jj=function l4d(){return this.c};_.Sj=function m4d(){var a;a=K3d(this);if(a){return a.tk()}return false};_.b=-1;var p8=sfb(SHe,'ENotificationImpl',39);feb(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},q4d);_.Ah=function r4d(a){return n4d(this,a)};_.Lh=function s4d(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),f=this.t,f>1||f==-1?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?RD(this.Cb,29):null;case 11:return !this.d&&(this.d=new iie(z7,this,11)),this.d;case 12:return !this.c&&(this.c=new C5d(u7,this,12,10)),this.c;case 13:return !this.a&&(this.a=new F4d(this,this)),this.a;case 14:return o4d(this);}return zvd(this,a-AYd((JTd(),ATd)),vYd((d=RD(Ywd(this,16),29),!d?ATd:d),a),b,c)};_.Sh=function t4d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?n4d(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,10,c);case 12:return !this.c&&(this.c=new C5d(u7,this,12,10)),qLd(this.c,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),ATd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),ATd)),a,c)};_.Uh=function u4d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);case 10:return xvd(this,null,10,c);case 11:return !this.d&&(this.d=new iie(z7,this,11)),rLd(this.d,a,c);case 12:return !this.c&&(this.c=new C5d(u7,this,12,10)),rLd(this.c,a,c);case 14:return rLd(o4d(this),a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),ATd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),ATd)),a,c)};_.Wh=function v4d(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return !!(this.Db>>16==10?RD(this.Cb,29):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&o4d(this.a.a).i!=0&&!(!!this.b&&o5d(this.b));case 14:return !!this.b&&o5d(this.b);}return Avd(this,a-AYd((JTd(),ATd)),vYd((b=RD(Ywd(this,16),29),!b?ATd:b),a))};_.bi=function w4d(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:bWd(this,RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 11:!this.d&&(this.d=new iie(z7,this,11));sLd(this.d);!this.d&&(this.d=new iie(z7,this,11));YGd(this.d,RD(b,16));return;case 12:!this.c&&(this.c=new C5d(u7,this,12,10));sLd(this.c);!this.c&&(this.c=new C5d(u7,this,12,10));YGd(this.c,RD(b,16));return;case 13:!this.a&&(this.a=new F4d(this,this));VJd(this.a);!this.a&&(this.a=new F4d(this,this));YGd(this.a,RD(b,16));return;case 14:sLd(o4d(this));YGd(o4d(this),RD(b,16));return;}Bvd(this,a-AYd((JTd(),ATd)),vYd((c=RD(Ywd(this,16),29),!c?ATd:c),a),b)};_.ii=function x4d(){return JTd(),ATd};_.ki=function y4d(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:bWd(this,1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 11:!this.d&&(this.d=new iie(z7,this,11));sLd(this.d);return;case 12:!this.c&&(this.c=new C5d(u7,this,12,10));sLd(this.c);return;case 13:!!this.a&&VJd(this.a);return;case 14:!!this.b&&sLd(this.b);return;}Cvd(this,a-AYd((JTd(),ATd)),vYd((b=RD(Ywd(this,16),29),!b?ATd:b),a))};_.pi=function z4d(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&bD(a,h,null);d=0;for(c=new dMd(o4d(this.a));c.e!=c.i.gc();){b=RD(bMd(c),89);f=(g=b.c,g?g:(JTd(),wTd));bD(a,d++,f)}return a};_.Hj=function Z4d(){var a,b,c,d,e;e=new Qhb;e.a+='[';a=o4d(this.a);for(b=0,d=o4d(this.a).i;b1)}case 5:{return dZd(this,a,b,c,d,this.i-RD(c,15).gc()>0)}default:{return new P3d(this.e,a,this.c,b,c,d,true)}}};_.Tj=function u5d(){return true};_.Qj=function v5d(){return o5d(this)};_.Gk=function A5d(){sLd(this)};var t8=sfb(SHe,'EOperationImpl/2',1377);feb(507,1,{2037:1,507:1},B5d);var v8=sfb(SHe,'EPackageImpl/1',507);feb(14,83,oKe,C5d);_.il=function D5d(){return this.d};_.jl=function E5d(){return this.b};_.ml=function F5d(){return true};_.b=0;var gbb=sfb(ZJe,'EObjectContainmentWithInverseEList',14);feb(365,14,oKe,G5d);_.nl=function H5d(){return true};_.Wi=function I5d(a,b){return gZd(this,a,RD(b,58))};var dbb=sfb(ZJe,'EObjectContainmentWithInverseEList/Resolving',365);feb(308,365,oKe,J5d);_.Ni=function K5d(){this.a.tb=null};var w8=sfb(SHe,'EPackageImpl/2',308);feb(1278,1,{},L5d);var x8=sfb(SHe,'EPackageImpl/3',1278);feb(733,45,Hxe,O5d);_._b=function P5d(a){return bE(a)?Yjb(this,a):!!qtb(this.f,a)};var z8=sfb(SHe,'EPackageRegistryImpl',733);feb(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},R5d);_.Ah=function S5d(a){return Q5d(this,a)};_.Lh=function T5d(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),f=this.t,f>1||f==-1?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?RD(this.Cb,62):null;}return zvd(this,a-AYd((JTd(),DTd)),vYd((d=RD(Ywd(this,16),29),!d?DTd:d),a),b,c)};_.Sh=function U5d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Q5d(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,10,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),DTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),DTd)),a,c)};_.Uh=function V5d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);case 10:return xvd(this,null,10,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),DTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),DTd)),a,c)};_.Wh=function W5d(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return !!(this.Db>>16==10?RD(this.Cb,62):null);}return Avd(this,a-AYd((JTd(),DTd)),vYd((b=RD(Ywd(this,16),29),!b?DTd:b),a))};_.ii=function X5d(){return JTd(),DTd};var A8=sfb(SHe,'EParameterImpl',518);feb(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},d6d);_.Lh=function e6d(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),g=this.t,g>1||g==-1?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return Geb(),(this.Bb&gwe)!=0?true:false;case 11:return Geb(),(this.Bb&cKe)!=0?true:false;case 12:return Geb(),(this.Bb&qxe)!=0?true:false;case 13:return this.j;case 14:return tWd(this);case 15:return Geb(),(this.Bb&bKe)!=0?true:false;case 16:return Geb(),(this.Bb&Ove)!=0?true:false;case 17:return uWd(this);case 18:return Geb(),(this.Bb&QHe)!=0?true:false;case 19:return Geb(),f=Z5d(this),!!f&&(f.Bb&QHe)!=0?true:false;case 20:return Geb(),(this.Bb&txe)!=0?true:false;case 21:if(b)return Z5d(this);return this.b;case 22:if(b)return $5d(this);return Y5d(this);case 23:return !this.a&&(this.a=new zie(g7,this,23)),this.a;}return zvd(this,a-AYd((JTd(),ETd)),vYd((d=RD(Ywd(this,16),29),!d?ETd:d),a),b,c)};_.Wh=function f6d(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return (this.Bb&gwe)==0;case 11:return (this.Bb&cKe)!=0;case 12:return (this.Bb&qxe)!=0;case 13:return this.j!=null;case 14:return tWd(this)!=null;case 15:return (this.Bb&bKe)!=0;case 16:return (this.Bb&Ove)!=0;case 17:return !!uWd(this);case 18:return (this.Bb&QHe)!=0;case 19:return d=Z5d(this),!!d&&(d.Bb&QHe)!=0;case 20:return (this.Bb&txe)==0;case 21:return !!this.b;case 22:return !!Y5d(this);case 23:return !!this.a&&this.a.i!=0;}return Avd(this,a-AYd((JTd(),ETd)),vYd((b=RD(Ywd(this,16),29),!b?ETd:b),a))};_.bi=function g6d(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:CWd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:bWd(this,RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 10:xWd(this,Heb(TD(b)));return;case 11:FWd(this,Heb(TD(b)));return;case 12:DWd(this,Heb(TD(b)));return;case 13:yWd(this,WD(b));return;case 15:EWd(this,Heb(TD(b)));return;case 16:AWd(this,Heb(TD(b)));return;case 18:_5d(this,Heb(TD(b)));return;case 20:c6d(this,Heb(TD(b)));return;case 21:b6d(this,RD(b,19));return;case 23:!this.a&&(this.a=new zie(g7,this,23));sLd(this.a);!this.a&&(this.a=new zie(g7,this,23));YGd(this.a,RD(b,16));return;}Bvd(this,a-AYd((JTd(),ETd)),vYd((c=RD(Ywd(this,16),29),!c?ETd:c),a),b)};_.ii=function h6d(){return JTd(),ETd};_.ki=function i6d(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),4);PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:bWd(this,1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 10:xWd(this,true);return;case 11:FWd(this,false);return;case 12:DWd(this,false);return;case 13:this.i=null;zWd(this,null);return;case 15:EWd(this,false);return;case 16:AWd(this,false);return;case 18:a6d(this,false);ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),2);return;case 20:c6d(this,true);return;case 21:b6d(this,null);return;case 23:!this.a&&(this.a=new zie(g7,this,23));sLd(this.a);return;}Cvd(this,a-AYd((JTd(),ETd)),vYd((b=RD(Ywd(this,16),29),!b?ETd:b),a))};_.pi=function j6d(){$5d(this);Afe(Qee((lke(),jke),this));WVd(this);this.Bb|=1};_.uk=function k6d(){return Z5d(this)};_._k=function l6d(){var a;return a=Z5d(this),!!a&&(a.Bb&QHe)!=0};_.al=function m6d(){return (this.Bb&QHe)!=0};_.bl=function n6d(){return (this.Bb&txe)!=0};_.Yk=function o6d(a,b){this.c=null;return ZVd(this,a,b)};_.Ib=function p6d(){var a;if((this.Db&64)!=0)return GWd(this);a=new Shb(GWd(this));a.a+=' (containment: ';Ohb(a,(this.Bb&QHe)!=0);a.a+=', resolveProxies: ';Ohb(a,(this.Bb&txe)!=0);a.a+=')';return a.a};var B8=sfb(SHe,'EReferenceImpl',102);feb(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},v6d);_.Fb=function B6d(a){return this===a};_.ld=function D6d(){return this.b};_.md=function E6d(){return this.c};_.Hb=function F6d(){return kFb(this)};_.Di=function H6d(a){q6d(this,WD(a))};_.nd=function I6d(a){return u6d(this,WD(a))};_.Lh=function w6d(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return zvd(this,a-AYd((JTd(),FTd)),vYd((d=RD(Ywd(this,16),29),!d?FTd:d),a),b,c)};_.Wh=function x6d(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return Avd(this,a-AYd((JTd(),FTd)),vYd((b=RD(Ywd(this,16),29),!b?FTd:b),a))};_.bi=function y6d(a,b){var c;switch(a){case 0:r6d(this,WD(b));return;case 1:t6d(this,WD(b));return;}Bvd(this,a-AYd((JTd(),FTd)),vYd((c=RD(Ywd(this,16),29),!c?FTd:c),a),b)};_.ii=function z6d(){return JTd(),FTd};_.ki=function A6d(a){var b;switch(a){case 0:s6d(this,null);return;case 1:t6d(this,null);return;}Cvd(this,a-AYd((JTd(),FTd)),vYd((b=RD(Ywd(this,16),29),!b?FTd:b),a))};_.Bi=function C6d(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:ohb(a)}return this.a};_.Ci=function G6d(a){this.a=a};_.Ib=function J6d(){var a;if((this.Db&64)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (key: ';Nhb(a,this.b);a.a+=', value: ';Nhb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var C8=sfb(SHe,'EStringToStringMapEntryImpl',561);var Ibb=ufb(ZJe,'FeatureMap/Entry/Internal');feb(576,1,wKe);_.xl=function M6d(a){return this.yl(RD(a,54))};_.yl=function N6d(a){return this.xl(a)};_.Fb=function O6d(a){var b,c;if(this===a){return true}else if(ZD(a,76)){b=RD(a,76);if(b.Lk()==this.c){c=this.md();return c==null?b.md()==null:pb(c,b.md())}else{return false}}else{return false}};_.Lk=function P6d(){return this.c};_.Hb=function Q6d(){var a;a=this.md();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function R6d(){var a,b;a=this.c;b=BXd(a.qk()).yi();a.xe();return (b!=null&&b.length!=0?b+':'+a.xe():a.xe())+'='+this.md()};var D8=sfb(SHe,'EStructuralFeatureImpl/BasicFeatureMapEntry',576);feb(791,576,wKe,U6d);_.yl=function V6d(a){return new U6d(this.c,a)};_.md=function W6d(){return this.a};_.zl=function X6d(a,b,c){return S6d(this,a,this.a,b,c)};_.Al=function Y6d(a,b,c){return T6d(this,a,this.a,b,c)};var E8=sfb(SHe,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',791);feb(1350,1,{},Z6d);_.yk=function $6d(a,b,c,d,e){var f;f=RD(Evd(a,this.b),220);return f.Yl(this.a).Fk(d)};_.zk=function _6d(a,b,c,d,e){var f;f=RD(Evd(a,this.b),220);return f.Pl(this.a,d,e)};_.Ak=function a7d(a,b,c,d,e){var f;f=RD(Evd(a,this.b),220);return f.Ql(this.a,d,e)};_.Bk=function b7d(a,b,c){var d;d=RD(Evd(a,this.b),220);return d.Yl(this.a).Qj()};_.Ck=function c7d(a,b,c,d){var e;e=RD(Evd(a,this.b),220);e.Yl(this.a).Wb(d)};_.Dk=function d7d(a,b,c){return RD(Evd(a,this.b),220).Yl(this.a)};_.Ek=function e7d(a,b,c){var d;d=RD(Evd(a,this.b),220);d.Yl(this.a).Gk()};var F8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1350);feb(91,1,{},g7d,h7d,i7d,j7d);_.yk=function k7d(a,b,c,d,e){var f;f=b.li(c);f==null&&b.mi(c,f=f7d(this,a));if(!e){switch(this.e){case 50:case 41:return RD(f,597).bk();case 40:return RD(f,220).Vl();}}return f};_.zk=function l7d(a,b,c,d,e){var f,g;g=b.li(c);g==null&&b.mi(c,g=f7d(this,a));f=RD(g,71).Wk(d,e);return f};_.Ak=function m7d(a,b,c,d,e){var f;f=b.li(c);f!=null&&(e=RD(f,71).Xk(d,e));return e};_.Bk=function n7d(a,b,c){var d;d=b.li(c);return d!=null&&RD(d,79).Qj()};_.Ck=function o7d(a,b,c,d){var e;e=RD(b.li(c),79);!e&&b.mi(c,e=f7d(this,a));e.Wb(d)};_.Dk=function p7d(a,b,c){var d,e;e=b.li(c);e==null&&b.mi(c,e=f7d(this,a));if(ZD(e,79)){return RD(e,79)}else{d=RD(b.li(c),15);return new I9d(d)}};_.Ek=function q7d(a,b,c){var d;d=RD(b.li(c),79);!d&&b.mi(c,d=f7d(this,a));d.Gk()};_.b=0;_.e=0;var G8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateMany',91);feb(512,1,{});_.zk=function u7d(a,b,c,d,e){throw Adb(new jib)};_.Ak=function v7d(a,b,c,d,e){throw Adb(new jib)};_.Dk=function w7d(a,b,c){return new x7d(this,a,b,c)};var r7d;var n9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingle',512);feb(1367,1,$Je,x7d);_.Fk=function y7d(a){return this.a.yk(this.c,this.d,this.b,a,true)};_.Qj=function z7d(){return this.a.Bk(this.c,this.d,this.b)};_.Wb=function A7d(a){this.a.Ck(this.c,this.d,this.b,a)};_.Gk=function B7d(){this.a.Ek(this.c,this.d,this.b)};_.b=0;var H8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1367);feb(784,512,{},C7d);_.yk=function D7d(a,b,c,d,e){return jwd(a,a.Ph(),a.Fh())==this.b?this.bl()&&d?yvd(a):a.Ph():null};_.zk=function E7d(a,b,c,d,e){var f,g;!!a.Ph()&&(e=(f=a.Fh(),f>=0?a.Ah(e):a.Ph().Th(a,-1-f,null,e)));g=BYd(a.Dh(),this.e);return a.Ch(d,g,e)};_.Ak=function F7d(a,b,c,d,e){var f;f=BYd(a.Dh(),this.e);return a.Ch(null,f,e)};_.Bk=function G7d(a,b,c){var d;d=BYd(a.Dh(),this.e);return !!a.Ph()&&a.Fh()==d};_.Ck=function H7d(a,b,c,d){var e,f,g,h,i;if(d!=null&&!FXd(this.a,d)){throw Adb(new Ifb(xKe+(ZD(d,58)?GYd(RD(d,58).Dh()):ofb(rb(d)))+yKe+this.a+"'"))}e=a.Ph();g=BYd(a.Dh(),this.e);if(dE(d)!==dE(e)||a.Fh()!=g&&d!=null){if(Oje(a,RD(d,58)))throw Adb(new agb(UHe+a.Ib()));i=null;!!e&&(i=(f=a.Fh(),f>=0?a.Ah(i):a.Ph().Th(a,-1-f,null,i)));h=RD(d,54);!!h&&(i=h.Rh(a,BYd(h.Dh(),this.b),null,i));i=a.Ch(h,g,i);!!i&&i.oj()}else{a.vh()&&a.wh()&&qvd(a,new N3d(a,1,g,d,d))}};_.Ek=function I7d(a,b,c){var d,e,f,g;d=a.Ph();if(d){g=(e=a.Fh(),e>=0?a.Ah(null):a.Ph().Th(a,-1-e,null,null));f=BYd(a.Dh(),this.e);g=a.Ch(null,f,g);!!g&&g.oj()}else{a.vh()&&a.wh()&&qvd(a,new b4d(a,1,this.e,null,null))}};_.bl=function J7d(){return false};var J8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',784);feb(1351,784,{},K7d);_.bl=function L7d(){return true};var I8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1351);feb(574,512,{});_.yk=function O7d(a,b,c,d,e){var f;return f=b.li(c),f==null?this.b:dE(f)===dE(r7d)?null:f};_.Bk=function P7d(a,b,c){var d;d=b.li(c);return d!=null&&(dE(d)===dE(r7d)||!pb(d,this.b))};_.Ck=function Q7d(a,b,c,d){var e,f;if(a.vh()&&a.wh()){e=(f=b.li(c),f==null?this.b:dE(f)===dE(r7d)?null:f);if(d==null){if(this.c!=null){b.mi(c,null);d=this.b}else this.b!=null?b.mi(c,r7d):b.mi(c,null)}else{this.Bl(d);b.mi(c,d)}qvd(a,this.d.Cl(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.mi(c,null):this.b!=null?b.mi(c,r7d):b.mi(c,null)}else{this.Bl(d);b.mi(c,d)}}};_.Ek=function R7d(a,b,c){var d,e;if(a.vh()&&a.wh()){d=(e=b.li(c),e==null?this.b:dE(e)===dE(r7d)?null:e);b.ni(c);qvd(a,this.d.Cl(a,1,this.e,d,this.b))}else{b.ni(c)}};_.Bl=function S7d(a){throw Adb(new Hfb)};var Y8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',574);feb(zKe,1,{},b8d);_.Cl=function c8d(a,b,c,d,e){return new b4d(a,b,c,d,e)};_.Dl=function d8d(a,b,c,d,e,f){return new d4d(a,b,c,d,e,f)};var T7d,U7d,V7d,W7d,X7d,Y7d,Z7d,$7d,_7d;var S8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',zKe);feb(1368,zKe,{},e8d);_.Cl=function f8d(a,b,c,d,e){return new g4d(a,b,c,Heb(TD(d)),Heb(TD(e)))};_.Dl=function g8d(a,b,c,d,e,f){return new h4d(a,b,c,Heb(TD(d)),Heb(TD(e)),f)};var K8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1368);feb(1369,zKe,{},h8d);_.Cl=function i8d(a,b,c,d,e){return new R3d(a,b,c,RD(d,222).a,RD(e,222).a)};_.Dl=function j8d(a,b,c,d,e,f){return new S3d(a,b,c,RD(d,222).a,RD(e,222).a,f)};var L8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1369);feb(1370,zKe,{},k8d);_.Cl=function l8d(a,b,c,d,e){return new T3d(a,b,c,RD(d,180).a,RD(e,180).a)};_.Dl=function m8d(a,b,c,d,e,f){return new U3d(a,b,c,RD(d,180).a,RD(e,180).a,f)};var M8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1370);feb(1371,zKe,{},n8d);_.Cl=function o8d(a,b,c,d,e){return new V3d(a,b,c,Kfb(UD(d)),Kfb(UD(e)))};_.Dl=function p8d(a,b,c,d,e,f){return new W3d(a,b,c,Kfb(UD(d)),Kfb(UD(e)),f)};var N8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1371);feb(1372,zKe,{},q8d);_.Cl=function r8d(a,b,c,d,e){return new X3d(a,b,c,RD(d,161).a,RD(e,161).a)};_.Dl=function s8d(a,b,c,d,e,f){return new Y3d(a,b,c,RD(d,161).a,RD(e,161).a,f)};var O8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1372);feb(1373,zKe,{},t8d);_.Cl=function u8d(a,b,c,d,e){return new Z3d(a,b,c,RD(d,17).a,RD(e,17).a)};_.Dl=function v8d(a,b,c,d,e,f){return new $3d(a,b,c,RD(d,17).a,RD(e,17).a,f)};var P8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1373);feb(1374,zKe,{},w8d);_.Cl=function x8d(a,b,c,d,e){return new _3d(a,b,c,RD(d,168).a,RD(e,168).a)};_.Dl=function y8d(a,b,c,d,e,f){return new a4d(a,b,c,RD(d,168).a,RD(e,168).a,f)};var Q8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1374);feb(1375,zKe,{},z8d);_.Cl=function A8d(a,b,c,d,e){return new e4d(a,b,c,RD(d,191).a,RD(e,191).a)};_.Dl=function B8d(a,b,c,d,e,f){return new f4d(a,b,c,RD(d,191).a,RD(e,191).a,f)};var R8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1375);feb(1353,574,{},C8d);_.Bl=function D8d(a){if(!this.a.fk(a)){throw Adb(new Ifb(xKe+rb(a)+yKe+this.a+"'"))}};var T8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1353);feb(1354,574,{},E8d);_.Bl=function F8d(a){};var U8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1354);feb(785,574,{});_.Bk=function G8d(a,b,c){var d;d=b.li(c);return d!=null};_.Ck=function H8d(a,b,c,d){var e,f;if(a.vh()&&a.wh()){e=true;f=b.li(c);if(f==null){e=false;f=this.b}else dE(f)===dE(r7d)&&(f=null);if(d==null){if(this.c!=null){b.mi(c,null);d=this.b}else{b.mi(c,r7d)}}else{this.Bl(d);b.mi(c,d)}qvd(a,this.d.Dl(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.mi(c,null):b.mi(c,r7d)}else{this.Bl(d);b.mi(c,d)}}};_.Ek=function I8d(a,b,c){var d,e;if(a.vh()&&a.wh()){d=true;e=b.li(c);if(e==null){d=false;e=this.b}else dE(e)===dE(r7d)&&(e=null);b.ni(c);qvd(a,this.d.Dl(a,2,this.e,e,this.b,d))}else{b.ni(c)}};var X8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',785);feb(1355,785,{},J8d);_.Bl=function K8d(a){if(!this.a.fk(a)){throw Adb(new Ifb(xKe+rb(a)+yKe+this.a+"'"))}};var V8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1355);feb(1356,785,{},L8d);_.Bl=function M8d(a){};var W8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1356);feb(410,512,{},N8d);_.yk=function P8d(a,b,c,d,e){var f,g,h,i,j;j=b.li(c);if(this.tk()&&dE(j)===dE(r7d)){return null}else if(this.bl()&&d&&j!=null){h=RD(j,54);if(h.Vh()){i=Vvd(a,h);if(h!=i){if(!FXd(this.a,i)){throw Adb(new Ifb(xKe+rb(i)+yKe+this.a+"'"))}b.mi(c,j=i);if(this.al()){f=RD(i,54);g=h.Th(a,!this.b?-1-BYd(a.Dh(),this.e):BYd(h.Dh(),this.b),null,null);!f.Ph()&&(g=f.Rh(a,!this.b?-1-BYd(a.Dh(),this.e):BYd(f.Dh(),this.b),null,g));!!g&&g.oj()}a.vh()&&a.wh()&&qvd(a,new b4d(a,9,this.e,h,i))}}return j}else{return j}};_.zk=function Q8d(a,b,c,d,e){var f,g;g=b.li(c);dE(g)===dE(r7d)&&(g=null);b.mi(c,d);if(this.Mj()){if(dE(g)!==dE(d)&&g!=null){f=RD(g,54);e=f.Th(a,BYd(f.Dh(),this.b),null,e)}}else this.al()&&g!=null&&(e=RD(g,54).Th(a,-1-BYd(a.Dh(),this.e),null,e));if(a.vh()&&a.wh()){!e&&(e=new gLd(4));e.nj(new b4d(a,1,this.e,g,d))}return e};_.Ak=function R8d(a,b,c,d,e){var f;f=b.li(c);dE(f)===dE(r7d)&&(f=null);b.ni(c);if(a.vh()&&a.wh()){!e&&(e=new gLd(4));this.tk()?e.nj(new b4d(a,2,this.e,f,null)):e.nj(new b4d(a,1,this.e,f,null))}return e};_.Bk=function S8d(a,b,c){var d;d=b.li(c);return d!=null};_.Ck=function T8d(a,b,c,d){var e,f,g,h,i;if(d!=null&&!FXd(this.a,d)){throw Adb(new Ifb(xKe+(ZD(d,58)?GYd(RD(d,58).Dh()):ofb(rb(d)))+yKe+this.a+"'"))}i=b.li(c);h=i!=null;this.tk()&&dE(i)===dE(r7d)&&(i=null);g=null;if(this.Mj()){if(dE(i)!==dE(d)){if(i!=null){e=RD(i,54);g=e.Th(a,BYd(e.Dh(),this.b),null,g)}if(d!=null){e=RD(d,54);g=e.Rh(a,BYd(e.Dh(),this.b),null,g)}}}else if(this.al()){if(dE(i)!==dE(d)){i!=null&&(g=RD(i,54).Th(a,-1-BYd(a.Dh(),this.e),null,g));d!=null&&(g=RD(d,54).Rh(a,-1-BYd(a.Dh(),this.e),null,g))}}d==null&&this.tk()?b.mi(c,r7d):b.mi(c,d);if(a.vh()&&a.wh()){f=new d4d(a,1,this.e,i,d,this.tk()&&!h);if(!g){qvd(a,f)}else{g.nj(f);g.oj()}}else !!g&&g.oj()};_.Ek=function U8d(a,b,c){var d,e,f,g,h;h=b.li(c);g=h!=null;this.tk()&&dE(h)===dE(r7d)&&(h=null);f=null;if(h!=null){if(this.Mj()){d=RD(h,54);f=d.Th(a,BYd(d.Dh(),this.b),null,f)}else this.al()&&(f=RD(h,54).Th(a,-1-BYd(a.Dh(),this.e),null,f))}b.ni(c);if(a.vh()&&a.wh()){e=new d4d(a,this.tk()?2:1,this.e,h,null,g);if(!f){qvd(a,e)}else{f.nj(e);f.oj()}}else !!f&&f.oj()};_.Mj=function V8d(){return false};_.al=function W8d(){return false};_.bl=function X8d(){return false};_.tk=function Y8d(){return false};var m9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',410);feb(575,410,{},Z8d);_.al=function $8d(){return true};var e9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',575);feb(1359,575,{},_8d);_.bl=function a9d(){return true};var Z8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1359);feb(787,575,{},b9d);_.tk=function c9d(){return true};var _8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',787);feb(1361,787,{},d9d);_.bl=function e9d(){return true};var $8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1361);feb(650,575,{},f9d);_.Mj=function g9d(){return true};var d9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',650);feb(1360,650,{},h9d);_.bl=function i9d(){return true};var a9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1360);feb(788,650,{},j9d);_.tk=function k9d(){return true};var c9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',788);feb(1362,788,{},l9d);_.bl=function m9d(){return true};var b9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1362);feb(651,410,{},n9d);_.bl=function o9d(){return true};var i9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',651);feb(1363,651,{},p9d);_.tk=function q9d(){return true};var f9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1363);feb(789,651,{},r9d);_.Mj=function s9d(){return true};var h9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',789);feb(1364,789,{},t9d);_.tk=function u9d(){return true};var g9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1364);feb(1357,410,{},v9d);_.tk=function w9d(){return true};var j9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1357);feb(786,410,{},x9d);_.Mj=function y9d(){return true};var l9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',786);feb(1358,786,{},z9d);_.tk=function A9d(){return true};var k9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1358);feb(790,576,wKe,D9d);_.yl=function E9d(a){return new D9d(this.a,this.c,a)};_.md=function F9d(){return this.b};_.zl=function G9d(a,b,c){return B9d(this,a,this.b,c)};_.Al=function H9d(a,b,c){return C9d(this,a,this.b,c)};var o9=sfb(SHe,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',790);feb(1365,1,$Je,I9d);_.Fk=function J9d(a){return this.a};_.Qj=function K9d(){return ZD(this.a,97)?RD(this.a,97).Qj():!this.a.dc()};_.Wb=function L9d(a){this.a.$b();this.a.Gc(RD(a,15))};_.Gk=function M9d(){ZD(this.a,97)?RD(this.a,97).Gk():this.a.$b()};var p9=sfb(SHe,'EStructuralFeatureImpl/SettingMany',1365);feb(1366,576,wKe,N9d);_.xl=function O9d(a){return new S9d((nme(),mme),this.b.ri(this.a,a))};_.md=function P9d(){return null};_.zl=function Q9d(a,b,c){return c};_.Al=function R9d(a,b,c){return c};var q9=sfb(SHe,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1366);feb(652,576,wKe,S9d);_.xl=function T9d(a){return new S9d(this.c,a)};_.md=function U9d(){return this.a};_.zl=function V9d(a,b,c){return c};_.Al=function W9d(a,b,c){return c};var r9=sfb(SHe,'EStructuralFeatureImpl/SimpleFeatureMapEntry',652);feb(403,506,PIe,X9d);_.aj=function Y9d(a){return $C(h7,rve,29,a,0,1)};_.Yi=function Z9d(){return false};var t9=sfb(SHe,'ESuperAdapter/1',403);feb(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},_9d);_.Lh=function aae(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new iae(this,o7,this)),this.a;}return zvd(this,a-AYd((JTd(),ITd)),vYd((d=RD(Ywd(this,16),29),!d?ITd:d),a),b,c)};_.Uh=function bae(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 2:return !this.a&&(this.a=new iae(this,o7,this)),rLd(this.a,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),ITd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),ITd)),a,c)};_.Wh=function cae(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return Avd(this,a-AYd((JTd(),ITd)),vYd((b=RD(Ywd(this,16),29),!b?ITd:b),a))};_.bi=function dae(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:!this.a&&(this.a=new iae(this,o7,this));sLd(this.a);!this.a&&(this.a=new iae(this,o7,this));YGd(this.a,RD(b,16));return;}Bvd(this,a-AYd((JTd(),ITd)),vYd((c=RD(Ywd(this,16),29),!c?ITd:c),a),b)};_.ii=function eae(){return JTd(),ITd};_.ki=function fae(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:!this.a&&(this.a=new iae(this,o7,this));sLd(this.a);return;}Cvd(this,a-AYd((JTd(),ITd)),vYd((b=RD(Ywd(this,16),29),!b?ITd:b),a))};var z9=sfb(SHe,'ETypeParameterImpl',457);feb(458,83,oKe,iae);_.Nj=function jae(a,b){return gae(this,RD(a,89),b)};_.Oj=function kae(a,b){return hae(this,RD(a,89),b)};var v9=sfb(SHe,'ETypeParameterImpl/1',458);feb(647,45,Hxe,lae);_.ec=function mae(){return new pae(this)};var y9=sfb(SHe,'ETypeParameterImpl/2',647);feb(570,Eve,Fve,pae);_.Fc=function qae(a){return nae(this,RD(a,89))};_.Gc=function rae(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=RD(c.Pb(),89);Zjb(this.a,b,'')==null&&(d=true)}return d};_.$b=function sae(){akb(this.a)};_.Hc=function tae(a){return Ujb(this.a,a)};_.Kc=function uae(){var a;return a=new vkb((new mkb(this.a)).a),new xae(a)};_.Mc=function vae(a){return oae(this,a)};_.gc=function wae(){return bkb(this.a)};var x9=sfb(SHe,'ETypeParameterImpl/2/1',570);feb(571,1,Ave,xae);_.Nb=function yae(a){Ztb(this,a)};_.Pb=function Aae(){return RD(tkb(this.a).ld(),89)};_.Ob=function zae(){return this.a.b};_.Qb=function Bae(){ukb(this.a)};var w9=sfb(SHe,'ETypeParameterImpl/2/1/1',571);feb(1329,45,Hxe,Cae);_._b=function Dae(a){return bE(a)?Yjb(this,a):!!qtb(this.f,a)};_.xc=function Eae(a){var b,c;b=bE(a)?Xjb(this,a):Wd(qtb(this.f,a));if(ZD(b,851)){c=RD(b,851);b=c.Kk();Zjb(this,RD(a,241),b);return b}else return b!=null?b:a==null?(Gie(),Fie):null};var B9=sfb(SHe,'EValidatorRegistryImpl',1329);feb(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},Mae);_.ri=function Nae(a,b){switch(a.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:jeb(b);case 25:return Gae(b);case 27:return Hae(b);case 28:return Iae(b);case 29:return b==null?null:a2d(nAd[0],RD(b,206));case 41:return b==null?'':nfb(RD(b,297));case 42:return jeb(b);case 50:return WD(b);default:throw Adb(new agb(VHe+a.xe()+WHe));}};_.si=function Oae(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=BXd(a),m?fZd(m.vi(),a):-1)),a.G){case 0:return c=new mXd,c;case 1:return b=new pVd,b;case 2:return d=new HYd,d;case 4:return e=new k1d,e;case 5:return f=new A1d,f;case 6:return g=new R1d,g;case 7:return h=new yAd,h;case 10:return j=new kUd,j;case 11:return k=new q4d,k;case 12:return l=new EBd,l;case 13:return n=new R5d,n;case 14:return o=new d6d,o;case 17:return p=new v6d,p;case 18:return i=new s2d,i;case 19:return q=new _9d,q;default:throw Adb(new agb(ZHe+a.zb+WHe));}};_.ti=function Pae(a,b){switch(a.hk()){case 20:return b==null?null:new Bib(b);case 21:return b==null?null:new ejb(b);case 23:case 22:return b==null?null:Fae(b);case 26:case 24:return b==null?null:$eb(Oeb(b,-128,127)<<24>>24);case 25:return vAd(b);case 27:return Jae(b);case 28:return Kae(b);case 29:return Lae(b);case 32:case 31:return b==null?null:Neb(b);case 38:case 37:return b==null?null:new Ufb(b);case 40:case 39:return b==null?null:sgb(Oeb(b,qwe,lve));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Hgb(Peb(b));case 49:case 48:return b==null?null:bhb(Oeb(b,BKe,32767)<<16>>16);case 50:return b;default:throw Adb(new agb(VHe+a.xe()+WHe));}};var C9=sfb(SHe,'EcoreFactoryImpl',1349);feb(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},$ae);_.gb=false;_.hb=false;var Rae,Sae=false;var tab=sfb(SHe,'EcorePackageImpl',560);feb(1234,1,{851:1},cbe);_.Kk=function dbe(){return fke(),eke};var N9=sfb(SHe,'EcorePackageImpl/1',1234);feb(1243,1,OKe,ebe);_.fk=function fbe(a){return ZD(a,155)};_.gk=function gbe(a){return $C(p7,rve,155,a,0,1)};var D9=sfb(SHe,'EcorePackageImpl/10',1243);feb(1244,1,OKe,hbe);_.fk=function ibe(a){return ZD(a,197)};_.gk=function jbe(a){return $C(q7,rve,197,a,0,1)};var E9=sfb(SHe,'EcorePackageImpl/11',1244);feb(1245,1,OKe,kbe);_.fk=function lbe(a){return ZD(a,58)};_.gk=function mbe(a){return $C(r7,rve,58,a,0,1)};var F9=sfb(SHe,'EcorePackageImpl/12',1245);feb(1246,1,OKe,nbe);_.fk=function obe(a){return ZD(a,411)};_.gk=function pbe(a){return $C(s7,mKe,62,a,0,1)};var G9=sfb(SHe,'EcorePackageImpl/13',1246);feb(1247,1,OKe,qbe);_.fk=function rbe(a){return ZD(a,241)};_.gk=function sbe(a){return $C(t7,rve,241,a,0,1)};var H9=sfb(SHe,'EcorePackageImpl/14',1247);feb(1248,1,OKe,tbe);_.fk=function ube(a){return ZD(a,518)};_.gk=function vbe(a){return $C(u7,rve,2116,a,0,1)};var I9=sfb(SHe,'EcorePackageImpl/15',1248);feb(1249,1,OKe,wbe);_.fk=function xbe(a){return ZD(a,102)};_.gk=function ybe(a){return $C(v7,lKe,19,a,0,1)};var J9=sfb(SHe,'EcorePackageImpl/16',1249);feb(1250,1,OKe,zbe);_.fk=function Abe(a){return ZD(a,179)};_.gk=function Bbe(a){return $C(y7,lKe,179,a,0,1)};var K9=sfb(SHe,'EcorePackageImpl/17',1250);feb(1251,1,OKe,Cbe);_.fk=function Dbe(a){return ZD(a,481)};_.gk=function Ebe(a){return $C(A7,rve,481,a,0,1)};var L9=sfb(SHe,'EcorePackageImpl/18',1251);feb(1252,1,OKe,Fbe);_.fk=function Gbe(a){return ZD(a,561)};_.gk=function Hbe(a){return $C(C8,LJe,561,a,0,1)};var M9=sfb(SHe,'EcorePackageImpl/19',1252);feb(1235,1,OKe,Ibe);_.fk=function Jbe(a){return ZD(a,331)};_.gk=function Kbe(a){return $C(g7,lKe,35,a,0,1)};var Y9=sfb(SHe,'EcorePackageImpl/2',1235);feb(1253,1,OKe,Lbe);_.fk=function Mbe(a){return ZD(a,248)};_.gk=function Nbe(a){return $C(o7,sKe,89,a,0,1)};var O9=sfb(SHe,'EcorePackageImpl/20',1253);feb(1254,1,OKe,Obe);_.fk=function Pbe(a){return ZD(a,457)};_.gk=function Qbe(a){return $C(z7,rve,850,a,0,1)};var P9=sfb(SHe,'EcorePackageImpl/21',1254);feb(1255,1,OKe,Rbe);_.fk=function Sbe(a){return $D(a)};_.gk=function Tbe(a){return $C(QI,Nve,485,a,8,1)};var Q9=sfb(SHe,'EcorePackageImpl/22',1255);feb(1256,1,OKe,Ube);_.fk=function Vbe(a){return ZD(a,195)};_.gk=function Wbe(a){return $C(gE,Nve,195,a,0,2)};var R9=sfb(SHe,'EcorePackageImpl/23',1256);feb(1257,1,OKe,Xbe);_.fk=function Ybe(a){return ZD(a,222)};_.gk=function Zbe(a){return $C(RI,Nve,222,a,0,1)};var S9=sfb(SHe,'EcorePackageImpl/24',1257);feb(1258,1,OKe,$be);_.fk=function _be(a){return ZD(a,180)};_.gk=function ace(a){return $C(SI,Nve,180,a,0,1)};var T9=sfb(SHe,'EcorePackageImpl/25',1258);feb(1259,1,OKe,bce);_.fk=function cce(a){return ZD(a,206)};_.gk=function dce(a){return $C(qK,Nve,206,a,0,1)};var U9=sfb(SHe,'EcorePackageImpl/26',1259);feb(1260,1,OKe,ece);_.fk=function fce(a){return false};_.gk=function gce(a){return $C(T6,rve,2215,a,0,1)};var V9=sfb(SHe,'EcorePackageImpl/27',1260);feb(1261,1,OKe,hce);_.fk=function ice(a){return _D(a)};_.gk=function jce(a){return $C(VI,Nve,345,a,7,1)};var W9=sfb(SHe,'EcorePackageImpl/28',1261);feb(1262,1,OKe,kce);_.fk=function lce(a){return ZD(a,61)};_.gk=function mce(a){return $C(Y6,Ize,61,a,0,1)};var X9=sfb(SHe,'EcorePackageImpl/29',1262);feb(1236,1,OKe,nce);_.fk=function oce(a){return ZD(a,519)};_.gk=function pce(a){return $C(f7,{3:1,4:1,5:1,2033:1},598,a,0,1)};var hab=sfb(SHe,'EcorePackageImpl/3',1236);feb(1263,1,OKe,qce);_.fk=function rce(a){return ZD(a,582)};_.gk=function sce(a){return $C(Z6,rve,2039,a,0,1)};var Z9=sfb(SHe,'EcorePackageImpl/30',1263);feb(1264,1,OKe,tce);_.fk=function uce(a){return ZD(a,160)};_.gk=function vce(a){return $C(Tbb,Ize,160,a,0,1)};var $9=sfb(SHe,'EcorePackageImpl/31',1264);feb(1265,1,OKe,wce);_.fk=function xce(a){return ZD(a,76)};_.gk=function yce(a){return $C(Jbb,PKe,76,a,0,1)};var _9=sfb(SHe,'EcorePackageImpl/32',1265);feb(1266,1,OKe,zce);_.fk=function Ace(a){return ZD(a,161)};_.gk=function Bce(a){return $C(ZI,Nve,161,a,0,1)};var aab=sfb(SHe,'EcorePackageImpl/33',1266);feb(1267,1,OKe,Cce);_.fk=function Dce(a){return ZD(a,17)};_.gk=function Ece(a){return $C(bJ,Nve,17,a,0,1)};var bab=sfb(SHe,'EcorePackageImpl/34',1267);feb(1268,1,OKe,Fce);_.fk=function Gce(a){return ZD(a,297)};_.gk=function Hce(a){return $C(UI,rve,297,a,0,1)};var cab=sfb(SHe,'EcorePackageImpl/35',1268);feb(1269,1,OKe,Ice);_.fk=function Jce(a){return ZD(a,168)};_.gk=function Kce(a){return $C(eJ,Nve,168,a,0,1)};var dab=sfb(SHe,'EcorePackageImpl/36',1269);feb(1270,1,OKe,Lce);_.fk=function Mce(a){return ZD(a,85)};_.gk=function Nce(a){return $C(VK,rve,85,a,0,1)};var eab=sfb(SHe,'EcorePackageImpl/37',1270);feb(1271,1,OKe,Oce);_.fk=function Pce(a){return ZD(a,599)};_.gk=function Qce(a){return $C(Aab,rve,599,a,0,1)};var fab=sfb(SHe,'EcorePackageImpl/38',1271);feb(1272,1,OKe,Rce);_.fk=function Sce(a){return false};_.gk=function Tce(a){return $C(zab,rve,2216,a,0,1)};var gab=sfb(SHe,'EcorePackageImpl/39',1272);feb(1237,1,OKe,Uce);_.fk=function Vce(a){return ZD(a,90)};_.gk=function Wce(a){return $C(h7,rve,29,a,0,1)};var nab=sfb(SHe,'EcorePackageImpl/4',1237);feb(1273,1,OKe,Xce);_.fk=function Yce(a){return ZD(a,191)};_.gk=function Zce(a){return $C(lJ,Nve,191,a,0,1)};var iab=sfb(SHe,'EcorePackageImpl/40',1273);feb(1274,1,OKe,$ce);_.fk=function _ce(a){return bE(a)};_.gk=function ade(a){return $C(qJ,Nve,2,a,6,1)};var jab=sfb(SHe,'EcorePackageImpl/41',1274);feb(1275,1,OKe,bde);_.fk=function cde(a){return ZD(a,596)};_.gk=function dde(a){return $C(a7,rve,596,a,0,1)};var kab=sfb(SHe,'EcorePackageImpl/42',1275);feb(1276,1,OKe,ede);_.fk=function fde(a){return false};_.gk=function gde(a){return $C($6,Nve,2217,a,0,1)};var lab=sfb(SHe,'EcorePackageImpl/43',1276);feb(1277,1,OKe,hde);_.fk=function ide(a){return ZD(a,44)};_.gk=function jde(a){return $C(UK,Zve,44,a,0,1)};var mab=sfb(SHe,'EcorePackageImpl/44',1277);feb(1238,1,OKe,kde);_.fk=function lde(a){return ZD(a,142)};_.gk=function mde(a){return $C(i7,rve,142,a,0,1)};var oab=sfb(SHe,'EcorePackageImpl/5',1238);feb(1239,1,OKe,nde);_.fk=function ode(a){return ZD(a,156)};_.gk=function pde(a){return $C(k7,rve,156,a,0,1)};var pab=sfb(SHe,'EcorePackageImpl/6',1239);feb(1240,1,OKe,qde);_.fk=function rde(a){return ZD(a,469)};_.gk=function sde(a){return $C(m7,rve,685,a,0,1)};var qab=sfb(SHe,'EcorePackageImpl/7',1240);feb(1241,1,OKe,tde);_.fk=function ude(a){return ZD(a,582)};_.gk=function vde(a){return $C(l7,rve,694,a,0,1)};var rab=sfb(SHe,'EcorePackageImpl/8',1241);feb(1242,1,OKe,wde);_.fk=function xde(a){return ZD(a,480)};_.gk=function yde(a){return $C(n7,rve,480,a,0,1)};var sab=sfb(SHe,'EcorePackageImpl/9',1242);feb(1038,2080,JJe,Cde);_.Mi=function Dde(a,b){zde(this,RD(b,424))};_.Qi=function Ede(a,b){Ade(this,a,RD(b,424))};var vab=sfb(SHe,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1038);feb(1039,152,GJe,Fde);_.jj=function Gde(){return this.a.a};var uab=sfb(SHe,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1039);feb(1067,1066,{},Ide);var yab=sfb('org.eclipse.emf.ecore.plugin','EcorePlugin',1067);var Aab=ufb(QKe,'Resource');feb(799,1524,RKe);_.Hl=function Mde(a){};_.Il=function Nde(a){};_.El=function Ode(){return !this.a&&(this.a=new Zde(this)),this.a};_.Fl=function Pde(a){var b,c,d,e,f;d=a.length;if(d>0){BFb(0,a.length);if(a.charCodeAt(0)==47){f=new cnb(4);e=1;for(b=1;b0&&(a=(AFb(0,c,a.length),a.substr(0,c)))}}}return Kde(this,a)};_.Gl=function Qde(){return this.c};_.Ib=function Rde(){var a;return nfb(this.Rm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var Eab=sfb(SKe,'ResourceImpl',799);feb(1525,799,RKe,Sde);var Bab=sfb(SKe,'BinaryResourceImpl',1525);feb(1190,708,QIe);_.bj=function Vde(a){return ZD(a,58)?Tde(this,RD(a,58)):ZD(a,599)?new dMd(RD(a,599).El()):dE(a)===dE(this.f)?RD(a,16).Kc():(jQd(),iQd.a)};_.Ob=function Wde(){return Ude(this)};_.a=false;var Ebb=sfb(ZJe,'EcoreUtil/ContentTreeIterator',1190);feb(1526,1190,QIe,Xde);_.bj=function Yde(a){return dE(a)===dE(this.f)?RD(a,15).Kc():new _je(RD(a,58))};var Cab=sfb(SKe,'ResourceImpl/5',1526);feb(658,2092,nKe,Zde);_.Hc=function $de(a){return this.i<=4?PHd(this,a):ZD(a,54)&&RD(a,54).Jh()==this.a};_.Mi=function _de(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.Oi=function aee(a,b){a==0?this.a.b||(this.a.b=true,null):$Gd(this,a,b)};_.Qi=function bee(a,b){};_.Ri=function cee(a,b,c){};_.Lj=function dee(){return 2};_.jj=function eee(){return this.a};_.Mj=function fee(){return true};_.Nj=function gee(a,b){var c;c=RD(a,54);b=c.fi(this.a,b);return b};_.Oj=function hee(a,b){var c;c=RD(a,54);return c.fi(null,b)};_.Pj=function iee(){return false};_.Si=function jee(){return true};_.aj=function kee(a){return $C(r7,rve,58,a,0,1)};_.Yi=function lee(){return false};var Dab=sfb(SKe,'ResourceImpl/ContentsEList',658);feb(970,2062,kwe,mee);_.fd=function nee(a){return this.a.Ki(a)};_.gc=function oee(){return this.a.gc()};var Fab=sfb(ZJe,'AbstractSequentialInternalEList/1',970);var hke,ike,jke,kke;feb(634,1,{},Yee);var pee,qee;var Lab=sfb(ZJe,'BasicExtendedMetaData',634);feb(1181,1,{},afe);_.Jl=function bfe(){return null};_.Kl=function cfe(){this.a==-2&&$ee(this,uee(this.d,this.b));return this.a};_.Ll=function dfe(){return null};_.Ml=function efe(){return yob(),yob(),vob};_.xe=function ffe(){this.c==fLe&&_ee(this,zee(this.d,this.b));return this.c};_.Nl=function gfe(){return 0};_.a=-2;_.c=fLe;var Hab=sfb(ZJe,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1181);feb(1182,1,{},mfe);_.Jl=function nfe(){this.a==(ree(),pee)&&hfe(this,tee(this.f,this.b));return this.a};_.Kl=function ofe(){return 0};_.Ll=function pfe(){this.c==(ree(),pee)&&ife(this,xee(this.f,this.b));return this.c};_.Ml=function qfe(){!this.d&&jfe(this,yee(this.f,this.b));return this.d};_.xe=function rfe(){this.e==fLe&&kfe(this,zee(this.f,this.b));return this.e};_.Nl=function sfe(){this.g==-2&&lfe(this,Cee(this.f,this.b));return this.g};_.e=fLe;_.g=-2;var Iab=sfb(ZJe,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1182);feb(1180,1,{},wfe);_.b=false;_.c=false;var Jab=sfb(ZJe,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1180);feb(1183,1,{},Jfe);_.c=-2;_.e=fLe;_.f=fLe;var Kab=sfb(ZJe,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1183);feb(593,632,oKe,Kfe);_.Lj=function Lfe(){return this.c};_.ol=function Mfe(){return false};_.Wi=function Nfe(a,b){return b};_.c=0;var Yab=sfb(ZJe,'EDataTypeEList',593);var Tbb=ufb(ZJe,'FeatureMap');feb(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Uge);_.bd=function Vge(a,b){Ofe(this,a,RD(b,76))};_.Fc=function Wge(a){return Rfe(this,RD(a,76))};_.Hi=function _ge(a){Wfe(this,RD(a,76))};_.Nj=function khe(a,b){return mge(this,RD(a,76),b)};_.Oj=function lhe(a,b){return oge(this,RD(a,76),b)};_.Ti=function nhe(a,b){return uge(this,a,b)};_.Wi=function phe(a,b){return zge(this,a,RD(b,76))};_.hd=function rhe(a,b){return Cge(this,a,RD(b,76))};_.Uj=function vhe(a,b){return Ige(this,RD(a,76),b)};_.Vj=function whe(a,b){return Kge(this,RD(a,76),b)};_.Wj=function xhe(a,b,c){return Lge(this,RD(a,76),RD(b,76),c)};_.Zi=function zhe(a,b){return Tge(this,a,RD(b,76))};_.Ol=function Xge(a,b){return Qfe(this,a,b)};_.cd=function Yge(a,b){var c,d,e,f,g,h,i,j,k;j=new ZHd(b.gc());for(e=b.Kc();e.Ob();){d=RD(e.Pb(),76);f=d.Lk();if(qke(this.e,f)){(!f.Si()||!cge(this,f,d.md())&&!PHd(j,d))&&WGd(j,d)}else{k=pke(this.e.Dh(),f);c=RD(this.g,124);g=true;for(h=0;h=0){b=a[this.c];if(this.k.am(b.Lk())){this.j=this.f?b:b.md();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var Mab=sfb(ZJe,'BasicFeatureMap/FeatureEIterator',420);feb(676,420,Jve,She);_.ul=function The(){return true};var Nab=sfb(ZJe,'BasicFeatureMap/ResolvingFeatureEIterator',676);feb(968,496,uKe,Uhe);_.pj=function Vhe(){return this};var Rab=sfb(ZJe,'EContentsEList/1',968);feb(969,496,uKe,Whe);_.ul=function Xhe(){return false};var Sab=sfb(ZJe,'EContentsEList/2',969);feb(967,287,vKe,Yhe);_.wl=function Zhe(a){};_.Ob=function $he(){return false};_.Sb=function _he(){return false};var Tab=sfb(ZJe,'EContentsEList/FeatureIteratorImpl/1',967);feb(840,593,oKe,aie);_.Ni=function bie(){this.a=true};_.Qj=function cie(){return this.a};_.Gk=function die(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var Xab=sfb(ZJe,'EDataTypeEList/Unsettable',840);feb(1958,593,oKe,eie);_.Si=function fie(){return true};var $ab=sfb(ZJe,'EDataTypeUniqueEList',1958);feb(1959,840,oKe,gie);_.Si=function hie(){return true};var Zab=sfb(ZJe,'EDataTypeUniqueEList/Unsettable',1959);feb(147,83,oKe,iie);_.nl=function jie(){return true};_.Wi=function kie(a,b){return gZd(this,a,RD(b,58))};var _ab=sfb(ZJe,'EObjectContainmentEList/Resolving',147);feb(1184,555,oKe,lie);_.nl=function mie(){return true};_.Wi=function nie(a,b){return gZd(this,a,RD(b,58))};var abb=sfb(ZJe,'EObjectContainmentEList/Unsettable/Resolving',1184);feb(766,14,oKe,oie);_.Ni=function pie(){this.a=true};_.Qj=function qie(){return this.a};_.Gk=function rie(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var fbb=sfb(ZJe,'EObjectContainmentWithInverseEList/Unsettable',766);feb(1222,766,oKe,sie);_.nl=function tie(){return true};_.Wi=function uie(a,b){return gZd(this,a,RD(b,58))};var ebb=sfb(ZJe,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1222);feb(757,505,oKe,vie);_.Ni=function wie(){this.a=true};_.Qj=function xie(){return this.a};_.Gk=function yie(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var hbb=sfb(ZJe,'EObjectEList/Unsettable',757);feb(338,505,oKe,zie);_.nl=function Aie(){return true};_.Wi=function Bie(a,b){return gZd(this,a,RD(b,58))};var kbb=sfb(ZJe,'EObjectResolvingEList',338);feb(1844,757,oKe,Cie);_.nl=function Die(){return true};_.Wi=function Eie(a,b){return gZd(this,a,RD(b,58))};var jbb=sfb(ZJe,'EObjectResolvingEList/Unsettable',1844);feb(1527,1,{},Hie);var Fie;var lbb=sfb(ZJe,'EObjectValidator',1527);feb(559,505,oKe,Iie);_.il=function Jie(){return this.d};_.jl=function Kie(){return this.b};_.Mj=function Lie(){return true};_.ml=function Mie(){return true};_.b=0;var pbb=sfb(ZJe,'EObjectWithInverseEList',559);feb(1225,559,oKe,Nie);_.ll=function Oie(){return true};var mbb=sfb(ZJe,'EObjectWithInverseEList/ManyInverse',1225);feb(635,559,oKe,Pie);_.Ni=function Qie(){this.a=true};_.Qj=function Rie(){return this.a};_.Gk=function Sie(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var obb=sfb(ZJe,'EObjectWithInverseEList/Unsettable',635);feb(1224,635,oKe,Tie);_.ll=function Uie(){return true};var nbb=sfb(ZJe,'EObjectWithInverseEList/Unsettable/ManyInverse',1224);feb(767,559,oKe,Vie);_.nl=function Wie(){return true};_.Wi=function Xie(a,b){return gZd(this,a,RD(b,58))};var tbb=sfb(ZJe,'EObjectWithInverseResolvingEList',767);feb(32,767,oKe,Yie);_.ll=function Zie(){return true};var qbb=sfb(ZJe,'EObjectWithInverseResolvingEList/ManyInverse',32);feb(768,635,oKe,$ie);_.nl=function _ie(){return true};_.Wi=function aje(a,b){return gZd(this,a,RD(b,58))};var sbb=sfb(ZJe,'EObjectWithInverseResolvingEList/Unsettable',768);feb(1223,768,oKe,bje);_.ll=function cje(){return true};var rbb=sfb(ZJe,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1223);feb(1185,632,oKe);_.Li=function dje(){return (this.b&1792)==0};_.Ni=function eje(){this.b|=1};_.kl=function fje(){return (this.b&4)!=0};_.Mj=function gje(){return (this.b&40)!=0};_.ll=function hje(){return (this.b&16)!=0};_.ml=function ije(){return (this.b&8)!=0};_.nl=function jje(){return (this.b&cKe)!=0};_.al=function kje(){return (this.b&32)!=0};_.ol=function lje(){return (this.b&gwe)!=0};_.fk=function mje(a){return !this.d?this.Lk().Hk().fk(a):QRd(this.d,a)};_.Qj=function nje(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.Si=function oje(){return (this.b&128)!=0};_.Gk=function qje(){var a;sLd(this);if((this.b&2)!=0){if(Mvd(this.e)){a=(this.b&1)!=0;this.b&=-2;eZd(this,new Q3d(this.e,2,BYd(this.e.Dh(),this.Lk()),a,false))}else{this.b&=-2}}};_.Yi=function rje(){return (this.b&1536)==0};_.b=0;var vbb=sfb(ZJe,'EcoreEList/Generic',1185);feb(1186,1185,oKe,sje);_.Lk=function tje(){return this.a};var ubb=sfb(ZJe,'EcoreEList/Dynamic',1186);feb(765,66,PIe,uje);_.aj=function vje(a){return IMd(this.a.a,a)};var zbb=sfb(ZJe,'EcoreEMap/1',765);feb(764,83,oKe,wje);_.Mi=function xje(a,b){UNd(this.b,RD(b,136))};_.Oi=function yje(a,b){TNd(this.b)};_.Pi=function zje(a,b,c){var d;++(d=this.b,RD(b,136),d).e};_.Qi=function Aje(a,b){VNd(this.b,RD(b,136))};_.Ri=function Bje(a,b,c){VNd(this.b,RD(c,136));dE(c)===dE(b)&&RD(c,136).Ci(aOd(RD(b,136).ld()));UNd(this.b,RD(b,136))};var Abb=sfb(ZJe,'EcoreEMap/DelegateEObjectContainmentEList',764);feb(1220,141,_Je,Cje);var Cbb=sfb(ZJe,'EcoreEMap/Unsettable',1220);feb(1221,764,oKe,Dje);_.Ni=function Eje(){this.a=true};_.Qj=function Fje(){return this.a};_.Gk=function Gje(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var Bbb=sfb(ZJe,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1221);feb(1189,215,Hxe,Zje);_.a=false;_.b=false;var Fbb=sfb(ZJe,'EcoreUtil/Copier',1189);feb(759,1,Ave,_je);_.Nb=function ake(a){Ztb(this,a)};_.Ob=function bke(){return $je(this)};_.Pb=function cke(){var a;$je(this);a=this.b;this.b=null;return a};_.Qb=function dke(){this.a.Qb()};var Gbb=sfb(ZJe,'EcoreUtil/ProperContentIterator',759);feb(1528,1527,{},gke);var eke;var Hbb=sfb(ZJe,'EcoreValidator',1528);var mke;var Sbb=ufb(ZJe,'FeatureMapUtil/Validator');feb(1295,1,{2041:1},rke);_.am=function ske(a){return true};var Kbb=sfb(ZJe,'FeatureMapUtil/1',1295);feb(773,1,{2041:1},wke);_.am=function xke(a){var b;if(this.c==a)return true;b=TD(Wjb(this.a,a));if(b==null){if(vke(this,a)){yke(this.a,a,(Geb(),Feb));return true}else{yke(this.a,a,(Geb(),Eeb));return false}}else{return b==(Geb(),Feb)}};_.e=false;var tke;var Nbb=sfb(ZJe,'FeatureMapUtil/BasicValidator',773);feb(774,45,Hxe,zke);var Mbb=sfb(ZJe,'FeatureMapUtil/BasicValidator/Cache',774);feb(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},Eke);_.bd=function Fke(a,b){Pfe(this.c,this.b,a,b)};_.Fc=function Gke(a){return Qfe(this.c,this.b,a)};_.cd=function Hke(a,b){return Sfe(this.c,this.b,a,b)};_.Gc=function Ike(a){return Ake(this,a)};_.Gi=function Jke(a,b){Ufe(this.c,this.b,a,b)};_.Wk=function Kke(a,b){return Xfe(this.c,this.b,a,b)};_.$i=function Lke(a){return hge(this.c,this.b,a,false)};_.Ii=function Mke(){return Yfe(this.c,this.b)};_.Ji=function Nke(){return Zfe(this.c,this.b)};_.Ki=function Oke(a){return $fe(this.c,this.b,a)};_.Xk=function Pke(a,b){return Bke(this,a,b)};_.$b=function Qke(){Cke(this)};_.Hc=function Rke(a){return cge(this.c,this.b,a)};_.Ic=function Ske(a){return ege(this.c,this.b,a)};_.Xb=function Tke(a){return hge(this.c,this.b,a,true)};_.Fk=function Uke(a){return this};_.dd=function Vke(a){return jge(this.c,this.b,a)};_.dc=function Wke(){return Dke(this)};_.Qj=function Xke(){return !pge(this.c,this.b)};_.Kc=function Yke(){return qge(this.c,this.b)};_.ed=function Zke(){return sge(this.c,this.b)};_.fd=function $ke(a){return tge(this.c,this.b,a)};_.Ti=function _ke(a,b){return vge(this.c,this.b,a,b)};_.Ui=function ale(a,b){wge(this.c,this.b,a,b)};_.gd=function ble(a){return xge(this.c,this.b,a)};_.Mc=function cle(a){return yge(this.c,this.b,a)};_.hd=function dle(a,b){return Ege(this.c,this.b,a,b)};_.Wb=function ele(a){bge(this.c,this.b);Ake(this,RD(a,15))};_.gc=function fle(){return Nge(this.c,this.b)};_.Pc=function gle(){return Oge(this.c,this.b)};_.Qc=function hle(a){return Qge(this.c,this.b,a)};_.Ib=function ile(){var a,b;b=new Qhb;b.a+='[';for(a=Yfe(this.c,this.b);Bhe(a);){Nhb(b,Ghb(Dhe(a)));Bhe(a)&&(b.a+=pve,b)}b.a+=']';return b.a};_.Gk=function jle(){bge(this.c,this.b)};var Obb=sfb(ZJe,'FeatureMapUtil/FeatureEList',509);feb(644,39,GJe,lle);_.hj=function mle(a){return kle(this,a)};_.mj=function nle(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.g=a.ij();a.gj()==1&&(this.d=1);return true}break}case 3:{e=a.gj();switch(e){case 3:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.d=5;b=new ZHd(2);WGd(b,this.g);WGd(b,a.ij());this.g=b;return true}break}}break}case 5:{e=a.gj();switch(e){case 3:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){c=RD(this.g,16);c.Fc(a.ij());return true}break}}break}case 4:{e=a.gj();switch(e){case 3:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.d=1;this.g=a.ij();return true}break}case 4:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.d=6;h=new ZHd(2);WGd(h,this.n);WGd(h,a.kj());this.n=h;g=cD(WC(kE,1),Pwe,28,15,[this.o,a.lj()]);this.g=g;return true}break}}break}case 6:{e=a.gj();switch(e){case 4:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){c=RD(this.n,16);c.Fc(a.kj());g=RD(this.g,53);d=$C(kE,Pwe,28,g.length+1,15,1);hib(g,0,d,0,g.length);d[g.length]=a.lj();this.g=d;return true}break}}break}}return false};var Pbb=sfb(ZJe,'FeatureMapUtil/FeatureENotificationImpl',644);feb(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},ole);_.Ol=function ple(a,b){return Qfe(this.c,a,b)};_.Pl=function qle(a,b,c){return Xfe(this.c,a,b,c)};_.Ql=function rle(a,b,c){return age(this.c,a,b,c)};_.Rl=function sle(){return this};_.Sl=function tle(a,b){return ige(this.c,a,b)};_.Tl=function ule(a){return RD(hge(this.c,this.b,a,false),76).Lk()};_.Ul=function vle(a){return RD(hge(this.c,this.b,a,false),76).md()};_.Vl=function wle(){return this.a};_.Wl=function xle(a){return !pge(this.c,a)};_.Xl=function yle(a,b){Fge(this.c,a,b)};_.Yl=function zle(a){return Gge(this.c,a)};_.Zl=function Ale(a){Sge(this.c,a)};var Qbb=sfb(ZJe,'FeatureMapUtil/FeatureFeatureMap',564);feb(1294,1,$Je,Ble);_.Fk=function Cle(a){return hge(this.b,this.a,-1,a)};_.Qj=function Dle(){return !pge(this.b,this.a)};_.Wb=function Ele(a){Fge(this.b,this.a,a)};_.Gk=function Fle(){bge(this.b,this.a)};var Rbb=sfb(ZJe,'FeatureMapUtil/FeatureValue',1294);var Gle,Hle,Ile,Jle,Kle;var Vbb=ufb(hLe,'AnyType');feb(680,63,swe,Mle);var Wbb=sfb(hLe,'InvalidDatatypeValueException',680);var Xbb=ufb(hLe,iLe);var Ybb=ufb(hLe,jLe);var Zbb=ufb(hLe,kLe);var Nle;var Ple;var Rle,Sle,Tle,Ule,Vle,Wle,Xle,Yle,Zle,$le,_le,ame,bme,cme,dme,eme,fme,gme,hme,ime,jme,kme,lme,mme;feb(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},ome);_.Lh=function pme(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new Uge(this,0)),this.c;return !this.c&&(this.c=new Uge(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160);return (!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Vl();case 2:if(c)return !this.b&&(this.b=new Uge(this,2)),this.b;return !this.b&&(this.b=new Uge(this,2)),this.b.b;}return zvd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Uh=function qme(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new Uge(this,0)),_fe(this.c,a,c);case 1:return (!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),71)).Xk(a,c);case 2:return !this.b&&(this.b=new Uge(this,2)),_fe(this.b,a,c);}return d=RD(vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),b),69),d.wk().Ak(this,Yvd(this),b-AYd(this.ii()),a,c)};_.Wh=function rme(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).dc();case 2:return !!this.b&&this.b.i!=0;}return Avd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function sme(a,b){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));Dge(this.c,b);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Wb(b);return;case 2:!this.b&&(this.b=new Uge(this,2));Dge(this.b,b);return;}Bvd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function tme(){return nme(),Rle};_.ki=function ume(a){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));sLd(this.c);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).$b();return;case 2:!this.b&&(this.b=new Uge(this,2));sLd(this.b);return;}Cvd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.Ib=function vme(){var a;if((this.j&4)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (mixed: ';Mhb(a,this.c);a.a+=', anyAttribute: ';Mhb(a,this.b);a.a+=')';return a.a};var $bb=sfb(lLe,'AnyTypeImpl',844);feb(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},yme);_.Lh=function zme(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return zvd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Wh=function Ame(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return Avd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function Bme(a,b){switch(a){case 0:wme(this,WD(b));return;case 1:xme(this,WD(b));return;}Bvd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function Cme(){return nme(),cme};_.ki=function Dme(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}Cvd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.Ib=function Eme(){var a;if((this.j&4)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (data: ';Nhb(a,this.a);a.a+=', target: ';Nhb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var _bb=sfb(lLe,'ProcessingInstructionImpl',681);feb(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},Hme);_.Lh=function Ime(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new Uge(this,0)),this.c;return !this.c&&(this.c=new Uge(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160);return (!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Vl();case 2:if(c)return !this.b&&(this.b=new Uge(this,2)),this.b;return !this.b&&(this.b=new Uge(this,2)),this.b.b;case 3:return !this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true));case 4:return Ije(this.a,(!this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true))));case 5:return this.a;}return zvd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Wh=function Jme(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true))!=null;case 4:return Ije(this.a,(!this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true))))!=null;case 5:return !!this.a;}return Avd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function Kme(a,b){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));Dge(this.c,b);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Wb(b);return;case 2:!this.b&&(this.b=new Uge(this,2));Dge(this.b,b);return;case 3:Gme(this,WD(b));return;case 4:Gme(this,Hje(this.a,b));return;case 5:Fme(this,RD(b,156));return;}Bvd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function Lme(){return nme(),eme};_.ki=function Mme(a){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));sLd(this.c);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).$b();return;case 2:!this.b&&(this.b=new Uge(this,2));sLd(this.b);return;case 3:!this.c&&(this.c=new Uge(this,0));Fge(this.c,(nme(),fme),null);return;case 4:Gme(this,Hje(this.a,null));return;case 5:this.a=null;return;}Cvd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};var acb=sfb(lLe,'SimpleAnyTypeImpl',682);feb(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},Nme);_.Lh=function Ome(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new Uge(this,0)),this.a;return !this.a&&(this.a=new Uge(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1)),this.b):(!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1)),dOd(this.b));case 2:return c?(!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2)),this.c):(!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2)),dOd(this.c));case 3:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),ime));case 4:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),jme));case 5:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),lme));case 6:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),mme));}return zvd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Uh=function Pme(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new Uge(this,0)),_fe(this.a,a,c);case 1:return !this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1)),BVd(this.b,a,c);case 2:return !this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2)),BVd(this.c,a,c);case 5:return !this.a&&(this.a=new Uge(this,0)),Bke(rge(this.a,(nme(),lme)),a,c);}return d=RD(vYd((this.j&2)==0?(nme(),hme):(!this.k&&(this.k=new fUd),this.k).Nk(),b),69),d.wk().Ak(this,Yvd(this),b-AYd((nme(),hme)),a,c)};_.Wh=function Qme(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),ime)));case 4:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),jme)));case 5:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),lme)));case 6:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),mme)));}return Avd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function Rme(a,b){switch(a){case 0:!this.a&&(this.a=new Uge(this,0));Dge(this.a,b);return;case 1:!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1));CVd(this.b,b);return;case 2:!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2));CVd(this.c,b);return;case 3:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),ime)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,ime),RD(b,16));return;case 4:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),jme)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,jme),RD(b,16));return;case 5:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),lme)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,lme),RD(b,16));return;case 6:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),mme)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,mme),RD(b,16));return;}Bvd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function Sme(){return nme(),hme};_.ki=function Tme(a){switch(a){case 0:!this.a&&(this.a=new Uge(this,0));sLd(this.a);return;case 1:!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),ime)));return;case 4:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),jme)));return;case 5:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),lme)));return;case 6:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),mme)));return;}Cvd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.Ib=function Ume(){var a;if((this.j&4)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (mixed: ';Mhb(a,this.a);a.a+=')';return a.a};var bcb=sfb(lLe,'XMLTypeDocumentRootImpl',683);feb(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},rne);_.ri=function sne(a,b){switch(a.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:jeb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return WD(b);case 6:return _me(RD(b,195));case 12:case 47:case 49:case 11:return tAd(this,a,b);case 13:return b==null?null:yib(RD(b,247));case 15:case 14:return b==null?null:ane(Kfb(UD(b)));case 17:return bne((nme(),b));case 18:return bne(b);case 21:case 20:return b==null?null:cne(RD(b,161).a);case 27:return dne(RD(b,195));case 30:return ene((nme(),RD(b,15)));case 31:return ene(RD(b,15));case 40:return hne((nme(),b));case 42:return fne((nme(),b));case 43:return fne(b);case 59:case 48:return gne((nme(),b));default:throw Adb(new agb(VHe+a.xe()+WHe));}};_.si=function tne(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=BXd(a),c?fZd(c.vi(),a):-1)),a.G){case 0:return b=new ome,b;case 1:return d=new yme,d;case 2:return e=new Hme,e;case 3:return f=new Nme,f;default:throw Adb(new agb(ZHe+a.zb+WHe));}};_.ti=function une(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.hk()){case 5:case 52:case 4:return b;case 6:return ine(b);case 8:case 7:return b==null?null:$me(b);case 9:return b==null?null:$eb(Oeb((d=nue(b,true),d.length>0&&(BFb(0,d.length),d.charCodeAt(0)==43)?(BFb(1,d.length+1),d.substr(1)):d),-128,127)<<24>>24);case 10:return b==null?null:$eb(Oeb((e=nue(b,true),e.length>0&&(BFb(0,e.length),e.charCodeAt(0)==43)?(BFb(1,e.length+1),e.substr(1)):e),-128,127)<<24>>24);case 11:return WD(uAd(this,(nme(),Vle),b));case 12:return WD(uAd(this,(nme(),Wle),b));case 13:return b==null?null:new Bib(nue(b,true));case 15:case 14:return jne(b);case 16:return WD(uAd(this,(nme(),Xle),b));case 17:return kne((nme(),b));case 18:return kne(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return nue(b,true);case 21:case 20:return lne(b);case 22:return WD(uAd(this,(nme(),Yle),b));case 23:return WD(uAd(this,(nme(),Zle),b));case 24:return WD(uAd(this,(nme(),$le),b));case 25:return WD(uAd(this,(nme(),_le),b));case 26:return WD(uAd(this,(nme(),ame),b));case 27:return mne(b);case 30:return nne((nme(),b));case 31:return nne(b);case 32:return b==null?null:sgb(Oeb((k=nue(b,true),k.length>0&&(BFb(0,k.length),k.charCodeAt(0)==43)?(BFb(1,k.length+1),k.substr(1)):k),qwe,lve));case 33:return b==null?null:new ejb((l=nue(b,true),l.length>0&&(BFb(0,l.length),l.charCodeAt(0)==43)?(BFb(1,l.length+1),l.substr(1)):l));case 34:return b==null?null:sgb(Oeb((m=nue(b,true),m.length>0&&(BFb(0,m.length),m.charCodeAt(0)==43)?(BFb(1,m.length+1),m.substr(1)):m),qwe,lve));case 36:return b==null?null:Hgb(Peb((n=nue(b,true),n.length>0&&(BFb(0,n.length),n.charCodeAt(0)==43)?(BFb(1,n.length+1),n.substr(1)):n)));case 37:return b==null?null:Hgb(Peb((o=nue(b,true),o.length>0&&(BFb(0,o.length),o.charCodeAt(0)==43)?(BFb(1,o.length+1),o.substr(1)):o)));case 40:return qne((nme(),b));case 42:return one((nme(),b));case 43:return one(b);case 44:return b==null?null:new ejb((p=nue(b,true),p.length>0&&(BFb(0,p.length),p.charCodeAt(0)==43)?(BFb(1,p.length+1),p.substr(1)):p));case 45:return b==null?null:new ejb((q=nue(b,true),q.length>0&&(BFb(0,q.length),q.charCodeAt(0)==43)?(BFb(1,q.length+1),q.substr(1)):q));case 46:return nue(b,false);case 47:return WD(uAd(this,(nme(),bme),b));case 59:case 48:return pne((nme(),b));case 49:return WD(uAd(this,(nme(),dme),b));case 50:return b==null?null:bhb(Oeb((r=nue(b,true),r.length>0&&(BFb(0,r.length),r.charCodeAt(0)==43)?(BFb(1,r.length+1),r.substr(1)):r),BKe,32767)<<16>>16);case 51:return b==null?null:bhb(Oeb((f=nue(b,true),f.length>0&&(BFb(0,f.length),f.charCodeAt(0)==43)?(BFb(1,f.length+1),f.substr(1)):f),BKe,32767)<<16>>16);case 53:return WD(uAd(this,(nme(),gme),b));case 55:return b==null?null:bhb(Oeb((g=nue(b,true),g.length>0&&(BFb(0,g.length),g.charCodeAt(0)==43)?(BFb(1,g.length+1),g.substr(1)):g),BKe,32767)<<16>>16);case 56:return b==null?null:bhb(Oeb((h=nue(b,true),h.length>0&&(BFb(0,h.length),h.charCodeAt(0)==43)?(BFb(1,h.length+1),h.substr(1)):h),BKe,32767)<<16>>16);case 57:return b==null?null:Hgb(Peb((i=nue(b,true),i.length>0&&(BFb(0,i.length),i.charCodeAt(0)==43)?(BFb(1,i.length+1),i.substr(1)):i)));case 58:return b==null?null:Hgb(Peb((j=nue(b,true),j.length>0&&(BFb(0,j.length),j.charCodeAt(0)==43)?(BFb(1,j.length+1),j.substr(1)):j)));case 60:return b==null?null:sgb(Oeb((c=nue(b,true),c.length>0&&(BFb(0,c.length),c.charCodeAt(0)==43)?(BFb(1,c.length+1),c.substr(1)):c),qwe,lve));case 61:return b==null?null:sgb(Oeb(nue(b,true),qwe,lve));default:throw Adb(new agb(VHe+a.xe()+WHe));}};var Vme,Wme,Xme,Yme;var ccb=sfb(lLe,'XMLTypeFactoryImpl',2028);feb(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},Bne);_.N=false;_.O=false;var wne=false;var bdb=sfb(lLe,'XMLTypePackageImpl',594);feb(1961,1,{851:1},Ene);_.Kk=function Fne(){return rue(),que};var ncb=sfb(lLe,'XMLTypePackageImpl/1',1961);feb(1970,1,OKe,Gne);_.fk=function Hne(a){return bE(a)};_.gk=function Ine(a){return $C(qJ,Nve,2,a,6,1)};var dcb=sfb(lLe,'XMLTypePackageImpl/10',1970);feb(1971,1,OKe,Jne);_.fk=function Kne(a){return bE(a)};_.gk=function Lne(a){return $C(qJ,Nve,2,a,6,1)};var ecb=sfb(lLe,'XMLTypePackageImpl/11',1971);feb(1972,1,OKe,Mne);_.fk=function Nne(a){return bE(a)};_.gk=function One(a){return $C(qJ,Nve,2,a,6,1)};var fcb=sfb(lLe,'XMLTypePackageImpl/12',1972);feb(1973,1,OKe,Pne);_.fk=function Qne(a){return _D(a)};_.gk=function Rne(a){return $C(VI,Nve,345,a,7,1)};var gcb=sfb(lLe,'XMLTypePackageImpl/13',1973);feb(1974,1,OKe,Sne);_.fk=function Tne(a){return bE(a)};_.gk=function Une(a){return $C(qJ,Nve,2,a,6,1)};var hcb=sfb(lLe,'XMLTypePackageImpl/14',1974);feb(1975,1,OKe,Vne);_.fk=function Wne(a){return ZD(a,15)};_.gk=function Xne(a){return $C(QK,Ize,15,a,0,1)};var icb=sfb(lLe,'XMLTypePackageImpl/15',1975);feb(1976,1,OKe,Yne);_.fk=function Zne(a){return ZD(a,15)};_.gk=function $ne(a){return $C(QK,Ize,15,a,0,1)};var jcb=sfb(lLe,'XMLTypePackageImpl/16',1976);feb(1977,1,OKe,_ne);_.fk=function aoe(a){return bE(a)};_.gk=function boe(a){return $C(qJ,Nve,2,a,6,1)};var kcb=sfb(lLe,'XMLTypePackageImpl/17',1977);feb(1978,1,OKe,coe);_.fk=function doe(a){return ZD(a,161)};_.gk=function eoe(a){return $C(ZI,Nve,161,a,0,1)};var lcb=sfb(lLe,'XMLTypePackageImpl/18',1978);feb(1979,1,OKe,foe);_.fk=function goe(a){return bE(a)};_.gk=function hoe(a){return $C(qJ,Nve,2,a,6,1)};var mcb=sfb(lLe,'XMLTypePackageImpl/19',1979);feb(1962,1,OKe,ioe);_.fk=function joe(a){return ZD(a,857)};_.gk=function koe(a){return $C(Vbb,rve,857,a,0,1)};var ycb=sfb(lLe,'XMLTypePackageImpl/2',1962);feb(1980,1,OKe,loe);_.fk=function moe(a){return bE(a)};_.gk=function noe(a){return $C(qJ,Nve,2,a,6,1)};var ocb=sfb(lLe,'XMLTypePackageImpl/20',1980);feb(1981,1,OKe,ooe);_.fk=function poe(a){return bE(a)};_.gk=function qoe(a){return $C(qJ,Nve,2,a,6,1)};var pcb=sfb(lLe,'XMLTypePackageImpl/21',1981);feb(1982,1,OKe,roe);_.fk=function soe(a){return bE(a)};_.gk=function toe(a){return $C(qJ,Nve,2,a,6,1)};var qcb=sfb(lLe,'XMLTypePackageImpl/22',1982);feb(1983,1,OKe,uoe);_.fk=function voe(a){return bE(a)};_.gk=function woe(a){return $C(qJ,Nve,2,a,6,1)};var rcb=sfb(lLe,'XMLTypePackageImpl/23',1983);feb(1984,1,OKe,xoe);_.fk=function yoe(a){return ZD(a,195)};_.gk=function zoe(a){return $C(gE,Nve,195,a,0,2)};var scb=sfb(lLe,'XMLTypePackageImpl/24',1984);feb(1985,1,OKe,Aoe);_.fk=function Boe(a){return bE(a)};_.gk=function Coe(a){return $C(qJ,Nve,2,a,6,1)};var tcb=sfb(lLe,'XMLTypePackageImpl/25',1985);feb(1986,1,OKe,Doe);_.fk=function Eoe(a){return bE(a)};_.gk=function Foe(a){return $C(qJ,Nve,2,a,6,1)};var ucb=sfb(lLe,'XMLTypePackageImpl/26',1986);feb(1987,1,OKe,Goe);_.fk=function Hoe(a){return ZD(a,15)};_.gk=function Ioe(a){return $C(QK,Ize,15,a,0,1)};var vcb=sfb(lLe,'XMLTypePackageImpl/27',1987);feb(1988,1,OKe,Joe);_.fk=function Koe(a){return ZD(a,15)};_.gk=function Loe(a){return $C(QK,Ize,15,a,0,1)};var wcb=sfb(lLe,'XMLTypePackageImpl/28',1988);feb(1989,1,OKe,Moe);_.fk=function Noe(a){return bE(a)};_.gk=function Ooe(a){return $C(qJ,Nve,2,a,6,1)};var xcb=sfb(lLe,'XMLTypePackageImpl/29',1989);feb(1963,1,OKe,Poe);_.fk=function Qoe(a){return ZD(a,681)};_.gk=function Roe(a){return $C(Xbb,rve,2119,a,0,1)};var Jcb=sfb(lLe,'XMLTypePackageImpl/3',1963);feb(1990,1,OKe,Soe);_.fk=function Toe(a){return ZD(a,17)};_.gk=function Uoe(a){return $C(bJ,Nve,17,a,0,1)};var zcb=sfb(lLe,'XMLTypePackageImpl/30',1990);feb(1991,1,OKe,Voe);_.fk=function Woe(a){return bE(a)};_.gk=function Xoe(a){return $C(qJ,Nve,2,a,6,1)};var Acb=sfb(lLe,'XMLTypePackageImpl/31',1991);feb(1992,1,OKe,Yoe);_.fk=function Zoe(a){return ZD(a,168)};_.gk=function $oe(a){return $C(eJ,Nve,168,a,0,1)};var Bcb=sfb(lLe,'XMLTypePackageImpl/32',1992);feb(1993,1,OKe,_oe);_.fk=function ape(a){return bE(a)};_.gk=function bpe(a){return $C(qJ,Nve,2,a,6,1)};var Ccb=sfb(lLe,'XMLTypePackageImpl/33',1993);feb(1994,1,OKe,cpe);_.fk=function dpe(a){return bE(a)};_.gk=function epe(a){return $C(qJ,Nve,2,a,6,1)};var Dcb=sfb(lLe,'XMLTypePackageImpl/34',1994);feb(1995,1,OKe,fpe);_.fk=function gpe(a){return bE(a)};_.gk=function hpe(a){return $C(qJ,Nve,2,a,6,1)};var Ecb=sfb(lLe,'XMLTypePackageImpl/35',1995);feb(1996,1,OKe,ipe);_.fk=function jpe(a){return bE(a)};_.gk=function kpe(a){return $C(qJ,Nve,2,a,6,1)};var Fcb=sfb(lLe,'XMLTypePackageImpl/36',1996);feb(1997,1,OKe,lpe);_.fk=function mpe(a){return ZD(a,15)};_.gk=function npe(a){return $C(QK,Ize,15,a,0,1)};var Gcb=sfb(lLe,'XMLTypePackageImpl/37',1997);feb(1998,1,OKe,ope);_.fk=function ppe(a){return ZD(a,15)};_.gk=function qpe(a){return $C(QK,Ize,15,a,0,1)};var Hcb=sfb(lLe,'XMLTypePackageImpl/38',1998);feb(1999,1,OKe,rpe);_.fk=function spe(a){return bE(a)};_.gk=function tpe(a){return $C(qJ,Nve,2,a,6,1)};var Icb=sfb(lLe,'XMLTypePackageImpl/39',1999);feb(1964,1,OKe,upe);_.fk=function vpe(a){return ZD(a,682)};_.gk=function wpe(a){return $C(Ybb,rve,2120,a,0,1)};var Ucb=sfb(lLe,'XMLTypePackageImpl/4',1964);feb(2000,1,OKe,xpe);_.fk=function ype(a){return bE(a)};_.gk=function zpe(a){return $C(qJ,Nve,2,a,6,1)};var Kcb=sfb(lLe,'XMLTypePackageImpl/40',2000);feb(2001,1,OKe,Ape);_.fk=function Bpe(a){return bE(a)};_.gk=function Cpe(a){return $C(qJ,Nve,2,a,6,1)};var Lcb=sfb(lLe,'XMLTypePackageImpl/41',2001);feb(2002,1,OKe,Dpe);_.fk=function Epe(a){return bE(a)};_.gk=function Fpe(a){return $C(qJ,Nve,2,a,6,1)};var Mcb=sfb(lLe,'XMLTypePackageImpl/42',2002);feb(2003,1,OKe,Gpe);_.fk=function Hpe(a){return bE(a)};_.gk=function Ipe(a){return $C(qJ,Nve,2,a,6,1)};var Ncb=sfb(lLe,'XMLTypePackageImpl/43',2003);feb(2004,1,OKe,Jpe);_.fk=function Kpe(a){return bE(a)};_.gk=function Lpe(a){return $C(qJ,Nve,2,a,6,1)};var Ocb=sfb(lLe,'XMLTypePackageImpl/44',2004);feb(2005,1,OKe,Mpe);_.fk=function Npe(a){return ZD(a,191)};_.gk=function Ope(a){return $C(lJ,Nve,191,a,0,1)};var Pcb=sfb(lLe,'XMLTypePackageImpl/45',2005);feb(2006,1,OKe,Ppe);_.fk=function Qpe(a){return bE(a)};_.gk=function Rpe(a){return $C(qJ,Nve,2,a,6,1)};var Qcb=sfb(lLe,'XMLTypePackageImpl/46',2006);feb(2007,1,OKe,Spe);_.fk=function Tpe(a){return bE(a)};_.gk=function Upe(a){return $C(qJ,Nve,2,a,6,1)};var Rcb=sfb(lLe,'XMLTypePackageImpl/47',2007);feb(2008,1,OKe,Vpe);_.fk=function Wpe(a){return bE(a)};_.gk=function Xpe(a){return $C(qJ,Nve,2,a,6,1)};var Scb=sfb(lLe,'XMLTypePackageImpl/48',2008);feb(2009,1,OKe,Ype);_.fk=function Zpe(a){return ZD(a,191)};_.gk=function $pe(a){return $C(lJ,Nve,191,a,0,1)};var Tcb=sfb(lLe,'XMLTypePackageImpl/49',2009);feb(1965,1,OKe,_pe);_.fk=function aqe(a){return ZD(a,683)};_.gk=function bqe(a){return $C(Zbb,rve,2121,a,0,1)};var Ycb=sfb(lLe,'XMLTypePackageImpl/5',1965);feb(2010,1,OKe,cqe);_.fk=function dqe(a){return ZD(a,168)};_.gk=function eqe(a){return $C(eJ,Nve,168,a,0,1)};var Vcb=sfb(lLe,'XMLTypePackageImpl/50',2010);feb(2011,1,OKe,fqe);_.fk=function gqe(a){return bE(a)};_.gk=function hqe(a){return $C(qJ,Nve,2,a,6,1)};var Wcb=sfb(lLe,'XMLTypePackageImpl/51',2011);feb(2012,1,OKe,iqe);_.fk=function jqe(a){return ZD(a,17)};_.gk=function kqe(a){return $C(bJ,Nve,17,a,0,1)};var Xcb=sfb(lLe,'XMLTypePackageImpl/52',2012);feb(1966,1,OKe,lqe);_.fk=function mqe(a){return bE(a)};_.gk=function nqe(a){return $C(qJ,Nve,2,a,6,1)};var Zcb=sfb(lLe,'XMLTypePackageImpl/6',1966);feb(1967,1,OKe,oqe);_.fk=function pqe(a){return ZD(a,195)};_.gk=function qqe(a){return $C(gE,Nve,195,a,0,2)};var $cb=sfb(lLe,'XMLTypePackageImpl/7',1967);feb(1968,1,OKe,rqe);_.fk=function sqe(a){return $D(a)};_.gk=function tqe(a){return $C(QI,Nve,485,a,8,1)};var _cb=sfb(lLe,'XMLTypePackageImpl/8',1968);feb(1969,1,OKe,uqe);_.fk=function vqe(a){return ZD(a,222)};_.gk=function wqe(a){return $C(RI,Nve,222,a,0,1)};var adb=sfb(lLe,'XMLTypePackageImpl/9',1969);var xqe,yqe;var Eqe,Fqe;var Jqe;feb(55,63,swe,Lqe);var cdb=sfb(LLe,'RegEx/ParseException',55);feb(836,1,{},Tqe);_.bm=function Uqe(a){return ac*16)throw Adb(new Lqe(TId((Hde(),tJe))));c=c*16+e}while(true);if(this.a!=125)throw Adb(new Lqe(TId((Hde(),uJe))));if(c>MLe)throw Adb(new Lqe(TId((Hde(),vJe))));a=c}else{e=0;if(this.c!=0||(e=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));c=e;Mqe(this);if(this.c!=0||(e=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));c=c*16+e;a=c}break;case 117:d=0;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;a=b;break;case 118:Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;if(b>MLe)throw Adb(new Lqe(TId((Hde(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw Adb(new Lqe(TId((Hde(),wJe))));}return a};_.dm=function Wqe(a){var b,c;switch(a){case 100:c=(this.e&32)==32?hte('Nd',true):(Vse(),Bse);break;case 68:c=(this.e&32)==32?hte('Nd',false):(Vse(),Ise);break;case 119:c=(this.e&32)==32?hte('IsWord',true):(Vse(),Rse);break;case 87:c=(this.e&32)==32?hte('IsWord',false):(Vse(),Kse);break;case 115:c=(this.e&32)==32?hte('IsSpace',true):(Vse(),Mse);break;case 83:c=(this.e&32)==32?hte('IsSpace',false):(Vse(),Jse);break;default:throw Adb(new yz((b=a,NLe+b.toString(16))));}return c};_.em=function Yqe(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;Mqe(this);b=null;if(this.c==0&&this.a==94){Mqe(this);if(a){k=(Vse(),Vse(),++Use,new xte(5))}else{b=(Vse(),Vse(),++Use,new xte(4));rte(b,0,MLe);k=(null,++Use,new xte(4))}}else{k=(Vse(),Vse(),++Use,new xte(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:ute(k,this.dm(c));d=true;break;case 105:case 73:case 99:case 67:c=this.um(k,c);c<0&&(d=true);break;case 112:case 80:l=Sqe(this,c);if(!l)throw Adb(new Lqe(TId((Hde(),hJe))));ute(k,l);d=true;break;default:c=this.cm();}}else if(m==20){g=phb(this.i,58,this.d);if(g<0)throw Adb(new Lqe(TId((Hde(),iJe))));h=true;if(ihb(this.i,this.d)==94){++this.d;h=false}f=zhb(this.i,this.d,g);i=ite(f,h,(this.e&512)==512);if(!i)throw Adb(new Lqe(TId((Hde(),kJe))));ute(k,i);d=true;if(g+1>=this.j||ihb(this.i,g+1)!=93)throw Adb(new Lqe(TId((Hde(),iJe))));this.d=g+2}Mqe(this);if(!d){if(this.c!=0||this.a!=45){rte(k,c,c)}else{Mqe(this);if((m=this.c)==1)throw Adb(new Lqe(TId((Hde(),jJe))));if(m==0&&this.a==93){rte(k,c,c);rte(k,45,45)}else{j=this.a;m==10&&(j=this.cm());Mqe(this);rte(k,c,j)}}}(this.e&gwe)==gwe&&this.c==0&&this.a==44&&Mqe(this)}if(this.c==1)throw Adb(new Lqe(TId((Hde(),jJe))));if(b){wte(b,k);k=b}vte(k);ste(k);this.b=0;Mqe(this);return k};_.fm=function Zqe(){var a,b,c,d;c=this.em(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){Mqe(this);if(this.c!=9)throw Adb(new Lqe(TId((Hde(),pJe))));b=this.em(false);if(d==4)ute(c,b);else if(a==45)wte(c,b);else if(a==38)tte(c,b);else throw Adb(new yz('ASSERT'))}else{throw Adb(new Lqe(TId((Hde(),qJe))))}}Mqe(this);return c};_.gm=function $qe(){var a,b;a=this.a-48;b=(Vse(),Vse(),++Use,new eue(12,null,a));!this.g&&(this.g=new gyb);dyb(this.g,new Bte(a));Mqe(this);return b};_.hm=function _qe(){Mqe(this);return Vse(),Nse};_.im=function are(){Mqe(this);return Vse(),Lse};_.jm=function bre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.km=function cre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.lm=function dre(){Mqe(this);return fte()};_.mm=function ere(){Mqe(this);return Vse(),Pse};_.nm=function fre(){Mqe(this);return Vse(),Sse};_.om=function gre(){var a;if(this.d>=this.j||((a=ihb(this.i,this.d++))&65504)!=64)throw Adb(new Lqe(TId((Hde(),dJe))));Mqe(this);return Vse(),Vse(),++Use,new Hte(0,a-64)};_.pm=function hre(){Mqe(this);return gte()};_.qm=function ire(){Mqe(this);return Vse(),Tse};_.rm=function jre(){var a;a=(Vse(),Vse(),++Use,new Hte(0,105));Mqe(this);return a};_.sm=function kre(){Mqe(this);return Vse(),Qse};_.tm=function lre(){Mqe(this);return Vse(),Ose};_.um=function mre(a,b){return this.cm()};_.vm=function nre(){Mqe(this);return Vse(),Gse};_.wm=function ore(){var a,b,c,d,e;if(this.d+1>=this.j)throw Adb(new Lqe(TId((Hde(),aJe))));d=-1;b=null;a=ihb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new gyb);dyb(this.g,new Bte(d));++this.d;if(ihb(this.i,this.d)!=41)throw Adb(new Lqe(TId((Hde(),ZIe))));++this.d}else{a==63&&--this.d;Mqe(this);b=Pqe(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));break;default:throw Adb(new Lqe(TId((Hde(),bJe))));}}Mqe(this);e=Qqe(this);c=null;if(e.e==2){if(e.Pm()!=2)throw Adb(new Lqe(TId((Hde(),cJe))));c=e.Lm(1);e=e.Lm(0)}if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return Vse(),Vse(),++Use,new Ute(d,b,e,c)};_.xm=function pre(){Mqe(this);return Vse(),Hse};_.ym=function qre(){var a;Mqe(this);a=_se(24,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.zm=function rre(){var a;Mqe(this);a=_se(20,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Am=function sre(){var a;Mqe(this);a=_se(22,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Bm=function tre(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw Adb(new Lqe(TId((Hde(),$Ie))));if(b==45){++this.d;while(this.d=this.j)throw Adb(new Lqe(TId((Hde(),$Ie))))}if(b==58){++this.d;Mqe(this);d=ate(Qqe(this),a,c);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this)}else if(b==41){++this.d;Mqe(this);d=ate(Qqe(this),a,c)}else throw Adb(new Lqe(TId((Hde(),_Ie))));return d};_.Cm=function ure(){var a;Mqe(this);a=_se(21,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Dm=function vre(){var a;Mqe(this);a=_se(23,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Em=function wre(){var a,b;Mqe(this);a=this.f++;b=bte(Qqe(this),a);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return b};_.Fm=function xre(){var a;Mqe(this);a=bte(Qqe(this),0);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Gm=function yre(a){Mqe(this);if(this.c==5){Mqe(this);return $se(a,(Vse(),Vse(),++Use,new Kte(9,a)))}else return $se(a,(Vse(),Vse(),++Use,new Kte(3,a)))};_.Hm=function zre(a){var b;Mqe(this);b=(Vse(),Vse(),++Use,new iue(2));if(this.c==5){Mqe(this);hue(b,(null,Ese));hue(b,a)}else{hue(b,a);hue(b,(null,Ese))}return b};_.Im=function Are(a){Mqe(this);if(this.c==5){Mqe(this);return Vse(),Vse(),++Use,new Kte(9,a)}else return Vse(),Vse(),++Use,new Kte(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var gdb=sfb(LLe,'RegEx/RegexParser',836);feb(1947,836,{},Gre);_.bm=function Hre(a){return false};_.cm=function Ire(){return Dre(this)};_.dm=function Kre(a){return Ere(a)};_.em=function Lre(a){return Fre(this)};_.fm=function Mre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.gm=function Nre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.hm=function Ore(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.im=function Pre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.jm=function Qre(){Mqe(this);return Ere(67)};_.km=function Rre(){Mqe(this);return Ere(73)};_.lm=function Sre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.mm=function Tre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.nm=function Ure(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.om=function Vre(){Mqe(this);return Ere(99)};_.pm=function Wre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.qm=function Xre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.rm=function Yre(){Mqe(this);return Ere(105)};_.sm=function Zre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.tm=function $re(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.um=function _re(a,b){return ute(a,Ere(b)),-1};_.vm=function ase(){Mqe(this);return Vse(),Vse(),++Use,new Hte(0,94)};_.wm=function bse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.xm=function cse(){Mqe(this);return Vse(),Vse(),++Use,new Hte(0,36)};_.ym=function dse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.zm=function ese(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Am=function fse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Bm=function gse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Cm=function hse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Dm=function ise(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Em=function jse(){var a;Mqe(this);a=bte(Qqe(this),0);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Fm=function kse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Gm=function lse(a){Mqe(this);return $se(a,(Vse(),Vse(),++Use,new Kte(3,a)))};_.Hm=function mse(a){var b;Mqe(this);b=(Vse(),Vse(),++Use,new iue(2));hue(b,a);hue(b,(null,Ese));return b};_.Im=function nse(a){Mqe(this);return Vse(),Vse(),++Use,new Kte(3,a)};var Bre=null,Cre=null;var ddb=sfb(LLe,'RegEx/ParserForXMLSchema',1947);feb(122,1,ZLe,Wse);_.Jm=function Xse(a){throw Adb(new yz('Not supported.'))};_.Km=function dte(){return -1};_.Lm=function ete(a){return null};_.Mm=function jte(){return null};_.Nm=function mte(a){};_.Om=function nte(a){};_.Pm=function ote(){return 0};_.Ib=function pte(){return this.Qm(0)};_.Qm=function qte(a){return this.e==11?'.':''};_.e=0;var vse,wse,xse,yse,zse,Ase=null,Bse,Cse=null,Dse,Ese,Fse=null,Gse,Hse,Ise,Jse,Kse,Lse,Mse,Nse,Ose,Pse,Qse,Rse,Sse,Tse,Use=0;var qdb=sfb(LLe,'RegEx/Token',122);feb(138,122,{3:1,138:1,122:1},xte);_.Qm=function Ate(a){var b,c,d;if(this.e==4){if(this==Dse)c='.';else if(this==Bse)c='\\d';else if(this==Rse)c='\\w';else if(this==Mse)c='\\s';else{d=new Qhb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Nhb(d,zte(this.b[b]))}else{Nhb(d,zte(this.b[b]));d.a+='-';Nhb(d,zte(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==Ise)c='\\D';else if(this==Kse)c='\\W';else if(this==Jse)c='\\S';else{d=new Qhb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Nhb(d,zte(this.b[b]))}else{Nhb(d,zte(this.b[b]));d.a+='-';Nhb(d,zte(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var edb=sfb(LLe,'RegEx/RangeToken',138);feb(592,1,{592:1},Bte);_.a=0;var fdb=sfb(LLe,'RegEx/RegexParser/ReferencePosition',592);feb(591,1,{3:1,591:1},Dte);_.Fb=function Ete(a){var b;if(a==null)return false;if(!ZD(a,591))return false;b=RD(a,591);return lhb(this.b,b.b)&&this.a==b.a};_.Hb=function Fte(){return ohb(this.b+'/'+pse(this.a))};_.Ib=function Gte(){return this.c.Qm(this.a)};_.a=0;var hdb=sfb(LLe,'RegEx/RegularExpression',591);feb(228,122,ZLe,Hte);_.Km=function Ite(){return this.a};_.Qm=function Jte(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+XD(this.a&Bwe);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=txe){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+zhb(c,c.length-6,c.length)}else d=''+XD(this.a&Bwe);}break;case 8:this==Gse||this==Hse?(d=''+XD(this.a&Bwe)):(d='\\'+XD(this.a&Bwe));break;default:d=null;}return d};_.a=0;var idb=sfb(LLe,'RegEx/Token/CharToken',228);feb(318,122,ZLe,Kte);_.Lm=function Lte(a){return this.a};_.Nm=function Mte(a){this.b=a};_.Om=function Nte(a){this.c=a};_.Pm=function Ote(){return 1};_.Qm=function Pte(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.Qm(a)+'*'}else if(this.c==this.b){b=this.a.Qm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.Qm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.Qm(a)+'{'+this.c+',}'}else throw Adb(new yz('Token#toString(): CLOSURE '+this.c+pve+this.b))}else{if(this.c<0&&this.b<0){b=this.a.Qm(a)+'*?'}else if(this.c==this.b){b=this.a.Qm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.Qm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.Qm(a)+'{'+this.c+',}?'}else throw Adb(new yz('Token#toString(): NONGREEDYCLOSURE '+this.c+pve+this.b))}return b};_.b=0;_.c=0;var jdb=sfb(LLe,'RegEx/Token/ClosureToken',318);feb(837,122,ZLe,Qte);_.Lm=function Rte(a){return a==0?this.a:this.b};_.Pm=function Ste(){return 2};_.Qm=function Tte(a){var b;this.b.e==3&&this.b.Lm(0)==this.a?(b=this.a.Qm(a)+'+'):this.b.e==9&&this.b.Lm(0)==this.a?(b=this.a.Qm(a)+'+?'):(b=this.a.Qm(a)+(''+this.b.Qm(a)));return b};var kdb=sfb(LLe,'RegEx/Token/ConcatToken',837);feb(1945,122,ZLe,Ute);_.Lm=function Vte(a){if(a==0)return this.d;if(a==1)return this.b;throw Adb(new yz('Internal Error: '+a))};_.Pm=function Wte(){return !this.b?1:2};_.Qm=function Xte(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var ldb=sfb(LLe,'RegEx/Token/ConditionToken',1945);feb(1946,122,ZLe,Yte);_.Lm=function Zte(a){return this.b};_.Pm=function $te(){return 1};_.Qm=function _te(a){return '(?'+(this.a==0?'':pse(this.a))+(this.c==0?'':pse(this.c))+':'+this.b.Qm(a)+')'};_.a=0;_.c=0;var mdb=sfb(LLe,'RegEx/Token/ModifierToken',1946);feb(838,122,ZLe,aue);_.Lm=function bue(a){return this.a};_.Pm=function cue(){return 1};_.Qm=function due(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.Qm(a)+')'):(b='('+this.a.Qm(a)+')');break;case 20:b='(?='+this.a.Qm(a)+')';break;case 21:b='(?!'+this.a.Qm(a)+')';break;case 22:b='(?<='+this.a.Qm(a)+')';break;case 23:b='(?'+this.a.Qm(a)+')';}return b};_.b=0;var ndb=sfb(LLe,'RegEx/Token/ParenToken',838);feb(530,122,{3:1,122:1,530:1},eue);_.Mm=function fue(){return this.b};_.Qm=function gue(a){return this.e==12?'\\'+this.a:tse(this.b)};_.a=0;var odb=sfb(LLe,'RegEx/Token/StringToken',530);feb(477,122,ZLe,iue);_.Jm=function jue(a){hue(this,a)};_.Lm=function kue(a){return RD(eyb(this.a,a),122)};_.Pm=function lue(){return !this.a?0:this.a.a.c.length};_.Qm=function mue(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=RD(eyb(this.a,0),122);c=RD(eyb(this.a,1),122);c.e==3&&c.Lm(0)==b?(e=b.Qm(a)+'+'):c.e==9&&c.Lm(0)==b?(e=b.Qm(a)+'+?'):(e=b.Qm(a)+(''+c.Qm(a)))}else{f=new Qhb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function Vue(){return this.b>0};_.Tb=function Xue(){return this.b};_.Vb=function Zue(){return this.b-1};_.Qb=function $ue(){throw Adb(new kib(dMe))};_.a=0;_.b=0;var udb=sfb(aMe,'ExclusiveRange/RangeIterator',258);var hE=vfb(eKe,'C');var kE=vfb(hKe,'I');var xdb=vfb(hve,'Z');var lE=vfb(iKe,'J');var gE=vfb(dKe,'B');var iE=vfb(fKe,'D');var jE=vfb(gKe,'F');var wdb=vfb(jKe,'S');var g3=ufb('org.eclipse.elk.core.labels','ILabelManager');var T6=ufb(sIe,'DiagnosticChain');var zab=ufb(QKe,'ResourceSet');var $6=sfb(sIe,'InvocationTargetException',null);var fve=(Qz(),Tz);var gwtOnLoad=gwtOnLoad=ceb;aeb(leb);deb('permProps',[[['locale','default'],[eMe,'gecko1_8']],[['locale','default'],[eMe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); diff --git a/lib/elk.bundled.d.ts b/lib/elk.bundled.d.ts new file mode 100644 index 0000000..780a5cf --- /dev/null +++ b/lib/elk.bundled.d.ts @@ -0,0 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export * from "./elk-api"; +import ElkConstructor from "./elk-api"; +export default ElkConstructor; diff --git a/lib/elk.bundled.js b/lib/elk.bundled.js new file mode 100644 index 0000000..5e77ca5 --- /dev/null +++ b/lib/elk.bundled.js @@ -0,0 +1,6696 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + if (this.worker) this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +(function (global){(function (){ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function hh(){} +function lq(){} +function Nq(){} +function ir(){} +function Ws(){} +function Zw(){} +function jx(){} +function rx(){} +function sx(){} +function My(){} +function bA(){} +function mA(){} +function tA(){} +function aB(){} +function dB(){} +function jB(){} +function dC(){} +function keb(){} +function geb(){} +function oeb(){} +function iob(){} +function Job(){} +function Rob(){} +function apb(){} +function ipb(){} +function nrb(){} +function wrb(){} +function Brb(){} +function Prb(){} +function ltb(){} +function svb(){} +function xvb(){} +function zvb(){} +function $xb(){} +function Gzb(){} +function NAb(){} +function VAb(){} +function rBb(){} +function RBb(){} +function TBb(){} +function XBb(){} +function ZBb(){} +function _Bb(){} +function bCb(){} +function dCb(){} +function fCb(){} +function jCb(){} +function rCb(){} +function uCb(){} +function wCb(){} +function yCb(){} +function ACb(){} +function ECb(){} +function FEb(){} +function IEb(){} +function KEb(){} +function MEb(){} +function gFb(){} +function FFb(){} +function JFb(){} +function xGb(){} +function AGb(){} +function YGb(){} +function oHb(){} +function tHb(){} +function xHb(){} +function pIb(){} +function BJb(){} +function kLb(){} +function mLb(){} +function oLb(){} +function qLb(){} +function FLb(){} +function JLb(){} +function KMb(){} +function MMb(){} +function OMb(){} +function YMb(){} +function MNb(){} +function ONb(){} +function aOb(){} +function eOb(){} +function xOb(){} +function BOb(){} +function DOb(){} +function FOb(){} +function IOb(){} +function MOb(){} +function POb(){} +function UOb(){} +function ZOb(){} +function cPb(){} +function gPb(){} +function nPb(){} +function qPb(){} +function tPb(){} +function wPb(){} +function CPb(){} +function qQb(){} +function GQb(){} +function bRb(){} +function gRb(){} +function kRb(){} +function pRb(){} +function wRb(){} +function xSb(){} +function TSb(){} +function VSb(){} +function XSb(){} +function ZSb(){} +function _Sb(){} +function tTb(){} +function DTb(){} +function FTb(){} +function FXb(){} +function hXb(){} +function hWb(){} +function mWb(){} +function CVb(){} +function XXb(){} +function $Xb(){} +function bYb(){} +function lYb(){} +function FYb(){} +function XYb(){} +function aZb(){} +function SZb(){} +function ZZb(){} +function Z_b(){} +function j_b(){} +function j$b(){} +function b$b(){} +function f$b(){} +function n$b(){} +function K_b(){} +function V_b(){} +function b0b(){} +function l0b(){} +function X1b(){} +function _1b(){} +function x3b(){} +function r4b(){} +function w4b(){} +function A4b(){} +function E4b(){} +function I4b(){} +function M4b(){} +function o5b(){} +function q5b(){} +function w5b(){} +function A5b(){} +function E5b(){} +function h6b(){} +function j6b(){} +function l6b(){} +function q6b(){} +function v6b(){} +function y6b(){} +function G6b(){} +function K6b(){} +function N6b(){} +function P6b(){} +function R6b(){} +function b7b(){} +function f7b(){} +function j7b(){} +function n7b(){} +function C7b(){} +function H7b(){} +function J7b(){} +function L7b(){} +function N7b(){} +function P7b(){} +function a8b(){} +function c8b(){} +function e8b(){} +function g8b(){} +function i8b(){} +function m8b(){} +function Z8b(){} +function f9b(){} +function i9b(){} +function o9b(){} +function C9b(){} +function F9b(){} +function K9b(){} +function Q9b(){} +function aac(){} +function bac(){} +function eac(){} +function mac(){} +function pac(){} +function rac(){} +function tac(){} +function xac(){} +function Aac(){} +function Dac(){} +function Iac(){} +function Oac(){} +function Uac(){} +function Ucc(){} +function scc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ncc(){} +function Wcc(){} +function ydc(){} +function Adc(){} +function Gdc(){} +function Ldc(){} +function Zdc(){} +function fec(){} +function Dec(){} +function Gec(){} +function Kec(){} +function efc(){} +function jfc(){} +function nfc(){} +function Bfc(){} +function Ifc(){} +function Lfc(){} +function Rfc(){} +function Ufc(){} +function Zfc(){} +function cgc(){} +function egc(){} +function ggc(){} +function igc(){} +function kgc(){} +function Dgc(){} +function Hgc(){} +function Lgc(){} +function Ngc(){} +function Pgc(){} +function Vgc(){} +function Ygc(){} +function chc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function mhc(){} +function rhc(){} +function uhc(){} +function whc(){} +function yhc(){} +function Ahc(){} +function Chc(){} +function Ghc(){} +function Nhc(){} +function Phc(){} +function Rhc(){} +function Thc(){} +function $hc(){} +function aic(){} +function cic(){} +function eic(){} +function jic(){} +function nic(){} +function pic(){} +function ric(){} +function vic(){} +function yic(){} +function Dic(){} +function Ric(){} +function Zic(){} +function bjc(){} +function djc(){} +function jjc(){} +function njc(){} +function rjc(){} +function tjc(){} +function zjc(){} +function Djc(){} +function Fjc(){} +function Ljc(){} +function Pjc(){} +function Rjc(){} +function fkc(){} +function Kkc(){} +function Mkc(){} +function Okc(){} +function Qkc(){} +function Skc(){} +function Ukc(){} +function Wkc(){} +function clc(){} +function elc(){} +function klc(){} +function mlc(){} +function olc(){} +function qlc(){} +function wlc(){} +function ylc(){} +function Alc(){} +function Jlc(){} +function Joc(){} +function poc(){} +function roc(){} +function toc(){} +function voc(){} +function Boc(){} +function Foc(){} +function Hoc(){} +function Loc(){} +function Noc(){} +function Poc(){} +function qnc(){} +function unc(){} +function upc(){} +function kpc(){} +function mpc(){} +function opc(){} +function qpc(){} +function ypc(){} +function Cpc(){} +function Mpc(){} +function Qpc(){} +function dqc(){} +function jqc(){} +function Aqc(){} +function Eqc(){} +function Gqc(){} +function Sqc(){} +function arc(){} +function lrc(){} +function zrc(){} +function Hrc(){} +function bsc(){} +function dsc(){} +function fsc(){} +function ksc(){} +function msc(){} +function Asc(){} +function Csc(){} +function Esc(){} +function Ksc(){} +function Nsc(){} +function Ssc(){} +function CCc(){} +function tGc(){} +function aHc(){} +function gHc(){} +function nIc(){} +function PJc(){} +function XKc(){} +function fLc(){} +function hLc(){} +function lLc(){} +function eNc(){} +function IOc(){} +function MOc(){} +function WOc(){} +function YOc(){} +function $Oc(){} +function cPc(){} +function iPc(){} +function mPc(){} +function oPc(){} +function qPc(){} +function sPc(){} +function wPc(){} +function APc(){} +function FPc(){} +function HPc(){} +function NPc(){} +function PPc(){} +function TPc(){} +function VPc(){} +function ZPc(){} +function _Pc(){} +function bQc(){} +function dQc(){} +function SQc(){} +function hRc(){} +function HRc(){} +function HSc(){} +function pSc(){} +function xSc(){} +function zSc(){} +function BSc(){} +function DSc(){} +function FSc(){} +function CTc(){} +function ITc(){} +function KTc(){} +function MTc(){} +function XTc(){} +function ZTc(){} +function jVc(){} +function lVc(){} +function zVc(){} +function IVc(){} +function KVc(){} +function KWc(){} +function uWc(){} +function xWc(){} +function AWc(){} +function QWc(){} +function UWc(){} +function qXc(){} +function KXc(){} +function OXc(){} +function SXc(){} +function $Xc(){} +function mYc(){} +function rYc(){} +function zYc(){} +function DYc(){} +function FYc(){} +function HYc(){} +function JYc(){} +function cZc(){} +function gZc(){} +function iZc(){} +function pZc(){} +function tZc(){} +function vZc(){} +function AZc(){} +function GZc(){} +function l_c(){} +function l1c(){} +function b1c(){} +function d1c(){} +function h1c(){} +function n1c(){} +function r1c(){} +function v1c(){} +function x1c(){} +function D1c(){} +function H1c(){} +function L1c(){} +function R1c(){} +function V1c(){} +function Z1c(){} +function Z0c(){} +function a0c(){} +function c0c(){} +function e0c(){} +function k0c(){} +function o0c(){} +function b2c(){} +function l2c(){} +function p2c(){} +function Y2c(){} +function _2c(){} +function A3c(){} +function F3c(){} +function I3c(){} +function K3c(){} +function M3c(){} +function Q3c(){} +function U3c(){} +function c5c(){} +function D5c(){} +function G5c(){} +function J5c(){} +function N5c(){} +function V5c(){} +function p6c(){} +function s6c(){} +function H6c(){} +function K6c(){} +function _7c(){} +function h8c(){} +function j8c(){} +function o8c(){} +function r8c(){} +function u8c(){} +function R8c(){} +function X8c(){} +function o9c(){} +function s9c(){} +function x9c(){} +function Qad(){} +function rcd(){} +function Xcd(){} +function vdd(){} +function Tdd(){} +function _dd(){} +function qed(){} +function sed(){} +function ved(){} +function Hed(){} +function Zed(){} +function bfd(){} +function ifd(){} +function Gfd(){} +function Ifd(){} +function Igd(){} +function agd(){} +function dgd(){} +function pgd(){} +function Hgd(){} +function Kgd(){} +function Mgd(){} +function Ogd(){} +function Qgd(){} +function Sgd(){} +function Ugd(){} +function Wgd(){} +function Ygd(){} +function $gd(){} +function ahd(){} +function chd(){} +function ehd(){} +function ghd(){} +function ihd(){} +function khd(){} +function mhd(){} +function ohd(){} +function qhd(){} +function shd(){} +function Shd(){} +function lkd(){} +function znd(){} +function Jpd(){} +function jrd(){} +function Mrd(){} +function Qrd(){} +function Urd(){} +function Yrd(){} +function Yud(){} +function eud(){} +function asd(){} +function Lsd(){} +function btd(){} +function dtd(){} +function jtd(){} +function otd(){} +function ztd(){} +function Xxd(){} +function $yd(){} +function rzd(){} +function Rzd(){} +function KAd(){} +function hCd(){} +function _Cd(){} +function _Sd(){} +function OSd(){} +function BDd(){} +function BId(){} +function JId(){} +function YHd(){} +function fLd(){} +function cPd(){} +function hQd(){} +function AQd(){} +function kUd(){} +function VUd(){} +function pVd(){} +function W$d(){} +function Z$d(){} +function a_d(){} +function i_d(){} +function v_d(){} +function y_d(){} +function f1d(){} +function L5d(){} +function v6d(){} +function b8d(){} +function e8d(){} +function h8d(){} +function k8d(){} +function n8d(){} +function q8d(){} +function t8d(){} +function w8d(){} +function z8d(){} +function X9d(){} +function _9d(){} +function Mae(){} +function cbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function $ce(){} +function bde(){} +function ede(){} +function hde(){} +function kde(){} +function nde(){} +function qde(){} +function tde(){} +function wde(){} +function Hie(){} +function rke(){} +function rne(){} +function Ene(){} +function Gne(){} +function Jne(){} +function Mne(){} +function Pne(){} +function Sne(){} +function Vne(){} +function Yne(){} +function _ne(){} +function yme(){} +function coe(){} +function foe(){} +function ioe(){} +function loe(){} +function ooe(){} +function roe(){} +function uoe(){} +function xoe(){} +function Aoe(){} +function Doe(){} +function Goe(){} +function Joe(){} +function Moe(){} +function Poe(){} +function Soe(){} +function Voe(){} +function Yoe(){} +function _oe(){} +function cpe(){} +function fpe(){} +function ipe(){} +function lpe(){} +function ope(){} +function rpe(){} +function upe(){} +function xpe(){} +function Ape(){} +function Dpe(){} +function Gpe(){} +function Jpe(){} +function Mpe(){} +function Ppe(){} +function Spe(){} +function Vpe(){} +function Ype(){} +function _pe(){} +function cqe(){} +function fqe(){} +function iqe(){} +function lqe(){} +function oqe(){} +function rqe(){} +function uqe(){} +function Tqe(){} +function sue(){} +function Cue(){} +function A2b(a){} +function J3d(a){} +function zl(){wb()} +function z7b(){s7b()} +function ZHb(){YHb()} +function fSb(){eSb()} +function vSb(){tSb()} +function PUb(){OUb()} +function AVb(){yVb()} +function RVb(){QVb()} +function fWb(){dWb()} +function N5b(){H5b()} +function $9b(){U9b()} +function Lcc(){Hcc()} +function pdc(){Zcc()} +function pec(){iec()} +function pGc(){nGc()} +function jGc(){gGc()} +function YGc(){SGc()} +function cGc(){_Fc()} +function NFc(){KFc()} +function xgc(){sgc()} +function xHc(){tHc()} +function pHc(){lHc()} +function IHc(){CHc()} +function XHc(){RHc()} +function boc(){Mnc()} +function yqc(){mqc()} +function Pzc(){Ozc()} +function ACc(){yCc()} +function aKc(){YJc()} +function FLc(){DLc()} +function DNc(){ANc()} +function TNc(){JNc()} +function iQc(){gQc()} +function WRc(){TRc()} +function C$c(){B$c()} +function J0c(){B0c()} +function x0c(){r0c()} +function j_c(){h_c()} +function N_c(){H_c()} +function V_c(){R_c()} +function E4c(){D4c()} +function a5c(){$4c()} +function v7c(){u7c()} +function Z7c(){X7c()} +function pcd(){ncd()} +function Lcd(){Kcd()} +function Vcd(){Tcd()} +function fUd(){TTd()} +function Bfd(){Afd()} +function jkd(){hkd()} +function vmd(){umd()} +function xnd(){vnd()} +function Hpd(){Fpd()} +function HYd(){lYd()} +function yAd(){qAd()} +function gke(){rue()} +function Yxb(a){uFb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function kj(a){this.a=a} +function qj(a){this.a=a} +function Lj(a){this.a=a} +function jh(a){this.a=a} +function th(a){this.a=a} +function Bh(a){this.a=a} +function Xh(a){this.a=a} +function Xn(a){this.a=a} +function Di(a){this.a=a} +function Ki(a){this.a=a} +function Ik(a){this.a=a} +function Qk(a){this.a=a} +function mp(a){this.a=a} +function Lp(a){this.a=a} +function iq(a){this.a=a} +function Eq(a){this.a=a} +function Vq(a){this.a=a} +function Or(a){this.a=a} +function $r(a){this.b=a} +function Aj(a){this.c=a} +function vu(a){this.a=a} +function vw(a){this.a=a} +function gw(a){this.a=a} +function lw(a){this.a=a} +function Iw(a){this.a=a} +function Nw(a){this.a=a} +function Sw(a){this.a=a} +function ex(a){this.a=a} +function fx(a){this.a=a} +function lx(a){this.a=a} +function my(a){this.a=a} +function qy(a){this.a=a} +function Oy(a){this.a=a} +function NB(a){this.a=a} +function XB(a){this.a=a} +function hC(a){this.a=a} +function vC(a){this.a=a} +function MB(){this.a=[]} +function HEb(a,b){a.a=b} +function E2b(a,b){a.a=b} +function F2b(a,b){a.b=b} +function PRb(a,b){a.b=b} +function RRb(a,b){a.b=b} +function QJb(a,b){a.j=b} +function hQb(a,b){a.g=b} +function iQb(a,b){a.i=b} +function _Tb(a,b){a.c=b} +function G2b(a,b){a.c=b} +function H2b(a,b){a.d=b} +function aUb(a,b){a.d=b} +function h3b(a,b){a.k=b} +function O3b(a,b){a.c=b} +function Tmc(a,b){a.c=b} +function Smc(a,b){a.a=b} +function DJc(a,b){a.a=b} +function EJc(a,b){a.f=b} +function NSc(a,b){a.a=b} +function OSc(a,b){a.b=b} +function PSc(a,b){a.d=b} +function QSc(a,b){a.i=b} +function RSc(a,b){a.o=b} +function SSc(a,b){a.r=b} +function yUc(a,b){a.a=b} +function zUc(a,b){a.b=b} +function q3c(a,b){a.e=b} +function r3c(a,b){a.f=b} +function s3c(a,b){a.g=b} +function Y9c(a,b){a.e=b} +function Z9c(a,b){a.f=b} +function kad(a,b){a.f=b} +function Ntd(a,b){a.a=b} +function Otd(a,b){a.b=b} +function BWd(a,b){a.n=b} +function $ee(a,b){a.a=b} +function _ee(a,b){a.c=b} +function ife(a,b){a.c=b} +function Efe(a,b){a.c=b} +function hfe(a,b){a.a=b} +function Dfe(a,b){a.a=b} +function jfe(a,b){a.d=b} +function Ffe(a,b){a.d=b} +function kfe(a,b){a.e=b} +function Gfe(a,b){a.e=b} +function lfe(a,b){a.g=b} +function Hfe(a,b){a.f=b} +function Ife(a,b){a.j=b} +function wme(a,b){a.a=b} +function Fme(a,b){a.a=b} +function xme(a,b){a.b=b} +function gmc(a){a.b=a.a} +function Lg(a){a.c=a.d.d} +function fgb(a){this.a=a} +function zgb(a){this.a=a} +function Xgb(a){this.a=a} +function Xkb(a){this.a=a} +function mkb(a){this.a=a} +function reb(a){this.a=a} +function Seb(a){this.a=a} +function bfb(a){this.a=a} +function Tfb(a){this.a=a} +function blb(a){this.a=a} +function glb(a){this.a=a} +function llb(a){this.a=a} +function Ulb(a){this.a=a} +function _lb(a){this.a=a} +function Plb(a){this.b=a} +function Ppb(a){this.b=a} +function xpb(a){this.b=a} +function mpb(a){this.a=a} +function Yqb(a){this.a=a} +function uqb(a){this.c=a} +function Anb(a){this.c=a} +function zwb(a){this.c=a} +function Dkb(a){this.d=a} +function brb(a){this.a=a} +function Frb(a){this.a=a} +function hsb(a){this.a=a} +function ctb(a){this.a=a} +function cxb(a){this.a=a} +function axb(a){this.a=a} +function exb(a){this.a=a} +function gxb(a){this.a=a} +function wub(a){this.a=a} +function zAb(a){this.a=a} +function JAb(a){this.a=a} +function LAb(a){this.a=a} +function PAb(a){this.a=a} +function VBb(a){this.a=a} +function lCb(a){this.a=a} +function nCb(a){this.a=a} +function pCb(a){this.a=a} +function CCb(a){this.a=a} +function GCb(a){this.a=a} +function bDb(a){this.a=a} +function dDb(a){this.a=a} +function fDb(a){this.a=a} +function uDb(a){this.a=a} +function $Db(a){this.a=a} +function aEb(a){this.a=a} +function eEb(a){this.a=a} +function OEb(a){this.a=a} +function SEb(a){this.a=a} +function SFb(a){this.a=a} +function HFb(a){this.a=a} +function NFb(a){this.a=a} +function WGb(a){this.a=a} +function HJb(a){this.a=a} +function PJb(a){this.a=a} +function kNb(a){this.a=a} +function tOb(a){this.a=a} +function APb(a){this.a=a} +function IQb(a){this.a=a} +function bTb(a){this.a=a} +function dTb(a){this.a=a} +function wTb(a){this.a=a} +function GWb(a){this.a=a} +function UWb(a){this.a=a} +function WWb(a){this.a=a} +function fXb(a){this.a=a} +function jXb(a){this.a=a} +function M0b(a){this.a=a} +function r1b(a){this.a=a} +function D1b(a){this.e=a} +function T3b(a){this.a=a} +function W3b(a){this.a=a} +function _3b(a){this.a=a} +function c4b(a){this.a=a} +function s5b(a){this.a=a} +function u5b(a){this.a=a} +function y5b(a){this.a=a} +function C5b(a){this.a=a} +function Q5b(a){this.a=a} +function S5b(a){this.a=a} +function U5b(a){this.a=a} +function W5b(a){this.a=a} +function l7b(a){this.a=a} +function p7b(a){this.a=a} +function k8b(a){this.a=a} +function L8b(a){this.a=a} +function Rac(a){this.a=a} +function Xac(a){this.a=a} +function $ac(a){this.a=a} +function bbc(a){this.a=a} +function Cdc(a){this.a=a} +function Edc(a){this.a=a} +function Ehc(a){this.a=a} +function khc(a){this.a=a} +function Ihc(a){this.a=a} +function qfc(a){this.a=a} +function tfc(a){this.a=a} +function Wfc(a){this.a=a} +function Fic(a){this.a=a} +function Vic(a){this.a=a} +function fjc(a){this.a=a} +function pjc(a){this.a=a} +function ckc(a){this.a=a} +function hkc(a){this.a=a} +function Ykc(a){this.a=a} +function $kc(a){this.a=a} +function alc(a){this.a=a} +function glc(a){this.a=a} +function ilc(a){this.a=a} +function slc(a){this.a=a} +function Clc(a){this.a=a} +function xoc(a){this.a=a} +function zoc(a){this.a=a} +function spc(a){this.a=a} +function Vqc(a){this.a=a} +function Xqc(a){this.a=a} +function Gsc(a){this.a=a} +function Isc(a){this.a=a} +function JGc(a){this.a=a} +function NGc(a){this.a=a} +function MHc(a){this.a=a} +function JIc(a){this.a=a} +function fJc(a){this.a=a} +function BJc(a){this.a=a} +function dJc(a){this.c=a} +function Trc(a){this.b=a} +function eKc(a){this.a=a} +function IKc(a){this.a=a} +function KKc(a){this.a=a} +function MKc(a){this.a=a} +function yLc(a){this.a=a} +function HMc(a){this.a=a} +function LMc(a){this.a=a} +function PMc(a){this.a=a} +function TMc(a){this.a=a} +function XMc(a){this.a=a} +function ZMc(a){this.a=a} +function aNc(a){this.a=a} +function jNc(a){this.a=a} +function aPc(a){this.a=a} +function gPc(a){this.a=a} +function kPc(a){this.a=a} +function yPc(a){this.a=a} +function CPc(a){this.a=a} +function JPc(a){this.a=a} +function RPc(a){this.a=a} +function XPc(a){this.a=a} +function mRc(a){this.a=a} +function xTc(a){this.a=a} +function CWc(a){this.a=a} +function EWc(a){this.a=a} +function IWc(a){this.a=a} +function OWc(a){this.a=a} +function dXc(a){this.a=a} +function gXc(a){this.a=a} +function EXc(a){this.a=a} +function WXc(a){this.a=a} +function YXc(a){this.a=a} +function aYc(a){this.a=a} +function cYc(a){this.a=a} +function eYc(a){this.a=a} +function iYc(a){this.a=a} +function i0c(a){this.a=a} +function g0c(a){this.a=a} +function P1c(a){this.a=a} +function Sad(a){this.a=a} +function Uad(a){this.a=a} +function Wad(a){this.a=a} +function Yad(a){this.a=a} +function cbd(a){this.a=a} +function ydd(a){this.a=a} +function Kdd(a){this.a=a} +function Mdd(a){this.a=a} +function _ed(a){this.a=a} +function dfd(a){this.a=a} +function Kfd(a){this.a=a} +function prd(a){this.a=a} +function $rd(a){this.a=a} +function csd(a){this.a=a} +function Usd(a){this.a=a} +function Vtd(a){this.a=a} +function wud(a){this.a=a} +function Rud(a){this.f=a} +function LEd(a){this.a=a} +function UEd(a){this.a=a} +function VEd(a){this.a=a} +function WEd(a){this.a=a} +function XEd(a){this.a=a} +function YEd(a){this.a=a} +function ZEd(a){this.a=a} +function $Ed(a){this.a=a} +function _Ed(a){this.a=a} +function aFd(a){this.a=a} +function gFd(a){this.a=a} +function iFd(a){this.a=a} +function jFd(a){this.a=a} +function kFd(a){this.a=a} +function lFd(a){this.a=a} +function nFd(a){this.a=a} +function qFd(a){this.a=a} +function wFd(a){this.a=a} +function xFd(a){this.a=a} +function zFd(a){this.a=a} +function AFd(a){this.a=a} +function BFd(a){this.a=a} +function CFd(a){this.a=a} +function DFd(a){this.a=a} +function MFd(a){this.a=a} +function OFd(a){this.a=a} +function QFd(a){this.a=a} +function SFd(a){this.a=a} +function uGd(a){this.a=a} +function QGd(a){this.a=a} +function jGd(a){this.b=a} +function YOd(a){this.a=a} +function ePd(a){this.a=a} +function kPd(a){this.a=a} +function qPd(a){this.a=a} +function IPd(a){this.a=a} +function w$d(a){this.a=a} +function e_d(a){this.a=a} +function Q_d(a){this.b=a} +function c1d(a){this.a=a} +function c2d(a){this.a=a} +function l5d(a){this.a=a} +function I9d(a){this.a=a} +function L6d(a){this.c=a} +function t7d(a){this.e=a} +function pae(a){this.a=a} +function xae(a){this.a=a} +function Zde(a){this.a=a} +function Sde(a){this.d=a} +function mee(a){this.a=a} +function uje(a){this.a=a} +function Bte(a){this.a=a} +function Wse(a){this.e=a} +function Xsd(){this.a=0} +function Tsb(){akb(this)} +function bnb(){Pmb(this)} +function cHb(){bHb(this)} +function I2b(){A2b(this)} +function s2d(){this.c=d2d} +function Prc(a,b){a.b+=b} +function Uje(a,b){b.Wb(a)} +function UC(a){return a.a} +function nC(a){return a.a} +function BC(a){return a.a} +function TB(a){return a.a} +function _B(a){return a.a} +function Adb(a){return a.e} +function gC(){return null} +function MC(){return null} +function leb(){MId();OId()} +function qMb(a){a.b.Of(a.e)} +function A$b(a){a.b=new Ri} +function A8b(a,b){a.b=b-a.b} +function x8b(a,b){a.a=b-a.a} +function ZEb(a,b){a.push(b)} +function bFb(a,b){a.sort(b)} +function Q5c(a,b){b.jd(a.a)} +function Voc(a,b){Q3b(b,a)} +function tp(a,b,c){a.Yd(c,b)} +function Ss(a,b){a.e=b;b.b=a} +function im(a){_l();this.a=a} +function xq(a){_l();this.a=a} +function Gq(a){_l();this.a=a} +function Xq(a){tm();this.a=a} +function gA(a){fA();eA.le(a)} +function vA(){vA=geb;new Tsb} +function xz(){mz.call(this)} +function Ceb(){mz.call(this)} +function ueb(){xz.call(this)} +function yeb(){xz.call(this)} +function Hfb(){xz.call(this)} +function _fb(){xz.call(this)} +function cgb(){xz.call(this)} +function Ngb(){xz.call(this)} +function jib(){xz.call(this)} +function Jrb(){xz.call(this)} +function Srb(){xz.call(this)} +function Dvb(){xz.call(this)} +function Ied(){xz.call(this)} +function R1d(){this.a=this} +function k1d(){this.Bb|=256} +function vWb(){this.b=new Et} +function aFb(a,b){a.length=b} +function dyb(a,b){Rmb(a.a,b)} +function jNb(a,b){LKb(a.c,b)} +function qRc(a,b){Ysb(a.b,b)} +function VOd(a,b){UNd(a.a,b)} +function WOd(a,b){VNd(a.a,b)} +function eZd(a,b){qvd(a.e,b)} +function Cke(a){bge(a.c,a.b)} +function uj(a,b){a.kc().Nb(b)} +function Ufb(a){this.a=Zfb(a)} +function _sb(){this.a=new Tsb} +function $Ab(){this.a=new Tsb} +function xAb(){this.a=new dzb} +function gyb(){this.a=new bnb} +function BIb(){this.a=new bnb} +function GIb(){this.a=new bnb} +function wIb(){this.a=new pIb} +function gJb(){this.a=new DIb} +function TTb(){this.a=new DTb} +function jGb(){this.a=new fGb} +function qGb(){this.a=new kGb} +function q_b(){this.a=new bnb} +function E_b(){this.a=new bnb} +function EZb(){this.a=new bnb} +function J$b(){this.a=new bnb} +function YNb(){this.d=new bnb} +function lXb(){this.a=new RWb} +function y_b(){this.a=new _sb} +function k5b(){this.a=new Tsb} +function E0b(){this.b=new Tsb} +function jHc(){this.b=new bnb} +function ZNc(){this.e=new bnb} +function ahc(){this.a=new boc} +function UQc(){this.d=new bnb} +function uRc(){tRc.call(this)} +function BRc(){tRc.call(this)} +function VOc(){bnb.call(this)} +function web(){ueb.call(this)} +function Fyb(){gyb.call(this)} +function fKb(){RJb.call(this)} +function N$b(){J$b.call(this)} +function P2b(){I2b.call(this)} +function T2b(){P2b.call(this)} +function z3b(){I2b.call(this)} +function C3b(){z3b.call(this)} +function cUc(){aUc.call(this)} +function hUc(){aUc.call(this)} +function mUc(){aUc.call(this)} +function Hdd(){Ddd.call(this)} +function ACd(){$yd.call(this)} +function PCd(){$yd.call(this)} +function Ejd(){Yub.call(this)} +function LQd(){wQd.call(this)} +function lRd(){wQd.call(this)} +function MSd(){Tsb.call(this)} +function VSd(){Tsb.call(this)} +function eTd(){Tsb.call(this)} +function mXd(){HWd.call(this)} +function i1d(){_sb.call(this)} +function A1d(){k1d.call(this)} +function q4d(){dWd.call(this)} +function O5d(){Tsb.call(this)} +function R5d(){dWd.call(this)} +function lae(){Tsb.call(this)} +function Cae(){Tsb.call(this)} +function ome(){kUd.call(this)} +function Hme(){ome.call(this)} +function Nme(){kUd.call(this)} +function Gre(){Tqe.call(this)} +function aUc(){this.a=new _sb} +function nZc(){this.a=new Tsb} +function DZc(){this.a=new bnb} +function Ddd(){this.a=new Tsb} +function Oqd(){this.a=new Yub} +function Oed(){this.j=new bnb} +function obd(){this.a=new nbd} +function wQd(){this.a=new AQd} +function R5c(){this.a=new V5c} +function wb(){wb=geb;vb=new xb} +function Wk(){Wk=geb;Vk=new Xk} +function kl(){kl=geb;jl=new ll} +function ll(){Qk.call(this,'')} +function Xk(){Qk.call(this,'')} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function xh(a){th.call(this,a)} +function $h(a){Wc.call(this,a)} +function Qi(a){Wc.call(this,a)} +function wi(a){$h.call(this,a)} +function Sp(a){$h.call(this,a)} +function Js(a){$h.call(this,a)} +function Jp(a){Xo.call(this,a)} +function Qp(a){Xo.call(this,a)} +function dq(a){ho.call(this,a)} +function Fv(a){uv.call(this,a)} +function aw(a){Tr.call(this,a)} +function cw(a){Tr.call(this,a)} +function _w(a){Tr.call(this,a)} +function Mx(a){Gn.call(this,a)} +function Nx(a){Mx.call(this,a)} +function yz(a){nz.call(this,a)} +function aC(a){yz.call(this,a)} +function uC(){vC.call(this,{})} +function cC(){cC=geb;bC=new dC} +function zs(){zs=geb;ys=new As} +function Az(){Az=geb;zz=new nb} +function $z(){$z=geb;Zz=new bA} +function $A(){$A=geb;ZA=new aB} +function Ovb(a){Kvb();this.a=a} +function FKc(a){jKc();this.a=a} +function zud(a){nud();this.f=a} +function Bud(a){nud();this.f=a} +function Cde(a){KMd();this.a=a} +function Lyb(a){a.b=null;a.c=0} +function kz(a,b){a.e=b;hz(a,b)} +function NYb(a,b){a.a=b;PYb(a)} +function cLb(a,b,c){a.a[b.g]=c} +function zsd(a,b,c){Hsd(c,a,b)} +function shc(a,b){Xmc(b.i,a.n)} +function HCc(a,b){ICc(a).Cd(b)} +function yw(a,b){a.a.ec().Mc(b)} +function ns(a,b){return a.g-b.g} +function AUb(a,b){return a*a/b} +function Heb(a){return uFb(a),a} +function Kfb(a){return uFb(a),a} +function Mfb(a){return uFb(a),a} +function JC(a){return new hC(a)} +function LC(a){return new OC(a)} +function shb(a){return uFb(a),a} +function Chb(a){return uFb(a),a} +function teb(a){yz.call(this,a)} +function veb(a){yz.call(this,a)} +function zeb(a){yz.call(this,a)} +function Aeb(a){nz.call(this,a)} +function Ifb(a){yz.call(this,a)} +function agb(a){yz.call(this,a)} +function dgb(a){yz.call(this,a)} +function Mgb(a){yz.call(this,a)} +function Ogb(a){yz.call(this,a)} +function kib(a){yz.call(this,a)} +function Jed(a){yz.call(this,a)} +function Ked(a){yz.call(this,a)} +function CDd(a){yz.call(this,a)} +function Mle(a){yz.call(this,a)} +function Lqe(a){yz.call(this,a)} +function mob(a){uFb(a);this.a=a} +function yYb(a){sYb(a);return a} +function Nnb(a){Snb(a,a.length)} +function nmb(a){return a.b==a.c} +function Vyb(a){return !!a&&a.b} +function gLb(a){return !!a&&a.k} +function hLb(a){return !!a&&a.j} +function F_b(a,b,c){a.c.Ef(b,c)} +function Ts(a,b){a.be(b);b.ae(a)} +function Fy(a){_l();this.a=Qb(a)} +function Gb(){this.a=WD(Qb(pve))} +function jc(){throw Adb(new jib)} +function jn(){throw Adb(new jib)} +function Hh(){throw Adb(new jib)} +function Xi(){throw Adb(new jib)} +function Xj(){throw Adb(new jib)} +function Yj(){throw Adb(new jib)} +function Qz(){Qz=geb;!!(fA(),eA)} +function Qhb(){reb.call(this,'')} +function Rhb(){reb.call(this,'')} +function bib(){reb.call(this,'')} +function cib(){reb.call(this,'')} +function eib(a){veb.call(this,a)} +function xeb(a){veb.call(this,a)} +function Vgb(a){agb.call(this,a)} +function Lqb(a){xpb.call(this,a)} +function Sqb(a){Lqb.call(this,a)} +function irb(a){Upb.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ri(){Si.call(this,12,3)} +function WC(a,b){return xfb(a,b)} +function cFb(a,b){return dD(a,b)} +function Reb(a,b){return a.a-b.a} +function afb(a,b){return a.a-b.a} +function Wgb(a,b){return a.a-b.a} +function pC(b,a){return a in b.a} +function Vvb(a){return a.a?a.b:0} +function cwb(a){return a.a?a.b:0} +function Fxb(a,b,c){b.Cd(a.a[c])} +function Kxb(a,b,c){b.Pe(a.a[c])} +function uKb(a,b){a.b=new sjd(b)} +function QGb(a,b){a.b=b;return a} +function RGb(a,b){a.c=b;return a} +function SGb(a,b){a.f=b;return a} +function TGb(a,b){a.g=b;return a} +function yJb(a,b){a.a=b;return a} +function zJb(a,b){a.f=b;return a} +function AJb(a,b){a.k=b;return a} +function WNb(a,b){a.a=b;return a} +function XNb(a,b){a.e=b;return a} +function BYb(a,b){a.e=b;return a} +function CYb(a,b){a.f=b;return a} +function BRb(a,b){a.b=true;a.d=b} +function WNc(a,b){return a.b-b.b} +function KSc(a,b){return a.g-b.g} +function pmc(a,b){return a?0:b-1} +function qKc(a,b){return a?0:b-1} +function pKc(a,b){return a?b-1:0} +function uVc(a,b){return a.s-b.s} +function Xed(a,b){return b.rg(a)} +function Xfd(a,b){a.b=b;return a} +function Wfd(a,b){a.a=b;return a} +function Yfd(a,b){a.c=b;return a} +function Zfd(a,b){a.d=b;return a} +function $fd(a,b){a.e=b;return a} +function _fd(a,b){a.f=b;return a} +function mgd(a,b){a.a=b;return a} +function ngd(a,b){a.b=b;return a} +function ogd(a,b){a.c=b;return a} +function Khd(a,b){a.c=b;return a} +function Jhd(a,b){a.b=b;return a} +function Lhd(a,b){a.d=b;return a} +function Mhd(a,b){a.e=b;return a} +function Nhd(a,b){a.f=b;return a} +function Ohd(a,b){a.g=b;return a} +function Phd(a,b){a.a=b;return a} +function Qhd(a,b){a.i=b;return a} +function Rhd(a,b){a.j=b;return a} +function coc(a,b){Mnc();P3b(b,a)} +function bbd(a,b,c){_ad(a.a,b,c)} +function Fjd(a){Zub.call(this,a)} +function TRb(a){SRb.call(this,a)} +function pLc(a){CIc.call(this,a)} +function ILc(a){CIc.call(this,a)} +function gLd(a){ZHd.call(this,a)} +function DPd(a){xPd.call(this,a)} +function FPd(a){xPd.call(this,a)} +function x2b(){y2b.call(this,'')} +function pjd(){this.a=0;this.b=0} +function ATc(){this.b=0;this.a=0} +function lXd(a,b){a.b=0;bWd(a,b)} +function Kqd(a,b){a.k=b;return a} +function Lqd(a,b){a.j=b;return a} +function vfe(a,b){a.c=b;a.b=true} +function Etb(){Etb=geb;Dtb=Gtb()} +function bvd(){bvd=geb;avd=OAd()} +function dvd(){dvd=geb;cvd=aCd()} +function MId(){MId=geb;LId=ygd()} +function jTd(){jTd=geb;iTd=Qae()} +function Ole(){Ole=geb;Nle=vne()} +function Qle(){Qle=geb;Ple=Cne()} +function mfb(a){return a.e&&a.e()} +function FD(a){return a.l|a.m<<22} +function Oc(a,b){return a.c._b(b)} +function En(a,b){return Wv(a.b,b)} +function Vd(a){return !a?null:a.d} +function Vv(a){return !a?null:a.g} +function $v(a){return !a?null:a.i} +function nfb(a){lfb(a);return a.o} +function Khb(a,b){a.a+=b;return a} +function Lhb(a,b){a.a+=b;return a} +function Ohb(a,b){a.a+=b;return a} +function Uhb(a,b){a.a+=b;return a} +function _wb(a,b){while(a.Bd(b));} +function atb(a){this.a=new Usb(a)} +function $tb(){throw Adb(new jib)} +function qpb(){throw Adb(new jib)} +function rpb(){throw Adb(new jib)} +function spb(){throw Adb(new jib)} +function vpb(){throw Adb(new jib)} +function Opb(){throw Adb(new jib)} +function yAb(a){this.a=new ezb(a)} +function H2c(){this.a=new Wed(s0)} +function TVc(){this.b=new Wed(H$)} +function l6c(){this.a=new Wed(V0)} +function $ad(){this.b=new Wed(I1)} +function nbd(){this.b=new Wed(I1)} +function T2c(a){this.a=0;this.b=a} +function Bib(a){tib();vib(this,a)} +function QDb(a){LCb(a);return a.a} +function dvb(a){return a.b!=a.d.c} +function AMc(a,b){return a.d[b.p]} +function ued(a,b){return ned(a,b)} +function $Eb(a,b,c){a.splice(b,c)} +function ixb(a,b){while(a.Re(b));} +function NKb(a){a.c?MKb(a):OKb(a)} +function mQd(){throw Adb(new jib)} +function nQd(){throw Adb(new jib)} +function oQd(){throw Adb(new jib)} +function pQd(){throw Adb(new jib)} +function qQd(){throw Adb(new jib)} +function rQd(){throw Adb(new jib)} +function sQd(){throw Adb(new jib)} +function tQd(){throw Adb(new jib)} +function uQd(){throw Adb(new jib)} +function vQd(){throw Adb(new jib)} +function zue(){throw Adb(new Dvb)} +function Aue(){throw Adb(new Dvb)} +function oue(a){this.a=new Dte(a)} +function Dte(a){Cte(this,a,sse())} +function cve(a){return !a||bve(a)} +function Cqe(a){return xqe[a]!=-1} +function Yz(){Nz!=0&&(Nz=0);Pz=-1} +function beb(){_db==null&&(_db=[])} +function eg(a,b){zf.call(this,a,b)} +function gg(a,b){eg.call(this,a,b)} +function Nj(a,b){this.a=a;this.b=b} +function hk(a,b){this.a=a;this.b=b} +function nk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function xk(a,b){this.a=a;this.b=b} +function zk(a,b){this.a=a;this.b=b} +function Kk(a,b){this.a=a;this.b=b} +function ne(a,b){this.e=a;this.d=b} +function Hf(a,b){this.b=a;this.c=b} +function cp(a,b){this.b=a;this.a=b} +function Cp(a,b){this.b=a;this.a=b} +function qr(a,b){this.b=a;this.a=b} +function Rr(a,b){this.b=a;this.a=b} +function vr(a,b){this.a=a;this.b=b} +function su(a,b){this.a=a;this.b=b} +function Hu(a,b){this.a=a;this.f=b} +function gp(a,b){this.g=a;this.i=b} +function qs(a,b){this.f=a;this.g=b} +function Gv(a,b){this.b=a;this.c=b} +function Wc(a){Lb(a.dc());this.c=a} +function Ex(a,b){this.a=a;this.b=b} +function ey(a,b){this.a=a;this.b=b} +function pv(a){this.a=RD(Qb(a),15)} +function uv(a){this.a=RD(Qb(a),15)} +function nw(a){this.a=RD(Qb(a),85)} +function rf(a){this.b=RD(Qb(a),85)} +function Tr(a){this.b=RD(Qb(a),51)} +function uB(){this.q=new $wnd.Date} +function CC(a,b){this.a=a;this.b=b} +function Bt(a,b){return Ujb(a.b,b)} +function tpb(a,b){return a.b.Hc(b)} +function upb(a,b){return a.b.Ic(b)} +function wpb(a,b){return a.b.Qc(b)} +function Pqb(a,b){return a.b.Hc(b)} +function pqb(a,b){return a.c.uc(b)} +function rqb(a,b){return pb(a.c,b)} +function Zsb(a,b){return a.a._b(b)} +function Xp(a,b){return a>b&&b0} +function Ldb(a,b){return Ddb(a,b)<0} +function Urb(a,b){return Bsb(a.a,b)} +function Beb(a,b){oz.call(this,a,b)} +function Qx(a){Px();ho.call(this,a)} +function Lnb(a,b){Pnb(a,a.length,b)} +function Mnb(a,b){Rnb(a,a.length,b)} +function Ktb(a,b){return a.a.get(b)} +function bub(a,b){return Ujb(a.e,b)} +function Zxb(a){return uFb(a),false} +function zw(a){this.a=RD(Qb(a),229)} +function $wb(a){Swb.call(this,a,21)} +function dAb(a,b){qs.call(this,a,b)} +function yBb(a,b){qs.call(this,a,b)} +function ssb(a,b){this.b=a;this.a=b} +function xlb(a,b){this.d=a;this.e=b} +function jEb(a,b){this.a=a;this.b=b} +function pEb(a,b){this.a=a;this.b=b} +function vEb(a,b){this.a=a;this.b=b} +function BEb(a,b){this.a=a;this.b=b} +function TFb(a,b){this.a=a;this.b=b} +function QEb(a,b){this.b=a;this.a=b} +function sHb(a,b){this.b=a;this.a=b} +function EHb(a,b){qs.call(this,a,b)} +function MHb(a,b){qs.call(this,a,b)} +function jIb(a,b){qs.call(this,a,b)} +function $Jb(a,b){qs.call(this,a,b)} +function FKb(a,b){qs.call(this,a,b)} +function wLb(a,b){qs.call(this,a,b)} +function nOb(a,b){qs.call(this,a,b)} +function kPb(a,b){this.b=a;this.a=b} +function JPb(a,b){qs.call(this,a,b)} +function fRb(a,b){this.b=a;this.a=b} +function JRb(a,b){qs.call(this,a,b)} +function OTb(a,b){this.b=a;this.a=b} +function UUb(a,b){qs.call(this,a,b)} +function BWb(a,b){qs.call(this,a,b)} +function tXb(a,b){qs.call(this,a,b)} +function XEb(a,b,c){a.splice(b,0,c)} +function pr(a,b,c){a.Mb(c)&&b.Cd(c)} +function lEb(a,b,c){b.Pe(a.a.Ye(c))} +function rEb(a,b,c){b.Dd(a.a.Ze(c))} +function xEb(a,b,c){b.Cd(a.a.Kb(c))} +function eYb(a,b){return Csb(a.c,b)} +function cGb(a,b){return Csb(a.e,b)} +function qZb(a,b){qs.call(this,a,b)} +function V$b(a,b){qs.call(this,a,b)} +function s3b(a,b){qs.call(this,a,b)} +function Q8b(a,b){qs.call(this,a,b)} +function icc(a,b){qs.call(this,a,b)} +function xec(a,b){qs.call(this,a,b)} +function gic(a,b){this.a=a;this.b=b} +function Xic(a,b){this.a=a;this.b=b} +function h4b(a,b){this.a=a;this.b=b} +function vjc(a,b){this.a=a;this.b=b} +function xjc(a,b){this.a=a;this.b=b} +function Hjc(a,b){this.a=a;this.b=b} +function hjc(a,b){this.b=a;this.a=b} +function Jjc(a,b){this.b=a;this.a=b} +function _Yb(a,b){this.b=a;this.a=b} +function eZb(a,b){this.c=a;this.d=b} +function Q1b(a,b){this.e=a;this.d=b} +function Tjc(a,b){this.a=a;this.b=b} +function ulc(a,b){this.a=a;this.b=b} +function Elc(a,b){this.a=a;this.b=b} +function fqc(a,b){this.b=a;this.a=b} +function smc(a,b){this.b=b;this.c=a} +function fnc(a,b){qs.call(this,a,b)} +function Cnc(a,b){qs.call(this,a,b)} +function koc(a,b){qs.call(this,a,b)} +function ktc(a,b){qs.call(this,a,b)} +function ctc(a,b){qs.call(this,a,b)} +function utc(a,b){qs.call(this,a,b)} +function Ftc(a,b){qs.call(this,a,b)} +function Rtc(a,b){qs.call(this,a,b)} +function _tc(a,b){qs.call(this,a,b)} +function iuc(a,b){qs.call(this,a,b)} +function vuc(a,b){qs.call(this,a,b)} +function Duc(a,b){qs.call(this,a,b)} +function Puc(a,b){qs.call(this,a,b)} +function _uc(a,b){qs.call(this,a,b)} +function pvc(a,b){qs.call(this,a,b)} +function yvc(a,b){qs.call(this,a,b)} +function Hvc(a,b){qs.call(this,a,b)} +function Pvc(a,b){qs.call(this,a,b)} +function dxc(a,b){qs.call(this,a,b)} +function bDc(a,b){qs.call(this,a,b)} +function nDc(a,b){qs.call(this,a,b)} +function yDc(a,b){qs.call(this,a,b)} +function LDc(a,b){qs.call(this,a,b)} +function bEc(a,b){qs.call(this,a,b)} +function lEc(a,b){qs.call(this,a,b)} +function tEc(a,b){qs.call(this,a,b)} +function CEc(a,b){qs.call(this,a,b)} +function LEc(a,b){qs.call(this,a,b)} +function UEc(a,b){qs.call(this,a,b)} +function mFc(a,b){qs.call(this,a,b)} +function vFc(a,b){qs.call(this,a,b)} +function EFc(a,b){qs.call(this,a,b)} +function SKc(a,b){qs.call(this,a,b)} +function cNc(a,b){this.b=a;this.a=b} +function tNc(a,b){qs.call(this,a,b)} +function QOc(a,b){this.a=a;this.b=b} +function ePc(a,b){this.a=a;this.b=b} +function LPc(a,b){this.a=a;this.b=b} +function xQc(a,b){qs.call(this,a,b)} +function FQc(a,b){qs.call(this,a,b)} +function MQc(a,b){this.a=a;this.b=b} +function FMc(a,b){dMc();return b!=a} +function Uvb(a){sFb(a.a);return a.b} +function qYb(a){rYb(a,a.c);return a} +function Itb(){Etb();return new Dtb} +function _ec(){Rec();this.a=new e6b} +function lSc(){dSc();this.a=new _sb} +function aRc(){WQc();this.b=new _sb} +function xRc(a,b){this.b=a;this.d=b} +function nVc(a,b){this.a=a;this.b=b} +function pVc(a,b){this.a=a;this.b=b} +function GWc(a,b){this.a=a;this.b=b} +function IXc(a,b){this.b=a;this.a=b} +function gTc(a,b){qs.call(this,a,b)} +function eVc(a,b){qs.call(this,a,b)} +function $Vc(a,b){qs.call(this,a,b)} +function XYc(a,b){qs.call(this,a,b)} +function MZc(a,b){qs.call(this,a,b)} +function t_c(a,b){qs.call(this,a,b)} +function B_c(a,b){qs.call(this,a,b)} +function z2c(a,b){qs.call(this,a,b)} +function h3c(a,b){qs.call(this,a,b)} +function $3c(a,b){qs.call(this,a,b)} +function i4c(a,b){qs.call(this,a,b)} +function l5c(a,b){qs.call(this,a,b)} +function v5c(a,b){qs.call(this,a,b)} +function g6c(a,b){qs.call(this,a,b)} +function A6c(a,b){qs.call(this,a,b)} +function a7c(a,b){qs.call(this,a,b)} +function B8c(a,b){qs.call(this,a,b)} +function d9c(a,b){qs.call(this,a,b)} +function D9c(a,b){qs.call(this,a,b)} +function tad(a,b){qs.call(this,a,b)} +function hbd(a,b){qs.call(this,a,b)} +function Nbd(a,b){qs.call(this,a,b)} +function Ybd(a,b){qs.call(this,a,b)} +function ndd(a,b){qs.call(this,a,b)} +function z1c(a,b){this.b=a;this.a=b} +function B1c(a,b){this.b=a;this.a=b} +function d2c(a,b){this.b=a;this.a=b} +function f2c(a,b){this.b=a;this.a=b} +function m9c(a,b){this.a=a;this.b=b} +function xed(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function rjd(a,b){this.a=a;this.b=b} +function Sjd(a,b){qs.call(this,a,b)} +function Zhd(a,b){qs.call(this,a,b)} +function lid(a,b){qs.call(this,a,b)} +function vkd(a,b){qs.call(this,a,b)} +function Gmd(a,b){qs.call(this,a,b)} +function Pmd(a,b){qs.call(this,a,b)} +function Zmd(a,b){qs.call(this,a,b)} +function jnd(a,b){qs.call(this,a,b)} +function Gnd(a,b){qs.call(this,a,b)} +function Rnd(a,b){qs.call(this,a,b)} +function eod(a,b){qs.call(this,a,b)} +function qod(a,b){qs.call(this,a,b)} +function Eod(a,b){qs.call(this,a,b)} +function Qod(a,b){qs.call(this,a,b)} +function upd(a,b){qs.call(this,a,b)} +function Rpd(a,b){qs.call(this,a,b)} +function eqd(a,b){qs.call(this,a,b)} +function nqd(a,b){qs.call(this,a,b)} +function vqd(a,b){qs.call(this,a,b)} +function Hrd(a,b){qs.call(this,a,b)} +function esd(a,b){this.a=a;this.b=b} +function gsd(a,b){this.a=a;this.b=b} +function isd(a,b){this.a=a;this.b=b} +function Osd(a,b){this.a=a;this.b=b} +function Qsd(a,b){this.a=a;this.b=b} +function Ssd(a,b){this.a=a;this.b=b} +function Ptd(a,b){this.a=a;this.b=b} +function JEd(a,b){this.a=a;this.b=b} +function KEd(a,b){this.a=a;this.b=b} +function MEd(a,b){this.a=a;this.b=b} +function NEd(a,b){this.a=a;this.b=b} +function QEd(a,b){this.a=a;this.b=b} +function REd(a,b){this.a=a;this.b=b} +function SEd(a,b){this.b=a;this.a=b} +function TEd(a,b){this.b=a;this.a=b} +function bFd(a,b){this.b=a;this.a=b} +function dFd(a,b){this.b=a;this.a=b} +function fFd(a,b){this.a=a;this.b=b} +function hFd(a,b){this.a=a;this.b=b} +function utd(a,b){qs.call(this,a,b)} +function sFd(a,b){this.a=a;this.b=b} +function uFd(a,b){this.a=a;this.b=b} +function bGd(a,b){qs.call(this,a,b)} +function uId(a,b){this.f=a;this.c=b} +function Ofd(a,b){return Csb(a.g,b)} +function Tqc(a,b){return Csb(b.b,a)} +function HPd(a,b){return QNd(a.a,b)} +function Idd(a,b){return -a.b.af(b)} +function IId(a,b){!!a&&Zjb(CId,a,b)} +function yWd(a,b){a.i=null;zWd(a,b)} +function kEd(a,b,c){pDd(b,KDd(a,c))} +function lEd(a,b,c){pDd(b,KDd(a,c))} +function mFd(a,b){vEd(a.a,RD(b,58))} +function _Mc(a,b){GMc(a.a,RD(b,12))} +function KTd(a,b){this.a=a;this.b=b} +function NTd(a,b){this.a=a;this.b=b} +function B5d(a,b){this.a=a;this.b=b} +function Z6d(a,b){this.a=a;this.b=b} +function Ble(a,b){this.a=a;this.b=b} +function afe(a,b){this.d=a;this.b=b} +function wfe(a,b){this.e=a;this.a=b} +function Eke(a,b){this.b=a;this.c=b} +function zNd(a,b){this.i=a;this.g=b} +function kZd(a,b){this.d=a;this.e=b} +function ave(a,b){eve(new dMd(a),b)} +function Dke(a){return pge(a.c,a.b)} +function Wd(a){return !a?null:a.md()} +function dE(a){return a==null?null:a} +function bE(a){return typeof a===jve} +function $D(a){return typeof a===hve} +function _D(a){return typeof a===ive} +function Gdb(a,b){return Ddb(a,b)==0} +function Jdb(a,b){return Ddb(a,b)>=0} +function Pdb(a,b){return Ddb(a,b)!=0} +function ar(a,b){return zr(a.Kc(),b)} +function Qm(a,b){return a.Rd().Xb(b)} +function kg(a){ig(a);return a.d.gc()} +function fE(a){CFb(a==null);return a} +function Mhb(a,b){a.a+=''+b;return a} +function Nhb(a,b){a.a+=''+b;return a} +function Whb(a,b){a.a+=''+b;return a} +function Yhb(a,b){a.a+=''+b;return a} +function Zhb(a,b){a.a+=''+b;return a} +function Vhb(a,b){return a.a+=''+b,a} +function Pfb(a){return ''+(uFb(a),a)} +function Vsb(a){akb(this);Ld(this,a)} +function YFc(){RFc();UFc.call(this)} +function pxb(a,b){kxb.call(this,a,b)} +function txb(a,b){kxb.call(this,a,b)} +function xxb(a,b){kxb.call(this,a,b)} +function Oub(a,b){Pub(a,b,a.c.b,a.c)} +function Nub(a,b){Pub(a,b,a.a,a.a.a)} +function Iob(a){tFb(a,0);return null} +function Xvb(){this.b=0;this.a=false} +function dwb(){this.b=0;this.a=false} +function Et(){this.b=new Usb(Sv(12))} +function pMb(){pMb=geb;oMb=ss(nMb())} +function ncc(){ncc=geb;mcc=ss(lcc())} +function aZc(){aZc=geb;_Yc=ss($Yc())} +function WA(){WA=geb;vA();VA=new Tsb} +function hjd(a){a.a=0;a.b=0;return a} +function qfd(a,b){a.a=b.g+1;return a} +function yNd(a,b){aMd.call(this,a,b)} +function lGd(a,b){kGd.call(this,a,b)} +function N$d(a,b){zNd.call(this,a,b)} +function Whe(a,b){Q2d.call(this,a,b)} +function She(a,b){Phe.call(this,a,b)} +function RRd(a,b){PRd();Zjb(ORd,a,b)} +function sB(a,b){a.q.setTime(Xdb(b))} +function Xz(a){$wnd.clearTimeout(a)} +function cr(a){return Qb(a),new Dl(a)} +function mb(a,b){return dE(a)===dE(b)} +function Mw(a,b){return a.a.a.a.cc(b)} +function qeb(a,b){return zhb(a.a,0,b)} +function SSb(a){return MSb(RD(a,74))} +function Nfb(a){return eE((uFb(a),a))} +function Ofb(a){return eE((uFb(a),a))} +function gD(a){return hD(a.l,a.m,a.h)} +function egb(a,b){return hgb(a.a,b.a)} +function ygb(a,b){return Agb(a.a,b.a)} +function Sfb(a,b){return Qfb(a.a,b.a)} +function qhb(a,b){return a.indexOf(b)} +function nOc(a,b){return a.j[b.p]==2} +function cz(a,b){return a==b?0:a?1:-1} +function AB(a){return a<10?'0'+a:''+a} +function Kdb(a){return typeof a===ive} +function oZb(a){return a==jZb||a==mZb} +function pZb(a){return a==jZb||a==kZb} +function ELb(a,b){return hgb(a.g,b.g)} +function Q4b(a){return Wmb(a.b.b,a,0)} +function Q2b(){J2b.call(this,0,0,0,0)} +function Iub(){ctb.call(this,new gub)} +function Znb(a,b){Wnb(a,0,a.length,b)} +function Eyb(a,b){Rmb(a.a,b);return b} +function Fkc(a,b){lkc();return b.a+=a} +function Hkc(a,b){lkc();return b.a+=a} +function Gkc(a,b){lkc();return b.c+=a} +function ied(a,b){Rmb(a.c,b);return a} +function Ped(a,b){ofd(a.a,b);return a} +function ttb(a){this.a=Itb();this.b=a} +function Ntb(a){this.a=Itb();this.b=a} +function sjd(a){this.a=a.a;this.b=a.b} +function Dl(a){this.a=a;zl.call(this)} +function Gl(a){this.a=a;zl.call(this)} +function Tid(){Uid.call(this,0,0,0,0)} +function vfd(a){return ofd(new ufd,a)} +function Ksd(a){return iyd(RD(a,123))} +function Mvd(a){return a.vh()&&a.wh()} +function Dod(a){return a!=zod&&a!=Aod} +function Dmd(a){return a==ymd||a==zmd} +function Emd(a){return a==Bmd||a==xmd} +function xDc(a){return a==tDc||a==sDc} +function yrc(a,b){return hgb(a.g,b.g)} +function Yfe(a,b){return new Phe(b,a)} +function Zfe(a,b){return new Phe(b,a)} +function lr(a){return Dr(a.b.Kc(),a.a)} +function IXd(a,b){yXd(a,b);zXd(a,a.D)} +function Uxd(a,b,c){Vxd(a,b);Wxd(a,c)} +function zyd(a,b,c){Cyd(a,b);Ayd(a,c)} +function Byd(a,b,c){Dyd(a,b);Eyd(a,c)} +function Gzd(a,b,c){Hzd(a,b);Izd(a,c)} +function Nzd(a,b,c){Ozd(a,b);Pzd(a,c)} +function eh(a,b,c){bh.call(this,a,b,c)} +function zId(a){uId.call(this,a,true)} +function nAb(){dAb.call(this,'Tail',3)} +function iAb(){dAb.call(this,'Head',1)} +function ejb(a){Pib();fjb.call(this,a)} +function A3b(a){J2b.call(this,a,a,a,a)} +function Pmb(a){a.c=$C(jJ,rve,1,0,5,1)} +function yRb(a){a.b&&CRb(a);return a.a} +function zRb(a){a.b&&CRb(a);return a.c} +function mBb(a,b){if(dBb){return}a.b=b} +function YCb(a,b){return a[a.length]=b} +function _Cb(a,b){return a[a.length]=b} +function l5b(a,b){return NGd(b,MCd(a))} +function m5b(a,b){return NGd(b,MCd(a))} +function DDd(a,b){return lp(Co(a.d),b)} +function EDd(a,b){return lp(Co(a.g),b)} +function FDd(a,b){return lp(Co(a.j),b)} +function mGd(a,b){kGd.call(this,a.b,b)} +function s0d(a,b){WGd(tYd(a.a),v0d(b))} +function B4d(a,b){WGd(o4d(a.a),E4d(b))} +function Asd(a,b,c){Byd(c,c.i+a,c.j+b)} +function eFc(a,b,c){bD(a.c[b.g],b.g,c)} +function zVd(a,b,c){RD(a.c,71).Gi(b,c)} +function LMd(a,b,c){bD(a,b,c);return c} +function DJb(a){Umb(a.Sf(),new HJb(a))} +function Gvb(a){return a!=null?tb(a):0} +function aOd(a){return a==null?0:tb(a)} +function iue(a){Vse();Wse.call(this,a)} +function Ug(a){this.a=a;Og.call(this,a)} +function Zy(){Zy=geb;$wnd.Math.log(2)} +function s7d(){s7d=geb;r7d=($Sd(),ZSd)} +function FRc(){FRc=geb;ERc=new Zrb(u3)} +function Hde(){Hde=geb;new Ide;new bnb} +function Ide(){new Tsb;new Tsb;new Tsb} +function yue(){throw Adb(new kib(bMe))} +function Nue(){throw Adb(new kib(bMe))} +function Bue(){throw Adb(new kib(cMe))} +function Que(){throw Adb(new kib(cMe))} +function Gp(a){this.a=a;rf.call(this,a)} +function Np(a){this.a=a;rf.call(this,a)} +function Sq(a,b){tm();this.a=a;this.b=b} +function Jh(a,b){Qb(b);Ih(a).Jc(new jx)} +function _mb(a,b){Ynb(a.c,a.c.length,b)} +function xnb(a){return a.ab?1:0} +function Kgb(a,b){return Ddb(a,b)>0?a:b} +function hD(a,b,c){return {l:a,m:b,h:c}} +function Mvb(a,b){a.a!=null&&_Mc(b,a.a)} +function Lhc(a){Y0b(a,null);Z0b(a,null)} +function xkc(a,b,c){return Zjb(a.g,c,b)} +function bFc(a,b,c){return _Ec(b,c,a.c)} +function jOc(a,b,c){return Zjb(a.k,c,b)} +function pOc(a,b,c){qOc(a,b,c);return c} +function FOc(a,b){dOc();return b.n.b+=a} +function lUb(a){VTb.call(this);this.b=a} +function y2b(a){v2b.call(this);this.a=a} +function kAb(){dAb.call(this,'Range',2)} +function $Fb(a){this.b=a;this.a=new bnb} +function WQb(a){this.b=new gRb;this.a=a} +function Lub(a){a.a=new svb;a.c=new svb} +function nrc(a){a.a=new Tsb;a.d=new Tsb} +function $Sc(a){_Sc(a,null);aTc(a,null)} +function a2d(a,b){return xA(a.a,b,null)} +function Cdd(a,b){return Zjb(a.a,b.a,b)} +function ajd(a){return new rjd(a.a,a.b)} +function Pid(a){return new rjd(a.c,a.d)} +function Qid(a){return new rjd(a.c,a.d)} +function Ake(a,b){return Tfe(a.c,a.b,b)} +function ZD(a,b){return a!=null&&QD(a,b)} +function br(a,b){return Jr(a.Kc(),b)!=-1} +function Hr(a){return a.Ob()?a.Pb():null} +function _p(a){this.b=(yob(),new uqb(a))} +function zke(a){this.a=a;Tsb.call(this)} +function Uhe(){Q2d.call(this,null,null)} +function Yhe(){p3d.call(this,null,null)} +function As(){qs.call(this,'INSTANCE',0)} +function dXb(){_Wb();this.a=new Wed(UP)} +function Hhb(a){return Ihb(a,0,a.length)} +function Rv(a,b){return new ew(a.Kc(),b)} +function $sb(a,b){return a.a.Bc(b)!=null} +function hZd(a,b){sLd(a);a.Gc(RD(b,15))} +function ONd(a,b,c){a.c.bd(b,RD(c,136))} +function eOd(a,b,c){a.c.Ui(b,RD(c,136))} +function eub(a,b){if(a.c){rub(b);qub(b)}} +function oB(a,b){a.q.setHours(b);mB(a,b)} +function vTb(a,b){Zid(b,a.a.a.a,a.a.a.b)} +function tKb(a,b,c,d){bD(a.a[b.g],c.g,d)} +function oKb(a,b,c){return a.a[b.g][c.g]} +function AIc(a,b){return a.e[b.c.p][b.p]} +function TIc(a,b){return a.c[b.c.p][b.p]} +function pJc(a,b){return a.a[b.c.p][b.p]} +function mOc(a,b){return a.j[b.p]=AOc(b)} +function wAb(a,b){return a.a.Bc(b)!=null} +function wXc(a,b){return Kfb(UD(b.a))<=a} +function xXc(a,b){return Kfb(UD(b.a))>=a} +function vhd(a,b){return jhb(a.f,b.Pg())} +function cjd(a,b){return a.a*b.a+a.b*b.b} +function Wsd(a,b){return a.a0?b/(a*a):b*100} +function FUb(a,b){return a>0?b*b/a:b*b*100} +function $5b(a,b){return RD(cub(a.a,b),34)} +function doc(a,b){Mnc();return Rc(a,b.e,b)} +function NCc(a,b,c){GCc();return c.Mg(a,b)} +function L0c(a){B0c();return a.e.a+a.f.a/2} +function N0c(a,b,c){B0c();return c.e.a-a*b} +function V0c(a){B0c();return a.e.b+a.f.b/2} +function X0c(a,b,c){B0c();return c.e.b-a*b} +function _tb(a){a.d=new tub(a);a.e=new Tsb} +function x3c(){this.a=new Tp;this.b=new Tp} +function hmc(a){this.c=a;this.a=1;this.b=1} +function C$b(a){z$b();A$b(this);this.Ff(a)} +function Efd(a,b,c){Afd();a.pf(b)&&c.Cd(a)} +function Red(a,b,c){return Rmb(b,Ted(a,c))} +function Zid(a,b,c){a.a+=b;a.b+=c;return a} +function jjd(a,b,c){a.a*=b;a.b*=c;return a} +function mjd(a,b){a.a=b.a;a.b=b.b;return a} +function fjd(a){a.a=-a.a;a.b=-a.b;return a} +function njd(a,b,c){a.a-=b;a.b-=c;return a} +function Gjd(a){Yub.call(this);zjd(this,a)} +function Dbd(){qs.call(this,'GROW_TREE',0)} +function WRb(){qs.call(this,'POLYOMINO',0)} +function SVd(a,b,c){DVd.call(this,a,b,c,2)} +function r0d(a,b,c){VGd(tYd(a.a),b,v0d(c))} +function e3d(a,b){N2d();Q2d.call(this,a,b)} +function D3d(a,b){j3d();p3d.call(this,a,b)} +function F3d(a,b){j3d();D3d.call(this,a,b)} +function H3d(a,b){j3d();p3d.call(this,a,b)} +function PNd(a,b){return a.c.Fc(RD(b,136))} +function A4d(a,b,c){VGd(o4d(a.a),b,E4d(c))} +function Ard(a){this.c=a;Dyd(a,0);Eyd(a,0)} +function Z8d(a,b){s7d();N8d.call(this,a,b)} +function _8d(a,b){s7d();Z8d.call(this,a,b)} +function b9d(a,b){s7d();Z8d.call(this,a,b)} +function n9d(a,b){s7d();N8d.call(this,a,b)} +function d9d(a,b){s7d();b9d.call(this,a,b)} +function p9d(a,b){s7d();n9d.call(this,a,b)} +function v9d(a,b){s7d();N8d.call(this,a,b)} +function lge(a,b,c){return b.zl(a.e,a.c,c)} +function nge(a,b,c){return b.Al(a.e,a.c,c)} +function Wee(a,b,c){return tfe(Pee(a,b),c)} +function Age(a,b){return Vvd(a.e,RD(b,54))} +function _me(a){return a==null?null:Bqe(a)} +function dne(a){return a==null?null:Iqe(a)} +function gne(a){return a==null?null:jeb(a)} +function hne(a){return a==null?null:jeb(a)} +function TD(a){CFb(a==null||$D(a));return a} +function UD(a){CFb(a==null||_D(a));return a} +function WD(a){CFb(a==null||bE(a));return a} +function lfb(a){if(a.o!=null){return}Bfb(a)} +function lFb(a){if(!a){throw Adb(new _fb)}} +function pFb(a){if(!a){throw Adb(new yeb)}} +function sFb(a){if(!a){throw Adb(new Dvb)}} +function yFb(a){if(!a){throw Adb(new cgb)}} +function zmb(a){if(!a){throw Adb(new Jrb)}} +function jQd(){jQd=geb;iQd=new LQd;new lRd} +function u2c(){u2c=geb;t2c=new jGd('root')} +function d6d(){HWd.call(this);this.Bb|=txe} +function Pg(a,b){this.d=a;Lg(this);this.b=b} +function WCb(a,b){NCb.call(this,a);this.a=b} +function oDb(a,b){NCb.call(this,a);this.a=b} +function bh(a,b,c){lg.call(this,a,b,c,null)} +function fh(a,b,c){lg.call(this,a,b,c,null)} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Uf(a,b){this.a=a;Mf.call(this,a,b)} +function wB(a){this.q=new $wnd.Date(Xdb(a))} +function OPb(a){if(a>8){return 0}return a+1} +function iBb(a,b){if(dBb){return}Rmb(a.a,b)} +function P5b(a,b){H5b();return n2b(b.d.i,a)} +function qdc(a,b){Zcc();return new xdc(b,a)} +function HAb(a,b,c){return a.Ne(b,c)<=0?c:b} +function IAb(a,b,c){return a.Ne(b,c)<=0?b:c} +function rgd(a,b){return RD(cub(a.b,b),143)} +function tgd(a,b){return RD(cub(a.c,b),233)} +function amc(a){return RD(Vmb(a.a,a.b),294)} +function Mid(a){return new rjd(a.c,a.d+a.a)} +function Jeb(a){return (uFb(a),a)?1231:1237} +function EPc(a){return dOc(),xDc(RD(a,203))} +function RMb(){RMb=geb;QMb=xsb((Qpd(),Ppd))} +function YQb(a,b){b.a?ZQb(a,b):wAb(a.a,b.b)} +function aJd(a,b,c){++a.j;a.tj();$Gd(a,b,c)} +function $Id(a,b,c){++a.j;a.qj(b,a.Zi(b,c))} +function B2d(a,b,c){var d;d=a.fd(b);d.Rb(c)} +function Bzd(a,b,c){c=xvd(a,b,6,c);return c} +function izd(a,b,c){c=xvd(a,b,3,c);return c} +function KCd(a,b,c){c=xvd(a,b,9,c);return c} +function SKb(a,b){Ivb(b,Pye);a.f=b;return a} +function bOd(a,b){return (b&lve)%a.d.length} +function Bke(a,b,c){return age(a.c,a.b,b,c)} +function ZLd(a,b){this.c=a;ZHd.call(this,b)} +function w0d(a,b){this.a=a;Q_d.call(this,b)} +function F4d(a,b){this.a=a;Q_d.call(this,b)} +function kGd(a,b){jGd.call(this,a);this.a=b} +function U6d(a,b){L6d.call(this,a);this.a=b} +function S9d(a,b){L6d.call(this,a);this.a=b} +function jQb(a){gQb.call(this,0,0);this.f=a} +function _hb(a,b,c){a.a+=Ihb(b,0,c);return a} +function _A(a){!a.a&&(a.a=new jB);return a.a} +function qlb(a,b){var c;c=a.e;a.e=b;return c} +function Clb(a,b){var c;c=b;return !!a.Fe(c)} +function Keb(a,b){Geb();return a==b?0:a?1:-1} +function Ikb(a,b){a.a.bd(a.b,b);++a.b;a.c=-1} +function hg(a){a.b?hg(a.b):a.f.c.zc(a.e,a.d)} +function aub(a){akb(a.e);a.d.b=a.d;a.d.a=a.d} +function VDb(a,b,c){xDb();HEb(a,b.Ve(a.a,c))} +function Xrb(a,b,c){return Wrb(a,RD(b,22),c)} +function WEb(a,b){return cFb(new Array(b),a)} +function Fgb(a){return Ydb(Udb(a,32))^Ydb(a)} +function XD(a){return String.fromCharCode(a)} +function Dz(a){return a==null?null:a.message} +function Rz(a,b,c){return a.apply(b,c);var d} +function Btb(a,b){var c;c=a[Jxe];c.call(a,b)} +function Ctb(a,b){var c;c=a[Jxe];c.call(a,b)} +function O5b(a,b){H5b();return !n2b(b.d.i,a)} +function R2b(a,b,c,d){J2b.call(this,a,b,c,d)} +function TJb(){RJb.call(this);this.a=new pjd} +function v2b(){this.n=new pjd;this.o=new pjd} +function kGb(){this.b=new pjd;this.c=new bnb} +function cUb(){this.a=new bnb;this.b=new bnb} +function kWb(){this.a=new DTb;this.b=new vWb} +function e6b(){this.b=new gub;this.a=new gub} +function jIc(){this.b=new _sb;this.a=new _sb} +function vYc(){this.b=new Tsb;this.a=new Tsb} +function fWc(){this.b=new TVc;this.a=new IVc} +function Yhc(){this.a=new yqc;this.b=new Sqc} +function lNc(){this.a=new bnb;this.d=new bnb} +function RJb(){this.n=new z3b;this.i=new Tid} +function hq(a){this.a=(dk(a,iwe),new cnb(a))} +function oq(a){this.a=(dk(a,iwe),new cnb(a))} +function tLd(a){return a<100?null:new gLd(a)} +function Lac(a,b){return a.n.a=(uFb(b),b)+10} +function Mac(a,b){return a.n.a=(uFb(b),b)+10} +function DYd(a,b){return b==a||PHd(sYd(b),a)} +function nae(a,b){return Zjb(a.a,b,'')==null} +function Hee(a,b){var c;c=b.qi(a.a);return c} +function $id(a,b){a.a+=b.a;a.b+=b.b;return a} +function ojd(a,b){a.a-=b.a;a.b-=b.b;return a} +function sfd(a){aFb(a.j.c,0);a.a=-1;return a} +function rCd(a,b,c){c=xvd(a,b,11,c);return c} +function SDd(a,b,c){c!=null&&Kzd(b,uEd(a,c))} +function TDd(a,b,c){c!=null&&Lzd(b,uEd(a,c))} +function G5d(a,b,c,d){C5d.call(this,a,b,c,d)} +function oie(a,b,c,d){C5d.call(this,a,b,c,d)} +function sie(a,b,c,d){oie.call(this,a,b,c,d)} +function Nie(a,b,c,d){Iie.call(this,a,b,c,d)} +function Pie(a,b,c,d){Iie.call(this,a,b,c,d)} +function Vie(a,b,c,d){Iie.call(this,a,b,c,d)} +function Tie(a,b,c,d){Pie.call(this,a,b,c,d)} +function $ie(a,b,c,d){Pie.call(this,a,b,c,d)} +function Yie(a,b,c,d){Vie.call(this,a,b,c,d)} +function bje(a,b,c,d){$ie.call(this,a,b,c,d)} +function Dje(a,b,c,d){wje.call(this,a,b,c,d)} +function aMd(a,b){veb.call(this,HJe+a+NIe+b)} +function Hje(a,b){return a.jk().wi().ri(a,b)} +function Ije(a,b){return a.jk().wi().ti(a,b)} +function Lfb(a,b){return uFb(a),dE(a)===dE(b)} +function lhb(a,b){return uFb(a),dE(a)===dE(b)} +function mEb(a,b){return a.b.Bd(new pEb(a,b))} +function sEb(a,b){return a.b.Bd(new vEb(a,b))} +function yEb(a,b){return a.b.Bd(new BEb(a,b))} +function Bk(a,b){return a.e=RD(a.d.Kb(b),159)} +function uhb(a,b,c){return a.lastIndexOf(b,c)} +function wWb(a,b,c){return Qfb(a[b.a],a[c.a])} +function TWb(a,b){return pQb(b,(yCc(),gAc),a)} +function Lpc(a,b){return hgb(b.a.d.p,a.a.d.p)} +function Kpc(a,b){return hgb(a.a.d.p,b.a.d.p)} +function zTc(a,b){return Qfb(a.c-a.s,b.c-b.s)} +function qWc(a,b){return Qfb(a.b.e.a,b.b.e.a)} +function sWc(a,b){return Qfb(a.c.e.a,b.c.e.a)} +function $2b(a){return !a.c?-1:Wmb(a.c.a,a,0)} +function Cod(a){return a==vod||a==xod||a==wod} +function CMd(a,b){this.c=a;nMd.call(this,a,b)} +function fq(a,b,c){this.a=a;qc.call(this,b,c)} +function YDb(a){this.c=a;xxb.call(this,Sve,0)} +function rk(a,b,c){this.c=b;this.b=c;this.a=a} +function DMc(a){dMc();this.d=a;this.a=new wmb} +function ho(a){_l();this.a=(yob(),new Lqb(a))} +function Xmc(a,b){Dmd(a.f)?Ymc(a,b):Zmc(a,b)} +function Lxb(a,b){Mxb.call(this,a,a.length,b)} +function nBb(a,b){if(dBb){return}!!b&&(a.d=b)} +function ZNd(a,b){return ZD(b,15)&&_Gd(a.c,b)} +function AVd(a,b,c){return RD(a.c,71).Wk(b,c)} +function BVd(a,b,c){return RD(a.c,71).Xk(b,c)} +function mge(a,b,c){return lge(a,RD(b,343),c)} +function oge(a,b,c){return nge(a,RD(b,343),c)} +function Ige(a,b,c){return Hge(a,RD(b,343),c)} +function Kge(a,b,c){return Jge(a,RD(b,343),c)} +function Fn(a,b){return b==null?null:Xv(a.b,b)} +function Qeb(a){return _D(a)?(uFb(a),a):a.ue()} +function Rfb(a){return !isNaN(a)&&!isFinite(a)} +function Zub(a){Lub(this);Xub(this);ye(this,a)} +function dnb(a){Pmb(this);YEb(this.c,0,a.Pc())} +function Fsb(a,b,c){this.a=a;this.b=b;this.c=c} +function Vtb(a,b,c){this.a=a;this.b=b;this.c=c} +function hvb(a,b,c){this.d=a;this.b=c;this.a=b} +function aBb(a){this.a=a;gib();Hdb(Date.now())} +function wzb(a){Ckb(a.a);Yyb(a.c,a.b);a.b=null} +function wvb(){wvb=geb;uvb=new xvb;vvb=new zvb} +function KMd(){KMd=geb;JMd=$C(jJ,rve,1,0,5,1)} +function TTd(){TTd=geb;STd=$C(jJ,rve,1,0,5,1)} +function yUd(){yUd=geb;xUd=$C(jJ,rve,1,0,5,1)} +function _l(){_l=geb;new im((yob(),yob(),vob))} +function gAb(a){cAb();return ws((qAb(),pAb),a)} +function zBb(a){xBb();return ws((CBb(),BBb),a)} +function FHb(a){DHb();return ws((IHb(),HHb),a)} +function NHb(a){LHb();return ws((QHb(),PHb),a)} +function kIb(a){iIb();return ws((nIb(),mIb),a)} +function _Jb(a){ZJb();return ws((cKb(),bKb),a)} +function GKb(a){EKb();return ws((JKb(),IKb),a)} +function xLb(a){vLb();return ws((ALb(),zLb),a)} +function mMb(a){hMb();return ws((pMb(),oMb),a)} +function oOb(a){mOb();return ws((rOb(),qOb),a)} +function KPb(a){IPb();return ws((NPb(),MPb),a)} +function KRb(a){IRb();return ws((NRb(),MRb),a)} +function XRb(a){VRb();return ws(($Rb(),ZRb),a)} +function VUb(a){TUb();return ws((YUb(),XUb),a)} +function CWb(a){AWb();return ws((FWb(),EWb),a)} +function uXb(a){sXb();return ws((xXb(),wXb),a)} +function tZb(a){nZb();return ws((wZb(),vZb),a)} +function W$b(a){U$b();return ws((Z$b(),Y$b),a)} +function Mb(a,b){if(!a){throw Adb(new agb(b))}} +function Vb(a){if(!a){throw Adb(new dgb(tve))}} +function rFb(a,b){if(a!=b){throw Adb(new Jrb)}} +function KQb(a,b,c){this.a=a;this.b=b;this.c=c} +function lRb(a,b,c){this.a=a;this.b=b;this.c=c} +function h7b(a,b,c){this.a=a;this.b=b;this.c=c} +function J0b(a,b,c){this.b=a;this.a=b;this.c=c} +function dNb(a,b,c){this.b=a;this.c=b;this.a=c} +function oac(a,b,c){this.a=a;this.b=b;this.c=c} +function F1b(a,b,c){this.e=b;this.b=a;this.d=c} +function Ecc(a,b,c){this.b=a;this.a=b;this.c=c} +function UDb(a,b,c){xDb();a.a.Yd(b,c);return b} +function CJb(a){var b;b=new BJb;b.e=a;return b} +function _Nb(a){var b;b=new YNb;b.b=a;return b} +function U9b(){U9b=geb;S9b=new bac;T9b=new eac} +function Rec(){Rec=geb;Qec=new efc;Pec=new jfc} +function lkc(){lkc=geb;jkc=new Mkc;kkc=new Okc} +function loc(a){joc();return ws((ooc(),noc),a)} +function kcc(a){hcc();return ws((ncc(),mcc),a)} +function yec(a){vec();return ws((Bec(),Aec),a)} +function gnc(a){enc();return ws((jnc(),inc),a)} +function Enc(a){Bnc();return ws((Hnc(),Gnc),a)} +function gpc(a){epc();return ws((jpc(),ipc),a)} +function dtc(a){btc();return ws((gtc(),ftc),a)} +function ltc(a){jtc();return ws((otc(),ntc),a)} +function xtc(a){stc();return ws((Atc(),ztc),a)} +function Gtc(a){Etc();return ws((Jtc(),Itc),a)} +function Utc(a){Ptc();return ws((Xtc(),Wtc),a)} +function auc(a){$tc();return ws((duc(),cuc),a)} +function avc(a){$uc();return ws((dvc(),cvc),a)} +function qvc(a){ovc();return ws((tvc(),svc),a)} +function zvc(a){xvc();return ws((Cvc(),Bvc),a)} +function Ivc(a){Gvc();return ws((Lvc(),Kvc),a)} +function Qvc(a){Ovc();return ws((Tvc(),Svc),a)} +function Quc(a){Ouc();return ws((Tuc(),Suc),a)} +function juc(a){huc();return ws((muc(),luc),a)} +function wuc(a){tuc();return ws((zuc(),yuc),a)} +function Euc(a){Cuc();return ws((Huc(),Guc),a)} +function exc(a){cxc();return ws((hxc(),gxc),a)} +function eDc(a){_Cc();return ws((hDc(),gDc),a)} +function oDc(a){lDc();return ws((rDc(),qDc),a)} +function ADc(a){wDc();return ws((DDc(),CDc),a)} +function ODc(a){JDc();return ws((RDc(),QDc),a)} +function cEc(a){aEc();return ws((fEc(),eEc),a)} +function mEc(a){kEc();return ws((pEc(),oEc),a)} +function uEc(a){sEc();return ws((xEc(),wEc),a)} +function DEc(a){BEc();return ws((GEc(),FEc),a)} +function MEc(a){KEc();return ws((PEc(),OEc),a)} +function VEc(a){TEc();return ws((YEc(),XEc),a)} +function nFc(a){lFc();return ws((qFc(),pFc),a)} +function wFc(a){uFc();return ws((zFc(),yFc),a)} +function FFc(a){DFc();return ws((IFc(),HFc),a)} +function TKc(a){RKc();return ws((WKc(),VKc),a)} +function uNc(a){sNc();return ws((xNc(),wNc),a)} +function yQc(a){wQc();return ws((BQc(),AQc),a)} +function GQc(a){EQc();return ws((JQc(),IQc),a)} +function hTc(a){fTc();return ws((kTc(),jTc),a)} +function fVc(a){dVc();return ws((iVc(),hVc),a)} +function bWc(a){YVc();return ws((eWc(),dWc),a)} +function ZYc(a){WYc();return ws((aZc(),_Yc),a)} +function NZc(a){LZc();return ws((QZc(),PZc),a)} +function u_c(a){s_c();return ws((x_c(),w_c),a)} +function C_c(a){A_c();return ws((F_c(),E_c),a)} +function C2c(a){x2c();return ws((F2c(),E2c),a)} +function j3c(a){g3c();return ws((m3c(),l3c),a)} +function j4c(a){g4c();return ws((m4c(),l4c),a)} +function _3c(a){Y3c();return ws((c4c(),b4c),a)} +function m5c(a){j5c();return ws((p5c(),o5c),a)} +function w5c(a){t5c();return ws((z5c(),y5c),a)} +function h6c(a){f6c();return ws((k6c(),j6c),a)} +function C6c(a){z6c();return ws((F6c(),E6c),a)} +function b7c(a){_6c();return ws((e7c(),d7c),a)} +function E8c(a){z8c();return ws((H8c(),G8c),a)} +function R8b(a){P8b();return ws((U8b(),T8b),a)} +function t3b(a){r3b();return ws((w3b(),v3b),a)} +function g9c(a){b9c();return ws((j9c(),i9c),a)} +function G9c(a){B9c();return ws((J9c(),I9c),a)} +function uad(a){sad();return ws((xad(),wad),a)} +function xbd(a){sbd();return ws((Abd(),zbd),a)} +function ibd(a){gbd();return ws((lbd(),kbd),a)} +function Gbd(a){Cbd();return ws((Jbd(),Ibd),a)} +function Obd(a){Mbd();return ws((Rbd(),Qbd),a)} +function Zbd(a){Xbd();return ws((acd(),_bd),a)} +function fdd(a){_cd();return ws((idd(),hdd),a)} +function qdd(a){ldd();return ws((tdd(),sdd),a)} +function $hd(a){Yhd();return ws((bid(),aid),a)} +function mid(a){kid();return ws((pid(),oid),a)} +function Tjd(a){Rjd();return ws((Wjd(),Vjd),a)} +function wkd(a){ukd();return ws((zkd(),ykd),a)} +function Hmd(a){Cmd();return ws((Kmd(),Jmd),a)} +function Qmd(a){Omd();return ws((Tmd(),Smd),a)} +function $md(a){Ymd();return ws((bnd(),and),a)} +function knd(a){ind();return ws((nnd(),mnd),a)} +function Hnd(a){Fnd();return ws((Knd(),Jnd),a)} +function Snd(a){Pnd();return ws((Vnd(),Und),a)} +function god(a){dod();return ws((jod(),iod),a)} +function rod(a){pod();return ws((uod(),tod),a)} +function Fod(a){Bod();return ws((Iod(),Hod),a)} +function Tod(a){Pod();return ws((Wod(),Vod),a)} +function wpd(a){qpd();return ws((zpd(),ypd),a)} +function Spd(a){Qpd();return ws((Vpd(),Upd),a)} +function fqd(a){dqd();return ws((iqd(),hqd),a)} +function oqd(a){mqd();return ws((rqd(),qqd),a)} +function zsc(a,b){return (uFb(a),a)+(uFb(b),b)} +function wqd(a){uqd();return ws((Eqd(),Dqd),a)} +function Ird(a){Grd();return ws((Lrd(),Krd),a)} +function vtd(a){ttd();return ws((ytd(),xtd),a)} +function dMc(){dMc=geb;bMc=(qpd(),ppd);cMc=Xod} +function uqd(){uqd=geb;sqd=new zqd;tqd=new Bqd} +function wJc(a){!a.e&&(a.e=new bnb);return a.e} +function BTc(a,b){this.c=a;this.a=b;this.b=b-a} +function g8c(a,b,c){this.a=a;this.b=b;this.c=c} +function gud(a,b,c){this.a=a;this.b=b;this.c=c} +function Wdd(a,b,c){this.a=a;this.b=b;this.c=c} +function ced(a,b,c){this.a=a;this.b=b;this.c=c} +function pFd(a,b,c){this.a=a;this.b=b;this.c=c} +function ZPd(a,b,c){this.a=a;this.b=b;this.c=c} +function g7d(a,b,c){this.e=a;this.a=b;this.c=c} +function K7d(a,b,c){s7d();C7d.call(this,a,b,c)} +function f9d(a,b,c){s7d();O8d.call(this,a,b,c)} +function r9d(a,b,c){s7d();O8d.call(this,a,b,c)} +function x9d(a,b,c){s7d();O8d.call(this,a,b,c)} +function h9d(a,b,c){s7d();f9d.call(this,a,b,c)} +function j9d(a,b,c){s7d();f9d.call(this,a,b,c)} +function l9d(a,b,c){s7d();j9d.call(this,a,b,c)} +function t9d(a,b,c){s7d();r9d.call(this,a,b,c)} +function z9d(a,b,c){s7d();x9d.call(this,a,b,c)} +function S2b(a){J2b.call(this,a.d,a.c,a.a,a.b)} +function B3b(a){J2b.call(this,a.d,a.c,a.a,a.b)} +function Og(a){this.d=a;Lg(this);this.b=ed(a.d)} +function cGd(a){aGd();return ws((fGd(),eGd),a)} +function gk(a,b){Qb(a);Qb(b);return new hk(a,b)} +function dr(a,b){Qb(a);Qb(b);return new mr(a,b)} +function hr(a,b){Qb(a);Qb(b);return new sr(a,b)} +function Dr(a,b){Qb(a);Qb(b);return new Rr(a,b)} +function Uub(a){sFb(a.b!=0);return Wub(a,a.a.a)} +function Vub(a){sFb(a.b!=0);return Wub(a,a.c.b)} +function q$d(a){!a.c&&(a.c=new X9d);return a.c} +function cv(a){var b;b=new bnb;xr(b,a);return b} +function Vx(a){var b;b=new _sb;xr(b,a);return b} +function Yx(a){var b;b=new xAb;_q(b,a);return b} +function gv(a){var b;b=new Yub;_q(b,a);return b} +function RD(a,b){CFb(a==null||QD(a,b));return a} +function Mxb(a,b,c){Axb.call(this,b,c);this.a=a} +function kB(a,b){this.c=a;this.b=b;this.a=false} +function hCb(){this.a=';,;';this.b='';this.c=''} +function $Cb(a,b,c){this.b=a;pxb.call(this,b,c)} +function uub(a,b,c){this.c=a;xlb.call(this,b,c)} +function fZb(a,b,c){eZb.call(this,a,b);this.b=c} +function YEb(a,b,c){VEb(c,0,a,b,c.length,false)} +function JYb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function D2b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function XDb(a,b){if(b){a.b=b;a.a=(LCb(b),b.a)}} +function mFb(a,b){if(!a){throw Adb(new agb(b))}} +function zFb(a,b){if(!a){throw Adb(new dgb(b))}} +function qFb(a,b){if(!a){throw Adb(new zeb(b))}} +function zqc(a,b){mqc();return hgb(a.d.p,b.d.p)} +function T0c(a,b){B0c();return Qfb(a.e.b,b.e.b)} +function U0c(a,b){B0c();return Qfb(a.e.a,b.e.a)} +function Xoc(a,b){return hgb(N3b(a.d),N3b(b.d))} +function Izb(a,b){return !!b&&Jzb(a,b.d)?b:null} +function $lc(a,b){return b==(qpd(),ppd)?a.c:a.d} +function Qdb(a){return Edb(yD(Kdb(a)?Wdb(a):a))} +function Nid(a){return new rjd(a.c+a.b,a.d+a.a)} +function GSd(a){return a!=null&&!mSd(a,aSd,bSd)} +function DSd(a,b){return (JSd(a)<<4|JSd(b))&Bwe} +function Rid(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function y8b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function B8b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function u6d(a,b){var c;c=a.c;t6d(a,b);return c} +function Nqd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function kjd(a,b){gjd(a);a.a*=b;a.b*=b;return a} +function hrc(a,b,c){grc.call(this,b,c);this.d=a} +function PZd(a,b,c){kZd.call(this,a,b);this.c=c} +function Kfe(a,b,c){kZd.call(this,a,b);this.c=c} +function zUd(a){yUd();kUd.call(this);this.ci(a)} +function Yee(){ree();Zee.call(this,(YSd(),XSd))} +function Yse(a){Vse();++Use;return new Hte(0,a)} +function uke(){uke=geb;tke=(yob(),new mpb(eLe))} +function ux(){ux=geb;new wx((kl(),jl),(Wk(),Vk))} +function ugb(){ugb=geb;tgb=$C(bJ,Nve,17,256,0,1)} +function zUb(){this.b=Kfb(UD(iGd((yVb(),sVb))))} +function Pq(a){this.b=a;this.a=gn(this.b.a).Od()} +function mr(a,b){this.b=a;this.a=b;zl.call(this)} +function sr(a,b){this.a=a;this.b=b;zl.call(this)} +function s_d(a,b,c){this.a=a;N$d.call(this,b,c)} +function n_d(a,b,c){this.a=a;N$d.call(this,b,c)} +function sDd(a,b,c){var d;d=new OC(c);sC(a,b,d)} +function _Eb(a,b,c){var d;d=a[b];a[b]=c;return d} +function UEb(a){var b;b=a.slice();return dD(b,a)} +function SJb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function PKb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function QKb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function rub(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Mub(a,b){Pub(a,b,a.c.b,a.c);return true} +function w2b(a){if(a.a){return a.a}return R0b(a)} +function NSb(a){HSb();return JGd(a)==vCd(LGd(a))} +function OSb(a){HSb();return LGd(a)==vCd(JGd(a))} +function l_b(a,b){return k_b(a,new eZb(b.a,b.b))} +function xn(a,b){return fn(),ck(a,b),new zy(a,b)} +function fmc(a,b){return a.c=b){throw Adb(new web)}} +function JDb(a,b){return MDb(a,(uFb(b),new JAb(b)))} +function KDb(a,b){return MDb(a,(uFb(b),new LAb(b)))} +function prc(a,b,c){return qrc(a,RD(b,12),RD(c,12))} +function q4b(a){return J3b(),RD(a,12).g.c.length!=0} +function v4b(a){return J3b(),RD(a,12).e.c.length!=0} +function sdc(a,b){Zcc();return Qfb(b.a.o.a,a.a.o.a)} +function d_d(a,b){(b.Bb&QHe)!=0&&!a.a.o&&(a.a.o=b)} +function T3c(a,b){b.Ug("General 'Rotator",1);S3c(a)} +function MCc(a,b,c){b.qf(c,Kfb(UD(Wjb(a.b,c)))*a.a)} +function yid(a,b,c){tid();return xid(a,b)&&xid(a,c)} +function Rod(a){Pod();return !a.Hc(Lod)&&!a.Hc(Nod)} +function Nrc(a){if(a.e){return Src(a.e)}return null} +function Zdb(a){if(Kdb(a)){return ''+a}return GD(a)} +function XNc(a){var b;b=a;while(b.f){b=b.f}return b} +function HBb(a,b,c){bD(b,0,tCb(b[0],c[0]));return b} +function Gpc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function C5d(a,b,c,d){XZd.call(this,a,b,c);this.b=d} +function N3d(a,b,c,d,e){O3d.call(this,a,b,c,d,e,-1)} +function b4d(a,b,c,d,e){c4d.call(this,a,b,c,d,e,-1)} +function Iie(a,b,c,d){PZd.call(this,a,b,c);this.b=d} +function Xde(a){uId.call(this,a,false);this.a=false} +function Bqd(){vqd.call(this,'LOOKAHEAD_LAYOUT',1)} +function nNd(a){this.b=a;mMd.call(this,a);mNd(this)} +function vNd(a){this.b=a;BMd.call(this,a);uNd(this)} +function J5d(a,b,c){this.a=a;G5d.call(this,b,c,5,6)} +function wje(a,b,c,d){this.b=a;XZd.call(this,b,c,d)} +function Tj(a,b){this.b=a;Aj.call(this,a.b);this.a=b} +function NLc(a){this.a=LLc(a.a);this.b=new dnb(a.b)} +function Fx(a,b){tm();Ex.call(this,a,Pm(new mob(b)))} +function _se(a,b){Vse();++Use;return new aue(a,b,0)} +function bte(a,b){Vse();++Use;return new aue(6,a,b)} +function Ztb(a,b){uFb(b);while(a.Ob()){b.Cd(a.Pb())}} +function Ujb(a,b){return bE(b)?Yjb(a,b):!!qtb(a.f,b)} +function O_d(a,b){return b.Vh()?Vvd(a.b,RD(b,54)):b} +function whb(a,b){return lhb(a.substr(0,b.length),b)} +function Fl(a){return new is(new Il(a.a.length,a.a))} +function Oid(a){return new rjd(a.c+a.b/2,a.d+a.a/2)} +function yD(a){return hD(~a.l&dxe,~a.m&dxe,~a.h&exe)} +function cE(a){return typeof a===gve||typeof a===kve} +function akb(a){a.f=new ttb(a);a.i=new Ntb(a);++a.g} +function Klb(a){if(!a){throw Adb(new Dvb)}return a.d} +function smb(a){var b;b=omb(a);sFb(b!=null);return b} +function tmb(a){var b;b=pmb(a);sFb(b!=null);return b} +function tv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Ysb(a,b){var c;c=a.a.zc(b,a);return c==null} +function rAb(a,b){return a.a.zc(b,(Geb(),Eeb))==null} +function _nb(a){return new SDb(null,$nb(a,a.length))} +function yPb(a,b,c){return zPb(a,RD(b,42),RD(c,176))} +function Wrb(a,b,c){zsb(a.a,b);return _Eb(a.b,b.g,c)} +function fyb(a,b,c){lyb(c,a.a.c.length);$mb(a.a,c,b)} +function Knb(a,b,c,d){nFb(b,c,a.length);Onb(a,b,c,d)} +function Onb(a,b,c,d){var e;for(e=b;e0?$wnd.Math.log(a/b):-100} +function Agb(a,b){return Ddb(a,b)<0?-1:Ddb(a,b)>0?1:0} +function Dge(a,b){hZd(a,ZD(b,160)?b:RD(b,2036).Rl())} +function vFb(a,b){if(a==null){throw Adb(new Ogb(b))}} +function $nb(a,b){return jxb(b,a.length),new Gxb(a,b)} +function hsc(a,b){if(!b){return false}return ye(a,b)} +function Gs(){zs();return cD(WC(RG,1),jwe,549,0,[ys])} +function Xib(a){return a.e==0?a:new cjb(-a.e,a.d,a.a)} +function $Nb(a,b){return Qfb(a.c.c+a.c.b,b.c.c+b.c.b)} +function cvb(a,b){Pub(a.d,b,a.b.b,a.b);++a.a;a.c=null} +function JCb(a,b){!a.c?Rmb(a.b,b):JCb(a.c,b);return a} +function KB(a,b,c){var d;d=JB(a,b);LB(a,b,c);return d} +function Rnb(a,b,c){var d;for(d=0;d=a.g} +function bD(a,b,c){pFb(c==null||VC(a,c));return a[b]=c} +function yhb(a,b){BFb(b,a.length+1);return a.substr(b)} +function yxb(a,b){uFb(b);while(a.c=a){return new rDb}return iDb(a-1)} +function Y2b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function Zx(a){if(ZD(a,616)){return a}return new sy(a)} +function LCb(a){if(!a.c){MCb(a);a.d=true}else{LCb(a.c)}} +function ICb(a){if(!a.c){a.d=true;KCb(a)}else{a.c.$e()}} +function bHb(a){a.b=false;a.c=false;a.d=false;a.a=false} +function uMc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function _vd(a,b){var c;c=a.Ih(b);c>=0?a.ki(c):Tvd(a,b)} +function mtd(a,b){a.c<0||a.b.b0){a=a<<1|(a<0?1:0)}return a} +function BGc(a,b){var c;c=new R4b(a);ZEb(b.c,c);return c} +function FMb(a,b){a.u.Hc((Pod(),Lod))&&DMb(a,b);HMb(a,b)} +function Fvb(a,b){return dE(a)===dE(b)||a!=null&&pb(a,b)} +function Vrb(a,b){return Bsb(a.a,b)?a.b[RD(b,22).g]:null} +function YRb(){VRb();return cD(WC($O,1),jwe,489,0,[URb])} +function ybd(){sbd();return cD(WC(M1,1),jwe,490,0,[rbd])} +function Hbd(){Cbd();return cD(WC(N1,1),jwe,558,0,[Bbd])} +function gdd(){_cd();return cD(WC(V1,1),jwe,539,0,[$cd])} +function iyd(a){!a.n&&(a.n=new C5d(I4,a,1,7));return a.n} +function wCd(a){!a.c&&(a.c=new C5d(K4,a,9,9));return a.c} +function mzd(a){!a.c&&(a.c=new Yie(E4,a,5,8));return a.c} +function lzd(a){!a.b&&(a.b=new Yie(E4,a,4,7));return a.b} +function Sed(a){a.j.c.length=0;Ae(a.c);sfd(a.a);return a} +function Afe(a){a.e==fLe&&Gfe(a,Aee(a.g,a.b));return a.e} +function Bfe(a){a.f==fLe&&Hfe(a,Bee(a.g,a.b));return a.f} +function xBd(a,b,c,d){wBd(a,b,c,false);j1d(a,d);return a} +function oNd(a,b){this.b=a;nMd.call(this,a,b);mNd(this)} +function wNd(a,b){this.b=a;CMd.call(this,a,b);uNd(this)} +function Kmb(a){this.d=a;this.a=this.d.b;this.b=this.d.c} +function oy(a,b){this.b=a;this.c=b;this.a=new Osb(this.b)} +function ihb(a,b){BFb(b,a.length);return a.charCodeAt(b)} +function NDd(a,b){CGd(a,Kfb(vDd(b,'x')),Kfb(vDd(b,'y')))} +function $Dd(a,b){CGd(a,Kfb(vDd(b,'x')),Kfb(vDd(b,'y')))} +function CDb(a,b){MCb(a);return new SDb(a,new hEb(b,a.a))} +function GDb(a,b){MCb(a);return new SDb(a,new zEb(b,a.a))} +function HDb(a,b){MCb(a);return new WCb(a,new nEb(b,a.a))} +function IDb(a,b){MCb(a);return new oDb(a,new tEb(b,a.a))} +function Ty(a,b){return new Ry(RD(Qb(a),50),RD(Qb(b),50))} +function nHb(a,b){return Qfb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function gTb(a,b,c){c.a?Eyd(a,b.b-a.f/2):Dyd(a,b.a-a.g/2)} +function WYb(a,b){return Qfb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function RZb(a,b){NZb();return Qfb((uFb(a),a),(uFb(b),b))} +function wSd(a){return a!=null&&tpb(eSd,a.toLowerCase())} +function Ae(a){var b;for(b=a.Kc();b.Ob();){b.Pb();b.Qb()}} +function Ih(a){var b;b=a.b;!b&&(a.b=b=new Xh(a));return b} +function R0b(a){var b;b=Z5b(a);if(b){return b}return null} +function BSb(a,b){var c,d;c=a/b;d=eE(c);c>d&&++d;return d} +function Ck(a,b,c){var d;d=RD(a.d.Kb(c),159);!!d&&d.Nb(b)} +function Vhc(a,b,c){tqc(a.a,c);Jpc(c);Kqc(a.b,c);bqc(b,c)} +function oNc(a,b,c,d){this.a=a;this.c=b;this.b=c;this.d=d} +function ROc(a,b,c,d){this.c=a;this.b=b;this.a=c;this.d=d} +function uPc(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d} +function Uid(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d} +function GTc(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d} +function t1b(a,b,c,d){this.a=a;this.e=b;this.d=c;this.c=d} +function $td(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function ehb(a,b,c){this.a=ywe;this.d=a;this.b=b;this.c=c} +function fpc(a,b,c,d){qs.call(this,a,b);this.a=c;this.b=d} +function Uwb(a,b){this.d=(uFb(a),a);this.a=16449;this.c=b} +function CIc(a){this.a=new bnb;this.e=$C(kE,Nve,53,a,0,2)} +function ELc(a){a.Ug('No crossing minimization',1);a.Vg()} +function Evb(){yz.call(this,'There is no more element.')} +function OEd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function PEd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function h7d(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function x7d(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function C8d(a,b,c,d){s7d();M7d.call(this,b,c,d);this.a=a} +function J8d(a,b,c,d){s7d();M7d.call(this,b,c,d);this.a=a} +function lwd(a,b,c){var d,e;d=oSd(a);e=b.ti(c,d);return e} +function lBd(a){var b,c;c=(b=new s2d,b);l2d(c,a);return c} +function mBd(a){var b,c;c=(b=new s2d,b);p2d(c,a);return c} +function HDd(a,b){var c;c=Wjb(a.f,b);wEd(b,c);return null} +function uCd(a){!a.b&&(a.b=new C5d(G4,a,12,3));return a.b} +function VD(a){CFb(a==null||cE(a)&&!(a.Tm===keb));return a} +function gz(a){if(a.n){a.e!==rwe&&a.je();a.j=null}return a} +function Ng(a){ig(a.d);if(a.d.d!=a.c){throw Adb(new Jrb)}} +function Bkb(a){sFb(a.b0&&wPd(this)} +function Vg(a,b){this.a=a;Pg.call(this,a,RD(a.d,15).fd(b))} +function lrd(a,b){return Qfb(urd(a)*trd(a),urd(b)*trd(b))} +function mrd(a,b){return Qfb(urd(a)*trd(a),urd(b)*trd(b))} +function n5b(a){return ozd(a)&&Heb(TD(Gxd(a,(yCc(),OAc))))} +function Sfc(a,b){return Rc(a,RD(mQb(b,(yCc(),tBc)),17),b)} +function lic(a,b){RD(mQb(a,(Ywc(),qwc)),15).Fc(b);return b} +function C2b(a,b){a.b=b.b;a.c=b.c;a.d=b.d;a.a=b.a;return a} +function cEb(a,b,c,d){this.b=a;this.c=d;xxb.call(this,b,c)} +function Ulc(a,b,c){a.i=0;a.e=0;if(b==c){return}Qlc(a,b,c)} +function Vlc(a,b,c){a.i=0;a.e=0;if(b==c){return}Rlc(a,b,c)} +function akc(a,b,c){Wjc();return _Gb(RD(Wjb(a.e,b),529),c)} +function nd(a){var b;return b=a.f,!b?(a.f=new ne(a,a.c)):b} +function nTc(a,b){return VTc(a.j,b.s,b.c)+VTc(b.e,a.s,a.c)} +function Rrc(a,b){if(!!a.e&&!a.e.a){Prc(a.e,b);Rrc(a.e,b)}} +function Qrc(a,b){if(!!a.d&&!a.d.a){Prc(a.d,b);Qrc(a.d,b)}} +function krd(a,b){return -Qfb(urd(a)*trd(a),urd(b)*trd(b))} +function gtd(a){return RD(a.ld(),149).Pg()+':'+jeb(a.md())} +function EBd(){BBd(this,new yAd);this.wb=(lTd(),kTd);jTd()} +function G7b(a){this.b=new bnb;Tmb(this.b,this.b);this.a=a} +function WWc(a,b){new Yub;this.a=new Ejd;this.b=a;this.c=b} +function urb(){urb=geb;rrb=new wrb;srb=new wrb;trb=new Brb} +function yob(){yob=geb;vob=new Job;wob=new apb;xob=new ipb} +function FGb(){FGb=geb;CGb=new AGb;EGb=new fHb;DGb=new YGb} +function HSb(){HSb=geb;GSb=new bnb;FSb=new Tsb;ESb=new bnb} +function Rb(a,b){if(a==null){throw Adb(new Ogb(b))}return a} +function tCd(a){!a.a&&(a.a=new C5d(J4,a,10,11));return a.a} +function uYd(a){!a.q&&(a.q=new C5d(s7,a,11,10));return a.q} +function xYd(a){!a.s&&(a.s=new C5d(y7,a,21,17));return a.s} +function er(a){Qb(a);return Er(new is(Mr(a.a.Kc(),new ir)))} +function hfd(a,b){rb(a);rb(b);return ns(RD(a,22),RD(b,22))} +function qDd(a,b,c){var d,e;d=Qeb(c);e=new hC(d);sC(a,b,e)} +function d4d(a,b,c,d,e,f){c4d.call(this,a,b,c,d,e,f?-2:-1)} +function sje(a,b,c,d){kZd.call(this,b,c);this.b=a;this.a=d} +function Ry(a,b){wi.call(this,new ezb(a));this.a=a;this.b=b} +function Gu(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1} +function Dkc(a){lkc();var b;b=RD(a.g,10);b.n.a=a.d.c+b.d.b} +function fA(){fA=geb;var a,b;b=!lA();a=new tA;eA=b?new mA:a} +function Hob(a){yob();return ZD(a,59)?new irb(a):new Upb(a)} +function Ux(a){return ZD(a,16)?new btb(RD(a,16)):Vx(a.Kc())} +function Vi(a){return new ij(a,a.e.Rd().gc()*a.c.Rd().gc())} +function fj(a){return new sj(a,a.e.Rd().gc()*a.c.Rd().gc())} +function Iz(a){return !!a&&!!a.hashCode?a.hashCode():kFb(a)} +function Yjb(a,b){return b==null?!!qtb(a.f,null):Jtb(a.i,b)} +function hYb(a,b){var c;c=$sb(a.a,b);c&&(b.d=null);return c} +function MGb(a,b,c){if(a.f){return a.f.ef(b,c)}return false} +function cFc(a,b,c,d){bD(a.c[b.g],c.g,d);bD(a.c[c.g],b.g,d)} +function fFc(a,b,c,d){bD(a.c[b.g],b.g,c);bD(a.b[b.g],b.g,d)} +function sXc(a,b,c){return Kfb(UD(c.a))<=a&&Kfb(UD(c.b))>=b} +function yJc(a,b){this.g=a;this.d=cD(WC(jR,1),WAe,10,0,[b])} +function lHb(a){this.c=a;this.b=new yAb(RD(Qb(new oHb),50))} +function UYb(a){this.c=a;this.b=new yAb(RD(Qb(new XYb),50))} +function $Qb(a){this.b=a;this.a=new yAb(RD(Qb(new bRb),50))} +function tRc(){this.b=new _sb;this.d=new Yub;this.e=new Fyb} +function VTb(){this.c=new pjd;this.d=new pjd;this.e=new pjd} +function a1b(){this.a=new Ejd;this.b=(dk(3,iwe),new cnb(3))} +function i7d(a,b){this.e=a;this.a=jJ;this.b=pje(b);this.c=b} +function Vid(a){this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a} +function VLd(a,b,c,d,e,f){this.a=a;NKd.call(this,b,c,d,e,f)} +function aLd(a,b,c,d,e,f){this.a=a;NKd.call(this,b,c,d,e,f)} +function fge(a,b,c,d,e,f,g){return new lle(a.e,b,c,d,e,f,g)} +function xhb(a,b,c){return c>=0&&lhb(a.substr(c,b.length),b)} +function hGd(a,b){return ZD(b,149)&&lhb(a.b,RD(b,149).Pg())} +function Tde(a,b){return a.a?b.Gh().Kc():RD(b.Gh(),71).Ii()} +function Qqb(a,b){var c;c=a.b.Qc(b);Rqb(c,a.b.gc());return c} +function Ivb(a,b){if(a==null){throw Adb(new Ogb(b))}return a} +function zYd(a){if(!a.u){yYd(a);a.u=new w0d(a,a)}return a.u} +function Kx(a){this.a=(yob(),ZD(a,59)?new irb(a):new Upb(a))} +function Uwd(a){var b;b=RD(Ywd(a,16),29);return !b?a.ii():b} +function lz(a,b){var c;c=nfb(a.Rm);return b==null?c:c+': '+b} +function zhb(a,b,c){AFb(b,c,a.length);return a.substr(b,c-b)} +function VKb(a,b){RJb.call(this);KKb(this);this.a=a;this.c=b} +function neb(a){!a?vve:lz(a,a.ie());String.fromCharCode(10)} +function Wz(a){Qz();$wnd.setTimeout(function(){throw a},0)} +function GHb(){DHb();return cD(WC(uN,1),jwe,436,0,[CHb,BHb])} +function OHb(){LHb();return cD(WC(vN,1),jwe,435,0,[JHb,KHb])} +function WUb(){TUb();return cD(WC(BP,1),jwe,432,0,[RUb,SUb])} +function S8b(){P8b();return cD(WC(vS,1),jwe,517,0,[O8b,N8b])} +function Rvc(){Ovc();return cD(WC(lX,1),jwe,429,0,[Mvc,Nvc])} +function buc(){$tc();return cD(WC(cX,1),jwe,428,0,[Ytc,Ztc])} +function mtc(){jtc();return cD(WC($W,1),jwe,431,0,[htc,itc])} +function vEc(){sEc();return cD(WC(xX,1),jwe,430,0,[qEc,rEc])} +function vNc(){sNc();return cD(WC(MY,1),jwe,531,0,[rNc,qNc])} +function D2c(){x2c();return cD(WC(s0,1),jwe,501,0,[v2c,w2c])} +function zQc(){wQc();return cD(WC(FZ,1),jwe,523,0,[vQc,uQc])} +function HQc(){EQc();return cD(WC(GZ,1),jwe,522,0,[CQc,DQc])} +function iTc(){fTc();return cD(WC(b$,1),jwe,528,0,[eTc,dTc])} +function Fuc(){Cuc();return cD(WC(fX,1),jwe,488,0,[Buc,Auc])} +function F8c(){z8c();return cD(WC(l1,1),jwe,491,0,[x8c,y8c])} +function H9c(){B9c();return cD(WC(t1,1),jwe,492,0,[z9c,A9c])} +function D_c(){A_c();return cD(WC(K_,1),jwe,433,0,[z_c,y_c])} +function a4c(){Y3c();return cD(WC(H0,1),jwe,434,0,[W3c,X3c])} +function gVc(){dVc();return cD(WC(w$,1),jwe,465,0,[bVc,cVc])} +function Pbd(){Mbd();return cD(WC(O1,1),jwe,438,0,[Lbd,Kbd])} +function rdd(){ldd();return cD(WC(W1,1),jwe,437,0,[kdd,jdd])} +function xqd(){uqd();return cD(WC(M3,1),jwe,347,0,[sqd,tqd])} +function Jvd(a,b,c,d){return c>=0?a.Uh(b,c,d):a.Ch(null,c,d)} +function ltd(a){if(a.b.b==0){return a.a.sf()}return Uub(a.b)} +function vKd(a){if(a.p!=5)throw Adb(new cgb);return Ydb(a.f)} +function EKd(a){if(a.p!=5)throw Adb(new cgb);return Ydb(a.k)} +function P$d(a){dE(a.a)===dE((lYd(),kYd))&&Q$d(a);return a.a} +function iad(a,b){a.b=b;a.c>0&&a.b>0&&(a.g=Aad(a.c,a.b,a.a))} +function jad(a,b){a.c=b;a.c>0&&a.b>0&&(a.g=Aad(a.c,a.b,a.a))} +function BUc(a,b){yUc(this,new rjd(a.a,a.b));zUc(this,gv(b))} +function Tp(){Sp.call(this,new Usb(Sv(12)));Lb(true);this.a=2} +function eue(a,b,c){Vse();Wse.call(this,a);this.b=b;this.a=c} +function C7d(a,b,c){s7d();t7d.call(this,b);this.a=a;this.b=c} +function qub(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function Tub(a){return a.b==0?null:(sFb(a.b!=0),Wub(a,a.a.a))} +function Xjb(a,b){return b==null?Wd(qtb(a.f,null)):Ktb(a.i,b)} +function bzb(a,b,c,d,e){return new Kzb(a,(cAb(),aAb),b,c,d,e)} +function Fnb(a,b){oFb(b);return Hnb(a,$C(kE,Pwe,28,b,15,1),b)} +function Tx(a,b){Rb(a,'set1');Rb(b,'set2');return new ey(a,b)} +function Kz(a,b){var c=Jz[a.charCodeAt(0)];return c==null?a:c} +function Xyb(a,b){var c,d;c=b;d=new Gzb;Zyb(a,c,d);return d.d} +function EMb(a,b,c,d){var e;e=new TJb;b.a[c.g]=e;Wrb(a.b,d,e)} +function SXb(a,b){var c;c=BXb(a.f,b);return $id(fjd(c),a.f.d)} +function RFb(a){var b;EJb(a.a);DJb(a.a);b=new PJb(a.a);LJb(b)} +function _Mb(a,b){$Mb(a,true);Umb(a.e.Rf(),new dNb(a,true,b))} +function PSb(a,b){HSb();return a==vCd(JGd(b))||a==vCd(LGd(b))} +function R0c(a,b){B0c();return RD(mQb(b,(h_c(),f_c)),17).a==a} +function eE(a){return Math.max(Math.min(a,lve),-2147483648)|0} +function sy(a){this.a=RD(Qb(a),277);this.b=(yob(),new jrb(a))} +function qbd(a,b,c){this.i=new bnb;this.b=a;this.g=b;this.a=c} +function had(a,b,c){this.a=new bnb;this.e=a;this.f=b;this.c=c} +function _9c(a,b,c){this.c=new bnb;this.e=a;this.f=b;this.b=c} +function TKb(a){RJb.call(this);KKb(this);this.a=a;this.c=true} +function ieb(a){function b(){} +;b.prototype=a||{};return new b} +function zfb(a){if(a.Ae()){return null}var b=a.n;return eeb[b]} +function kzd(a){if(a.Db>>16!=3)return null;return RD(a.Cb,27)} +function MCd(a){if(a.Db>>16!=9)return null;return RD(a.Cb,27)} +function Fzd(a){if(a.Db>>16!=6)return null;return RD(a.Cb,74)} +function dVc(){dVc=geb;bVc=new eVc(Nye,0);cVc=new eVc(Oye,1)} +function wQc(){wQc=geb;vQc=new xQc(Oye,0);uQc=new xQc(Nye,1)} +function EQc(){EQc=geb;CQc=new FQc(Zye,0);DQc=new FQc('UP',1)} +function Is(){Is=geb;Hs=ss((zs(),cD(WC(RG,1),jwe,549,0,[ys])))} +function Wx(a){var b;b=new atb(Sv(a.length));zob(b,a);return b} +function B2b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function qmb(a,b){if(kmb(a,b)){Jmb(a);return true}return false} +function qC(a,b){if(b==null){throw Adb(new Ngb)}return rC(a,b)} +function nB(a,b){var c;c=a.q.getHours();a.q.setDate(b);mB(a,c)} +function Xvd(a,b,c){var d;d=a.Ih(b);d>=0?a.bi(d,c):Svd(a,b,c)} +function Lvd(a,b){var c;c=a.Ih(b);return c>=0?a.Wh(c):Rvd(a,b)} +function zo(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Yd(c.g,c.i)}} +function pMc(a,b,c){var d;d=qMc(a,b,c);a.b=new _Lc(d.c.length)} +function HId(a,b,c){EId();!!a&&Zjb(DId,a,b);!!a&&Zjb(CId,a,c)} +function bfc(a,b){Rec();return Geb(),RD(b.a,17).a0} +function sId(a){var b;b=a.d;b=a.bj(a.f);WGd(a,b);return b.Ob()} +function bHd(a,b){var c;c=new Kub(b);Ve(c,a);return new dnb(c)} +function qKd(a){if(a.p!=0)throw Adb(new cgb);return Pdb(a.f,0)} +function zKd(a){if(a.p!=0)throw Adb(new cgb);return Pdb(a.k,0)} +function gBd(a){if(a.Db>>16!=7)return null;return RD(a.Cb,241)} +function xXd(a){if(a.Db>>16!=6)return null;return RD(a.Cb,241)} +function dCd(a){if(a.Db>>16!=7)return null;return RD(a.Cb,167)} +function vCd(a){if(a.Db>>16!=11)return null;return RD(a.Cb,27)} +function uWd(a){if(a.Db>>16!=17)return null;return RD(a.Cb,29)} +function kVd(a){if(a.Db>>16!=3)return null;return RD(a.Cb,155)} +function BDb(a){var b;MCb(a);b=new _sb;return CDb(a,new aEb(b))} +function xfb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.ve(b))} +function qB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);mB(a,c)} +function oz(a,b){ez(this);this.f=b;this.g=a;gz(this);this.je()} +function TQb(a,b){this.a=a;this.c=ajd(this.a);this.b=new Vid(b)} +function aGb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new dnb(c))} +function s$b(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new dnb(c))} +function _Kc(a){this.a=a;this.b=$C(qY,Nve,2043,a.e.length,0,2)} +function fGb(){this.a=new Iub;this.e=new _sb;this.g=0;this.i=0} +function EId(){EId=geb;DId=new Tsb;CId=new Tsb;IId(zK,new JId)} +function KFc(){KFc=geb;JFc=nfd(new ufd,(sXb(),rXb),(hcc(),$bc))} +function RFc(){RFc=geb;QFc=nfd(new ufd,(sXb(),rXb),(hcc(),$bc))} +function gGc(){gGc=geb;fGc=nfd(new ufd,(sXb(),rXb),(hcc(),$bc))} +function ANc(){ANc=geb;zNc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function dOc(){dOc=geb;cOc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function gQc(){gQc=geb;fQc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function WQc(){WQc=geb;VQc=pfd(new ufd,(sXb(),rXb),(hcc(),ybc))} +function dZd(a,b,c,d,e,f){return new P3d(a.e,b,a.Lj(),c,d,e,f)} +function $jb(a,b,c){return b==null?rtb(a.f,null,c):Ltb(a.i,b,c)} +function Y0b(a,b){!!a.c&&Ymb(a.c.g,a);a.c=b;!!a.c&&Rmb(a.c.g,a)} +function g3b(a,b){!!a.c&&Ymb(a.c.a,a);a.c=b;!!a.c&&Rmb(a.c.a,a)} +function P3b(a,b){!!a.i&&Ymb(a.i.j,a);a.i=b;!!a.i&&Rmb(a.i.j,a)} +function Z0b(a,b){!!a.d&&Ymb(a.d.e,a);a.d=b;!!a.d&&Rmb(a.d.e,a)} +function _Sc(a,b){!!a.a&&Ymb(a.a.k,a);a.a=b;!!a.a&&Rmb(a.a.k,a)} +function aTc(a,b){!!a.b&&Ymb(a.b.f,a);a.b=b;!!a.b&&Rmb(a.b.f,a)} +function Odd(a,b){Pdd(a,a.b,a.c);RD(a.b.b,68);!!b&&RD(b.b,68).b} +function j2c(a,b){return Qfb(RD(a.c,65).c.e.b,RD(b.c,65).c.e.b)} +function k2c(a,b){return Qfb(RD(a.c,65).c.e.a,RD(b.c,65).c.e.a)} +function YXb(a){NXb();return Geb(),RD(a.a,86).d.e!=0?true:false} +function LXd(a,b){ZD(a.Cb,184)&&(RD(a.Cb,184).tb=null);PAd(a,b)} +function CWd(a,b){ZD(a.Cb,90)&&v$d(yYd(RD(a.Cb,90)),4);PAd(a,b)} +function _5d(a,b){a6d(a,b);ZD(a.Cb,90)&&v$d(yYd(RD(a.Cb,90)),2)} +function JFd(a,b){var c,d;c=b.c;d=c!=null;d&&oDd(a,new OC(b.c))} +function v0d(a){var b,c;c=(jTd(),b=new s2d,b);l2d(c,a);return c} +function E4d(a){var b,c;c=(jTd(),b=new s2d,b);l2d(c,a);return c} +function Fr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function nq(a,b,c){Rmb(a.a,(fn(),ck(b,c),new gp(b,c)));return a} +function rge(a,b){return nke(),wWd(b)?new ole(b,a):new Eke(b,a)} +function ojb(a){Pib();return Ddb(a,0)>=0?jjb(a):Xib(jjb(Odb(a)))} +function Asb(a){var b;b=RD(UEb(a.b),9);return new Fsb(a.a,b,a.c)} +function Qw(a,b){var c;c=RD(Xv(nd(a.a),b),16);return !c?0:c.gc()} +function Zmb(a,b,c){var d;xFb(b,c,a.c.length);d=c-b;$Eb(a.c,b,d)} +function Rkb(a,b,c){xFb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function fgd(a){this.c=new Yub;this.b=a.b;this.d=a.c;this.a=a.a} +function qjd(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function bTc(a,b,c,d){this.c=a;this.d=d;_Sc(this,b);aTc(this,c)} +function Si(a,b){Qi.call(this,new Usb(Sv(a)));dk(b,Mve);this.a=b} +function Ryb(a,b,c){return new Kzb(a,(cAb(),_zb),null,false,b,c)} +function czb(a,b,c){return new Kzb(a,(cAb(),bAb),b,c,null,false)} +function ABb(){xBb();return cD(WC(QL,1),jwe,108,0,[uBb,vBb,wBb])} +function yLb(){vLb();return cD(WC(TN,1),jwe,472,0,[uLb,tLb,sLb])} +function HKb(){EKb();return cD(WC(MN,1),jwe,471,0,[CKb,BKb,DKb])} +function aKb(){ZJb();return cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])} +function DWb(){AWb();return cD(WC(JP,1),jwe,391,0,[yWb,xWb,zWb])} +function moc(){joc();return cD(WC(UV,1),jwe,372,0,[ioc,hoc,goc])} +function ytc(){stc();return cD(WC(_W,1),jwe,322,0,[qtc,ptc,rtc])} +function Htc(){Etc();return cD(WC(aX,1),jwe,351,0,[Btc,Dtc,Ctc])} +function kuc(){huc();return cD(WC(dX,1),jwe,460,0,[fuc,euc,guc])} +function Avc(){xvc();return cD(WC(jX,1),jwe,299,0,[vvc,wvc,uvc])} +function Jvc(){Gvc();return cD(WC(kX,1),jwe,311,0,[Evc,Fvc,Dvc])} +function pDc(){lDc();return cD(WC(sX,1),jwe,390,0,[iDc,jDc,kDc])} +function EEc(){BEc();return cD(WC(yX,1),jwe,463,0,[AEc,yEc,zEc])} +function NEc(){KEc();return cD(WC(zX,1),jwe,387,0,[HEc,IEc,JEc])} +function WEc(){TEc();return cD(WC(AX,1),jwe,349,0,[SEc,QEc,REc])} +function oFc(){lFc();return cD(WC(CX,1),jwe,350,0,[iFc,jFc,kFc])} +function xFc(){uFc();return cD(WC(DX,1),jwe,352,0,[tFc,rFc,sFc])} +function GFc(){DFc();return cD(WC(EX,1),jwe,388,0,[BFc,CFc,AFc])} +function UKc(){RKc();return cD(WC(nY,1),jwe,464,0,[OKc,PKc,QKc])} +function K3b(a){return xjd(cD(WC(l3,1),Nve,8,0,[a.i.n,a.n,a.a]))} +function OZc(){LZc();return cD(WC(F_,1),jwe,392,0,[KZc,JZc,IZc])} +function H_c(){H_c=geb;G_c=nfd(new ufd,(YVc(),WVc),(WYc(),MYc))} +function A_c(){A_c=geb;z_c=new B_c('DFS',0);y_c=new B_c('BFS',1)} +function TQc(a,b,c){var d;d=new SQc;d.b=b;d.a=c;++b.b;Rmb(a.d,d)} +function NTb(a,b,c){var d;d=new sjd(c.d);$id(d,a);CGd(b,d.a,d.b)} +function Nwb(a,b){Mwb(a,Ydb(Cdb(Tdb(b,24),Pxe)),Ydb(Cdb(b,Pxe)))} +function wFb(a,b){if(a<0||a>b){throw Adb(new veb(cye+a+dye+b))}} +function tFb(a,b){if(a<0||a>=b){throw Adb(new veb(cye+a+dye+b))}} +function BFb(a,b){if(a<0||a>=b){throw Adb(new eib(cye+a+dye+b))}} +function Swb(a,b){this.b=(uFb(a),a);this.a=(b&qxe)==0?b|64|Ove:b} +function ODb(a){var b;MCb(a);b=(urb(),urb(),srb);return PDb(a,b)} +function R9c(a,b,c){var d;d=S9c(a,b,false);return d.b<=b&&d.a<=c} +function h9c(){b9c();return cD(WC(o1,1),jwe,439,0,[$8c,a9c,_8c])} +function c7c(){_6c();return cD(WC(a1,1),jwe,394,0,[Z6c,$6c,Y6c])} +function i6c(){f6c();return cD(WC(V0,1),jwe,445,0,[c6c,d6c,e6c])} +function D6c(){z6c();return cD(WC(Z0,1),jwe,456,0,[w6c,y6c,x6c])} +function k4c(){g4c();return cD(WC(I0,1),jwe,393,0,[d4c,e4c,f4c])} +function x5c(){t5c();return cD(WC(N0,1),jwe,300,0,[r5c,s5c,q5c])} +function Ind(){Fnd();return cD(WC(y3,1),jwe,346,0,[Dnd,Cnd,End])} +function jbd(){gbd();return cD(WC(I1,1),jwe,444,0,[dbd,ebd,fbd])} +function Rmd(){Omd();return cD(WC(t3,1),jwe,278,0,[Lmd,Mmd,Nmd])} +function pqd(){mqd();return cD(WC(J3,1),jwe,280,0,[kqd,jqd,lqd])} +function bv(a){Qb(a);return ZD(a,16)?new dnb(RD(a,16)):cv(a.Kc())} +function Hz(a,b){return !!a&&!!a.equals?a.equals(b):dE(a)===dE(b)} +function Cdb(a,b){return Edb(tD(Kdb(a)?Wdb(a):a,Kdb(b)?Wdb(b):b))} +function Rdb(a,b){return Edb(zD(Kdb(a)?Wdb(a):a,Kdb(b)?Wdb(b):b))} +function $db(a,b){return Edb(HD(Kdb(a)?Wdb(a):a,Kdb(b)?Wdb(b):b))} +function xs(a,b){var c;c=(uFb(a),a).g;lFb(!!c);uFb(b);return c(b)} +function rv(a,b){var c,d;d=tv(a,b);c=a.a.fd(d);return new Gv(a,c)} +function CXd(a){if(a.Db>>16!=6)return null;return RD(yvd(a),241)} +function sKd(a){if(a.p!=2)throw Adb(new cgb);return Ydb(a.f)&Bwe} +function BKd(a){if(a.p!=2)throw Adb(new cgb);return Ydb(a.k)&Bwe} +function ynb(a){sFb(a.ad?1:0} +function Hmc(a,b){var c,d;c=Gmc(b);d=c;return RD(Wjb(a.c,d),17).a} +function CMc(a,b,c){var d;d=a.d[b.p];a.d[b.p]=a.d[c.p];a.d[c.p]=d} +function Jqd(a,b,c){var d;if(a.n&&!!b&&!!c){d=new otd;Rmb(a.e,d)}} +function gYb(a,b){Ysb(a.a,b);if(b.d){throw Adb(new yz(jye))}b.d=a} +function Had(a,b){this.a=new bnb;this.d=new bnb;this.f=a;this.c=b} +function RWb(){this.c=new dXb;this.a=new I_b;this.b=new E0b;g0b()} +function med(){hed();this.b=new Tsb;this.a=new Tsb;this.c=new bnb} +function KKd(a,b,c){this.d=a;this.j=b;this.e=c;this.o=-1;this.p=3} +function LKd(a,b,c){this.d=a;this.k=b;this.f=c;this.o=-1;this.p=5} +function S3d(a,b,c,d,e,f){R3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function U3d(a,b,c,d,e,f){T3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function W3d(a,b,c,d,e,f){V3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function Y3d(a,b,c,d,e,f){X3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function $3d(a,b,c,d,e,f){Z3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function a4d(a,b,c,d,e,f){_3d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function f4d(a,b,c,d,e,f){e4d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function h4d(a,b,c,d,e,f){g4d.call(this,a,b,c,d,e);f&&(this.o=-2)} +function N7d(a,b,c,d){t7d.call(this,c);this.b=a;this.c=b;this.d=d} +function mfe(a,b){this.f=a;this.a=(ree(),pee);this.c=pee;this.b=b} +function Jfe(a,b){this.g=a;this.d=(ree(),qee);this.a=qee;this.b=b} +function Gme(a,b){!a.c&&(a.c=new Uge(a,0));Fge(a.c,(nme(),fme),b)} +function Oge(a,b){return Pge(a,b,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function lB(a,b){return Agb(Hdb(a.q.getTime()),Hdb(b.q.getTime()))} +function gj(a){return fk(a.e.Rd().gc()*a.c.Rd().gc(),16,new qj(a))} +function CYd(a){return !!a.u&&tYd(a.u.a).i!=0&&!(!!a.n&&d$d(a.n))} +function p4d(a){return !!a.a&&o4d(a.a.a).i!=0&&!(!!a.b&&o5d(a.b))} +function Cxd(a,b){if(b==0){return !!a.o&&a.o.f!=0}return Kvd(a,b)} +function Cc(a,b,c){var d;d=RD(a.Zb().xc(b),16);return !!d&&d.Hc(c)} +function Gc(a,b,c){var d;d=RD(a.Zb().xc(b),16);return !!d&&d.Mc(c)} +function _yb(a,b){var c;c=1-b;a.a[c]=azb(a.a[c],c);return azb(a,b)} +function DFb(a,b){var c,d;d=Cdb(a,yxe);c=Sdb(b,32);return Rdb(c,d)} +function bGb(a,b,c){var d;d=(Qb(a),new dnb(a));_Fb(new aGb(d,b,c))} +function t$b(a,b,c){var d;d=(Qb(a),new dnb(a));r$b(new s$b(d,b,c))} +function vBd(a,b,c,d,e,f){wBd(a,b,c,f);EYd(a,d);FYd(a,e);return a} +function Xhb(a,b,c,d){a.a+=''+zhb(b==null?vve:jeb(b),c,d);return a} +function Jkb(a,b){this.a=a;Dkb.call(this,a);wFb(b,a.gc());this.b=b} +function xmb(a){this.a=$C(jJ,rve,1,mgb($wnd.Math.max(8,a))<<1,5,1)} +function t2b(a){return RD(anb(a,$C(jR,WAe,10,a.c.length,0,1)),199)} +function s2b(a){return RD(anb(a,$C(WQ,VAe,18,a.c.length,0,1)),483)} +function Iyb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function Rib(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function fvb(a){sFb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function sRc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Xub(a.d);aFb(a.e.a.c,0)} +function Z5c(a,b){var c;a.e=new R5c;c=Q2c(b);_mb(c,a.c);$5c(a,c,0)} +function zgd(a,b,c,d){var e;e=new Hgd;e.a=b;e.b=c;e.c=d;Mub(a.a,e)} +function Agd(a,b,c,d){var e;e=new Hgd;e.a=b;e.b=c;e.c=d;Mub(a.b,e)} +function Tb(a,b,c){if(a<0||bc){throw Adb(new veb(Kb(a,b,c)))}} +function Pb(a,b){if(a<0||a>=b){throw Adb(new veb(Ib(a,b)))}return a} +function qz(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Zjc(a){Wjc();if(ZD(a.g,10)){return RD(a.g,10)}return null} +function nx(a){if(Ih(a).dc()){return false}Jh(a,new rx);return true} +function Xdb(a){var b;if(Kdb(a)){b=a;return b==-0.?0:b}return ED(a)} +function lkb(a,b){if(ZD(b,44)){return Jd(a.a,RD(b,44))}return false} +function gsb(a,b){if(ZD(b,44)){return Jd(a.a,RD(b,44))}return false} +function vub(a,b){if(ZD(b,44)){return Jd(a.a,RD(b,44))}return false} +function RCb(a){var b;LCb(a);b=new Prb;ixb(a.a,new fDb(b));return b} +function Vae(){var a,b,c;b=(c=(a=new s2d,a),c);Rmb(Rae,b);return b} +function mDb(a){var b;LCb(a);b=new ltb;ixb(a.a,new uDb(b));return b} +function jDb(a,b){if(a.a<=a.b){b.Dd(a.a++);return true}return false} +function xzb(a){yzb.call(this,a,(cAb(),$zb),null,false,null,false)} +function $Rb(){$Rb=geb;ZRb=ss((VRb(),cD(WC($O,1),jwe,489,0,[URb])))} +function CHc(){CHc=geb;BHc=yx(sgb(1),sgb(4));AHc=yx(sgb(1),sgb(2))} +function yXc(a,b){return new gud(b,njd(ajd(b.e),a,a),(Geb(),true))} +function fv(a){return new cnb((dk(a,lwe),dz(Bdb(Bdb(5,a),a/10|0))))} +function Wi(a){return fk(a.e.Rd().gc()*a.c.Rd().gc(),273,new kj(a))} +function u2b(a){return RD(anb(a,$C(xR,XAe,12,a.c.length,0,1)),2042)} +function COc(a){dOc();return !W0b(a)&&!(!W0b(a)&&a.c.i.c==a.d.i.c)} +function Y_c(a,b){R_c();return RD(mQb(b,(h_c(),W$c)),17).a>=a.gc()} +function q8b(a,b){w8b(b,a);y8b(a.d);y8b(RD(mQb(a,(yCc(),cBc)),214))} +function r8b(a,b){z8b(b,a);B8b(a.d);B8b(RD(mQb(a,(yCc(),cBc)),214))} +function $0b(a,b,c){!!a.d&&Ymb(a.d.e,a);a.d=b;!!a.d&&Qmb(a.d.e,c,a)} +function jPb(a,b,c){return c.f.c.length>0?yPb(a.a,b,c):yPb(a.b,b,c)} +function Uz(a,b,c){var d;d=Sz();try{return Rz(a,b,c)}finally{Vz(d)}} +function wDd(a,b){var c,d;c=qC(a,b);d=null;!!c&&(d=c.pe());return d} +function yDd(a,b){var c,d;c=qC(a,b);d=null;!!c&&(d=c.se());return d} +function xDd(a,b){var c,d;c=JB(a,b);d=null;!!c&&(d=c.se());return d} +function zDd(a,b){var c,d;c=qC(a,b);d=null;!!c&&(d=ADd(c));return d} +function rEd(a,b,c){var d;d=uDd(c);Do(a.g,d,b);Do(a.i,b,c);return b} +function UIc(a,b,c){this.d=new fJc(this);this.e=a;this.i=b;this.f=c} +function Mk(a,b,c,d){this.e=null;this.c=a;this.d=b;this.a=c;this.b=d} +function urc(a,b,c,d){nrc(this);this.c=a;this.e=b;this.f=c;this.b=d} +function MKd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function Vc(a,b,c,d){return ZD(c,59)?new Kg(a,b,c,d):new yg(a,b,c,d)} +function gr(a){if(ZD(a,16)){return RD(a,16).dc()}return !a.Kc().Ob()} +function Wo(a){if(a.e.g!=a.b){throw Adb(new Jrb)}return !!a.c&&a.d>0} +function evb(a){sFb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function imb(a,b){uFb(b);bD(a.a,a.c,b);a.c=a.c+1&a.a.length-1;mmb(a)} +function hmb(a,b){uFb(b);a.b=a.b-1&a.a.length-1;bD(a.a,a.b,b);mmb(a)} +function _je(a){var b;b=a.Gh();this.a=ZD(b,71)?RD(b,71).Ii():b.Kc()} +function px(a){return new Swb(Dob(RD(a.a.md(),16).gc(),a.a.ld()),16)} +function Abd(){Abd=geb;zbd=ss((sbd(),cD(WC(M1,1),jwe,490,0,[rbd])))} +function Jbd(){Jbd=geb;Ibd=ss((Cbd(),cD(WC(N1,1),jwe,558,0,[Bbd])))} +function idd(){idd=geb;hdd=ss((_cd(),cD(WC(V1,1),jwe,539,0,[$cd])))} +function X$b(){U$b();return cD(WC(CQ,1),jwe,389,0,[T$b,R$b,Q$b,S$b])} +function hAb(){cAb();return cD(WC(AL,1),jwe,304,0,[$zb,_zb,aAb,bAb])} +function LPb(){IPb();return cD(WC(DO,1),jwe,332,0,[FPb,EPb,GPb,HPb])} +function LRb(){IRb();return cD(WC(WO,1),jwe,406,0,[FRb,ERb,GRb,HRb])} +function pOb(){mOb();return cD(WC(hO,1),jwe,417,0,[lOb,iOb,jOb,kOb])} +function uZb(){nZb();return cD(WC(lQ,1),jwe,416,0,[jZb,mZb,kZb,lZb])} +function hnc(){enc();return cD(WC(LV,1),jwe,421,0,[anc,bnc,cnc,dnc])} +function zec(){vec();return cD(WC(qT,1),jwe,371,0,[uec,sec,tec,rec])} +function BDc(){wDc();return cD(WC(tX,1),jwe,203,0,[uDc,vDc,tDc,sDc])} +function nEc(){kEc();return cD(WC(wX,1),jwe,284,0,[hEc,gEc,iEc,jEc])} +function Unc(a){var b;return a.j==(qpd(),npd)&&(b=Vnc(a),Csb(b,Xod))} +function qhc(a,b){var c;c=b.a;Y0b(c,b.c.d);Z0b(c,b.d.d);Cjd(c.a,a.n)} +function _5b(a,b){var c;c=RD(cub(a.b,b),67);!c&&(c=new Yub);return c} +function $jc(a){Wjc();if(ZD(a.g,154)){return RD(a.g,154)}return null} +function gRc(a){a.a=null;a.e=null;aFb(a.b.c,0);aFb(a.f.c,0);a.c=null} +function Ovc(){Ovc=geb;Mvc=new Pvc(Kye,0);Nvc=new Pvc('TOP_LEFT',1)} +function sNc(){sNc=geb;rNc=new tNc('UPPER',0);qNc=new tNc('LOWER',1)} +function nWc(a,b){return cjd(new rjd(b.e.a+b.f.a/2,b.e.b+b.f.b/2),a)} +function wqc(a,b){return RD(Lvb(JDb(RD(Qc(a.k,b),15).Oc(),lqc)),113)} +function xqc(a,b){return RD(Lvb(KDb(RD(Qc(a.k,b),15).Oc(),lqc)),113)} +function cWc(){YVc();return cD(WC(H$,1),jwe,405,0,[UVc,VVc,WVc,XVc])} +function v_c(){s_c();return cD(WC(J_,1),jwe,353,0,[r_c,p_c,q_c,o_c])} +function n5c(){j5c();return cD(WC(M0,1),jwe,354,0,[i5c,g5c,h5c,f5c])} +function Tpd(){Qpd();return cD(WC(H3,1),jwe,386,0,[Opd,Ppd,Npd,Mpd])} +function Tnd(){Pnd();return cD(WC(z3,1),jwe,291,0,[Ond,Lnd,Mnd,Nnd])} +function _md(){Ymd();return cD(WC(u3,1),jwe,223,0,[Xmd,Vmd,Umd,Wmd])} +function Jrd(){Grd();return cD(WC(R3,1),jwe,320,0,[Frd,Crd,Erd,Drd])} +function wtd(){ttd();return cD(WC(n4,1),jwe,415,0,[qtd,rtd,ptd,std])} +function GId(a){EId();return Ujb(DId,a)?RD(Wjb(DId,a),341).Qg():null} +function Avd(a,b,c){return b<0?Rvd(a,c):RD(c,69).wk().Bk(a,a.hi(),b)} +function sEd(a,b,c){var d;d=uDd(c);Do(a.j,d,b);Zjb(a.k,b,c);return b} +function qEd(a,b,c){var d;d=uDd(c);Do(a.d,d,b);Zjb(a.e,b,c);return b} +function DGd(a){var b,c;b=(bvd(),c=new rzd,c);!!a&&pzd(b,a);return b} +function WHd(a){var b;b=a.aj(a.i);a.i>0&&hib(a.g,0,b,0,a.i);return b} +function Led(a,b){var c;for(c=a.j.c.length;c>24} +function AKd(a){if(a.p!=1)throw Adb(new cgb);return Ydb(a.k)<<24>>24} +function GKd(a){if(a.p!=7)throw Adb(new cgb);return Ydb(a.k)<<16>>16} +function xKd(a){if(a.p!=7)throw Adb(new cgb);return Ydb(a.f)<<16>>16} +function Wib(a,b){if(b.e==0||a.e==0){return Oib}return Ljb(),Mjb(a,b)} +function Nd(a,b){return dE(b)===dE(a)?'(this Map)':b==null?vve:jeb(b)} +function MFb(a,b,c){return Jfb(UD(Wd(qtb(a.f,b))),UD(Wd(qtb(a.f,c))))} +function wkc(a,b,c){var d;d=RD(Wjb(a.g,c),60);Rmb(a.a.c,new Ptd(b,d))} +function Slc(a,b,c){a.i=0;a.e=0;if(b==c){return}Rlc(a,b,c);Qlc(a,b,c)} +function rTc(a,b,c,d,e){var f;f=mTc(e,c,d);Rmb(b,TSc(e,f));vTc(a,e,b)} +function Jrc(a,b,c,d,e){this.i=a;this.a=b;this.e=c;this.j=d;this.f=e} +function iUb(a,b){VTb.call(this);this.a=a;this.b=b;Rmb(this.a.b,this)} +function rTb(a){this.b=new Tsb;this.c=new Tsb;this.d=new Tsb;this.a=a} +function Dx(a,b){var c;c=new cib;a.Gd(c);c.a+='..';b.Hd(c);return c.a} +function Fsd(a,b){var c;c=b;while(c){Zid(a,c.i,c.j);c=vCd(c)}return a} +function pEd(a,b,c){var d;d=uDd(c);Zjb(a.b,d,b);Zjb(a.c,b,c);return b} +function Kr(a){var b;b=0;while(a.Ob()){a.Pb();b=Bdb(b,1)}return dz(b)} +function oke(a,b){nke();var c;c=RD(a,69).vk();K6d(c,b);return c.xl(b)} +function tC(d,a,b){if(b){var c=b.oe();d.a[a]=c(b)}else{delete d.a[a]}} +function tB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+Owe);mB(a,c)} +function KSd(a,b){return RD(b==null?Wd(qtb(a.f,null)):Ktb(a.i,b),288)} +function hOc(a,b){return a==(r3b(),p3b)&&b==p3b?4:a==p3b||b==p3b?8:32} +function cge(a,b,c){return dge(a,b,c,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function jge(a,b,c){return kge(a,b,c,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function Qge(a,b,c){return Rge(a,b,c,ZD(b,102)&&(RD(b,19).Bb&txe)!=0)} +function jmb(a){if(a.b==a.c){return}a.a=$C(jJ,rve,1,8,5,1);a.b=0;a.c=0} +function Nsb(a){sFb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Xx(a){var b;if(a){return new Kub(a)}b=new Iub;_q(b,a);return b} +function nmc(a,b){var c,d;d=false;do{c=qmc(a,b);d=d|c}while(c);return d} +function Vz(a){a&&aA(($z(),Zz));--Nz;if(a){if(Pz!=-1){Xz(Pz);Pz=-1}}} +function Pwb(a){Hwb();Mwb(this,Ydb(Cdb(Tdb(a,24),Pxe)),Ydb(Cdb(a,Pxe)))} +function IHb(){IHb=geb;HHb=ss((DHb(),cD(WC(uN,1),jwe,436,0,[CHb,BHb])))} +function QHb(){QHb=geb;PHb=ss((LHb(),cD(WC(vN,1),jwe,435,0,[JHb,KHb])))} +function YUb(){YUb=geb;XUb=ss((TUb(),cD(WC(BP,1),jwe,432,0,[RUb,SUb])))} +function U8b(){U8b=geb;T8b=ss((P8b(),cD(WC(vS,1),jwe,517,0,[O8b,N8b])))} +function Tvc(){Tvc=geb;Svc=ss((Ovc(),cD(WC(lX,1),jwe,429,0,[Mvc,Nvc])))} +function duc(){duc=geb;cuc=ss(($tc(),cD(WC(cX,1),jwe,428,0,[Ytc,Ztc])))} +function Huc(){Huc=geb;Guc=ss((Cuc(),cD(WC(fX,1),jwe,488,0,[Buc,Auc])))} +function xEc(){xEc=geb;wEc=ss((sEc(),cD(WC(xX,1),jwe,430,0,[qEc,rEc])))} +function xNc(){xNc=geb;wNc=ss((sNc(),cD(WC(MY,1),jwe,531,0,[rNc,qNc])))} +function otc(){otc=geb;ntc=ss((jtc(),cD(WC($W,1),jwe,431,0,[htc,itc])))} +function F_c(){F_c=geb;E_c=ss((A_c(),cD(WC(K_,1),jwe,433,0,[z_c,y_c])))} +function F2c(){F2c=geb;E2c=ss((x2c(),cD(WC(s0,1),jwe,501,0,[v2c,w2c])))} +function BQc(){BQc=geb;AQc=ss((wQc(),cD(WC(FZ,1),jwe,523,0,[vQc,uQc])))} +function JQc(){JQc=geb;IQc=ss((EQc(),cD(WC(GZ,1),jwe,522,0,[CQc,DQc])))} +function kTc(){kTc=geb;jTc=ss((fTc(),cD(WC(b$,1),jwe,528,0,[eTc,dTc])))} +function iVc(){iVc=geb;hVc=ss((dVc(),cD(WC(w$,1),jwe,465,0,[bVc,cVc])))} +function c4c(){c4c=geb;b4c=ss((Y3c(),cD(WC(H0,1),jwe,434,0,[W3c,X3c])))} +function H8c(){H8c=geb;G8c=ss((z8c(),cD(WC(l1,1),jwe,491,0,[x8c,y8c])))} +function J9c(){J9c=geb;I9c=ss((B9c(),cD(WC(t1,1),jwe,492,0,[z9c,A9c])))} +function Rbd(){Rbd=geb;Qbd=ss((Mbd(),cD(WC(O1,1),jwe,438,0,[Lbd,Kbd])))} +function tdd(){tdd=geb;sdd=ss((ldd(),cD(WC(W1,1),jwe,437,0,[kdd,jdd])))} +function Eqd(){Eqd=geb;Dqd=ss((uqd(),cD(WC(M3,1),jwe,347,0,[sqd,tqd])))} +function Imd(){Cmd();return cD(WC(s3,1),jwe,88,0,[Amd,zmd,ymd,xmd,Bmd])} +function xpd(){qpd();return cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])} +function LSd(a,b,c){return RD(b==null?rtb(a.f,null,c):Ltb(a.i,b,c),288)} +function L6b(a){return (a.k==(r3b(),p3b)||a.k==m3b)&&nQb(a,(Ywc(),cwc))} +function bUb(a){return !!a.c&&!!a.d?kUb(a.c)+'->'+kUb(a.d):'e_'+kFb(a)} +function xgb(a,b){var c,d;uFb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.Cd(c)}} +function jEd(a,b){var c;c=new uC;qDd(c,'x',b.a);qDd(c,'y',b.b);oDd(a,c)} +function mEd(a,b){var c;c=new uC;qDd(c,'x',b.a);qDd(c,'y',b.b);oDd(a,c)} +function Gsd(a,b){var c;c=b;while(c){Zid(a,-c.i,-c.j);c=vCd(c)}return a} +function ZLc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function $mb(a,b,c){var d;d=(tFb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function uIc(a,b,c){a.a.c.length=0;yIc(a,b,c);a.a.c.length==0||rIc(a,b)} +function wo(a){a.i=0;Mnb(a.b,null);Mnb(a.c,null);a.a=null;a.e=null;++a.g} +function gBb(){gBb=geb;dBb=true;bBb=false;cBb=false;fBb=false;eBb=false} +function oBb(a){gBb();if(dBb){return}this.c=a;this.e=true;this.a=new bnb} +function kDb(a,b){this.c=0;this.b=b;txb.call(this,a,17493);this.a=this.c} +function S_b(a){P_b();A$b(this);this.a=new Yub;Q_b(this,a);Mub(this.a,a)} +function m_b(){Pmb(this);this.b=new rjd(oxe,oxe);this.a=new rjd(pxe,pxe)} +function z8c(){z8c=geb;x8c=new B8c(CBe,0);y8c=new B8c('TARGET_WIDTH',1)} +function yDb(a,b){return (MCb(a),QDb(new SDb(a,new hEb(b,a.a)))).Bd(wDb)} +function vXb(){sXb();return cD(WC(UP,1),jwe,367,0,[nXb,oXb,pXb,qXb,rXb])} +function Fnc(){Bnc();return cD(WC(TV,1),jwe,375,0,[xnc,znc,Anc,ync,wnc])} +function Vtc(){Ptc();return cD(WC(bX,1),jwe,348,0,[Ltc,Ktc,Ntc,Otc,Mtc])} +function PDc(){JDc();return cD(WC(uX,1),jwe,323,0,[IDc,FDc,GDc,EDc,HDc])} +function fxc(){cxc();return cD(WC(mX,1),jwe,171,0,[bxc,Zwc,$wc,_wc,axc])} +function k3c(){g3c();return cD(WC(x0,1),jwe,368,0,[e3c,b3c,f3c,c3c,d3c])} +function vad(){sad();return cD(WC(x1,1),jwe,373,0,[oad,nad,qad,pad,rad])} +function $bd(){Xbd();return cD(WC(P1,1),jwe,324,0,[Sbd,Tbd,Wbd,Ubd,Vbd])} +function _hd(){Yhd();return cD(WC(d3,1),jwe,170,0,[Whd,Vhd,Thd,Xhd,Uhd])} +function sod(){pod();return cD(WC(B3,1),jwe,256,0,[mod,ood,kod,lod,nod])} +function Tz(b){Qz();return function(){return Uz(b,this,arguments);var a}} +function W0b(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function Nfd(a,b){if(ZD(b,143)){return lhb(a.c,RD(b,143).c)}return false} +function yYd(a){if(!a.t){a.t=new w$d(a);VGd(new Cde(a),0,a.t)}return a.t} +function jNd(a){this.b=a;dMd.call(this,a);this.a=RD(Ywd(this.b.a,4),129)} +function sNd(a){this.b=a;yMd.call(this,a);this.a=RD(Ywd(this.b.a,4),129)} +function Q3d(a,b,c,d,e){OKd.call(this,b,d,e);J3d(this);this.c=a;this.b=c} +function V3d(a,b,c,d,e){KKd.call(this,b,d,e);J3d(this);this.c=a;this.a=c} +function Z3d(a,b,c,d,e){LKd.call(this,b,d,e);J3d(this);this.c=a;this.a=c} +function g4d(a,b,c,d,e){OKd.call(this,b,d,e);J3d(this);this.c=a;this.a=c} +function ugd(a,b){var c;c=RD(cub(a.d,b),23);return c?c:RD(cub(a.e,b),23)} +function Blb(a,b){var c,d;c=b.ld();d=a.Fe(c);return !!d&&Fvb(d.e,b.md())} +function me(a,b){var c;c=b.ld();return new gp(c,a.e.pc(c,RD(b.md(),16)))} +function ptb(a,b){var c;c=a.a.get(b);return c==null?$C(jJ,rve,1,0,5,1):c} +function khb(a){var b;b=a.length;return lhb(sxe.substr(sxe.length-b,b),a)} +function hs(a){if(gs(a)){a.c=a.a;return a.a.Pb()}else{throw Adb(new Dvb)}} +function $ib(a,b){if(b==0||a.e==0){return a}return b>0?tjb(a,b):qjb(a,-b)} +function Zib(a,b){if(b==0||a.e==0){return a}return b>0?qjb(a,b):tjb(a,-b)} +function Deb(a){Beb.call(this,a==null?vve:jeb(a),ZD(a,82)?RD(a,82):null)} +function Y5d(a){var b;if(!a.c){b=a.r;ZD(b,90)&&(a.c=RD(b,29))}return a.c} +function s0b(a){var b;b=new a1b;kQb(b,a);pQb(b,(yCc(),RAc),null);return b} +function lec(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(r3b(),m3b)&&c.k==m3b} +function fD(a){var b,c,d;b=a&dxe;c=a>>22&dxe;d=a<0?exe:0;return hD(b,c,d)} +function Ky(a){var b,c,d,e;for(c=a,d=0,e=c.length;d=0?a.Lh(d,c,true):Qvd(a,b,c)} +function AXc(a,b,c){return Qfb(cjd(jWc(a),ajd(b.b)),cjd(jWc(a),ajd(c.b)))} +function BXc(a,b,c){return Qfb(cjd(jWc(a),ajd(b.e)),cjd(jWc(a),ajd(c.e)))} +function Kad(a,b){return $wnd.Math.min(bjd(b.a,a.d.d.c),bjd(b.b,a.d.d.c))} +function LHd(a,b){a._i(a.i+1);MHd(a,a.i,a.Zi(a.i,b));a.Mi(a.i++,b);a.Ni()} +function OHd(a){var b,c;++a.j;b=a.g;c=a.i;a.g=null;a.i=0;a.Oi(c,b);a.Ni()} +function yke(a,b,c){var d;d=new zke(a.a);Ld(d,a.a.a);rtb(d.f,b,c);a.a.a=d} +function mKb(a,b,c,d){var e;for(e=0;eb){throw Adb(new veb(Jb(a,b,'index')))}return a} +function Xmb(a,b){var c;c=(tFb(b,a.c.length),a.c[b]);$Eb(a.c,b,1);return c} +function jhb(a,b){var c,d;c=(uFb(a),a);d=(uFb(b),b);return c==d?0:cb.p){return -1}return 0} +function hXd(a){var b;if(!a.a){b=a.r;ZD(b,156)&&(a.a=RD(b,156))}return a.a} +function iOd(a,b,c){var d;++a.e;--a.f;d=RD(a.d[b].gd(c),136);return d.md()} +function fd(a){var b,c;b=a.ld();c=RD(a.md(),16);return gk(c.Nc(),new jh(b))} +function oae(a,b){if(Ujb(a.a,b)){_jb(a.a,b);return true}else{return false}} +function Ui(a,b,c){Pb(b,a.e.Rd().gc());Pb(c,a.c.Rd().gc());return a.a[b][c]} +function _Uc(a,b,c){this.a=a;this.b=b;this.c=c;Rmb(a.t,this);Rmb(b.i,this)} +function lg(a,b,c,d){this.f=a;this.e=b;this.d=c;this.b=d;this.c=!d?null:d.d} +function YWc(){this.b=new Yub;this.a=new Yub;this.b=new Yub;this.a=new Yub} +function ree(){ree=geb;var a,b;pee=(jTd(),b=new k1d,b);qee=(a=new mXd,a)} +function UCb(a){var b;MCb(a);b=new $Cb(a,a.a.e,a.a.d|4);return new WCb(a,b)} +function ADb(a){var b;LCb(a);b=0;while(a.a.Bd(new MEb)){b=Bdb(b,1)}return b} +function zxb(a,b){uFb(b);if(a.c=0,'Initial capacity must not be negative')} +function rid(){rid=geb;qid=new jGd('org.eclipse.elk.labels.labelManager')} +function iec(){iec=geb;hec=new kGd('separateLayerConnections',(vec(),uec))} +function fTc(){fTc=geb;eTc=new gTc('REGULAR',0);dTc=new gTc('CRITICAL',1)} +function Mbd(){Mbd=geb;Lbd=new Nbd('FIXED',0);Kbd=new Nbd('CENTER_NODE',1)} +function jtc(){jtc=geb;htc=new ktc('QUADRATIC',0);itc=new ktc('SCANLINE',1)} +function Atc(){Atc=geb;ztc=ss((stc(),cD(WC(_W,1),jwe,322,0,[qtc,ptc,rtc])))} +function Jtc(){Jtc=geb;Itc=ss((Etc(),cD(WC(aX,1),jwe,351,0,[Btc,Dtc,Ctc])))} +function ooc(){ooc=geb;noc=ss((joc(),cD(WC(UV,1),jwe,372,0,[ioc,hoc,goc])))} +function muc(){muc=geb;luc=ss((huc(),cD(WC(dX,1),jwe,460,0,[fuc,euc,guc])))} +function Cvc(){Cvc=geb;Bvc=ss((xvc(),cD(WC(jX,1),jwe,299,0,[vvc,wvc,uvc])))} +function Lvc(){Lvc=geb;Kvc=ss((Gvc(),cD(WC(kX,1),jwe,311,0,[Evc,Fvc,Dvc])))} +function rDc(){rDc=geb;qDc=ss((lDc(),cD(WC(sX,1),jwe,390,0,[iDc,jDc,kDc])))} +function PEc(){PEc=geb;OEc=ss((KEc(),cD(WC(zX,1),jwe,387,0,[HEc,IEc,JEc])))} +function YEc(){YEc=geb;XEc=ss((TEc(),cD(WC(AX,1),jwe,349,0,[SEc,QEc,REc])))} +function GEc(){GEc=geb;FEc=ss((BEc(),cD(WC(yX,1),jwe,463,0,[AEc,yEc,zEc])))} +function qFc(){qFc=geb;pFc=ss((lFc(),cD(WC(CX,1),jwe,350,0,[iFc,jFc,kFc])))} +function zFc(){zFc=geb;yFc=ss((uFc(),cD(WC(DX,1),jwe,352,0,[tFc,rFc,sFc])))} +function IFc(){IFc=geb;HFc=ss((DFc(),cD(WC(EX,1),jwe,388,0,[BFc,CFc,AFc])))} +function QZc(){QZc=geb;PZc=ss((LZc(),cD(WC(F_,1),jwe,392,0,[KZc,JZc,IZc])))} +function m4c(){m4c=geb;l4c=ss((g4c(),cD(WC(I0,1),jwe,393,0,[d4c,e4c,f4c])))} +function z5c(){z5c=geb;y5c=ss((t5c(),cD(WC(N0,1),jwe,300,0,[r5c,s5c,q5c])))} +function k6c(){k6c=geb;j6c=ss((f6c(),cD(WC(V0,1),jwe,445,0,[c6c,d6c,e6c])))} +function F6c(){F6c=geb;E6c=ss((z6c(),cD(WC(Z0,1),jwe,456,0,[w6c,y6c,x6c])))} +function e7c(){e7c=geb;d7c=ss((_6c(),cD(WC(a1,1),jwe,394,0,[Z6c,$6c,Y6c])))} +function j9c(){j9c=geb;i9c=ss((b9c(),cD(WC(o1,1),jwe,439,0,[$8c,a9c,_8c])))} +function WKc(){WKc=geb;VKc=ss((RKc(),cD(WC(nY,1),jwe,464,0,[OKc,PKc,QKc])))} +function JKb(){JKb=geb;IKb=ss((EKb(),cD(WC(MN,1),jwe,471,0,[CKb,BKb,DKb])))} +function cKb(){cKb=geb;bKb=ss((ZJb(),cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])))} +function ALb(){ALb=geb;zLb=ss((vLb(),cD(WC(TN,1),jwe,472,0,[uLb,tLb,sLb])))} +function CBb(){CBb=geb;BBb=ss((xBb(),cD(WC(QL,1),jwe,108,0,[uBb,vBb,wBb])))} +function FWb(){FWb=geb;EWb=ss((AWb(),cD(WC(JP,1),jwe,391,0,[yWb,xWb,zWb])))} +function Knd(){Knd=geb;Jnd=ss((Fnd(),cD(WC(y3,1),jwe,346,0,[Dnd,Cnd,End])))} +function lbd(){lbd=geb;kbd=ss((gbd(),cD(WC(I1,1),jwe,444,0,[dbd,ebd,fbd])))} +function Tmd(){Tmd=geb;Smd=ss((Omd(),cD(WC(t3,1),jwe,278,0,[Lmd,Mmd,Nmd])))} +function rqd(){rqd=geb;qqd=ss((mqd(),cD(WC(J3,1),jwe,280,0,[kqd,jqd,lqd])))} +function Hxd(a,b){return !a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),QNd(a.o,b)} +function HMb(a,b){var c;if(a.C){c=RD(Vrb(a.b,b),127).n;c.d=a.C.d;c.a=a.C.a}} +function F8b(a){var b,c,d,e;e=a.d;b=a.a;c=a.b;d=a.c;a.d=c;a.a=d;a.b=e;a.c=b} +function cOd(a){!a.g&&(a.g=new hQd);!a.g.b&&(a.g.b=new ePd(a));return a.g.b} +function dOd(a){!a.g&&(a.g=new hQd);!a.g.c&&(a.g.c=new IPd(a));return a.g.c} +function lOd(a){!a.g&&(a.g=new hQd);!a.g.d&&(a.g.d=new kPd(a));return a.g.d} +function YNd(a){!a.g&&(a.g=new hQd);!a.g.a&&(a.g.a=new qPd(a));return a.g.a} +function B9d(a,b,c,d){!!c&&(d=c.Rh(b,BYd(c.Dh(),a.c.uk()),null,d));return d} +function C9d(a,b,c,d){!!c&&(d=c.Th(b,BYd(c.Dh(),a.c.uk()),null,d));return d} +function Cjb(a,b,c,d){var e;e=$C(kE,Pwe,28,b+1,15,1);Djb(e,a,b,c,d);return e} +function $C(a,b,c,d,e,f){var g;g=_C(e,d);e!=10&&cD(WC(a,f),b,c,e,g);return g} +function $fe(a,b,c){var d,e;e=new Phe(b,a);for(d=0;dc||b=0?a.Lh(c,true,true):Qvd(a,b,true)} +function gMc(a,b,c){var d;d=qMc(a,b,c);a.b=new _Lc(d.c.length);return iMc(a,d)} +function Pue(a){if(a.b<=0)throw Adb(new Dvb);--a.b;a.a-=a.c.c;return sgb(a.a)} +function PGd(a){var b;if(!a.a){throw Adb(new Evb)}b=a.a;a.a=vCd(a.a);return b} +function WDb(a){while(!a.a){if(!yEb(a.c,new $Db(a))){return false}}return true} +function Nr(a){var b;Qb(a);if(ZD(a,204)){b=RD(a,204);return b}return new Or(a)} +function Cfd(a){Afd();RD(a.of((umd(),Lld)),181).Fc((Pod(),Mod));a.qf(Kld,null)} +function Afd(){Afd=geb;xfd=new Gfd;zfd=new Ifd;yfd=yn((umd(),Kld),xfd,pld,zfd)} +function Y3c(){Y3c=geb;W3c=new $3c('LEAF_NUMBER',0);X3c=new $3c('NODE_SIZE',1)} +function YLc(a){a.a=$C(kE,Pwe,28,a.b+1,15,1);a.c=$C(kE,Pwe,28,a.b,15,1);a.d=0} +function OZb(a,b){if(a.a.Ne(b.d,a.b)>0){Rmb(a.c,new fZb(b.c,b.d,a.d));a.b=b.d}} +function NHd(a,b){if(a.g==null||b>=a.i)throw Adb(new yNd(b,a.i));return a.g[b]} +function P_d(a,b,c){gHd(a,c);if(c!=null&&!a.fk(c)){throw Adb(new yeb)}return c} +function dD(a,b){XC(b)!=10&&cD(rb(b),b.Sm,b.__elementTypeId$,XC(b),a);return a} +function Wnb(a,b,c,d){var e;d=(urb(),!d?rrb:d);e=a.slice(b,c);Xnb(e,a,b,c,-b,d)} +function zvd(a,b,c,d,e){return b<0?Qvd(a,c,d):RD(c,69).wk().yk(a,a.hi(),b,d,e)} +function J9b(a,b){return Qfb(Kfb(UD(mQb(a,(Ywc(),Jwc)))),Kfb(UD(mQb(b,Jwc))))} +function qAb(){qAb=geb;pAb=ss((cAb(),cD(WC(AL,1),jwe,304,0,[$zb,_zb,aAb,bAb])))} +function cAb(){cAb=geb;$zb=new dAb('All',0);_zb=new iAb;aAb=new kAb;bAb=new nAb} +function EKb(){EKb=geb;CKb=new FKb(Nye,0);BKb=new FKb(Kye,1);DKb=new FKb(Oye,2)} +function Zme(){Zme=geb;qAd();Wme=oxe;Vme=pxe;Yme=new Tfb(oxe);Xme=new Tfb(pxe)} +function rOb(){rOb=geb;qOb=ss((mOb(),cD(WC(hO,1),jwe,417,0,[lOb,iOb,jOb,kOb])))} +function NRb(){NRb=geb;MRb=ss((IRb(),cD(WC(WO,1),jwe,406,0,[FRb,ERb,GRb,HRb])))} +function NPb(){NPb=geb;MPb=ss((IPb(),cD(WC(DO,1),jwe,332,0,[FPb,EPb,GPb,HPb])))} +function Z$b(){Z$b=geb;Y$b=ss((U$b(),cD(WC(CQ,1),jwe,389,0,[T$b,R$b,Q$b,S$b])))} +function wZb(){wZb=geb;vZb=ss((nZb(),cD(WC(lQ,1),jwe,416,0,[jZb,mZb,kZb,lZb])))} +function jnc(){jnc=geb;inc=ss((enc(),cD(WC(LV,1),jwe,421,0,[anc,bnc,cnc,dnc])))} +function Bec(){Bec=geb;Aec=ss((vec(),cD(WC(qT,1),jwe,371,0,[uec,sec,tec,rec])))} +function DDc(){DDc=geb;CDc=ss((wDc(),cD(WC(tX,1),jwe,203,0,[uDc,vDc,tDc,sDc])))} +function pEc(){pEc=geb;oEc=ss((kEc(),cD(WC(wX,1),jwe,284,0,[hEc,gEc,iEc,jEc])))} +function Cuc(){Cuc=geb;Buc=new Duc(LAe,0);Auc=new Duc('IMPROVE_STRAIGHTNESS',1)} +function _i(a,b){var c,d;d=b/a.c.Rd().gc()|0;c=b%a.c.Rd().gc();return Ui(a,d,c)} +function iZd(a){var b;if(a.nl()){for(b=a.i-1;b>=0;--b){QHd(a,b)}}return WHd(a)} +function Nyb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function Oyb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[1]){c=b}return c} +function Hae(a){if(ZD(a,180)){return ''+RD(a,180).a}return a==null?null:jeb(a)} +function Iae(a){if(ZD(a,180)){return ''+RD(a,180).a}return a==null?null:jeb(a)} +function eGb(a,b){if(b.a){throw Adb(new yz(jye))}Ysb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function hEb(a,b){xxb.call(this,b.zd(),b.yd()&-16449);uFb(a);this.a=a;this.c=b} +function zXc(a,b){return new gud(b,Zid(ajd(b.e),b.f.a+a,b.f.b+a),(Geb(),false))} +function EMc(a,b){dMc();return Rmb(a,new Ptd(b,sgb(b.e.c.length+b.g.c.length)))} +function GMc(a,b){dMc();return Rmb(a,new Ptd(b,sgb(b.e.c.length+b.g.c.length)))} +function p5c(){p5c=geb;o5c=ss((j5c(),cD(WC(M0,1),jwe,354,0,[i5c,g5c,h5c,f5c])))} +function x_c(){x_c=geb;w_c=ss((s_c(),cD(WC(J_,1),jwe,353,0,[r_c,p_c,q_c,o_c])))} +function eWc(){eWc=geb;dWc=ss((YVc(),cD(WC(H$,1),jwe,405,0,[UVc,VVc,WVc,XVc])))} +function bnd(){bnd=geb;and=ss((Ymd(),cD(WC(u3,1),jwe,223,0,[Xmd,Vmd,Umd,Wmd])))} +function Vnd(){Vnd=geb;Und=ss((Pnd(),cD(WC(z3,1),jwe,291,0,[Ond,Lnd,Mnd,Nnd])))} +function Vpd(){Vpd=geb;Upd=ss((Qpd(),cD(WC(H3,1),jwe,386,0,[Opd,Ppd,Npd,Mpd])))} +function Lrd(){Lrd=geb;Krd=ss((Grd(),cD(WC(R3,1),jwe,320,0,[Frd,Crd,Erd,Drd])))} +function ytd(){ytd=geb;xtd=ss((ttd(),cD(WC(n4,1),jwe,415,0,[qtd,rtd,ptd,std])))} +function b9c(){b9c=geb;$8c=new d9c(iFe,0);a9c=new d9c(mEe,1);_8c=new d9c(LAe,2)} +function sBb(a,b,c,d,e){uFb(a);uFb(b);uFb(c);uFb(d);uFb(e);return new DBb(a,b,d)} +function fub(a,b){var c;c=RD(_jb(a.e,b),400);if(c){rub(c);return c.e}return null} +function Ymb(a,b){var c;c=Wmb(a,b,0);if(c==-1){return false}Xmb(a,c);return true} +function LDb(a,b,c){var d;LCb(a);d=new IEb;d.a=b;a.a.Nb(new QEb(d,c));return d.a} +function VCb(a){var b;LCb(a);b=$C(iE,vxe,28,0,15,1);ixb(a.a,new dDb(b));return b} +function yc(a){var b;if(!xc(a)){throw Adb(new Dvb)}a.e=1;b=a.d;a.d=null;return b} +function Odb(a){var b;if(Kdb(a)){b=0-a;if(!isNaN(b)){return b}}return Edb(xD(a))} +function Wmb(a,b,c){for(;c=0?Dvd(a,c,true,true):Qvd(a,b,true)} +function Vwd(a){var b;b=SD(Ywd(a,32));if(b==null){Wwd(a);b=SD(Ywd(a,32))}return b} +function Yvd(a){var b;if(!a.Oh()){b=AYd(a.Dh())-a.ji();a.$h().Mk(b)}return a.zh()} +function zQb(a,b){yQb=new kRb;wQb=b;xQb=a;RD(xQb.b,68);BQb(xQb,yQb,null);AQb(xQb)} +function AWb(){AWb=geb;yWb=new BWb('XY',0);xWb=new BWb('X',1);zWb=new BWb('Y',2)} +function vLb(){vLb=geb;uLb=new wLb('TOP',0);tLb=new wLb(Kye,1);sLb=new wLb(Qye,2)} +function Gvc(){Gvc=geb;Evc=new Hvc(LAe,0);Fvc=new Hvc('TOP',1);Dvc=new Hvc(Qye,2)} +function sEc(){sEc=geb;qEc=new tEc('INPUT_ORDER',0);rEc=new tEc('PORT_DEGREE',1)} +function MD(){MD=geb;ID=hD(dxe,dxe,524287);JD=hD(0,0,fxe);KD=fD(1);fD(2);LD=fD(0)} +function wWd(a){var b;if(a.d!=a.r){b=WVd(a);a.e=!!b&&b.lk()==aKe;a.d=b}return a.e} +function UHd(a,b,c){var d;d=a.g[b];MHd(a,b,a.Zi(b,c));a.Ri(b,c,d);a.Ni();return d} +function dHd(a,b){var c;c=a.dd(b);if(c>=0){a.gd(c);return true}else{return false}} +function xr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function cub(a,b){var c;c=RD(Wjb(a.e,b),400);if(c){eub(a,c);return c.e}return null} +function iB(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function JB(d,a){var b=d.a[a];var c=(HC(),GC)[typeof b];return c?c(b):NC(typeof b)} +function EDb(a,b){var c,d;MCb(a);d=new zEb(b,a.a);c=new YDb(d);return new SDb(a,c)} +function mwb(a){var b;b=a.b.c.length==0?null:Vmb(a.b,0);b!=null&&owb(a,0);return b} +function ukc(a,b){var c,d,e;e=b.c.i;c=RD(Wjb(a.f,e),60);d=c.d.c-c.e.c;Bjd(b.a,d,0)} +function XLc(a,b){var c;++a.d;++a.c[b];c=b+1;while(c=0){++b[0]}} +function eEd(a,b){Dyd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function fEd(a,b){Eyd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function gEd(a,b){Cyd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function hEd(a,b){Ayd(a,b==null||Rfb((uFb(b),b))||isNaN((uFb(b),b))?0:(uFb(b),b))} +function oWc(a,b,c){return cjd(new rjd(c.e.a+c.f.a/2,c.e.b+c.f.b/2),a)==(uFb(b),b)} +function qge(a,b){return ZD(b,102)&&(RD(b,19).Bb&txe)!=0?new She(b,a):new Phe(b,a)} +function sge(a,b){return ZD(b,102)&&(RD(b,19).Bb&txe)!=0?new She(b,a):new Phe(b,a)} +function XC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function Bhb(a,b){return b==(wvb(),wvb(),vvb)?a.toLocaleLowerCase():a.toLowerCase()} +function Mu(a){if(!a.e){throw Adb(new Dvb)}a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function Lu(a){if(!a.c){throw Adb(new Dvb)}a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function Lsb(a){var b;++a.a;for(b=a.c.a.length;a.aa.a[d]&&(d=c)}return d} +function Krc(a){var b;b=RD(mQb(a,(Ywc(),Wvc)),313);if(b){return b.a==a}return false} +function Lrc(a){var b;b=RD(mQb(a,(Ywc(),Wvc)),313);if(b){return b.i==a}return false} +function xXb(){xXb=geb;wXb=ss((sXb(),cD(WC(UP,1),jwe,367,0,[nXb,oXb,pXb,qXb,rXb])))} +function Hnc(){Hnc=geb;Gnc=ss((Bnc(),cD(WC(TV,1),jwe,375,0,[xnc,znc,Anc,ync,wnc])))} +function Xtc(){Xtc=geb;Wtc=ss((Ptc(),cD(WC(bX,1),jwe,348,0,[Ltc,Ktc,Ntc,Otc,Mtc])))} +function RDc(){RDc=geb;QDc=ss((JDc(),cD(WC(uX,1),jwe,323,0,[IDc,FDc,GDc,EDc,HDc])))} +function hxc(){hxc=geb;gxc=ss((cxc(),cD(WC(mX,1),jwe,171,0,[bxc,Zwc,$wc,_wc,axc])))} +function m3c(){m3c=geb;l3c=ss((g3c(),cD(WC(x0,1),jwe,368,0,[e3c,b3c,f3c,c3c,d3c])))} +function xad(){xad=geb;wad=ss((sad(),cD(WC(x1,1),jwe,373,0,[oad,nad,qad,pad,rad])))} +function acd(){acd=geb;_bd=ss((Xbd(),cD(WC(P1,1),jwe,324,0,[Sbd,Tbd,Wbd,Ubd,Vbd])))} +function Kmd(){Kmd=geb;Jmd=ss((Cmd(),cD(WC(s3,1),jwe,88,0,[Amd,zmd,ymd,xmd,Bmd])))} +function bid(){bid=geb;aid=ss((Yhd(),cD(WC(d3,1),jwe,170,0,[Whd,Vhd,Thd,Xhd,Uhd])))} +function uod(){uod=geb;tod=ss((pod(),cD(WC(B3,1),jwe,256,0,[mod,ood,kod,lod,nod])))} +function zpd(){zpd=geb;ypd=ss((qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])))} +function LHb(){LHb=geb;JHb=new MHb('BY_SIZE',0);KHb=new MHb('BY_SIZE_AND_SHAPE',1)} +function TUb(){TUb=geb;RUb=new UUb('EADES',0);SUb=new UUb('FRUCHTERMAN_REINGOLD',1)} +function $tc(){$tc=geb;Ytc=new _tc('READING_DIRECTION',0);Ztc=new _tc('ROTATION',1)} +function CZb(){CZb=geb;zZb=new ZZb;AZb=new b$b;xZb=new f$b;yZb=new j$b;BZb=new n$b} +function dGb(a){this.b=new bnb;this.a=new bnb;this.c=new bnb;this.d=new bnb;this.e=a} +function XZb(a){this.g=a;this.f=new bnb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function UKb(a,b,c){RJb.call(this);KKb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function d6b(a,b,c){var d,e;for(e=new Anb(c);e.a=0&&b0?b-1:b;return Kqd(Lqd(Mqd(Nqd(new Oqd,c),a.n),a.j),a.k)} +function nBd(a){var b,c;c=(b=new q4d,b);WGd((!a.q&&(a.q=new C5d(s7,a,11,10)),a.q),c)} +function ofb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(lfb(a),a.o)} +function dz(a){if(Ddb(a,lve)>0){return lve}if(Ddb(a,qwe)<0){return qwe}return Ydb(a)} +function Sv(a){if(a<3){dk(a,fwe);return a+1}if(a=-0.01&&a.a<=Tye&&(a.a=0);a.b>=-0.01&&a.b<=Tye&&(a.b=0);return a} +function Hid(a){tid();var b,c;c=KEe;for(b=0;bc&&(c=a[b])}return c} +function Zvd(a,b){var c;c=wYd(a.Dh(),b);if(!c){throw Adb(new agb(KHe+b+NHe))}return c} +function NGd(a,b){var c;c=a;while(vCd(c)){c=vCd(c);if(c==b){return true}}return false} +function ix(a,b){var c,d,e;d=b.a.ld();c=RD(b.a.md(),16).gc();for(e=0;ea||a>b){throw Adb(new xeb('fromIndex: 0, toIndex: '+a+Qxe+b))}} +function ZHd(a){if(a<0){throw Adb(new agb('Illegal Capacity: '+a))}this.g=this.aj(a)} +function _y(a,b){Zy();bz(pwe);return $wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)} +function xJc(a,b){var c,d,e,f;for(d=a.d,e=0,f=d.length;e0){a.a/=b;a.b/=b}return a} +function BXd(a){var b;if(a.w){return a.w}else{b=CXd(a);!!b&&!b.Vh()&&(a.w=b);return b}} +function l2d(a,b){var c,d;d=a.a;c=m2d(a,b,null);d!=b&&!a.e&&(c=o2d(a,b,c));!!c&&c.oj()} +function rQc(a,b,c){var d,e;d=b;do{e=Kfb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function heb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function Gae(a){var b;if(a==null){return null}else{b=RD(a,195);return sAd(b,b.length)}} +function QHd(a,b){if(a.g==null||b>=a.i)throw Adb(new yNd(b,a.i));return a.Wi(b,a.g[b])} +function Dob(a,b){yob();var c,d;d=new bnb;for(c=0;c=14&&b<=16)));return a} +function ws(a,b){var c;uFb(b);c=a[':'+b];mFb(!!c,'Enum constant undefined: '+b);return c} +function tfb(a,b,c,d,e,f){var g;g=rfb(a,b);Ffb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function R3d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function T3d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function _3d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function e4d(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function X3d(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function iGb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0)){throw Adb(new agb('tolerance ('+a+') must be >= 0'))}return a} +function hOd(a,b){var c;if(ZD(b,44)){return a.c.Mc(b)}else{c=QNd(a,b);jOd(a,b);return c}} +function yBd(a,b,c){YVd(a,b);PAd(a,c);$Vd(a,0);bWd(a,1);aWd(a,true);_Vd(a,true);return a} +function ZGd(a,b){var c;c=a.gc();if(b<0||b>c)throw Adb(new aMd(b,c));return new CMd(a,b)} +function Cad(a,b){a.b=$wnd.Math.max(a.b,b.d);a.e+=b.r+(a.a.c.length==0?0:a.c);Rmb(a.a,b)} +function Jmb(a){yFb(a.c>=0);if(rmb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function Nc(a){var b,c;for(c=a.c.Cc().Kc();c.Ob();){b=RD(c.Pb(),16);b.$b()}a.c.$b();a.d=0} +function Zi(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d=0} +function Iqd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Iqd(a.i,b/a.r*a.i.d)}} +function $Cd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,1,c,a.c))} +function P1d(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,4,c,a.c))} +function jyd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,2,c,a.k))} +function JXd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,2,c,a.D))} +function Kzd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,8,c,a.f))} +function Lzd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,7,c,a.i))} +function fCd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,8,c,a.a))} +function ZCd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,0,c,a.b))} +function s6d(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,0,c,a.b))} +function t6d(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,1,c,a.c))} +function nVd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,1,c,a.d))} +function Cte(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new Gre:new Tqe;a.c=Nqe(d,a.b,a.a)} +function Gge(a,b){return qke(a.e,b)?(nke(),wWd(b)?new ole(b,a):new Eke(b,a)):new Ble(b,a)} +function iDb(a){var b,c;if(0>a){return new rDb}b=a+1;c=new kDb(b,a);return new oDb(null,c)} +function Gob(a,b){yob();var c;c=new Usb(1);bE(a)?$jb(c,a,b):rtb(c.f,a,b);return new uqb(c)} +function pQc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d>0){return RD(Vmb(c.a,d-1),10)}return null} +function TOb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:hwe}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function djd(a,b){var c;if(ZD(b,8)){c=RD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function Ydd(a,b){var c;c=new kRb;RD(b.b,68);RD(b.b,68);RD(b.b,68);Umb(b.a,new ced(a,c,b))} +function gOd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=RD(d.Pb(),44);fOd(a,c.ld(),c.md())}} +function Jzd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,11,c,a.d))} +function zWd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,13,c,a.j))} +function b6d(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,21,c,a.b))} +function YAb(a,b){((gBb(),dBb)?null:b.c).length==0&&iBb(b,new rBb);$jb(a.a,dBb?null:b.c,b)} +function b9b(a,b){b.Ug('Hierarchical port constraint processing',1);c9b(a);e9b(a);b.Vg()} +function joc(){joc=geb;ioc=new koc('START',0);hoc=new koc('MIDDLE',1);goc=new koc('END',2)} +function x2c(){x2c=geb;v2c=new z2c('P1_NODE_PLACEMENT',0);w2c=new z2c('P2_EDGE_ROUTING',1)} +function JVb(){JVb=geb;HVb=new jGd(rAe);IVb=new jGd(sAe);GVb=new jGd(tAe);FVb=new jGd(uAe)} +function tkb(a){var b;rFb(a.f.g,a.d);sFb(a.b);a.c=a.a;b=RD(a.a.Pb(),44);a.b=skb(a);return b} +function P2d(a){var b;if(a.b==null){return j3d(),j3d(),i3d}b=a.ul()?a.tl():a.sl();return b} +function nwb(a,b){var c;c=b==null?-1:Wmb(a.b,b,0);if(c<0){return false}owb(a,c);return true} +function zsb(a,b){var c;uFb(b);c=b.g;if(!a.b[c]){bD(a.b,c,b);++a.c;return true}return false} +function azb(a,b){var c,d;c=1-b;d=a.a[c];a.a[c]=d.a[b];d.a[b]=a;a.b=true;d.b=false;return d} +function xRb(a,b){var c,d;for(d=b.Kc();d.Ob();){c=RD(d.Pb(),272);a.b=true;Ysb(a.e,c);c.b=a}} +function kic(a,b){var c,d;c=RD(mQb(a,(yCc(),IBc)),8);d=RD(mQb(b,IBc),8);return Qfb(c.b,d.b)} +function SPb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=Cdb(Udb(a.n[c][f],Ydb(Sdb(e,1))),3);return d} +function lmb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d0?1:0}return (!a.c&&(a.c=ojb(Hdb(a.f))),a.c).e} +function GXd(a,b){if(b){if(a.B==null){a.B=a.D;a.D=null}}else if(a.B!=null){a.D=a.B;a.B=null}} +function rZb(a,b){nZb();return a==jZb&&b==mZb||a==mZb&&b==jZb||a==lZb&&b==kZb||a==kZb&&b==lZb} +function sZb(a,b){nZb();return a==jZb&&b==kZb||a==jZb&&b==lZb||a==mZb&&b==lZb||a==mZb&&b==kZb} +function zMb(a,b){return Zy(),bz(Tye),$wnd.Math.abs(0-b)<=Tye||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function qsc(a,b){return Kfb(UD(Lvb(MDb(GDb(new SDb(null,new Swb(a.c.b,16)),new Isc(a)),b))))} +function tsc(a,b){return Kfb(UD(Lvb(MDb(GDb(new SDb(null,new Swb(a.c.b,16)),new Gsc(a)),b))))} +function rvc(){ovc();return cD(WC(iX,1),jwe,259,0,[fvc,hvc,ivc,jvc,kvc,lvc,nvc,evc,gvc,mvc])} +function dEc(){aEc();return cD(WC(vX,1),jwe,243,0,[$Dc,VDc,YDc,WDc,XDc,SDc,ZDc,_Dc,TDc,UDc])} +function z3c(a,b){var c;b.Ug('General Compactor',1);c=h4c(RD(Gxd(a,($4c(),I4c)),393));c.Cg(a)} +function T5c(a,b){var c,d;c=RD(Gxd(a,($4c(),P4c)),17);d=RD(Gxd(b,P4c),17);return hgb(c.a,d.a)} +function Bjd(a,b,c){var d,e;for(e=Sub(a,0);e.b!=e.d.c;){d=RD(evb(e),8);d.a+=b;d.b+=c}return a} +function Go(a,b,c){var d;for(d=a.b[c&a.f];d;d=d.b){if(c==d.a&&Hb(b,d.g)){return d}}return null} +function Ho(a,b,c){var d;for(d=a.c[c&a.f];d;d=d.d){if(c==d.f&&Hb(b,d.i)){return d}}return null} +function sjb(a,b,c){var d,e,f;d=0;for(e=0;e>>31}d!=0&&(a[c]=d)} +function yzb(a,b,c,d,e,f){var g;this.c=a;g=new bnb;Syb(a,g,b,a.b,c,d,e,f);this.a=new Jkb(g,0)} +function _5c(){this.c=new T2c(0);this.b=new T2c(FEe);this.d=new T2c(EEe);this.a=new T2c(Gze)} +function kMb(a,b,c,d,e,f,g){qs.call(this,a,b);this.d=c;this.e=d;this.c=e;this.b=f;this.a=dv(g)} +function tBd(a,b,c,d,e,f,g,h,i,j,k,l,m){ABd(a,b,c,d,e,f,g,h,i,j,k,l,m);kXd(a,false);return a} +function H0b(a){if(a.b.c.i.k==(r3b(),m3b)){return RD(mQb(a.b.c.i,(Ywc(),Awc)),12)}return a.b.c} +function I0b(a){if(a.b.d.i.k==(r3b(),m3b)){return RD(mQb(a.b.d.i,(Ywc(),Awc)),12)}return a.b.d} +function nDb(a){var b;b=mDb(a);if(Gdb(b.a,0)){return bwb(),bwb(),awb}return bwb(),new ewb(b.b)} +function SCb(a){var b;b=RCb(a);if(Gdb(b.a,0)){return Tvb(),Tvb(),Svb}return Tvb(),new Yvb(b.b)} +function TCb(a){var b;b=RCb(a);if(Gdb(b.a,0)){return Tvb(),Tvb(),Svb}return Tvb(),new Yvb(b.c)} +function o8b(a){switch(a.g){case 2:return qpd(),ppd;case 4:return qpd(),Xod;default:return a;}} +function p8b(a){switch(a.g){case 1:return qpd(),npd;case 3:return qpd(),Yod;default:return a;}} +function C9c(a){switch(a.g){case 0:return new s9c;case 1:return new x9c;default:return null;}} +function Zcc(){Zcc=geb;Ycc=new kGd('edgelabelcenterednessanalysis.includelabel',(Geb(),Eeb))} +function jKc(){jKc=geb;iKc=mfd(qfd(pfd(pfd(new ufd,(sXb(),pXb),(hcc(),Qbc)),qXb,Gbc),rXb),Pbc)} +function DLc(){DLc=geb;CLc=mfd(qfd(pfd(pfd(new ufd,(sXb(),pXb),(hcc(),Qbc)),qXb,Gbc),rXb),Pbc)} +function lYd(){lYd=geb;iYd=new i1d;kYd=cD(WC(y7,1),lKe,179,0,[]);jYd=cD(WC(s7,1),mKe,62,0,[])} +function P8b(){P8b=geb;O8b=new Q8b('TO_INTERNAL_LTR',0);N8b=new Q8b('TO_INPUT_DIRECTION',1)} +function J3b(){J3b=geb;G3b=new r4b;E3b=new w4b;F3b=new A4b;D3b=new E4b;H3b=new I4b;I3b=new M4b} +function Cac(a,b){b.Ug(iBe,1);LJb(KJb(new PJb((i1b(),new t1b(a,false,false,new _1b)))));b.Vg()} +function M_c(a,b,c){c.Ug('DFS Treeifying phase',1);L_c(a,b);J_c(a,b);a.a=null;a.b=null;c.Vg()} +function Leb(a,b){Geb();return bE(a)?jhb(a,WD(b)):_D(a)?Jfb(a,UD(b)):$D(a)?Ieb(a,TD(b)):a.Fd(b)} +function Ld(a,b){var c,d;uFb(b);for(d=b.vc().Kc();d.Ob();){c=RD(d.Pb(),44);a.zc(c.ld(),c.md())}} +function ege(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!cge(a,b,d.Pb())){return false}}return true} +function S6d(a,b,c,d,e){var f;if(c){f=BYd(b.Dh(),a.c);e=c.Rh(b,-1-(f==-1?d:f),null,e)}return e} +function T6d(a,b,c,d,e){var f;if(c){f=BYd(b.Dh(),a.c);e=c.Th(b,-1-(f==-1?d:f),null,e)}return e} +function Uib(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function fjb(a){uFb(a);if(a.length==0){throw Adb(new Vgb('Zero length BigInteger'))}mjb(this,a)} +function $Hd(a){this.i=a.gc();if(this.i>0){this.g=this.aj(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function dmc(a,b,c){this.g=a;this.d=b;this.e=c;this.a=new bnb;bmc(this);yob();_mb(this.a,null)} +function aad(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Rmb(a.a,b)} +function xid(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.be?(c=e):BFb(b,c+1);a.a=zhb(a.a,0,b)+(''+d)+yhb(a.a,c)} +function ktb(a,b){a.a=Bdb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d=Bdb(a.d,b)} +function wdc(a,b){return b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw Adb(new Dvb)}} +function GRc(a){switch(a.a.g){case 1:return new lSc;case 3:return new VUc;default:return new WRc;}} +function fyd(a,b){switch(b){case 1:return !!a.n&&a.n.i!=0;case 2:return a.k!=null;}return Cxd(a,b)} +function Hdb(a){if(jxe>22);e=a.h+b.h+(d>>22);return hD(c&dxe,d&dxe,e&exe)} +function DD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return hD(c&dxe,d&dxe,e&exe)} +function Jpc(a){var b,c;Hpc(a);for(c=new Anb(a.d);c.ad)throw Adb(new aMd(b,d));a.Si()&&(c=bHd(a,c));return a.Ei(b,c)} +function eQb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){PPb(a,f,g)||TPb(a,f,g,true,false)}}} +function uid(a){tid();var b,c,d;c=$C(l3,Nve,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=Cid(d,a)}return c} +function xD(a){var b,c,d;b=~a.l+1&dxe;c=~a.m+(b==0?1:0)&dxe;d=~a.h+(b==0&&c==0?1:0)&exe;return hD(b,c,d)} +function mgb(a){var b;if(a<0){return qwe}else if(a==0){return 0}else{for(b=hwe;(b&a)==0;b>>=1);return b}} +function zSd(a,b,c){if(a>=128)return false;return a<64?Pdb(Cdb(Sdb(1,a),c),0):Pdb(Cdb(Sdb(1,a-64),b),0)} +function oQb(a,b,c){return c==null?(!a.q&&(a.q=new Tsb),_jb(a.q,b)):(!a.q&&(a.q=new Tsb),Zjb(a.q,b,c)),a} +function pQb(a,b,c){c==null?(!a.q&&(a.q=new Tsb),_jb(a.q,b)):(!a.q&&(a.q=new Tsb),Zjb(a.q,b,c));return a} +function KTb(a){var b,c;c=new gUb;kQb(c,a);pQb(c,(JVb(),HVb),a);b=new Tsb;MTb(a,c,b);LTb(a,c,b);return c} +function cIc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function qmc(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f=0,'Negative initial capacity');mFb(b>=0,'Non-positive load factor');akb(this)} +function iib(a,b,c,d,e){var f,g;g=a.length;f=c.length;if(b<0||d<0||e<0||b+e>g||d+e>f){throw Adb(new ueb)}} +function zob(a,b){yob();var c,d,e,f,g;g=false;for(d=b,e=0,f=d.length;e1||b>=0&&a.b<3} +function nD(a){var b,c,d;b=~a.l+1&dxe;c=~a.m+(b==0?1:0)&dxe;d=~a.h+(b==0&&c==0?1:0)&exe;a.l=b;a.m=c;a.h=d} +function Cob(a){yob();var b,c,d;d=1;for(c=a.Kc();c.Ob();){b=c.Pb();d=31*d+(b!=null?tb(b):0);d=d|0}return d} +function kD(a,b,c,d,e){var f;f=BD(a,b);c&&nD(f);if(e){a=mD(a,b);d?(eD=xD(a)):(eD=hD(a.l,a.m,a.h))}return f} +function Qlc(a,b,c){a.g=Wlc(a,b,(qpd(),Xod),a.b);a.d=Wlc(a,c,Xod,a.b);if(a.g.c==0||a.d.c==0){return}Tlc(a)} +function Rlc(a,b,c){a.g=Wlc(a,b,(qpd(),ppd),a.j);a.d=Wlc(a,c,ppd,a.j);if(a.g.c==0||a.d.c==0){return}Tlc(a)} +function Xyd(a,b){switch(b){case 7:return !!a.e&&a.e.i!=0;case 8:return !!a.d&&a.d.i!=0;}return wyd(a,b)} +function STb(a,b){switch(b.g){case 0:ZD(a.b,641)||(a.b=new tUb);break;case 1:ZD(a.b,642)||(a.b=new zUb);}} +function tbd(a){switch(a.g){case 0:return new _dd;default:throw Adb(new agb(eGe+(a.f!=null?a.f:''+a.g)));}} +function bdd(a){switch(a.g){case 0:return new vdd;default:throw Adb(new agb(eGe+(a.f!=null?a.f:''+a.g)));}} +function LCc(a,b,c){return !QDb(CDb(new SDb(null,new Swb(a.c,16)),new PAb(new gsd(b,c)))).Bd((xDb(),wDb))} +function mWc(a,b){return cjd(jWc(RD(mQb(b,(h_c(),H$c)),88)),new rjd(a.c.e.a-a.b.e.a,a.c.e.b-a.b.e.b))<=0} +function dve(a,b){while(a.g==null&&!a.c?sId(a):a.g==null||a.i!=0&&RD(a.g[a.i-1],51).Ob()){mFd(b,tId(a))}} +function sYb(a){var b,c;for(c=new Anb(a.a.b);c.ad?1:0} +function ICc(a){Rmb(a.c,(hed(),fed));if(_y(a.a,Kfb(UD(iGd((QCc(),OCc)))))){return new asd}return new csd(a)} +function fs(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!nmb(a.b)){a.d=RD(smb(a.b),51)}else{return null}}return a.d} +function BVc(a){switch(a.g){case 1:return EEe;default:case 2:return 0;case 3:return Gze;case 4:return FEe;}} +function fte(){Vse();var a;if(Cse)return Cse;a=Zse(hte('M',true));a=$se(hte('M',false),a);Cse=a;return Cse} +function ttd(){ttd=geb;qtd=new utd('ELK',0);rtd=new utd('JSON',1);ptd=new utd('DOT',2);std=new utd('SVG',3)} +function TEc(){TEc=geb;SEc=new UEc('STACKED',0);QEc=new UEc('REVERSE_STACKED',1);REc=new UEc('SEQUENCED',2)} +function LZc(){LZc=geb;KZc=new MZc(LAe,0);JZc=new MZc('MIDDLE_TO_MIDDLE',1);IZc=new MZc('AVOID_OVERLAP',2)} +function sgc(){sgc=geb;qgc=new Lgc;rgc=new Ngc;pgc=new Dgc;ogc=new Pgc;ngc=new Hgc;mgc=(uFb(ngc),new nrb)} +function vnd(){vnd=geb;tnd=new A3b(15);snd=new mGd((umd(),tld),tnd);und=Qld;ond=Ekd;pnd=kld;rnd=nld;qnd=mld} +function wgd(a,b){var c,d,e,f,g;for(d=b,e=0,f=d.length;e=a.b.c.length){return}jwb(a,2*b+1);c=2*b+2;c0){b.Cd(c);c.i&&zKc(c)}}} +function Ejb(a,b,c){var d;for(d=c-1;d>=0&&a[d]===b[d];d--);return d<0?0:Ldb(Cdb(a[d],yxe),Cdb(b[d],yxe))?-1:1} +function it(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Wp(c);d=$C(UG,ewe,227,e,0,1);this.b=d} +function fQb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(PPb(a,f,g)){return true}}}return false} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=RD(d.Pb(),16);if(c.Hc(b)){return true}}return false} +function iu(a,b,c){var d,e,f,g;uFb(c);g=false;f=a.fd(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function NMd(a,b){var c,d;d=RD(Ywd(a.a,4),129);c=$C(d6,IJe,424,b,0,1);d!=null&&hib(d,0,c,0,d.length);return c} +function hSd(a,b){var c;c=new lSd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Tv(a,b){var c;if(a===b){return true}else if(ZD(b,85)){c=RD(b,85);return Rx(gn(a),c.vc())}return false} +function Vjb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=RD(e.Pb(),44);if(a.Be(b,d.md())){return true}}return false} +function lmc(a,b,c){if(!a.d[b.p][c.p]){kmc(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function vMc(a,b){var c;if(!a||a==b||!nQb(b,(Ywc(),pwc))){return false}c=RD(mQb(b,(Ywc(),pwc)),10);return c!=a} +function Bhe(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.$l()}}} +function Che(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a._l()}}} +function bgb(a){oz.call(this,'The given string does not match the expected format for individual spacings.',a)} +function J6c(a,b){var c;b.Ug('Min Size Preprocessing',1);c=vsd(a);Ixd(a,(X6c(),U6c),c.a);Ixd(a,R6c,c.b);b.Vg()} +function Djd(a){var b,c,d;b=0;d=$C(l3,Nve,8,a.b,0,1);c=Sub(a,0);while(c.b!=c.d.c){d[b++]=RD(evb(c),8)}return d} +function Ajd(a,b,c){var d,e,f;d=new Yub;for(f=Sub(c,0);f.b!=f.d.c;){e=RD(evb(f),8);Mub(d,new sjd(e))}iu(a,b,d)} +function az(a,b){var c;c=Bdb(a,b);if(Ldb($db(a,b),0)|Jdb($db(a,c),0)){return c}return Bdb(Sve,$db(Udb(c,63),1))} +function le(a,b){var c,d;c=RD(a.d.Bc(b),16);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function Dyb(a){var b;b=a.a.c.length;if(b>0){return lyb(b-1,a.a.c.length),Xmb(a.a,b-1)}else{throw Adb(new Srb)}} +function nFb(a,b,c){if(a>b){throw Adb(new agb(_xe+a+aye+b))}if(a<0||b>c){throw Adb(new xeb(_xe+a+bye+b+Qxe+c))}} +function yXd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}JXd(a,b==null?null:(uFb(b),b));!!a.C&&a.hl(null)} +function JCc(a,b){var c;c=iGd((QCc(),OCc))!=null&&b.Sg()!=null?Kfb(UD(b.Sg()))/Kfb(UD(iGd(OCc))):1;Zjb(a.b,b,c)} +function $Lc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(cDEe?a-c>DEe:c-a>DEe} +function vjd(a,b){var c;for(c=0;ce){ead(b.q,e);d=c!=b.q.d}}return d} +function C3c(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function pBd(a,b){var c,d;d=Hvd(a);if(!d){!$Ad&&($Ad=new L5d);c=(gSd(),nSd(b));d=new Sde(c);WGd(d.El(),a)}return d} +function Sc(a,b){var c,d;c=RD(a.c.Bc(b),16);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function tKc(a,b){var c,d;d=Kwb(a.d,1)!=0;c=true;while(c){c=false;c=b.c.mg(b.e,d);c=c|DKc(a,b,d,false);d=!d}yKc(a)} +function omc(a,b,c,d){var e,f;a.a=b;f=d?0:1;a.f=(e=new mmc(a.c,a.a,c,f),new Pmc(c,a.a,e,a.e,a.b,a.c==(RKc(),PKc)))} +function Imb(a){var b;sFb(a.a!=a.b);b=a.d.a[a.a];zmb(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b} +function Vib(a){var b;if(a.c!=0){return a.c}for(b=0;b=a.c.b:a.a<=a.c.b)){throw Adb(new Dvb)}b=a.a;a.a+=a.c.c;++a.b;return sgb(b)} +function h5b(a){var b;b=new y2b(a.a);kQb(b,a);pQb(b,(Ywc(),Awc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function tVc(a){return (qpd(),hpd).Hc(a.j)?Kfb(UD(mQb(a,(Ywc(),Swc)))):xjd(cD(WC(l3,1),Nve,8,0,[a.i.n,a.n,a.a])).b} +function ZJc(a){var b;b=vfd(XJc);RD(mQb(a,(Ywc(),kwc)),21).Hc((ovc(),kvc))&&pfd(b,(sXb(),pXb),(hcc(),Ybc));return b} +function M2c(a){var b,c,d,e;e=new _sb;for(d=new Anb(a);d.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function Jid(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function Vvd(a,b){var c,d,e,f;f=(e=a?Hvd(a):null,Pje((d=b,e?e.Gl():null,d)));if(f==b){c=Hvd(a);!!c&&c.Gl()}return f} +function g2d(a,b,c){var d,e;e=a.f;a.f=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,0,e,b);!c?(c=d):c.nj(d)}return c} +function e2d(a,b,c){var d,e;e=a.b;a.b=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,3,e,b);!c?(c=d):c.nj(d)}return c} +function rAd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,1,e,b);!c?(c=d):c.nj(d)}return c} +function SNd(a){var b,c,d,e;if(a!=null){for(c=0;c=d||b-129&&a<128){return ugb(),b=a+128,c=tgb[b],!c&&(c=tgb[b]=new fgb(a)),c}return new fgb(a)} +function bhb(a){var b,c;if(a>-129&&a<128){return dhb(),b=a+128,c=chb[b],!c&&(c=chb[b]=new Xgb(a)),c}return new Xgb(a)} +function M$b(a,b){var c;if(a.a.c.length>0){c=RD(Vmb(a.a,a.a.c.length-1),579);if(Q_b(c,b)){return}}Rmb(a.a,new S_b(b))} +function Ekc(a){lkc();var b,c;b=a.d.c-a.e.c;c=RD(a.g,154);Umb(c.b,new Ykc(b));Umb(c.c,new $kc(b));xgb(c.i,new alc(b))} +function Mlc(a){var b;b=new bib;b.a+='VerticalSegment ';Yhb(b,a.e);b.a+=' ';Zhb(b,Eb(new Gb,new Anb(a.k)));return b.a} +function Fmc(a,b){var c,d,e;c=0;for(e=b3b(a,b).Kc();e.Ob();){d=RD(e.Pb(),12);c+=mQb(d,(Ywc(),Iwc))!=null?1:0}return c} +function VTc(a,b,c){var d,e,f;d=0;for(f=Sub(a,0);f.b!=f.d.c;){e=Kfb(UD(evb(f)));if(e>c){break}else e>=b&&++d}return d} +function Wv(b,c){Qb(b);try{return b._b(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return false}else throw Adb(a)}} +function Nk(b,c){Qb(b);try{return b.Hc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return false}else throw Adb(a)}} +function Ok(b,c){Qb(b);try{return b.Mc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return false}else throw Adb(a)}} +function Xv(b,c){Qb(b);try{return b.xc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return null}else throw Adb(a)}} +function Yv(b,c){Qb(b);try{return b.Bc(c)}catch(a){a=zdb(a);if(ZD(a,212)||ZD(a,169)){return null}else throw Adb(a)}} +function aMc(a,b){switch(b.g){case 2:case 1:return b3b(a,b);case 3:case 4:return hv(b3b(a,b));}return yob(),yob(),vob} +function QAd(a){var b;if((a.Db&64)!=0)return awd(a);b=new Shb(awd(a));b.a+=' (name: ';Nhb(b,a.zb);b.a+=')';return b.a} +function Fgd(a){var b;b=RD(cub(a.c.c,''),233);if(!b){b=new fgd(ogd(ngd(new pgd,''),'Other'));dub(a.c.c,'',b)}return b} +function hBd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,4,e,b);!c?(c=d):c.nj(d)}return c} +function ZVd(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,8,e,a.r);!c?(c=d):c.nj(d)}return c} +function q5d(a,b,c){var d,e;d=new P3d(a.e,4,13,(e=b.c,e?e:(JTd(),wTd)),null,fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function p5d(a,b,c){var d,e;d=new P3d(a.e,3,13,null,(e=b.c,e?e:(JTd(),wTd)),fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function Oee(a,b){var c,d;c=RD(b,691);d=c.el();!d&&c.fl(d=ZD(b,90)?new afe(a,RD(b,29)):new mfe(a,RD(b,156)));return d} +function KHd(a,b,c){var d;a._i(a.i+1);d=a.Zi(b,c);b!=a.i&&hib(a.g,b,a.g,b+1,a.i-b);bD(a.g,b,d);++a.i;a.Mi(b,c);a.Ni()} +function Hyb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new dib(a.d)):Zhb(a.a,a.b);Xhb(a.a,b.a,b.d.length,c)}return a} +function wib(a,b){var c;a.c=b;a.a=pjb(b);a.a<54&&(a.f=(c=b.d>1?DFb(b.a[0],b.a[1]):DFb(b.a[0],0),Xdb(b.e>0?c:Odb(c))))} +function MDb(a,b){var c;c=new IEb;if(!a.a.Bd(c)){LCb(a);return Kvb(),Kvb(),Jvb}return Kvb(),new Ovb(uFb(LDb(a,c.a,b)))} +function t9b(a,b){var c;if(a.c.length==0){return}c=RD(anb(a,$C(jR,WAe,10,a.c.length,0,1)),199);Znb(c,new F9b);q9b(c,b)} +function z9b(a,b){var c;if(a.c.length==0){return}c=RD(anb(a,$C(jR,WAe,10,a.c.length,0,1)),199);Znb(c,new K9b);q9b(c,b)} +function pb(a,b){return bE(a)?lhb(a,b):_D(a)?Lfb(a,b):$D(a)?(uFb(a),dE(a)===dE(b)):YD(a)?a.Fb(b):aD(a)?mb(a,b):Hz(a,b)} +function Cvd(a,b,c){if(b<0){Tvd(a,c)}else{if(!c.rk()){throw Adb(new agb(KHe+c.xe()+LHe))}RD(c,69).wk().Ek(a,a.hi(),b)}} +function xFb(a,b,c){if(a<0||b>c){throw Adb(new veb(_xe+a+bye+b+', size: '+c))}if(a>b){throw Adb(new agb(_xe+a+aye+b))}} +function oVd(a){var b;if((a.Db&64)!=0)return awd(a);b=new Shb(awd(a));b.a+=' (source: ';Nhb(b,a.d);b.a+=')';return b.a} +function JSd(a){if(a>=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function lMb(a){hMb();var b,c,d,e;for(c=nMb(),d=0,e=c.length;d=0?jjb(a):Xib(jjb(Odb(a)))))} +function G0b(a,b,c,d,e,f){this.e=new bnb;this.f=(BEc(),AEc);Rmb(this.e,a);this.d=b;this.a=c;this.b=d;this.f=e;this.c=f} +function bQb(a,b,c){a.n=YC(lE,[Nve,rxe],[376,28],14,[c,eE($wnd.Math.ceil(b/32))],2);a.o=b;a.p=c;a.j=b-1>>1;a.k=c-1>>1} +function ggb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function C4d(a,b){var c,d;for(d=new dMd(a);d.e!=d.i.gc();){c=RD(bMd(d),142);if(dE(b)===dE(c)){return true}}return false} +function Iee(a,b,c){var d,e,f;f=(e=N5d(a.b,b),e);if(f){d=RD(tfe(Pee(a,f),''),29);if(d){return Ree(a,d,b,c)}}return null} +function Lee(a,b,c){var d,e,f;f=(e=N5d(a.b,b),e);if(f){d=RD(tfe(Pee(a,f),''),29);if(d){return See(a,d,b,c)}}return null} +function IDd(a,b){var c;c=Ao(a.i,b);if(c==null){throw Adb(new CDd('Node did not exist in input.'))}wEd(b,c);return null} +function wvd(a,b){var c;c=wYd(a,b);if(ZD(c,331)){return RD(c,35)}throw Adb(new agb(KHe+b+"' is not a valid attribute"))} +function VGd(a,b,c){var d;d=a.gc();if(b>d)throw Adb(new aMd(b,d));if(a.Si()&&a.Hc(c)){throw Adb(new agb(LIe))}a.Gi(b,c)} +function w7b(a,b){b.Ug('Sort end labels',1);FDb(CDb(EDb(new SDb(null,new Swb(a.b,16)),new H7b),new J7b),new L7b);b.Vg()} +function Cmd(){Cmd=geb;Amd=new Gmd(Sye,0);zmd=new Gmd(Oye,1);ymd=new Gmd(Nye,2);xmd=new Gmd(Zye,3);Bmd=new Gmd('UP',4)} +function gbd(){gbd=geb;dbd=new hbd('P1_STRUCTURE',0);ebd=new hbd('P2_PROCESSING_ORDER',1);fbd=new hbd('P3_EXECUTION',2)} +function r0c(){r0c=geb;q0c=mfd(mfd(rfd(mfd(mfd(rfd(pfd(new ufd,(YVc(),VVc),(WYc(),VYc)),WVc),RYc),TYc),XVc),NYc),UYc)} +function s8b(a){switch(RD(mQb(a,(Ywc(),owc)),311).g){case 1:pQb(a,owc,(Gvc(),Dvc));break;case 2:pQb(a,owc,(Gvc(),Fvc));}} +function bUc(a){switch(a){case 0:return new mUc;case 1:return new cUc;case 2:return new hUc;default:throw Adb(new _fb);}} +function Fmd(a){switch(a.g){case 2:return zmd;case 1:return ymd;case 4:return xmd;case 3:return Bmd;default:return Amd;}} +function UNb(a,b){switch(a.b.g){case 0:case 1:return b;case 2:case 3:return new Uid(b.d,0,b.a,b.b);default:return null;}} +function rpd(a){switch(a.g){case 1:return ppd;case 2:return Yod;case 3:return Xod;case 4:return npd;default:return opd;}} +function spd(a){switch(a.g){case 1:return npd;case 2:return ppd;case 3:return Yod;case 4:return Xod;default:return opd;}} +function tpd(a){switch(a.g){case 1:return Xod;case 2:return npd;case 3:return ppd;case 4:return Yod;default:return opd;}} +function cyd(a,b,c,d){switch(b){case 1:return !a.n&&(a.n=new C5d(I4,a,1,7)),a.n;case 2:return a.k;}return Axd(a,b,c,d)} +function uLd(a,b,c){var d,e;if(a.Pj()){e=a.Qj();d=SHd(a,b,c);a.Jj(a.Ij(7,sgb(c),d,b,e));return d}else{return SHd(a,b,c)}} +function VNd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.ld();c=b.Bi();d=(c&lve)%a.d.length;iOd(a,d,XNd(a,d,c,e))}} +function xWd(a,b){var c;c=(a.Bb&gwe)!=0;b?(a.Bb|=gwe):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,10,c,b))} +function DWd(a,b){var c;c=(a.Bb&qxe)!=0;b?(a.Bb|=qxe):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,12,c,b))} +function EWd(a,b){var c;c=(a.Bb&bKe)!=0;b?(a.Bb|=bKe):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,15,c,b))} +function FWd(a,b){var c;c=(a.Bb&cKe)!=0;b?(a.Bb|=cKe):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,11,c,b))} +function zKc(a){var b;if(a.g){b=a.c.kg()?a.f:a.a;BKc(b.a,a.o,true);BKc(b.a,a.o,false);pQb(a.o,(yCc(),BBc),(Bod(),vod))}} +function Orc(a){var b;if(!a.a){throw Adb(new dgb('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;Qrc(a,b);Rrc(a,b)} +function JDd(a,b){var c;c=Wjb(a.k,b);if(c==null){throw Adb(new CDd('Port did not exist in input.'))}wEd(b,c);return null} +function Jje(a){var b,c;for(c=Kje(BXd(a)).Kc();c.Ob();){b=WD(c.Pb());if(bAd(a,b)){return USd((TSd(),SSd),b)}}return null} +function qJb(a){var b,c;for(c=a.p.a.ec().Kc();c.Ob();){b=RD(c.Pb(),218);if(b.f&&a.b[b.c]<-1.0E-10){return b}}return null} +function Lr(a){var b,c;c=Thb(new bib,91);b=true;while(a.Ob()){b||(c.a+=pve,c);b=false;Yhb(c,a.Pb())}return (c.a+=']',c).a} +function o_b(a){var b,c,d;b=new bnb;for(d=new Anb(a.b);d.ab){return 1}if(a==b){return a==0?Qfb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function pmb(a){var b;b=a.a[a.c-1&a.a.length-1];if(b==null){return null}a.c=a.c-1&a.a.length-1;bD(a.a,a.c,null);return b} +function Dqe(a){var b,c,d;d=0;c=a.length;for(b=0;b=1?zmd:xmd}return c} +function Xhc(a){switch(RD(mQb(a,(yCc(),yAc)),223).g){case 1:return new jqc;case 3:return new arc;default:return new dqc;}} +function MCb(a){if(a.c){MCb(a.c)}else if(a.d){throw Adb(new dgb("Stream already terminated, can't be modified or used"))}} +function Ltb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;++a.b.g}else{++a.d}return d} +function HHc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=RD(e.Pb(),10);if(Be(c,RD(Vmb(b,d.p),16))){return d}}return null} +function u0c(a,b,c){var d;d=0;!!b&&(Emd(a.a)?(d+=b.f.a/2):(d+=b.f.b/2));!!c&&(Emd(a.a)?(d+=c.f.a/2):(d+=c.f.b/2));return d} +function LWb(a,b,c){var d;d=c;!d&&(d=Nqd(new Oqd,0));d.Ug(EAe,2);y0b(a.b,b,d.eh(1));NWb(a,b,d.eh(1));h0b(b,d.eh(1));d.Vg()} +function CGd(a,b,c){var d,e;d=(bvd(),e=new Xxd,e);Vxd(d,b);Wxd(d,c);!!a&&WGd((!a.a&&(a.a=new XZd(D4,a,5)),a.a),d);return d} +function kyd(a){var b;if((a.Db&64)!=0)return awd(a);b=new Shb(awd(a));b.a+=' (identifier: ';Nhb(b,a.k);b.a+=')';return b.a} +function kXd(a,b){var c;c=(a.Bb&QHe)!=0;b?(a.Bb|=QHe):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,18,c,b))} +function a6d(a,b){var c;c=(a.Bb&QHe)!=0;b?(a.Bb|=QHe):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,18,c,b))} +function AWd(a,b){var c;c=(a.Bb&Ove)!=0;b?(a.Bb|=Ove):(a.Bb&=-16385);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,16,c,b))} +function c6d(a,b){var c;c=(a.Bb&txe)!=0;b?(a.Bb|=txe):(a.Bb&=-65537);(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new Q3d(a,1,20,c,b))} +function qse(a){var b;b=$C(hE,zwe,28,2,15,1);a-=txe;b[0]=(a>>10)+uxe&Bwe;b[1]=(a&1023)+56320&Bwe;return Ihb(b,0,b.length)} +function Zfb(a){var b;b=Neb(a);if(b>3.4028234663852886E38){return oxe}else if(b<-3.4028234663852886E38){return pxe}return b} +function Bdb(a,b){var c;if(Kdb(a)&&Kdb(b)){c=a+b;if(jxe'+aXc(b.c):'e_'+tb(b),!!a.b&&!!a.c?aXc(a.b)+'->'+aXc(a.c):'e_'+tb(a))} +function rWc(a,b){return lhb(!!b.b&&!!b.c?aXc(b.b)+'->'+aXc(b.c):'e_'+tb(b),!!a.b&&!!a.c?aXc(a.b)+'->'+aXc(a.c):'e_'+tb(a))} +function $y(a,b){Zy();return bz(pwe),$wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b))} +function Ymd(){Ymd=geb;Xmd=new Zmd(Sye,0);Vmd=new Zmd('POLYLINE',1);Umd=new Zmd('ORTHOGONAL',2);Wmd=new Zmd('SPLINES',3)} +function _6c(){_6c=geb;Z6c=new a7c('ASPECT_RATIO_DRIVEN',0);$6c=new a7c('MAX_SCALE_DRIVEN',1);Y6c=new a7c('AREA_DRIVEN',2)} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=zdb(a);if(ZD(a,606)){e=a;throw Adb(new Deb(e))}else throw Adb(a)}return c} +function Im(a){var b,c,d;for(c=0,d=a.length;cb&&d.Ne(a[f-1],a[f])>0;--f){g=a[f];bD(a,f,a[f-1]);bD(a,f-1,g)}}} +function Egd(a,b){var c,d,e,f,g;c=b.f;dub(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb){fvb(c);break}}cvb(c,b)} +function Kic(a,b){var c,d,e;d=Zjc(b);e=Kfb(UD(hFc(d,(yCc(),TBc))));c=$wnd.Math.max(0,e/2-0.5);Iic(b,c,1);Rmb(a,new hjc(b,c))} +function L5c(a,b,c){var d;c.Ug('Straight Line Edge Routing',1);c.dh(b,eFe);d=RD(Gxd(b,(u2c(),t2c)),27);M5c(a,d);c.dh(b,gFe)} +function K9c(a,b){a.n.c.length==0&&Rmb(a.n,new _9c(a.s,a.t,a.i));Rmb(a.b,b);W9c(RD(Vmb(a.n,a.n.c.length-1),209),b);M9c(a,b)} +function Zrb(a){var b;this.a=(b=RD(a.e&&a.e(),9),new Fsb(b,RD(WEb(b,b.length),9),0));this.b=$C(jJ,rve,1,this.a.a.length,5,1)} +function jeb(a){var b;if(Array.isArray(a)&&a.Tm===keb){return nfb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function jD(a,b){if(a.h==fxe&&a.m==0&&a.l==0){b&&(eD=hD(0,0,0));return gD((MD(),KD))}b&&(eD=hD(a.l,a.m,a.h));return hD(0,0,0)} +function _Gb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function IYb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function vyd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return cyd(a,b,c,d)} +function oIb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw Adb(new agb('Node '+b+' not part of edge '+a))}} +function Uvd(a,b){var c;c=wYd(a.Dh(),b);if(ZD(c,102)){return RD(c,19)}throw Adb(new agb(KHe+b+"' is not a valid reference"))} +function Bvd(a,b,c,d){if(b<0){Svd(a,c,d)}else{if(!c.rk()){throw Adb(new agb(KHe+c.xe()+LHe))}RD(c,69).wk().Ck(a,a.hi(),b,d)}} +function ig(a){var b;if(a.b){ig(a.b);if(a.b.d!=a.c){throw Adb(new Jrb)}}else if(a.d.dc()){b=RD(a.f.c.xc(a.e),16);!!b&&(a.d=b)}} +function VMb(a){RMb();var b,c,d,e;b=a.o.b;for(d=RD(RD(Qc(a.r,(qpd(),npd)),21),87).Kc();d.Ob();){c=RD(d.Pb(),117);e=c.e;e.b+=b}} +function SRb(a){var b,c,d;this.a=new Iub;for(d=new Anb(a);d.a=e){return b.c+c}}return b.c+b.b.gc()} +function lQd(a,b){jQd();var c,d,e,f;d=iZd(a);e=b;Wnb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function FFd(a){var b,c,d,e,f;f=HFd(a);c=cve(a.c);d=!c;if(d){e=new MB;sC(f,'knownLayouters',e);b=new QFd(e);xgb(a.c,b)}return f} +function fHd(a){var b,c,d;d=new Qhb;d.a+='[';for(b=0,c=a.gc();b0&&(BFb(b-1,a.length),a.charCodeAt(b-1)==58)&&!mSd(a,aSd,bSd)} +function Sib(a,b){var c;if(dE(a)===dE(b)){return true}if(ZD(b,92)){c=RD(b,92);return a.e==c.e&&a.d==c.d&&Tib(a,c.a)}return false} +function vpd(a){qpd();switch(a.g){case 4:return Yod;case 1:return Xod;case 3:return npd;case 2:return ppd;default:return opd;}} +function jBb(a){var b,c;if(a.b){return a.b}c=dBb?null:a.d;while(c){b=dBb?null:c.b;if(b){return b}c=dBb?null:c.d}return SAb(),RAb} +function LJb(a){var b,c,d;d=Kfb(UD(a.a.of((umd(),cmd))));for(c=new Anb(a.a.Sf());c.a>5;b=a&31;d=$C(kE,Pwe,28,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function BYd(a,b){var c,d,e;c=(a.i==null&&rYd(a),a.i);d=b.Lj();if(d!=-1){for(e=c.length;d=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} +function Dfd(a){Afd();if(RD(a.of((umd(),pld)),181).Hc((dqd(),bqd))){RD(a.of(Lld),181).Fc((Pod(),Ood));RD(a.of(pld),181).Mc(bqd)}} +function ndc(a){var b,c;b=a.d==(btc(),Ysc);c=jdc(a);b&&!c||!b&&c?pQb(a.a,(yCc(),Rzc),(Rjd(),Pjd)):pQb(a.a,(yCc(),Rzc),(Rjd(),Ojd))} +function QCc(){QCc=geb;GCc();OCc=(yCc(),bCc);PCc=dv(cD(WC(V5,1),kEe,149,0,[SBc,TBc,VBc,WBc,ZBc,$Bc,_Bc,aCc,dCc,fCc,UBc,XBc,cCc]))} +function RDb(a,b){var c;c=RD(zDb(a,tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);return c.Qc(__c(c.gc()))} +function nXc(a,b){var c,d;d=new zAb(a.a.ad(b,true));if(d.a.gc()<=1){throw Adb(new Ngb)}c=d.a.ec().Kc();c.Pb();return RD(c.Pb(),40)} +function lQc(a,b,c){var d,e;d=Kfb(a.p[b.i.p])+Kfb(a.d[b.i.p])+b.n.b+b.a.b;e=Kfb(a.p[c.i.p])+Kfb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function XHd(a,b){var c;if(a.i>0){if(b.lengtha.i&&bD(b,a.i,null);return b} +function MXd(a){var b;if((a.Db&64)!=0)return QAd(a);b=new Shb(QAd(a));b.a+=' (instanceClassName: ';Nhb(b,a.D);b.a+=')';return b.a} +function ySd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c0){a._j();d=b==null?0:tb(b);e=(d&lve)%a.d.length;c=XNd(a,e,d,b);return c!=-1}else{return false}} +function Nrb(a,b){var c,d;a.a=Bdb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d+=b;c=b-a.f;d=a.e+c;a.f=d-a.e-c;a.e=d} +function yyd(a,b){switch(b){case 3:Ayd(a,0);return;case 4:Cyd(a,0);return;case 5:Dyd(a,0);return;case 6:Eyd(a,0);return;}hyd(a,b)} +function c3b(a,b){switch(b.g){case 1:return dr(a.j,(J3b(),E3b));case 2:return dr(a.j,(J3b(),G3b));default:return yob(),yob(),vob;}} +function zm(a){tm();var b;b=a.Pc();switch(b.length){case 0:return sm;case 1:return new Dy(Qb(b[0]));default:return new Kx(Im(b));}} +function kMd(b,c){b.Xj();try{b.d.bd(b.e++,c);b.f=b.d.j;b.g=-1}catch(a){a=zdb(a);if(ZD(a,77)){throw Adb(new Jrb)}else throw Adb(a)}} +function a8d(){a8d=geb;$7d=new b8d;T7d=new e8d;U7d=new h8d;V7d=new k8d;W7d=new n8d;X7d=new q8d;Y7d=new t8d;Z7d=new w8d;_7d=new z8d} +function YA(a,b){WA();var c,d;c=_A(($A(),$A(),ZA));d=null;b==c&&(d=RD(Xjb(VA,a),624));if(!d){d=new XA(a);b==c&&$jb(VA,a,d)}return d} +function zDc(a){wDc();var b;(!a.q?(yob(),yob(),wob):a.q)._b((yCc(),iBc))?(b=RD(mQb(a,iBc),203)):(b=RD(mQb(Y2b(a),jBc),203));return b} +function hFc(a,b){var c,d;d=null;if(nQb(a,(yCc(),YBc))){c=RD(mQb(a,YBc),96);c.pf(b)&&(d=c.of(b))}d==null&&(d=mQb(Y2b(a),b));return d} +function Ze(a,b){var c,d,e;if(ZD(b,44)){c=RD(b,44);d=c.ld();e=Xv(a.Rc(),d);return Hb(e,c.md())&&(e!=null||a.Rc()._b(d))}return false} +function $Nd(a,b){var c,d,e;if(a.f>0){a._j();d=b==null?0:tb(b);e=(d&lve)%a.d.length;c=WNd(a,e,d,b);if(c){return c.md()}}return null} +function qLd(a,b,c){var d,e,f;if(a.Pj()){d=a.i;f=a.Qj();KHd(a,d,b);e=a.Ij(3,null,b,d,f);!c?(c=e):c.nj(e)}else{KHd(a,a.i,b)}return c} +function f$d(a,b,c){var d,e;d=new P3d(a.e,4,10,(e=b.c,ZD(e,90)?RD(e,29):(JTd(),zTd)),null,fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function e$d(a,b,c){var d,e;d=new P3d(a.e,3,10,null,(e=b.c,ZD(e,90)?RD(e,29):(JTd(),zTd)),fZd(a,b),false);!c?(c=d):c.nj(d);return c} +function SMb(a){RMb();var b;b=new sjd(RD(a.e.of((umd(),nld)),8));if(a.B.Hc((dqd(),Ypd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function jjb(a){Pib();var b,c;c=Ydb(a);b=Ydb(Udb(a,32));if(b!=0){return new bjb(c,b)}if(c>10||c<0){return new ajb(1,c)}return Lib[c]} +function Mdb(a,b){var c;if(Kdb(a)&&Kdb(b)){c=a%b;if(jxe=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Qyb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.Ne(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function rmc(a,b,c,d){var e,f,g;e=false;if(Lmc(a.f,c,d)){Omc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function Nqc(a,b,c){var d,e,f,g;e=RD(Wjb(a.b,c),183);d=0;for(g=new Anb(b.j);g.a>5;b&=31;e=a.d+c+(b==0?0:1);d=$C(kE,Pwe,28,e,15,1);rjb(d,a.a,c,b);f=new cjb(a.e,e,d);Rib(f);return f} +function zGc(a,b){var c,d,e;for(d=new is(Mr(a3b(a).a.Kc(),new ir));gs(d);){c=RD(hs(d),18);e=c.d.i;if(e.c==b){return false}}return true} +function _Ec(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=UD(hFc(a,d));f=UD(hFc(b,d));return $wnd.Math.max((uFb(e),e),(uFb(f),f))} +function lA(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function sGb(a,b){return Zy(),Zy(),bz(pwe),($wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b)))>0} +function uGb(a,b){return Zy(),Zy(),bz(pwe),($wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b)))<0} +function tGb(a,b){return Zy(),Zy(),bz(pwe),($wnd.Math.abs(a-b)<=pwe||a==b||isNaN(a)&&isNaN(b)?0:ab?1:cz(isNaN(a),isNaN(b)))<=0} +function Efb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c0&&this.b>0&&(this.g=Aad(this.c,this.b,this.a))} +function rC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(HC(),GC)[typeof c];var e=d?d(c):NC(typeof c);return e} +function uDd(a){var b,c,d;d=null;b=uIe in a.a;c=!b;if(c){throw Adb(new CDd('Every element must have an id.'))}d=tDd(qC(a,uIe));return d} +function Qqe(a){var b,c;c=Rqe(a);b=null;while(a.c==2){Mqe(a);if(!b){b=(Vse(),Vse(),++Use,new iue(2));hue(b,c);c=b}c.Jm(Rqe(a))}return c} +function jOd(a,b){var c,d,e;a._j();d=b==null?0:tb(b);e=(d&lve)%a.d.length;c=WNd(a,e,d,b);if(c){hOd(a,c);return c.md()}else{return null}} +function Qib(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function UHc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw Adb(new agb('Input edge is not connected to the input port.'))} +function Fae(a){if(mhb(FGe,a)){return Geb(),Feb}else if(mhb(GGe,a)){return Geb(),Eeb}else{throw Adb(new agb('Expecting true or false'))}} +function jFb(a){switch(typeof(a)){case jve:return ohb(a);case ive:return Nfb(a);case hve:return Jeb(a);default:return a==null?0:kFb(a);}} +function mfd(a,b){if(a.a<0){throw Adb(new dgb('Did not call before(...) or after(...) before calling add(...).'))}tfd(a,a.a,b);return a} +function FId(a){EId();if(ZD(a,162)){return RD(Wjb(CId,zK),295).Rg(a)}if(Ujb(CId,rb(a))){return RD(Wjb(CId,rb(a)),295).Rg(a)}return null} +function Wwd(a){var b,c;if((a.Db&32)==0){c=(b=RD(Ywd(a,16),29),AYd(!b?a.ii():b)-AYd(a.ii()));c!=0&&$wd(a,32,$C(jJ,rve,1,c,5,1))}return a} +function $wd(a,b,c){var d;if((a.Db&b)!=0){if(c==null){Zwd(a,b)}else{d=Xwd(a,b);d==-1?(a.Eb=c):bD(SD(a.Eb),d,c)}}else c!=null&&Twd(a,b,c)} +function tTc(a,b,c,d){var e,f;if(b.c.length==0){return}e=pTc(c,d);f=oTc(b);FDb(PDb(new SDb(null,new Swb(f,1)),new CTc),new GTc(a,c,e,d))} +function rmb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;zmb(c=f){umb(a,b);return -1}else{vmb(a,b);return 1}} +function Hvd(a){var b,c,d;d=a.Jh();if(!d){b=0;for(c=a.Ph();c;c=c.Ph()){if(++b>wxe){return c.Qh()}d=c.Jh();if(!!d||c==a){break}}}return d} +function Ue(a,b){var c;if(dE(b)===dE(a)){return true}if(!ZD(b,21)){return false}c=RD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function kNc(a,b){if(a.eb.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function mhb(a,b){uFb(a);if(b==null){return false}if(lhb(a,b)){return true}return a.length==b.length&&lhb(a.toLowerCase(),b.toLowerCase())} +function Hgb(a){var b,c;if(Ddb(a,-129)>0&&Ddb(a,128)<0){return Jgb(),b=Ydb(a)+128,c=Igb[b],!c&&(c=Igb[b]=new zgb(a)),c}return new zgb(a)} +function U$b(){U$b=geb;T$b=new V$b(LAe,0);R$b=new V$b('INSIDE_PORT_SIDE_GROUPS',1);Q$b=new V$b('GROUP_MODEL_ORDER',2);S$b=new V$b(MAe,3)} +function ufe(a){var b;a.b||vfe(a,(b=Hee(a.e,a.a),!b||!lhb(GGe,$Nd((!b.b&&(b.b=new SVd((JTd(),FTd),C8,b)),b.b),'qualified'))));return a.c} +function BA(a,b){var c,d;c=(BFb(b,a.length),a.charCodeAt(b));d=b+1;while(d2000){Oz=a;Pz=$wnd.setTimeout(Yz,10)}}if(Nz++==0){_z(($z(),Zz));return true}return false} +function lBb(a,b,c){var d;(bBb?(jBb(a),true):cBb?(SAb(),true):fBb?(SAb(),true):eBb&&(SAb(),false))&&(d=new aBb(b),d.b=c,hBb(a,d),undefined)} +function oNb(a,b){var c;c=!a.A.Hc((Qpd(),Ppd))||a.q==(Bod(),wod);a.u.Hc((Pod(),Lod))?c?mNb(a,b):qNb(a,b):a.u.Hc(Nod)&&(c?nNb(a,b):rNb(a,b))} +function Bed(a){var b;if(dE(Gxd(a,(umd(),Xkd)))===dE((Fnd(),Dnd))){if(!vCd(a)){Ixd(a,Xkd,End)}else{b=RD(Gxd(vCd(a),Xkd),346);Ixd(a,Xkd,b)}}} +function _fc(a){var b,c;if(nQb(a.d.i,(yCc(),tBc))){b=RD(mQb(a.c.i,tBc),17);c=RD(mQb(a.d.i,tBc),17);return hgb(b.a,c.a)>0}else{return false}} +function g_b(a,b,c){return new Uid($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function _mc(a){var b;this.d=new bnb;this.j=new pjd;this.g=new pjd;b=a.g.b;this.f=RD(mQb(Y2b(b),(yCc(),rAc)),88);this.e=Kfb(UD(k2b(b,ZBc)))} +function onc(a){this.d=new bnb;this.e=new gub;this.c=$C(kE,Pwe,28,(qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])).length,15,1);this.b=a} +function $pc(a,b,c){var d;d=c[a.g][b];switch(a.g){case 1:case 3:return new rjd(0,d);case 2:case 4:return new rjd(d,0);default:return null;}} +function Ced(b,c,d){var e,f;f=RD(ltd(c.f),205);try{f.rf(b,d);mtd(c.f,f)}catch(a){a=zdb(a);if(ZD(a,103)){e=a;throw Adb(e)}else throw Adb(a)}} +function tEd(a,b,c){var d,e,f,g,h,i;d=null;h=vgd(ygd(),b);f=null;if(h){e=null;i=zhd(h,c);g=null;i!=null&&(g=a.qf(h,i));e=g;f=e}d=f;return d} +function sSd(a,b,c,d){var e;e=a.length;if(b>=e)return e;for(b=b>0?b:0;bd&&bD(b,d,null);return b} +function lob(a,b){var c,d;d=a.a.length;b.lengthd&&bD(b,d,null);return b} +function Bde(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,ZD(d,99)?RD(d,99).th():null);if(Jnb(b,c)){$wd(a.a,4,c);return}}$wd(a.a,4,RD(b,129))} +function mne(a){var b;if(a==null)return null;b=Hqe(nue(a,true));if(b==null){throw Adb(new Mle("Invalid hexBinary value: '"+a+"'"))}return b} +function wA(a,b,c){var d;if(b.a.length>0){Rmb(a.b,new kB(b.a,c));d=b.a.length;0d&&(b.a+=Hhb($C(hE,zwe,28,-d,15,1)))}} +function yIb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new Anb(CIb(b));e.a=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=0?a.Wh(e):Rvd(a,d)):c<0?Rvd(a,d):RD(d,69).wk().Bk(a,a.hi(),c)} +function Fxd(a){var b,c,d;d=(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),a.o);for(c=d.c.Kc();c.e!=c.i.gc();){b=RD(c.Yj(),44);b.md()}return dOd(d)} +function iGd(a){var b;if(ZD(a.a,4)){b=FId(a.a);if(b==null){throw Adb(new dgb(HGe+a.b+"'. "+DGe+(lfb(b6),b6.k)+EGe))}return b}else{return a.a}} +function iSd(a,b){var c,d;if(a.j.length!=b.j.length)return false;for(c=0,d=a.j.length;c=64&&b<128&&(e=Rdb(e,Sdb(1,b-64)))}return e} +function k2b(a,b){var c,d;d=null;if(nQb(a,(umd(),amd))){c=RD(mQb(a,amd),96);c.pf(b)&&(d=c.of(b))}d==null&&!!Y2b(a)&&(d=mQb(Y2b(a),b));return d} +function i0b(a,b){var c;c=RD(mQb(a,(yCc(),RAc)),75);if(br(b,f0b)){if(!c){c=new Ejd;pQb(a,RAc,c)}else{Xub(c)}}else !!c&&pQb(a,RAc,null);return c} +function tSb(){tSb=geb;sSb=(umd(),Yld);mSb=Ukd;hSb=Dkd;nSb=tld;qSb=(YHb(),UHb);pSb=SHb;rSb=WHb;oSb=RHb;jSb=(eSb(),aSb);iSb=_Rb;kSb=cSb;lSb=dSb} +function PZb(a){NZb();this.c=new bnb;this.d=a;switch(a.g){case 0:case 2:this.a=Fob(MZb);this.b=oxe;break;case 3:case 1:this.a=MZb;this.b=pxe;}} +function c9b(a){var b;if(!Cod(RD(mQb(a,(yCc(),BBc)),101))){return}b=a.b;d9b((tFb(0,b.c.length),RD(b.c[0],30)));d9b(RD(Vmb(b,b.c.length-1),30))} +function ohc(a,b){b.Ug('Self-Loop post-processing',1);FDb(CDb(CDb(EDb(new SDb(null,new Swb(a.b,16)),new uhc),new whc),new yhc),new Ahc);b.Vg()} +function xrd(a,b,c){var d,e;if(a.c){Dyd(a.c,a.c.i+b);Eyd(a.c,a.c.j+c)}else{for(e=new Anb(a.b);e.a=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function JDc(){JDc=geb;IDc=new LDc(mEe,0);FDc=new LDc(BBe,1);GDc=new LDc('LINEAR_SEGMENTS',2);EDc=new LDc('BRANDES_KOEPF',3);HDc=new LDc(lEe,4)} +function IRb(){IRb=geb;FRb=new JRb(_ye,0);ERb=new JRb(aze,1);GRb=new JRb(bze,2);HRb=new JRb(cze,3);FRb.a=false;ERb.a=true;GRb.a=false;HRb.a=true} +function IPb(){IPb=geb;FPb=new JPb(_ye,0);EPb=new JPb(aze,1);GPb=new JPb(bze,2);HPb=new JPb(cze,3);FPb.a=false;EPb.a=true;GPb.a=false;HPb.a=true} +function Ivd(a,b,c,d){var e;if(c>=0){return a.Sh(b,c,d)}else{!!a.Ph()&&(d=(e=a.Fh(),e>=0?a.Ah(d):a.Ph().Th(a,-1-e,null,d)));return a.Ch(b,c,d)}} +function Zyd(a,b){switch(b){case 7:!a.e&&(a.e=new Yie(G4,a,7,4));sLd(a.e);return;case 8:!a.d&&(a.d=new Yie(G4,a,8,5));sLd(a.d);return;}yyd(a,b)} +function Ixd(a,b,c){c==null?(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),jOd(a.o,b)):(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),fOd(a.o,b,c));return a} +function Aob(a,b){yob();var c,d,e,f;c=a;f=b;if(ZD(a,21)&&!ZD(b,21)){c=b;f=a}for(e=c.Kc();e.Ob();){d=e.Pb();if(f.Hc(d)){return false}}return true} +function qTc(a,b,c,d){if(b.ac.b){return true}}}return false} +function QD(a,b){if(bE(a)){return !!PD[b]}else if(a.Sm){return !!a.Sm[b]}else if(_D(a)){return !!OD[b]}else if($D(a)){return !!ND[b]}return false} +function udc(a){var b;b=a.a;do{b=RD(hs(new is(Mr(Z2b(b).a.Kc(),new ir))),18).c.i;b.k==(r3b(),o3b)&&a.b.Fc(b)}while(b.k==(r3b(),o3b));a.b=hv(a.b)} +function UGc(a,b){var c,d,e;e=a;for(d=new is(Mr(Z2b(b).a.Kc(),new ir));gs(d);){c=RD(hs(d),18);!!c.c.i.c&&(e=$wnd.Math.max(e,c.c.i.c.p))}return e} +function INb(a,b){var c,d,e;e=0;d=RD(RD(Qc(a.r,b),21),87).Kc();while(d.Ob()){c=RD(d.Pb(),117);e+=c.d.d+c.b.Mf().b+c.d.a;d.Ob()&&(e+=a.w)}return e} +function AMb(a,b){var c,d,e;e=0;d=RD(RD(Qc(a.r,b),21),87).Kc();while(d.Ob()){c=RD(d.Pb(),117);e+=c.d.b+c.b.Mf().a+c.d.c;d.Ob()&&(e+=a.w)}return e} +function O2c(a){var b,c,d,e;d=0;e=Q2c(a);if(e.c.length==0){return 1}else{for(c=new Anb(e);c.a=0?a.Lh(g,c,true):Qvd(a,f,c)):RD(f,69).wk().yk(a,a.hi(),e,c,d)} +function aNb(a,b,c,d){var e,f;f=b.pf((umd(),ild))?RD(b.of(ild),21):a.j;e=lMb(f);if(e==(hMb(),gMb)){return}if(c&&!jMb(e)){return}LKb(cNb(a,e,d),b)} +function Y6b(a){switch(a.g){case 1:return mOb(),lOb;case 3:return mOb(),iOb;case 2:return mOb(),kOb;case 4:return mOb(),jOb;default:return null;}} +function kmc(a,b,c){if(a.e){switch(a.b){case 1:Ulc(a.c,b,c);break;case 0:Vlc(a.c,b,c);}}else{Slc(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function LLc(a){var b,c;if(a==null){return null}c=$C(jR,Nve,199,a.length,0,2);for(b=0;b=0)return e;if(a.ol()){for(d=0;d=e)throw Adb(new aMd(b,e));if(a.Si()){d=a.dd(c);if(d>=0&&d!=b){throw Adb(new agb(LIe))}}return a.Xi(b,c)} +function wx(a,b){this.a=RD(Qb(a),253);this.b=RD(Qb(b),253);if(a.Ed(b)>0||a==(Wk(),Vk)||b==(kl(),jl)){throw Adb(new agb('Invalid range: '+Dx(a,b)))}} +function p_b(a){var b,c;this.b=new bnb;this.c=a;this.a=false;for(c=new Anb(a.a);c.a0);if((b&-b)==b){return eE(b*Kwb(a,31)*4.6566128730773926E-10)}do{c=Kwb(a,31);d=c%b}while(c-d+(b-1)<0);return eE(d)} +function d2b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function Onc(a,b,c,d){var e,f;for(e=b;e1&&(f=xIb(a,b));return f} +function yqd(a){var b;b=Kfb(UD(Gxd(a,(umd(),lmd))))*$wnd.Math.sqrt((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a).i);return new rjd(b,b/Kfb(UD(Gxd(a,kmd))))} +function Dzd(a){var b;if(!!a.f&&a.f.Vh()){b=RD(a.f,54);a.f=RD(Vvd(a,b),84);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,8,b,a.f))}return a.f} +function Ezd(a){var b;if(!!a.i&&a.i.Vh()){b=RD(a.i,54);a.i=RD(Vvd(a,b),84);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,7,b,a.i))}return a.i} +function Z5d(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=RD(Vvd(a,b),19);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,21,b,a.b))}return a.b} +function UNd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Bi();_Nd(a,a.f+1);e=(d&lve)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.dk());c.Fc(b);++a.f}} +function Mge(a,b,c){var d;if(b.tk()){return false}else if(b.Ik()!=-2){d=b.ik();return d==null?c==null:pb(d,c)}else return b.qk()==a.e.Dh()&&c==null} +function Io(){var a;dk(16,fwe);a=Wp(16);this.b=$C(XF,ewe,303,a,0,1);this.c=$C(XF,ewe,303,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function j3b(a){v2b.call(this);this.k=(r3b(),p3b);this.j=(dk(6,iwe),new cnb(6));this.b=(dk(2,iwe),new cnb(2));this.d=new T2b;this.f=new C3b;this.a=a} +function wgc(a){var b,c;if(a.c.length<=1){return}b=tgc(a,(qpd(),npd));vgc(a,RD(b.a,17).a,RD(b.b,17).a);c=tgc(a,ppd);vgc(a,RD(c.a,17).a,RD(c.b,17).a)} +function vHc(a,b,c){var d,e;e=a.a.b;for(d=e.c.length;d102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function ck(a,b){if(a==null){throw Adb(new Ogb('null key in entry: null='+b))}else if(b==null){throw Adb(new Ogb('null value in entry: '+a+'=null'))}} +function Cr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(dE(c)===dE(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function aLb(a,b){var c;c=cD(WC(iE,1),vxe,28,15,[gKb(a.a[0],b),gKb(a.a[1],b),gKb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function bLb(a,b){var c;c=cD(WC(iE,1),vxe,28,15,[hKb(a.a[0],b),hKb(a.a[1],b),hKb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function vIc(a,b,c){if(!Cod(RD(mQb(b,(yCc(),BBc)),101))){uIc(a,b,e3b(b,c));uIc(a,b,e3b(b,(qpd(),npd)));uIc(a,b,e3b(b,Yod));yob();_mb(b.j,new JIc(a))}} +function sUc(a){var b,c;a.c||vUc(a);c=new Ejd;b=new Anb(a.a);ynb(b);while(b.a0&&(BFb(0,b.length),b.charCodeAt(0)==43)?(BFb(1,b.length+1),b.substr(1)):b))} +function qne(a){var b;return a==null?null:new ejb((b=nue(a,true),b.length>0&&(BFb(0,b.length),b.charCodeAt(0)==43)?(BFb(1,b.length+1),b.substr(1)):b))} +function Syb(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.a[0];!!i&&Syb(a,b,c,i,e,f,g,h);Tyb(a,c,d.d,e,f,g,h)&&b.Fc(d);j=d.a[1];!!j&&Syb(a,b,c,j,e,f,g,h)} +function PPb(b,c,d){try{return Gdb(SPb(b,c,d),1)}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function QPb(b,c,d){try{return Gdb(SPb(b,c,d),0)}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function RPb(b,c,d){try{return Gdb(SPb(b,c,d),2)}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function lMd(b,c){if(b.g==-1){throw Adb(new cgb)}b.Xj();try{b.d.hd(b.g,c);b.f=b.d.j}catch(a){a=zdb(a);if(ZD(a,77)){throw Adb(new Jrb)}else throw Adb(a)}} +function Y7b(a){var b,c,d,e,f;for(d=new Anb(a.b);d.af&&bD(b,f,null);return b} +function av(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function vsc(a){var b,c,d;d=a.f;a.n=$C(iE,vxe,28,d,15,1);a.d=$C(iE,vxe,28,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function rKb(a,b){var c;c=cD(WC(iE,1),vxe,28,15,[qKb(a,(ZJb(),WJb),b),qKb(a,XJb,b),qKb(a,YJb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function cQb(b,c,d){var e;try{TPb(b,c+b.j,d+b.k,false,true)}catch(a){a=zdb(a);if(ZD(a,77)){e=a;throw Adb(new veb(e.g+ize+c+pve+d+').'))}else throw Adb(a)}} +function dQb(b,c,d){var e;try{TPb(b,c+b.j,d+b.k,true,false)}catch(a){a=zdb(a);if(ZD(a,77)){e=a;throw Adb(new veb(e.g+ize+c+pve+d+').'))}else throw Adb(a)}} +function u8b(a){var b;if(!nQb(a,(yCc(),dBc))){return}b=RD(mQb(a,dBc),21);if(b.Hc((dod(),Xnd))){b.Mc(Xnd);b.Fc(Znd)}else if(b.Hc(Znd)){b.Mc(Znd);b.Fc(Xnd)}} +function v8b(a){var b;if(!nQb(a,(yCc(),dBc))){return}b=RD(mQb(a,dBc),21);if(b.Hc((dod(),cod))){b.Mc(cod);b.Fc(aod)}else if(b.Hc(aod)){b.Mc(aod);b.Fc(cod)}} +function oqc(a,b,c,d){var e,f,g,h;a.a==null&&rqc(a,b);g=b.b.j.c.length;f=c.d.p;h=d.d.p;e=h-1;e<0&&(e=g-1);return f<=e?a.a[e]-a.a[f]:a.a[g-1]-a.a[f]+a.a[e]} +function Cud(a){var b,c;if(!a.b){a.b=fv(RD(a.f,27).kh().i);for(c=new dMd(RD(a.f,27).kh());c.e!=c.i.gc();){b=RD(bMd(c),135);Rmb(a.b,new Bud(b))}}return a.b} +function Dud(a){var b,c;if(!a.e){a.e=fv(wCd(RD(a.f,27)).i);for(c=new dMd(wCd(RD(a.f,27)));c.e!=c.i.gc();){b=RD(bMd(c),123);Rmb(a.e,new Rud(b))}}return a.e} +function yud(a){var b,c;if(!a.a){a.a=fv(tCd(RD(a.f,27)).i);for(c=new dMd(tCd(RD(a.f,27)));c.e!=c.i.gc();){b=RD(bMd(c),27);Rmb(a.a,new Fud(a,b))}}return a.a} +function DXd(b){var c;if(!b.C&&(b.D!=null||b.B!=null)){c=EXd(b);if(c){b.hl(c)}else{try{b.hl(null)}catch(a){a=zdb(a);if(!ZD(a,63))throw Adb(a)}}}return b.C} +function xMb(a){switch(a.q.g){case 5:uMb(a,(qpd(),Yod));uMb(a,npd);break;case 4:vMb(a,(qpd(),Yod));vMb(a,npd);break;default:wMb(a,(qpd(),Yod));wMb(a,npd);}} +function GNb(a){switch(a.q.g){case 5:DNb(a,(qpd(),Xod));DNb(a,ppd);break;case 4:ENb(a,(qpd(),Xod));ENb(a,ppd);break;default:FNb(a,(qpd(),Xod));FNb(a,ppd);}} +function G$b(a,b){var c,d,e;e=new pjd;for(d=a.Kc();d.Ob();){c=RD(d.Pb(),36);w$b(c,e.a,0);e.a+=c.f.a+b;e.b=$wnd.Math.max(e.b,c.f.b)}e.b>0&&(e.b+=b);return e} +function I$b(a,b){var c,d,e;e=new pjd;for(d=a.Kc();d.Ob();){c=RD(d.Pb(),36);w$b(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function l2b(a){var b,c,d;d=lve;for(c=new Anb(a.a);c.a>16==6){return a.Cb.Th(a,5,t7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?a.ii():c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function kA(a){fA();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function pgb(a){var b;b=(wgb(),vgb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function mmb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=mgb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=WEb(a.a,c);lmb(a,b,d);a.a=b;a.b=0}else{aFb(a.a,c)}a.c=d} +function uNb(a,b){var c;c=a.b;return c.pf((umd(),Gld))?c.ag()==(qpd(),ppd)?-c.Mf().a-Kfb(UD(c.of(Gld))):b+Kfb(UD(c.of(Gld))):c.ag()==(qpd(),ppd)?-c.Mf().a:b} +function X2b(a){var b;if(a.b.c.length!=0&&!!RD(Vmb(a.b,0),72).a){return RD(Vmb(a.b,0),72).a}b=R0b(a);if(b!=null){return b}return ''+(!a.c?-1:Wmb(a.c.a,a,0))} +function M3b(a){var b;if(a.f.c.length!=0&&!!RD(Vmb(a.f,0),72).a){return RD(Vmb(a.f,0),72).a}b=R0b(a);if(b!=null){return b}return ''+(!a.i?-1:Wmb(a.i.j,a,0))} +function skc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function Qud(a){var b,c;if(!a.b){a.b=fv(RD(a.f,123).kh().i);for(c=new dMd(RD(a.f,123).kh());c.e!=c.i.gc();){b=RD(bMd(c),135);Rmb(a.b,new Bud(b))}}return a.b} +function aHd(a,b){var c,d,e;if(b.dc()){return jQd(),jQd(),iQd}else{c=new ZLd(a,b.gc());for(e=new dMd(a);e.e!=e.i.gc();){d=bMd(e);b.Hc(d)&&WGd(c,d)}return c}} +function Axd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),a.o):(!a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),dOd(a.o))}return Dvd(a,b,c,d)} +function rBd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&dxe;a.m=d&dxe;a.h=e&exe;return true} +function Tyb(a,b,c,d,e,f,g){var h,i;if(b.Te()&&(i=a.a.Ne(c,d),i<0||!e&&i==0)){return false}if(b.Ue()&&(h=a.a.Ne(c,f),h>0||!g&&h==0)){return false}return true} +function Agc(a,b){sgc();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Cgc(b,rgc)-Cgc(a,rgc);case 4:return Cgc(a,qgc)-Cgc(b,qgc);}return 0} +function uuc(a){switch(a.g){case 0:return nuc;case 1:return ouc;case 2:return puc;case 3:return quc;case 4:return ruc;case 5:return suc;default:return null;}} +function cBd(a,b,c){var d,e;d=(e=new R5d,YVd(e,b),PAd(e,c),WGd((!a.c&&(a.c=new C5d(u7,a,12,10)),a.c),e),e);$Vd(d,0);bWd(d,1);aWd(d,true);_Vd(d,true);return d} +function THd(a,b){var c,d;if(b>=a.i)throw Adb(new yNd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&hib(a.g,b+1,a.g,b,d);bD(a.g,--a.i,null);a.Qi(b,c);a.Ni();return c} +function sWd(a,b){var c,d;if(a.Db>>16==17){return a.Cb.Th(a,21,h7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?a.ii():c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function _Fb(a){var b,c,d,e;yob();_mb(a.c,a.a);for(e=new Anb(a.c);e.ac.a.c.length)){throw Adb(new agb('index must be >= 0 and <= layer node count'))}!!a.c&&Ymb(a.c.a,a);a.c=c;!!c&&Qmb(c.a,b,a)} +function Gac(a,b){var c,d,e;for(d=new is(Mr(W2b(a).a.Kc(),new ir));gs(d);){c=RD(hs(d),18);e=RD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function RQc(a,b){this.c=new Tsb;this.a=a;this.b=b;this.d=RD(mQb(a,(Ywc(),Qwc)),312);dE(mQb(a,(yCc(),eBc)))===dE((Cuc(),Auc))?(this.e=new BRc):(this.e=new uRc)} +function ftd(a,b){var c,d;d=null;if(a.pf((umd(),amd))){c=RD(a.of(amd),96);c.pf(b)&&(d=c.of(b))}d==null&&!!a.Tf()&&(d=a.Tf().of(b));d==null&&(d=iGd(b));return d} +function ku(b,c){var d,e;d=b.fd(c);try{e=d.Pb();d.Qb();return e}catch(a){a=zdb(a);if(ZD(a,112)){throw Adb(new veb("Can't remove element "+c))}else throw Adb(a)}} +function GA(a,b){var c,d,e;d=new uB;e=new vB(d.q.getFullYear()-Owe,d.q.getMonth(),d.q.getDate());c=FA(a,b,e);if(c==0||c0?b:0);++c}return new rjd(d,e)} +function Czd(a,b){var c,d;if(a.Db>>16==6){return a.Cb.Th(a,6,G4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),hvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function cCd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Th(a,1,H4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),jvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function LCd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.Th(a,9,J4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),lvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function M1d(a,b){var c,d;if(a.Db>>16==5){return a.Cb.Th(a,9,m7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),tTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function qBd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Th(a,6,t7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),CTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function iVd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.Th(a,0,p7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),mTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function IEd(){this.a=new BDd;this.g=new Io;this.j=new Io;this.b=new Tsb;this.d=new Io;this.i=new Io;this.k=new Tsb;this.c=new Tsb;this.e=new Tsb;this.f=new Tsb} +function kQd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;ewxe){return Oje(a,d)}if(d==a){return true}}}return false} +function yNb(a){tNb();switch(a.q.g){case 5:vNb(a,(qpd(),Yod));vNb(a,npd);break;case 4:wNb(a,(qpd(),Yod));wNb(a,npd);break;default:xNb(a,(qpd(),Yod));xNb(a,npd);}} +function CNb(a){tNb();switch(a.q.g){case 5:zNb(a,(qpd(),Xod));zNb(a,ppd);break;case 4:ANb(a,(qpd(),Xod));ANb(a,ppd);break;default:BNb(a,(qpd(),Xod));BNb(a,ppd);}} +function RTb(a){var b,c;b=RD(mQb(a,(yVb(),mVb)),17);if(b){c=b.a;c==0?pQb(a,(JVb(),IVb),new Owb):pQb(a,(JVb(),IVb),new Pwb(c))}else{pQb(a,(JVb(),IVb),new Pwb(1))}} +function b2b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function wec(a,b){switch(a.g){case 0:return b==(cxc(),$wc)?sec:tec;case 1:return b==(cxc(),$wc)?sec:rec;case 2:return b==(cxc(),$wc)?rec:tec;default:return rec;}} +function Fad(a,b){var c,d,e;Ymb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=fFe;for(d=new Anb(a.a);d.a>16==3){return a.Cb.Th(a,12,J4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),gvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function sCd(a,b){var c,d;if(a.Db>>16==11){return a.Cb.Th(a,10,J4,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(pvd(),kvd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function n4d(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Th(a,11,h7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),ATd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function Q5d(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Th(a,12,s7,b)}return d=Z5d(RD(vYd((c=RD(Ywd(a,16),29),!c?(JTd(),DTd):c),a.Db>>16),19)),a.Cb.Th(a,d.n,d.f,b)} +function WVd(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.Vh()){b=RD(a.r,54);a.r=RD(Vvd(a,b),142);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,9,8,b,a.r))}return a.r} +function pKb(a,b,c){var d;d=cD(WC(iE,1),vxe,28,15,[sKb(a,(ZJb(),WJb),b,c),sKb(a,XJb,b,c),sKb(a,YJb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function ddc(a,b){var c,d,e;e=kdc(a,b);if(e.c.length==0){return}_mb(e,new Gdc);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function YHb(){YHb=geb;XHb=(iIb(),fIb);WHb=new lGd(Aye,XHb);VHb=(LHb(),KHb);UHb=new lGd(Bye,VHb);THb=(DHb(),CHb);SHb=new lGd(Cye,THb);RHb=new lGd(Dye,(Geb(),true))} +function Iic(a,b,c){var d,e;d=b*c;if(ZD(a.g,154)){e=$jc(a);if(e.f.d){e.f.a||(a.d.a+=d+Tye)}else{a.d.d-=d+Tye;a.d.a+=d+Tye}}else if(ZD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function _pc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new Anb(b.d);h.a0?a.b:0);++c}b.b=d;b.e=e} +function Fo(a){var b,c,d;d=a.b;if(Xp(a.i,d.length)){c=d.length*2;a.b=$C(XF,ewe,303,c,0,1);a.c=$C(XF,ewe,303,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){Bo(a,b,b)}++a.g}} +function VPb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);ijd(a,$wnd.Math.min(h,i));return a} +function OAd(){qAd();var b,c;try{c=RD(M5d((YSd(),XSd),$He),2113);if(c){return c}}catch(a){a=zdb(a);if(ZD(a,103)){b=a;UId((Hde(),b))}else throw Adb(a)}return new KAd} +function Qae(){qAd();var b,c;try{c=RD(M5d((YSd(),XSd),AKe),2040);if(c){return c}}catch(a){a=zdb(a);if(ZD(a,103)){b=a;UId((Hde(),b))}else throw Adb(a)}return new Mae} +function vne(){Zme();var b,c;try{c=RD(M5d((YSd(),XSd),dLe),2122);if(c){return c}}catch(a){a=zdb(a);if(ZD(a,103)){b=a;UId((Hde(),b))}else throw Adb(a)}return new rne} +function f2d(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new N3d(a,1,4,e,b);!c?(c=d):c.nj(d)}e!=b&&(b?(c=o2d(a,k2d(a,b),c)):(c=o2d(a,a.a,c)));return c} +function DB(){uB.call(this);this.e=-1;this.a=false;this.p=qwe;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=qwe} +function hHb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Qfb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function XQb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Qfb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function RYb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Qfb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function _Wb(){_Wb=geb;YWb=nfd(pfd(pfd(pfd(new ufd,(sXb(),qXb),(hcc(),Dbc)),qXb,Hbc),rXb,Obc),rXb,rbc);$Wb=pfd(pfd(new ufd,qXb,hbc),qXb,sbc);ZWb=nfd(new ufd,rXb,ubc)} +function J6b(a){var b,c,d,e,f;b=RD(mQb(a,(Ywc(),cwc)),85);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=RD(d.Pb(),314);e=c.i;e.c+=f.a;e.d+=f.b;c.c?MKb(c):OKb(c)}pQb(a,cwc,null)} +function Wpc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function CNc(a,b,c){var d,e;c.Ug('Interactive node placement',1);a.a=RD(mQb(b,(Ywc(),Qwc)),312);for(e=new Anb(b.b);e.a0){g=(f&lve)%a.d.length;e=WNd(a,g,f,b);if(e){h=e.nd(c);return h}}d=a.ck(f,b,c);a.c.Fc(d);return null} +function Tee(a,b){var c,d,e,f;switch(Oee(a,b).Kl()){case 3:case 2:{c=mYd(b);for(e=0,f=c.i;e=0;d--){if(lhb(a[d].d,b)||lhb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Fdb(a,b){var c;if(Kdb(a)&&Kdb(b)){c=a/b;if(jxe0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function CVc(a){var b;b=RD(mQb(RD(ju(a.b,0),40),(h_c(),T$c)),107);pQb(a,(q$c(),SZc),new rjd(0,0));FVc(new YWc,a,b.b+b.c-Kfb(UD(mQb(a,ZZc))),b.d+b.a-Kfb(UD(mQb(a,_Zc))))} +function pDd(a,b){var c,d;d=false;if(bE(b)){d=true;oDd(a,new OC(WD(b)))}if(!d){if(ZD(b,242)){d=true;oDd(a,(c=Qeb(RD(b,242)),new hC(c)))}}if(!d){throw Adb(new Aeb(tIe))}} +function g$d(a,b,c,d){var e,f,g;e=new P3d(a.e,1,10,(g=b.c,ZD(g,90)?RD(g,29):(JTd(),zTd)),(f=c.c,ZD(f,90)?RD(f,29):(JTd(),zTd)),fZd(a,b),false);!d?(d=e):d.nj(e);return d} +function _2b(a){var b,c;switch(RD(mQb(Y2b(a),(yCc(),QAc)),429).g){case 0:b=a.n;c=a.o;return new rjd(b.a+c.a/2,b.b+c.b/2);case 1:return new sjd(a.n);default:return null;}} +function Ouc(){Ouc=geb;Luc=new Puc(LAe,0);Kuc=new Puc('LEFTUP',1);Nuc=new Puc('RIGHTUP',2);Juc=new Puc('LEFTDOWN',3);Muc=new Puc('RIGHTDOWN',4);Iuc=new Puc('BALANCED',5)} +function dKc(a,b,c){var d,e,f;d=Qfb(a.a[b.p],a.a[c.p]);if(d==0){e=RD(mQb(b,(Ywc(),qwc)),15);f=RD(mQb(c,qwc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function k5c(a){switch(a.g){case 1:return new K3c;case 2:return new M3c;case 3:return new I3c;case 0:return null;default:throw Adb(new agb(mFe+(a.f!=null?a.f:''+a.g)));}} +function gyd(a,b,c){switch(b){case 1:!a.n&&(a.n=new C5d(I4,a,1,7));sLd(a.n);!a.n&&(a.n=new C5d(I4,a,1,7));YGd(a.n,RD(c,16));return;case 2:jyd(a,WD(c));return;}Dxd(a,b,c)} +function xyd(a,b,c){switch(b){case 3:Ayd(a,Kfb(UD(c)));return;case 4:Cyd(a,Kfb(UD(c)));return;case 5:Dyd(a,Kfb(UD(c)));return;case 6:Eyd(a,Kfb(UD(c)));return;}gyd(a,b,c)} +function dBd(a,b,c){var d,e,f;f=(d=new R5d,d);e=XVd(f,b,null);!!e&&e.oj();PAd(f,c);WGd((!a.c&&(a.c=new C5d(u7,a,12,10)),a.c),f);$Vd(f,0);bWd(f,1);aWd(f,true);_Vd(f,true)} +function M5d(a,b){var c,d,e;c=Ktb(a.i,b);if(ZD(c,241)){e=RD(c,241);e.zi()==null&&undefined;return e.wi()}else if(ZD(c,507)){d=RD(c,2037);e=d.b;return e}else{return null}} +function aj(a,b,c,d){var e,f;Qb(b);Qb(c);f=RD(Fn(a.d,b),17);Ob(!!f,'Row %s not in %s',b,a.e);e=RD(Fn(a.b,c),17);Ob(!!e,'Column %s not in %s',c,a.c);return cj(a,f.a,e.a,d)} +function ZC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=_C(h,k);d!=10&&cD(WC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=RD(i,15);e.Wb(Sje(a,f))}else{e.Wb(Rje(a,RD(i,58)))}}}} +function ceb(b,c,d,e){beb();var f=_db;$moduleName=c;$moduleBase=d;ydb=e;function g(){for(var a=0;a0){return false}}return true} +function okc(a){var b,c,d,e,f;for(d=new vkb((new mkb(a.b)).a);d.b;){c=tkb(d);b=RD(c.ld(),10);f=RD(RD(c.md(),42).a,10);e=RD(RD(c.md(),42).b,8);$id(hjd(b.n),$id(ajd(f.n),e))}} +function Roc(a){switch(RD(mQb(a.b,(yCc(),BAc)),387).g){case 1:FDb(GDb(EDb(new SDb(null,new Swb(a.d,16)),new kpc),new mpc),new opc);break;case 2:Toc(a);break;case 0:Soc(a);}} +function SVc(a,b,c){var d,e,f;d=c;!d&&(d=new Oqd);d.Ug('Layout',a.a.c.length);for(f=new Anb(a.a);f.aAEe){return c}else e>-1.0E-6&&++c}return c} +function n2d(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=Jvd(a.b,a,-4,c));!!b&&(c=Ivd(b,a,-4,c));c=e2d(a,b,c);!!c&&c.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,b,b))} +function q2d(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=Jvd(a.f,a,-1,c));!!b&&(c=Ivd(b,a,-1,c));c=g2d(a,b,c);!!c&&c.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,0,b,b))} +function Lge(a,b,c,d){var e,f,g,h;if(Mvd(a.e)){e=b.Lk();h=b.md();f=c.md();g=fge(a,1,e,h,f,e.Jk()?kge(a,e,f,ZD(e,102)&&(RD(e,19).Bb&txe)!=0):-1,true);d?d.nj(g):(d=g)}return d} +function bne(a){var b,c,d;if(a==null)return null;c=RD(a,15);if(c.dc())return '';d=new Qhb;for(b=c.Kc();b.Ob();){Nhb(d,(nme(),WD(b.Pb())));d.a+=' '}return qeb(d,d.a.length-1)} +function fne(a){var b,c,d;if(a==null)return null;c=RD(a,15);if(c.dc())return '';d=new Qhb;for(b=c.Kc();b.Ob();){Nhb(d,(nme(),WD(b.Pb())));d.a+=' '}return qeb(d,d.a.length-1)} +function QIc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Jfb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function RVc(a,b,c){c.Ug('Tree layout',1);Sed(a.b);Ved(a.b,(YVc(),UVc),UVc);Ved(a.b,VVc,VVc);Ved(a.b,WVc,WVc);Ved(a.b,XVc,XVc);a.a=Qed(a.b,b);SVc(a,b,c.eh(1));c.Vg();return b} +function ZDd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new vue(f);for(h=(c.b-c.a)*c.c<0?(uue(),tue):new Rue(c);h.Ob();){g=RD(h.Pb(),17);e=xDd(b,g.a);d=new aFd(a);$Dd(d.a,e)}}} +function oEd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new vue(f);for(h=(c.b-c.a)*c.c<0?(uue(),tue):new Rue(c);h.Ob();){g=RD(h.Pb(),17);e=xDd(b,g.a);d=new LEd(a);NDd(d.a,e)}}} +function ESd(b){var c;if(b!=null&&b.length>0&&ihb(b,b.length-1)==33){try{c=nSd(zhb(b,0,b.length-1));return c.e==null}catch(a){a=zdb(a);if(!ZD(a,33))throw Adb(a)}}return false} +function u0b(a,b,c){var d,e,f;d=Y2b(b);e=i2b(d);f=new R3b;P3b(f,b);switch(c.g){case 1:Q3b(f,spd(vpd(e)));break;case 2:Q3b(f,vpd(e));}pQb(f,(yCc(),ABc),UD(mQb(a,ABc)));return f} +function jdc(a){var b,c;b=RD(hs(new is(Mr(Z2b(a.a).a.Kc(),new ir))),18);c=RD(hs(new is(Mr(a3b(a.a).a.Kc(),new ir))),18);return Heb(TD(mQb(b,(Ywc(),Nwc))))||Heb(TD(mQb(c,Nwc)))} +function Bnc(){Bnc=geb;xnc=new Cnc('ONE_SIDE',0);znc=new Cnc('TWO_SIDES_CORNER',1);Anc=new Cnc('TWO_SIDES_OPPOSING',2);ync=new Cnc('THREE_SIDES',3);wnc=new Cnc('FOUR_SIDES',4)} +function Usc(a,b){var c,d,e,f;f=new bnb;e=0;d=b.Kc();while(d.Ob()){c=sgb(RD(d.Pb(),17).a+e);while(c.a=a.f){break}ZEb(f.c,c)}return f} +function iIc(a,b){var c,d,e,f,g;for(f=new Anb(b.a);f.a0&&Xlc(this,this.c-1,(qpd(),Xod));this.c0&&a[0].length>0&&(this.c=Heb(TD(mQb(Y2b(a[0][0]),(Ywc(),rwc)))));this.a=$C(aY,Nve,2117,a.length,0,2);this.b=$C(dY,Nve,2118,a.length,0,2);this.d=new Ks} +function TOc(a){if(a.c.length==0){return false}if((tFb(0,a.c.length),RD(a.c[0],18)).c.i.k==(r3b(),o3b)){return true}return yDb(GDb(new SDb(null,new Swb(a,16)),new WOc),new YOc)} +function I5c(a,b){var c,d,e,f,g,h,i;h=Q2c(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new Anb(h);d.a=0){c=Fdb(a,ixe);d=Mdb(a,ixe)}else{b=Udb(a,1);c=Fdb(b,500000000);d=Mdb(b,500000000);d=Bdb(Sdb(d,1),Cdb(a,1))}return Rdb(Sdb(d,32),Cdb(c,yxe))} +function fTb(a,b,c){var d,e;d=(sFb(b.b!=0),RD(Wub(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Sub(b,0);cvb(e,d);return b} +function Vpc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=$pc(g,i.d[g.g],c);e=$id(ajd(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Pub(d,h,d.c.b,d.c)} +function YNc(a,b,c){var d,e,f,g;g=Wmb(a.e,b,0);f=new ZNc;f.b=c;d=new Jkb(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Wib(d,c));c.d==1?(c=Wib(c,c)):(c=new djb(Tjb(c.a,c.d,$C(kE,Pwe,28,c.d<<1,15,1))))}d=Wib(d,c);return d} +function Hwb(){Hwb=geb;var a,b,c,d;Ewb=$C(iE,vxe,28,25,15,1);Fwb=$C(iE,vxe,28,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){Fwb[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){Ewb[a]=c;c*=0.5}} +function a5b(a){var b,c;if(Heb(TD(Gxd(a,(yCc(),NAc))))){for(c=new is(Mr(zGd(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),74);if(ozd(b)){if(Heb(TD(Gxd(b,OAc)))){return true}}}}return false} +function Qmc(a,b){var c,d,e;if(Ysb(a.f,b)){b.b=a;d=b.c;Wmb(a.j,d,0)!=-1||Rmb(a.j,d);e=b.d;Wmb(a.j,e,0)!=-1||Rmb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new _mc(a));Wmc(a.i,c)}}} +function Xpc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&lhb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return JA(a,c,d)}if(b>=0&&lhb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return JA(a,c,d)}return JA(a,c,d)} +function Zmc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new Anb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<0&&hib(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;e>4&15;f=a[d]&15;g[e++]=oAd[c];g[e++]=oAd[f]}return Ihb(g,0,g.length)}} +function Fhb(a){var b,c;if(a>=txe){b=uxe+(a-txe>>10&1023)&Bwe;c=56320+(a-txe&1023)&Bwe;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&Bwe)}} +function UMb(a,b){RMb();var c,d,e,f;e=RD(RD(Qc(a.r,b),21),87);if(e.gc()>=2){d=RD(e.Kc().Pb(),117);c=a.u.Hc((Pod(),Kod));f=a.u.Hc(Ood);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function v3c(a,b,c,d,e){var f,g,h;f=w3c(a,b,c,d,e);h=false;while(!f){n3c(a,e,true);h=true;f=w3c(a,b,c,d,e)}h&&n3c(a,e,false);g=N2c(e);if(g.c.length!=0){!!a.d&&a.d.Gg(g);v3c(a,e,c,d,g)}} +function ind(){ind=geb;gnd=new jnd(LAe,0);end=new jnd('DIRECTED',1);hnd=new jnd('UNDIRECTED',2);cnd=new jnd('ASSOCIATION',3);fnd=new jnd('GENERALIZATION',4);dnd=new jnd('DEPENDENCY',5)} +function nsd(a,b){var c;if(!MCd(a)){throw Adb(new dgb(sHe))}c=MCd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function Jge(a,b,c){var d,e,f;d=b.Lk();f=b.md();e=d.Jk()?fge(a,4,d,f,null,kge(a,d,f,ZD(d,102)&&(RD(d,19).Bb&txe)!=0),true):fge(a,d.tk()?2:1,d,f,d.ik(),-1,true);c?c.nj(e):(c=e);return c} +function lwb(a,b){var c,d;uFb(b);d=a.b.c.length;Rmb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.Ne(Vmb(a.b,d),b)<=0){$mb(a.b,c,b);return true}$mb(a.b,c,Vmb(a.b,d))}$mb(a.b,d,b);return true} +function sKb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function A8c(a){switch(a.g){case 0:return new o8c;case 1:return new u8c;default:throw Adb(new agb('No implementation is available for the width approximator '+(a.f!=null?a.f:''+a.g)));}} +function rDd(a,b,c,d){var e;e=false;if(bE(d)){e=true;sDd(b,c,WD(d))}if(!e){if($D(d)){e=true;rDd(a,b,c,d)}}if(!e){if(ZD(d,242)){e=true;qDd(b,c,RD(d,242))}}if(!e){throw Adb(new Aeb(tIe))}} +function uee(a,b){var c,d,e;c=b.qi(a.a);if(c){e=$Nd((!c.b&&(c.b=new SVd((JTd(),FTd),C8,c)),c.b),rKe);if(e!=null){for(d=1;d<(lke(),hke).length;++d){if(lhb(hke[d],e)){return d}}}}return 0} +function vee(a,b){var c,d,e;c=b.qi(a.a);if(c){e=$Nd((!c.b&&(c.b=new SVd((JTd(),FTd),C8,c)),c.b),rKe);if(e!=null){for(d=1;d<(lke(),ike).length;++d){if(lhb(ike[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uFb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.Ne(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function zIb(a){var b,c,d,e;b=new bnb;c=$C(xdb,Hye,28,a.a.c.length,16,1);Snb(c,c.length);for(e=new Anb(a.a);e.a0&&O9b((tFb(0,c.c.length),RD(c.c[0],30)),a);c.c.length>1&&O9b(RD(Vmb(c,c.c.length-1),30),a);b.Vg()} +function Sod(a){Pod();var b,c;b=ysb(Lod,cD(WC(D3,1),jwe,279,0,[Nod]));if(dy(Tx(b,a))>1){return false}c=ysb(Kod,cD(WC(D3,1),jwe,279,0,[Jod,Ood]));if(dy(Tx(c,a))>1){return false}return true} +function FBd(a,b){var c;c=Xjb((YSd(),XSd),a);ZD(c,507)?$jb(XSd,a,new B5d(this,b)):$jb(XSd,a,this);BBd(this,b);if(b==(jTd(),iTd)){this.wb=RD(this,2038);RD(b,2040)}else{this.wb=(lTd(),kTd)}} +function Lae(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=Awe?'error':d>=900?'warn':d>=800?'info':'log');eFb(c,a.a);!!a.b&&fFb(b,c,a.b,'Exception: ',true)} +function mQb(a,b){var c,d;d=(!a.q&&(a.q=new Tsb),Wjb(a.q,b));if(d!=null){return d}c=b.Sg();ZD(c,4)&&(c==null?(!a.q&&(a.q=new Tsb),_jb(a.q,b)):(!a.q&&(a.q=new Tsb),Zjb(a.q,b,c)),a);return c} +function sXb(){sXb=geb;nXb=new tXb('P1_CYCLE_BREAKING',0);oXb=new tXb('P2_LAYERING',1);pXb=new tXb('P3_NODE_ORDERING',2);qXb=new tXb('P4_NODE_PLACEMENT',3);rXb=new tXb('P5_EDGE_ROUTING',4)} +function KZb(a,b){CZb();var c;if(a.c==b.c){if(a.b==b.b||rZb(a.b,b.b)){c=oZb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return hgb(a.b.g,b.b.g)}else{return Qfb(a.c,b.c)}} +function E3c(a,b){var c,d,e;if(p3c(a,b)){return true}for(d=new Anb(b);d.a=e||b<0)throw Adb(new veb(MIe+b+NIe+e));if(c>=e||c<0)throw Adb(new veb(OIe+c+NIe+e));b!=c?(d=(f=a.Cj(c),a.qj(b,f),f)):(d=a.xj(c));return d} +function Lje(a){var b,c,d;d=a;if(a){b=0;for(c=a.Eh();c;c=c.Eh()){if(++b>wxe){return Lje(c)}d=c;if(c==a){throw Adb(new dgb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new Jyb(pve,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();Gyb(d,dE(b)===dE(a)?'(this Collection)':b==null?vve:jeb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function p3c(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;c1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function Mnc(){Mnc=geb;Jnc=cD(WC(E3,1),NAe,64,0,[(qpd(),Yod),Xod,npd]);Inc=cD(WC(E3,1),NAe,64,0,[Xod,npd,ppd]);Knc=cD(WC(E3,1),NAe,64,0,[npd,ppd,Yod]);Lnc=cD(WC(E3,1),NAe,64,0,[ppd,Yod,Xod])} +function Upc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?tpd(e):rpd(e);f=$pc(e,k.d[e.g],c);j=$pc(i,k.d[i.g],c);Mub(d,$id(f,j));e=i}} +function OJc(a,b,c,d){var e,f,g,h,i;g=hMc(a.a,b,c);h=RD(g.a,17).a;f=RD(g.b,17).a;if(d){i=RD(mQb(b,(Ywc(),Iwc)),10);e=RD(mQb(c,Iwc),10);if(!!i&&!!e){Slc(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function OLc(a){var b,c,d,e,f,g,h,i,j;this.a=LLc(a);this.b=new bnb;for(c=a,d=0,e=c.length;damc(a.d).c){a.i+=a.g.c;cmc(a.d)}else if(amc(a.d).c>amc(a.g).c){a.e+=a.d.c;cmc(a.g)}else{a.i+=_lc(a.g);a.e+=_lc(a.d);cmc(a.g);cmc(a.d)}}} +function vTc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new bTc((fTc(),dTc),b,f,1);new bTc(dTc,f,g,1);for(e=new Anb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function I8c(a,b,c,d,e){var f,g;g=false;f=RD(Vmb(c.b,0),27);while(V8c(a,b,f,d,e)){g=true;T9c(c,f);if(c.b.c.length==0){break}f=RD(Vmb(c.b,0),27)}c.b.c.length==0&&Fad(c.j,c);g&&gad(b.q);return g} +function Eid(a,b){tid();var c,d,e,f;if(b.b<2){return false}f=Sub(b,0);c=RD(evb(f),8);d=c;while(f.b!=f.d.c){e=RD(evb(f),8);if(Did(a,d,e)){return true}d=e}if(Did(a,d,c)){return true}return false} +function Bxd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new DVd((pvd(),mvd),X4,a,0)),BVd(a.o,b,d)}return f=RD(vYd((e=RD(Ywd(a,16),29),!e?a.ii():e),c),69),f.wk().Ak(a,Wwd(a),c-AYd(a.ii()),b,d)} +function BBd(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=RD(a.sb,54).Th(a,1,n7,c));!!b&&(c=RD(b,54).Rh(a,1,n7,c));c=hBd(a,b,c);!!c&&c.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,4,b,b))} +function YDd(a,b){var c,d,e,f;if(b){e=vDd(b,'x');c=new ZEd(a);Hzd(c.a,(uFb(e),e));f=vDd(b,'y');d=new $Ed(a);Izd(d.a,(uFb(f),f))}else{throw Adb(new CDd('All edge sections need an end point.'))}} +function WDd(a,b){var c,d,e,f;if(b){e=vDd(b,'x');c=new WEd(a);Ozd(c.a,(uFb(e),e));f=vDd(b,'y');d=new XEd(a);Pzd(d.a,(uFb(f),f))}else{throw Adb(new CDd('All edge sections need a start point.'))}} +function hBb(a,b){var c,d,e,f,g,h,i;for(d=kBb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw Adb(new agb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:Bid(a)/(Bid(b)*Bid(a-b))} +function msd(a,b){var c,d,e,f;c=new zId(a);while(c.g==null&&!c.c?sId(c):c.g==null||c.i!=0&&RD(c.g[c.i-1],51).Ob()){f=RD(tId(c),58);if(ZD(f,167)){d=RD(f,167);for(e=0;e>4];b[c*2+1]=Fqe[f&15]}return Ihb(b,0,b.length)} +function sn(a){fn();var b,c,d;d=a.c.length;switch(d){case 0:return en;case 1:b=RD(Ir(new Anb(a)),44);return xn(b.ld(),b.md());default:c=RD(anb(a,$C(UK,Zve,44,a.c.length,0,1)),173);return new Mx(c);}} +function KWb(a){var b,c,d,e,f,g;b=new wmb;c=new wmb;hmb(b,a);hmb(c,a);while(c.b!=c.c){e=RD(smb(c),36);for(g=new Anb(e.a);g.a0&&uLc(a,c,b);return e}return rLc(a,b,c)} +function $4c(){$4c=geb;R4c=(umd(),Qld);Y4c=fmd;K4c=kld;L4c=nld;M4c=pld;J4c=ild;N4c=sld;Q4c=Lld;H4c=(D4c(),o4c);I4c=p4c;T4c=v4c;W4c=y4c;U4c=w4c;V4c=x4c;O4c=r4c;P4c=t4c;S4c=u4c;X4c=z4c;Z4c=B4c;G4c=n4c} +function P9c(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(R9c(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function Ipc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function oOc(a,b,c){var d,e,f;for(e=new is(Mr(W2b(c).a.Kc(),new ir));gs(e);){d=RD(hs(e),18);if(!(!W0b(d)&&!(!W0b(d)&&d.c.i.c==d.d.i.c))){continue}f=gOc(a,d,c,new VOc);f.c.length>1&&(ZEb(b.c,f),true)}} +function _id(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function LFd(a){if(ZD(a,143)){return EFd(RD(a,143))}else if(ZD(a,233)){return FFd(RD(a,233))}else if(ZD(a,23)){return GFd(RD(a,23))}else{throw Adb(new agb(wIe+Fe(new mob(cD(WC(jJ,1),rve,1,5,[a])))))}} +function ujb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function ZQc(a,b,c,d){var e,f,g;if(b.k==(r3b(),o3b)){for(f=new is(Mr(Z2b(b).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);g=e.c.i.k;if(g==o3b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function CD(a,b){var c,d,e,f;b&=63;c=a.h&exe;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return hD(d&dxe,e&dxe,f&exe)} +function mmc(a,b,c,d){var e;this.b=d;this.e=a==(RKc(),PKc);e=b[c];this.d=YC(xdb,[Nve,Hye],[183,28],16,[e.length,e.length],2);this.a=YC(kE,[Nve,Pwe],[53,28],15,[e.length,e.length],2);this.c=new Ylc(b,c)} +function Rmc(a){var b,c,d;a.k=new Si((qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])).length,a.j.c.length);for(d=new Anb(a.j);d.a=c){_cc(a,b,d.p);return true}}return false} +function EA(a,b,c,d){var e,f,g,h,i,j;g=c.length;f=0;e=-1;j=Bhb((BFb(b,a.length+1),a.substr(b)),(wvb(),uvb));for(h=0;hf&&whb(j,Bhb(c[h],uvb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function gCd(a){var b;if((a.Db&64)!=0)return Fyd(a);b=new dib(FHe);!a.a||Zhb(Zhb((b.a+=' "',b),a.a),'"');Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function xge(a,b,c){var d,e,f,g,h;h=pke(a.e.Dh(),b);e=RD(a.g,124);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',cD(WC(jJ,1),rve,1,5,[sgb(b),sgb(a)]))} +function dA(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&aGc(a,f,c))}}b.p=0} +function Ahd(a){var b;this.c=new Yub;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=RD(mfb(d3),9),new Fsb(b,RD(WEb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Thb(Zhb(new dib('Predicates.'),'and'),40);c=true;for(e=new Dkb(a);e.b0?h[g-1]:$C(jR,WAe,10,0,0,1);e=h[g];j=g=0?a.ki(e):Tvd(a,d)}else{throw Adb(new agb(KHe+d.xe()+LHe))}}else{Cvd(a,c,d)}} +function ADd(a){var b,c;c=null;b=false;if(ZD(a,211)){b=true;c=RD(a,211).a}if(!b){if(ZD(a,263)){b=true;c=''+RD(a,263).a}}if(!b){if(ZD(a,493)){b=true;c=''+RD(a,493).a}}if(!b){throw Adb(new Aeb(tIe))}return c} +function gge(a,b,c){var d,e,f,g,h,i;i=pke(a.e.Dh(),b);d=0;h=a.i;e=RD(a.g,124);for(g=0;g=a.d.b.c.length){b=new R4b(a.d);b.p=d.p-1;Rmb(a.d.b,b);c=new R4b(a.d);c.p=d.p;Rmb(a.d.b,c)}g3b(d,RD(Vmb(a.d.b,d.p),30))}} +function DVc(a,b,c){var d,e,f;if(!a.b[b.g]){a.b[b.g]=true;d=c;!d&&(d=new YWc);Mub(d.b,b);for(f=a.a[b.g].Kc();f.Ob();){e=RD(f.Pb(),65);e.b!=b&&DVc(a,e.b,d);e.c!=b&&DVc(a,e.c,d);Mub(d.a,e)}return d}return null} +function iMb(a){switch(a.g){case 0:case 1:case 2:return qpd(),Yod;case 3:case 4:case 5:return qpd(),npd;case 6:case 7:case 8:return qpd(),ppd;case 9:case 10:case 11:return qpd(),Xod;default:return qpd(),opd;}} +function SOc(a,b){var c;if(a.c.length==0){return false}c=zDc((tFb(0,a.c.length),RD(a.c[0],18)).c.i);dOc();if(c==(wDc(),tDc)||c==sDc){return true}return yDb(GDb(new SDb(null,new Swb(a,16)),new $Oc),new aPc(b))} +function KDd(a,b){if(ZD(b,207)){return EDd(a,RD(b,27))}else if(ZD(b,193)){return FDd(a,RD(b,123))}else if(ZD(b,452)){return DDd(a,RD(b,166))}else{throw Adb(new agb(wIe+Fe(new mob(cD(WC(jJ,1),rve,1,5,[b])))))}} +function Ou(a,b,c){var d,e;this.f=a;d=RD(Wjb(a.b,b),260);e=!d?0:d.a;Sb(c,e);if(c>=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){Lu(this)}}this.b=b;this.a=null} +function iHb(a,b){var c,d;b.a?jHb(a,b):(c=RD(vAb(a.b,b.b),60),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=RD(uAb(a.b,b.b),60),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),wAb(a.b,b.b),undefined)} +function wMb(a,b){var c,d;c=RD(Vrb(a.b,b),127);if(RD(RD(Qc(a.r,b),21),87).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((Qpd(),Ppd))&&BMb(a,b);d=AMb(a,b);BLb(a,b)==(pod(),mod)&&(d+=2*a.w);c.a.a=d} +function FNb(a,b){var c,d;c=RD(Vrb(a.b,b),127);if(RD(RD(Qc(a.r,b),21),87).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((Qpd(),Ppd))&&JNb(a,b);d=INb(a,b);BLb(a,b)==(pod(),mod)&&(d+=2*a.w);c.a.b=d} +function VQb(a,b){var c,d,e,f;f=new bnb;for(d=new Anb(b);d.ad&&(BFb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||bc.a&&(d.Hc((ukd(),okd))?(e=(b.a-c.a)/2):d.Hc(qkd)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((ukd(),skd))?(f=(b.b-c.b)/2):d.Hc(rkd)&&(f=b.b-c.b));Isd(a,e,f)} +function ABd(a,b,c,d,e,f,g,h,i,j,k,l,m){ZD(a.Cb,90)&&v$d(yYd(RD(a.Cb,90)),4);PAd(a,c);a.f=g;DWd(a,h);FWd(a,i);xWd(a,j);EWd(a,k);aWd(a,l);AWd(a,m);_Vd(a,true);$Vd(a,e);a.Zk(f);YVd(a,b);d!=null&&(a.i=null,zWd(a,d))} +function Jb(a,b,c){if(a<0){return hc(qve,cD(WC(jJ,1),rve,1,5,[c,sgb(a)]))}else if(b<0){throw Adb(new agb(sve+b))}else{return hc('%s (%s) must not be greater than size (%s)',cD(WC(jJ,1),rve,1,5,[c,sgb(a),sgb(b)]))}} +function Xnb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Unb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Xnb(b,a,i,j,-e,f);Xnb(b,a,j,h,-e,f);if(f.Ne(a[j-1],a[j])<=0){while(c=0?a.bi(f,c):Svd(a,e,c)}else{throw Adb(new agb(KHe+e.xe()+LHe))}}else{Bvd(a,d,e,c)}} +function n3d(a){var b,c;if(a.f){while(a.n>0){b=RD(a.k.Xb(a.n-1),76);c=b.Lk();if(ZD(c,102)&&(RD(c,19).Bb&QHe)!=0&&(!a.e||c.pk()!=C4||c.Lj()!=0)&&b.md()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Pje(b){var c,d,e,f;d=RD(b,54)._h();if(d){try{e=null;c=N5d((YSd(),XSd),jSd(kSd(d)));if(c){f=c.ai();!!f&&(e=f.Fl(Chb(d.e)))}if(!!e&&e!=b){return Pje(e)}}catch(a){a=zdb(a);if(!ZD(a,63))throw Adb(a)}}return b} +function P3c(a,b,c){var d,e,f;c.Ug('Remove overlaps',1);c.dh(b,eFe);d=RD(Gxd(b,(u2c(),t2c)),27);a.f=d;a.a=u5c(RD(Gxd(b,($4c(),X4c)),300));e=UD(Gxd(b,(umd(),fmd)));s3c(a,(uFb(e),e));f=Q2c(d);O3c(a,b,f,c);c.dh(b,gFe)} +function Ded(a){var b,c,d;if(Heb(TD(Gxd(a,(umd(),$kd))))){d=new bnb;for(c=new is(Mr(zGd(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),74);ozd(b)&&Heb(TD(Gxd(b,_kd)))&&(ZEb(d.c,b),true)}return d}else{return yob(),yob(),vob}} +function KC(a){if(!a){return cC(),bC}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=GC[typeof b];return c?c(b):NC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new NB(a)}else{return new vC(a)}} +function IMb(a,b,c){var d,e,f;f=a.o;d=RD(Vrb(a.p,c),252);e=d.i;e.b=ZKb(d);e.a=YKb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}$Kb(d);_Kb(d)} +function JMb(a,b,c){var d,e,f;f=a.o;d=RD(Vrb(a.p,c),252);e=d.i;e.b=ZKb(d);e.a=YKb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}$Kb(d);_Kb(d)} +function nkc(a,b){var c,d,e,f,g;if(b.dc()){return}e=RD(b.Xb(0),131);if(b.gc()==1){mkc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Oeb(c,qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){e=a;throw Adb(new RSd(e))}else throw Adb(a)}}d=(!b.a&&(b.a=new Zde(b)),b.a);return f=0?RD(QHd(d,f),58):null} +function Ib(a,b){if(a<0){return hc(qve,cD(WC(jJ,1),rve,1,5,['index',sgb(a)]))}else if(b<0){throw Adb(new agb(sve+b))}else{return hc('%s (%s) must be less than size (%s)',cD(WC(jJ,1),rve,1,5,['index',sgb(a),sgb(b)]))}} +function cob(a){var b,c,d,e,f;if(a==null){return vve}f=new Jyb(pve,'[',']');for(c=a,d=0,e=c.length;d=0?a.Lh(c,true,true):Qvd(a,e,true),160));RD(d,220).Zl(b)}else{throw Adb(new agb(KHe+b.xe()+LHe))}} +function Cib(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=eE($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return Dib(Hdb(a))} +function oTc(a){var b,c,d,e,f,g,h;f=new Iub;for(c=new Anb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function B5c(a,b,c){c.Ug('Eades radial',1);c.dh(b,gFe);a.d=RD(Gxd(b,(u2c(),t2c)),27);a.c=Kfb(UD(Gxd(b,($4c(),S4c))));a.e=u5c(RD(Gxd(b,X4c),300));a.a=Z3c(RD(Gxd(b,Z4c),434));a.b=k5c(RD(Gxd(b,O4c),354));C5c(a);c.dh(b,gFe)} +function t8c(a,b){b.Ug('Target Width Setter',1);if(Hxd(a,(X7c(),W7c))){Ixd(a,(X6c(),W6c),UD(Gxd(a,W7c)))}else{throw Adb(new Jed('A target width has to be set if the TargetWidthWidthApproximator should be used.'))}b.Vg()} +function _8b(a,b){var c,d,e;d=new j3b(a);kQb(d,b);pQb(d,(Ywc(),gwc),b);pQb(d,(yCc(),BBc),(Bod(),wod));pQb(d,Rzc,(Rjd(),Njd));h3b(d,(r3b(),m3b));c=new R3b;P3b(c,d);Q3b(c,(qpd(),ppd));e=new R3b;P3b(e,d);Q3b(e,Xod);return d} +function ttc(a){switch(a.g){case 0:return new FKc((RKc(),OKc));case 1:return new aKc;case 2:return new FLc;default:throw Adb(new agb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function THc(a,b){var c,d,e,f,g;a.c[b.p]=true;Rmb(a.a,b);for(g=new Anb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?Hh():g<0&&Rw(a,b,-g);return true}else{return false}} +function YKb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=aLb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Vvb(SCb(HDb(CDb(_nb(a.a),new oLb),new qLb)))}return h>0?h+a.n.d+a.n.a:0} +function ZKb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Vvb(SCb(HDb(CDb(_nb(a.a),new kLb),new mLb)))}else{g=bLb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function UOc(a){var b,c;if(a.c.length!=2){throw Adb(new dgb('Order only allowed for two paths.'))}b=(tFb(0,a.c.length),RD(a.c[0],18));c=(tFb(1,a.c.length),RD(a.c[1],18));if(b.d.i!=c.c.i){a.c.length=0;ZEb(a.c,c);ZEb(a.c,b)}} +function O8c(a,b,c){var d;zyd(c,b.g,b.f);Byd(c,b.i,b.j);for(d=0;d<(!b.a&&(b.a=new C5d(J4,b,10,11)),b.a).i;d++){O8c(a,RD(QHd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a),d),27),RD(QHd((!c.a&&(c.a=new C5d(J4,c,10,11)),c.a),d),27))}} +function DMb(a,b){var c,d,e,f;f=RD(Vrb(a.b,b),127);c=f.a;for(e=RD(RD(Qc(a.r,b),21),87).Kc();e.Ob();){d=RD(e.Pb(),117);!!d.c&&(c.a=$wnd.Math.max(c.a,QKb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function ETb(a,b){var c,d,e;c=RD(mQb(b,(yVb(),lVb)),17).a-RD(mQb(a,lVb),17).a;if(c==0){d=ojd(ajd(RD(mQb(a,(JVb(),FVb)),8)),RD(mQb(a,GVb),8));e=ojd(ajd(RD(mQb(b,FVb),8)),RD(mQb(b,GVb),8));return Qfb(d.a*d.b,e.a*e.b)}return c} +function JVc(a,b){var c,d,e;c=RD(mQb(b,(h_c(),X$c)),17).a-RD(mQb(a,X$c),17).a;if(c==0){d=ojd(ajd(RD(mQb(a,(q$c(),RZc)),8)),RD(mQb(a,SZc),8));e=ojd(ajd(RD(mQb(b,RZc),8)),RD(mQb(b,SZc),8));return Qfb(d.a*d.b,e.a*e.b)}return c} +function _0b(a){var b,c;c=new bib;c.a+='e_';b=S0b(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Zhb((c.a+=' ',c),M3b(a.c));Zhb(Yhb((c.a+='[',c),a.c.i),']');Zhb((c.a+=SAe,c),M3b(a.d));Zhb(Yhb((c.a+='[',c),a.d.i),']')}return c.a} +function ZVc(a){switch(a.g){case 0:return new N_c;case 1:return new V_c;case 2:return new x0c;case 3:return new J0c;default:throw Adb(new agb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function qsd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function MDd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new vue(e);for(h=(d.b-d.a)*d.c<0?(uue(),tue):new Rue(d);h.Ob();){g=RD(h.Pb(),17);f=xDd(c,g.a);kIe in f.a||lIe in f.a?yEd(a,f,b):EEd(a,f,b);OGd(RD(Wjb(a.b,uDd(f)),74))}}} +function jXd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=WVd(a);if(!!b&&(nke(),b.lk()==aKe)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function Sqe(a,b){var c,d,e,f;Mqe(a);if(a.c!=0||a.a!=123)throw Adb(new Lqe(TId((Hde(),eJe))));f=b==112;d=a.d;c=phb(a.i,125,d);if(c<0)throw Adb(new Lqe(TId((Hde(),fJe))));e=zhb(a.i,d,c);a.d=c+1;return ite(e,f,(a.e&512)==512)} +function YTb(a){var b,c,d,e,f,g,h;d=a.a.c.length;if(d>0){g=a.c.d;h=a.d.d;e=ijd(ojd(new rjd(h.a,h.b),g),1/(d+1));f=new rjd(g.a,g.b);for(c=new Anb(a.a);c.a=0&&f=0?a.Lh(c,true,true):Qvd(a,e,true),160));return RD(d,220).Wl(b)}else{throw Adb(new agb(KHe+b.xe()+NHe))}} +function _ae(){Tae();var a;if(Sae)return RD(N5d((YSd(),XSd),AKe),2038);RRd(UK,new hde);abe();a=RD(ZD(Xjb((YSd(),XSd),AKe),560)?Xjb(XSd,AKe):new $ae,560);Sae=true;Yae(a);Zae(a);Zjb((hTd(),gTd),a,new cbe);$jb(XSd,AKe,a);return a} +function Vfe(a,b){var c,d,e,f;a.j=-1;if(Mvd(a.e)){c=a.i;f=a.i!=0;LHd(a,b);d=new P3d(a.e,3,a.c,null,b,c,f);e=b.zl(a.e,a.c,null);e=Hge(a,b,e);if(!e){qvd(a.e,d)}else{e.nj(d);e.oj()}}else{LHd(a,b);e=b.zl(a.e,a.c,null);!!e&&e.oj()}} +function HA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BFb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BFb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function mPb(a){var b,c,d,e,f;e=RD(a.a,17).a;f=RD(a.b,17).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new Ptd(sgb(c),sgb(d))} +function YPb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw Adb(new veb(MIe+b+NIe+a.i));if(c>=a.i)throw Adb(new veb(OIe+c+NIe+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-qxe;b=d>>16&4;c+=b;a<<=b;d=a-Ove;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function RSb(a){HSb();var b,c,d,e;GSb=new bnb;FSb=new Tsb;ESb=new bnb;b=(!a.a&&(a.a=new C5d(J4,a,10,11)),a.a);JSb(b);for(e=new dMd(b);e.e!=e.i.gc();){d=RD(bMd(e),27);if(Wmb(GSb,d,0)==-1){c=new bnb;Rmb(ESb,c);KSb(d,c)}}return ESb} +function sTb(a,b,c){var d,e,f,g;a.a=c.b.d;if(ZD(b,326)){e=IGd(RD(b,74),false,false);f=ssd(e);d=new wTb(a);xgb(f,d);lsd(f,e);b.of((umd(),cld))!=null&&xgb(RD(b.of(cld),75),d)}else{g=RD(b,422);g.rh(g.nh()+a.a.a);g.sh(g.oh()+a.a.b)}} +function hWc(a,b){var c,d,e;e=new bnb;for(d=Sub(b.a,0);d.b!=d.d.c;){c=RD(evb(d),65);c.c.g==a.g&&dE(mQb(c.b,(h_c(),f_c)))!==dE(mQb(c.c,f_c))&&!yDb(new SDb(null,new Swb(e,16)),new IWc(c))&&(ZEb(e.c,c),true)}_mb(e,new KWc);return e} +function fUb(a,b,c){var d,e,f,g;if(ZD(b,153)&&ZD(c,153)){f=RD(b,153);g=RD(c,153);return a.a[f.a][g.a]+a.a[g.a][f.a]}else if(ZD(b,250)&&ZD(c,250)){d=RD(b,250);e=RD(c,250);if(d.a==e.a){return RD(mQb(e.a,(yVb(),lVb)),17).a}}return 0} +function q9b(a,b){var c,d,e,f,g,h,i,j;j=Kfb(UD(mQb(b,(yCc(),fCc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=ejd(ojd(new rjd(g.c+g.b/2,g.d+g.a/2),new rjd(f.c+f.b/2,f.d+f.a/2)));return -(oRb(f,g)-1)*h} +function ysd(a,b,c){var d;FDb(new SDb(null,(!c.a&&(c.a=new C5d(F4,c,6,6)),new Swb(c.a,16))),new Qsd(a,b));FDb(new SDb(null,(!c.n&&(c.n=new C5d(I4,c,1,7)),new Swb(c.n,16))),new Ssd(a,b));d=RD(Gxd(c,(umd(),cld)),75);!!d&&Bjd(d,a,b)} +function Qvd(a,b,c){var d,e,f;f=Eee((lke(),jke),a.Dh(),b);if(f){nke();RD(f,69).xk()||(f=zfe(Qee(jke,f)));e=(d=a.Ih(f),RD(d>=0?a.Lh(d,true,true):Qvd(a,f,true),160));return RD(e,220).Sl(b,c)}else{throw Adb(new agb(KHe+b.xe()+NHe))}} +function WNd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new BTc(i.c,g);Qmb(a,d++,e)}h=j+c;if(h<=i.a){f=new BTc(h,i.a);wFb(d,a.c.length);XEb(a.c,d,f)}}} +function mZc(a,b,c){var d,e,f,g,h,i;if(!b.dc()){e=new Yub;for(i=b.Kc();i.Ob();){h=RD(i.Pb(),40);Zjb(a.a,sgb(h.g),sgb(c));for(g=(d=Sub((new dXc(h)).a.d,0),new gXc(d));dvb(g.a);){f=RD(evb(g.a),65).c;Pub(e,f,e.c.b,e.c)}}mZc(a,e,c+1)}} +function Ude(a){var b;if(!a.c&&a.g==null){a.d=a.bj(a.f);WGd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=RD(a.g[a.i-1],51)}}if(b==a.b&&null.Vm>=null.Um()){tId(a);return Ude(a)}else{return b.Ob()}} +function t_b(a){this.a=a;if(a.c.i.k==(r3b(),m3b)){this.c=a.c;this.d=RD(mQb(a.c.i,(Ywc(),hwc)),64)}else if(a.d.i.k==m3b){this.c=a.d;this.d=RD(mQb(a.d.i,(Ywc(),hwc)),64)}else{throw Adb(new agb('Edge '+a+' is not an external edge.'))}} +function O1d(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,e,a.b));if(!b){PAd(a,null);Q1d(a,0);P1d(a,null)}else if(b!=a){PAd(a,b.zb);Q1d(a,b.d);c=(d=b.c,d==null?b.zb:d);P1d(a,c==null||lhb(c,b.zb)?null:c)}} +function hj(a,b){var c;this.e=(tm(),Qb(a),tm(),zm(a));this.c=(Qb(b),zm(b));Lb(this.e.Rd().dc()==this.c.Rd().dc());this.d=Uv(this.e);this.b=Uv(this.c);c=YC(jJ,[Nve,rve],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2);this.a=c;Zi(this)} +function Lz(b){var c=(!Jz&&(Jz=Mz()),Jz);var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return Kz(a,c)});return '"'+d+'"'} +function VEb(a,b,c,d,e,f){var g,h,i,j,k;if(e==0){return}if(dE(a)===dE(c)){a=a.slice(b,b+e);b=0}i=c;for(h=b,j=b+e;h=g)throw Adb(new aMd(b,g));e=c[b];if(g==1){d=null}else{d=$C(d6,IJe,424,g-1,0,1);hib(c,0,d,0,b);f=g-b-1;f>0&&hib(c,b+1,d,b,f)}Bde(a,d);Ade(a,b,e);return e} +function l3d(a){var b,c;if(a.f){while(a.n0?(f=vpd(c)):(f=spd(vpd(c)))}Ixd(b,GBc,f)} +function agc(a,b){var c;b.Ug('Partition preprocessing',1);c=RD(zDb(CDb(EDb(CDb(new SDb(null,new Swb(a.a,16)),new egc),new ggc),new igc),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);FDb(c.Oc(),new kgc);b.Vg()} +function Uoc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&_mb(g,new ypc);e=g.c.length/2|0;for(d=0;d0&&uLc(a,c,b);return f}else if(d.a!=null){uLc(a,b,c);return -1}else if(e.a!=null){uLc(a,c,b);return 1}return 0} +function EVc(a,b){var c,d,e,f,g;e=b.b.b;a.a=$C(QK,Ize,15,e,0,1);a.b=$C(xdb,Hye,28,e,16,1);for(g=Sub(b.b,0);g.b!=g.d.c;){f=RD(evb(g),40);a.a[f.g]=new Yub}for(d=Sub(b.a,0);d.b!=d.d.c;){c=RD(evb(d),65);a.a[c.b.g].Fc(c);a.a[c.c.g].Fc(c)}} +function SJd(a,b){var c,d,e,f;if(a.Pj()){c=a.Ej();f=a.Qj();++a.j;a.qj(c,a.Zi(c,b));d=a.Ij(3,null,b,c,f);if(a.Mj()){e=a.Nj(b,null);if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}else{a.Jj(d)}}else{_Id(a,b);if(a.Mj()){e=a.Nj(b,null);!!e&&e.oj()}}} +function oLd(a,b,c){var d,e,f;if(a.Pj()){f=a.Qj();KHd(a,b,c);d=a.Ij(3,null,c,b,f);if(a.Mj()){e=a.Nj(c,null);a.Tj()&&(e=a.Uj(c,e));if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}else{a.Jj(d)}}else{KHd(a,b,c);if(a.Mj()){e=a.Nj(c,null);!!e&&e.oj()}}} +function bge(a,b){var c,d,e,f,g;g=pke(a.e.Dh(),b);e=new YHd;c=RD(a.g,124);for(f=a.i;--f>=0;){d=c[f];g.am(d.Lk())&&WGd(e,d)}!wLd(a,e)&&Mvd(a.e)&&eZd(a,b.Jk()?fge(a,6,b,(yob(),vob),null,-1,false):fge(a,b.tk()?2:1,b,null,null,-1,false))} +function _7b(a,b){var c,d,e,f,g;if(a.a==($uc(),Yuc)){return true}f=b.a.c;c=b.a.c+b.a.b;if(b.j){d=b.A;g=d.c.c.a-d.o.a/2;e=f-(d.n.a+d.o.a);if(e>g){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function bRc(a){WQc();var b,c,d,e,f,g,h;c=new gub;for(e=new Anb(a.e.b);e.a1?(a.e*=Kfb(a.a)):(a.f/=Kfb(a.a));uRb(a);vRb(a);rRb(a);pQb(a.b,(tSb(),lSb),a.g)} +function n9b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new Anb(a);f.a=0?a.Ah(null):a.Ph().Th(a,-1-b,null,null));a.Bh(RD(e,54),c);!!d&&d.oj();a.vh()&&a.wh()&&c>-1&&qvd(a,new N3d(a,9,c,f,e));return e}}}return f} +function stb(a,b){var c,d,e,f,g;f=a.b.Ce(b);d=(c=a.a.get(f),c==null?$C(jJ,rve,1,0,5,1):c);for(g=0;g>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Uib(a);if(e>16)),15).dd(f);if(h0){!(Dmd(a.a.c)&&b.n.d)&&!(Emd(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(Dmd(a.a.c)&&b.n.a)&&!(Emd(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function c7b(a){var b,c,d,e,f;e=new bnb;f=d7b(a,e);b=RD(mQb(a,(Ywc(),Iwc)),10);if(b){for(d=new Anb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?exe:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?exe:0;f=d?dxe:0;e=c>>b-44}return hD(e&dxe,f&dxe,g&exe)} +function ORb(a){var b,c,d,e,f,g;this.c=new bnb;this.d=a;d=oxe;e=oxe;b=pxe;c=pxe;for(g=Sub(a,0);g.b!=g.d.c;){f=RD(evb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new Uid(d,e,b-d,c-e)} +function Udc(a,b){var c,d,e,f,g,h;for(f=new Anb(a.b);f.a0&&ZD(b,44)){a.a._j();j=RD(b,44);i=j.ld();f=i==null?0:tb(i);g=bOd(a.a,f);c=a.a.d[g];if(c){d=RD(c.g,379);k=c.i;for(h=0;h=2){c=e.Kc();b=UD(c.Pb());while(c.Ob()){f=b;b=UD(c.Pb());d=$wnd.Math.min(d,(uFb(b),b)-(uFb(f),f))}}return d} +function iWc(a,b){var c,d,e;e=new bnb;for(d=Sub(b.a,0);d.b!=d.d.c;){c=RD(evb(d),65);c.b.g==a.g&&!lhb(c.b.c,IEe)&&dE(mQb(c.b,(h_c(),f_c)))!==dE(mQb(c.c,f_c))&&!yDb(new SDb(null,new Swb(e,16)),new OWc(c))&&(ZEb(e.c,c),true)}_mb(e,new QWc);return e} +function $u(a,b){var c,d,e;if(dE(b)===dE(Qb(a))){return true}if(!ZD(b,15)){return false}d=RD(b,15);e=a.gc();if(e!=d.gc()){return false}if(ZD(d,59)){for(c=0;c0&&(e=c);for(g=new Anb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new Ptd(sgb(b),sgb(c))} +function nNc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(sNc(),rNc)&&b.d==qNc){return -1}else if(a.d==qNc&&b.d==rNc){return 1}return 0} +function ARc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=lQc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} +function X9c(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new Anb(a.c);l.a>24}return g} +function Bfb(a){if(a.ze()){var b=a.c;b.Ae()?(a.o='['+b.n):!b.ze()?(a.o='[L'+b.xe()+';'):(a.o='['+b.xe());a.b=b.we()+'[]';a.k=b.ye()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=Efb('.',[c,Efb('$',d)]);a.b=Efb('.',[c,Efb('.',d)]);a.k=d[d.length-1]} +function hJb(a,b){var c,d,e,f,g;g=null;for(f=new Anb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function nKc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} +function awd(a){var b,c;c=new dib(nfb(a.Rm));c.a+='@';Zhb(c,(b=tb(a)>>>0,b.toString(16)));if(a.Vh()){c.a+=' (eProxyURI: ';Yhb(c,a._h());if(a.Kh()){c.a+=' eClass: ';Yhb(c,a.Kh())}c.a+=')'}else if(a.Kh()){c.a+=' (eClass: ';Yhb(c,a.Kh());c.a+=')'}return c.a} +function KGb(a){var b,c,d,e;if(a.e){throw Adb(new dgb((lfb(lN),lye+lN.k+mye)))}a.d==(Cmd(),Amd)&&JGb(a,ymd);for(c=new Anb(a.a.a);c.a>24}return c} +function cNb(a,b,c){var d,e,f;e=RD(Vrb(a.i,b),314);if(!e){e=new UKb(a.d,b,c);Wrb(a.i,b,e);if(jMb(b)){tKb(a.a,b.c,b.b,e)}else{f=iMb(b);d=RD(Vrb(a.p,f),252);switch(f.g){case 1:case 3:e.j=true;cLb(d,b.b,e);break;case 4:case 2:e.k=true;cLb(d,b.c,e);}}}return e} +function Ndc(a,b){var c,d,e,f,g,h,i,j,k;i=ev(a.c-a.b&a.a.length-1);j=null;k=null;for(f=new Kmb(a);f.a!=f.b;){e=RD(Imb(f),10);c=(h=RD(mQb(e,(Ywc(),vwc)),12),!h?null:h.i);d=(g=RD(mQb(e,wwc),12),!g?null:g.i);if(j!=c||k!=d){Rdc(i,b);j=c;k=d}ZEb(i.c,e)}Rdc(i,b)} +function Rge(a,b,c,d){var e,f,g,h,i,j;h=new YHd;i=pke(a.e.Dh(),b);e=RD(a.g,124);nke();if(RD(b,69).xk()){for(g=0;g=0){return e}else{f=1;for(h=new Anb(b.j);h.a=0){return e}else{f=1;for(h=new Anb(b.j);h.a0&&b.Ne((tFb(e-1,a.c.length),RD(a.c[e-1],10)),f)>0){$mb(a,e,(tFb(e-1,a.c.length),RD(a.c[e-1],10)));--e}tFb(e,a.c.length);a.c[e]=f}c.a=new Tsb;c.b=new Tsb} +function yhd(a,b,c){var d,e,f,g,h,i,j,k;k=(d=RD(b.e&&b.e(),9),new Fsb(d,RD(WEb(d,d.length),9),0));i=vhb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g=0){if(!b){b=new Rhb;d>0&&Nhb(b,(AFb(0,d,a.length),a.substr(0,d)))}b.a+='\\';Jhb(b,c&Bwe)}else !!b&&Jhb(b,c&Bwe)}return b?b.a:a} +function MYb(a){var b,c,d;for(c=new Anb(a.a.a.b);c.a0){!(Dmd(a.a.c)&&b.n.d)&&!(Emd(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(Dmd(a.a.c)&&b.n.a)&&!(Emd(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Ydc(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(qpd(),Yod)||b==Xod){Odc(RD(omb(a),15),(Pnd(),Lnd));Odc(RD(omb(a),15),Mnd)}else{Odc(RD(omb(a),15),(Pnd(),Mnd));Odc(RD(omb(a),15),Lnd)}}else{for(e=new Kmb(a);e.a!=e.b;){d=RD(Imb(e),15);Odc(d,c)}}} +function HGd(a,b){var c,d,e,f,g,h,i;e=cv(new QGd(a));h=new Jkb(e,e.c.length);f=cv(new QGd(b));i=new Jkb(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sFb(h.b>0),RD(h.a.Xb(h.c=--h.b),27));d=(sFb(i.b>0),RD(i.a.Xb(i.c=--i.b),27));if(c==d){g=c}else{break}}return g} +function Dmc(a,b,c){var d,e,f,g;if(Hmc(a,b)>Hmc(a,c)){d=b3b(c,(qpd(),Xod));a.d=d.dc()?0:L3b(RD(d.Xb(0),12));g=b3b(b,ppd);a.b=g.dc()?0:L3b(RD(g.Xb(0),12))}else{e=b3b(c,(qpd(),ppd));a.d=e.dc()?0:L3b(RD(e.Xb(0),12));f=b3b(b,Xod);a.b=f.dc()?0:L3b(RD(f.Xb(0),12))}} +function wNb(a,b){var c,d,e,f;c=a.o.a;for(f=RD(RD(Qc(a.r,b),21),87).Kc();f.Ob();){e=RD(f.Pb(),117);e.e.a=c*Kfb(UD(e.b.of(sNb)));e.e.b=(d=e.b,d.pf((umd(),Gld))?d.ag()==(qpd(),Yod)?-d.Mf().b-Kfb(UD(d.of(Gld))):Kfb(UD(d.of(Gld))):d.ag()==(qpd(),Yod)?-d.Mf().b:0)}} +function Mhc(a,b){var c,d,e,f;b.Ug('Self-Loop pre-processing',1);for(d=new Anb(a.a);d.aa.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=lTc(a,b,f,h);i=yTc((tFb(d,b.c.length),RD(b.c[d],339)));wTc(b,d,c)}return i} +function _Ad(a,b,c){var d,e,f,g,h,i,j;g=(f=new pVd,f);nVd(g,(uFb(b),b));j=(!g.b&&(g.b=new SVd((JTd(),FTd),C8,g)),g.b);for(i=1;i0&&ASb(this,e)}} +function zTb(a,b,c,d,e,f){var g,h,i;if(!e[b.a]){e[b.a]=true;g=d;!g&&(g=new gUb);Rmb(g.e,b);for(i=f[b.a].Kc();i.Ob();){h=RD(i.Pb(),290);if(h.d==c||h.c==c){continue}h.c!=b&&zTb(a,h.c,b,g,e,f);h.d!=b&&zTb(a,h.d,b,g,e,f);Rmb(g.c,h);Tmb(g.d,h.b)}return g}return null} +function v7b(a){var b,c,d,e,f,g,h;b=0;for(e=new Anb(a.e);e.a=2} +function _qc(a,b,c,d,e){var f,g,h,i,j,k;f=a.c.d.j;g=RD(ju(c,0),8);for(k=1;k1){return false}b=ysb(Xnd,cD(WC(A3,1),jwe,95,0,[Wnd,Znd]));if(dy(Tx(b,a))>1){return false}d=ysb(cod,cD(WC(A3,1),jwe,95,0,[bod,aod]));if(dy(Tx(d,a))>1){return false}return true} +function $Uc(a,b,c){var d,e,f;for(f=new Anb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Mub(b,d.b)}}for(e=new Anb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Mub(c,d.a)}}} +function tId(a){var b,c,d,e,f;if(a.g==null){a.d=a.bj(a.f);WGd(a,a.d);if(a.c){f=a.f;return f}}b=RD(a.g[a.i-1],51);e=b.Pb();a.e=b;c=a.bj(e);if(c.Ob()){a.d=c;WGd(a,c)}else{a.d=null;while(!b.Ob()){bD(a.g,--a.i,null);if(a.i==0){break}d=RD(a.g[a.i-1],51);b=d}}return e} +function Rfe(a,b){var c,d,e,f,g,h;d=b;e=d.Lk();if(qke(a.e,e)){if(e.Si()&&cge(a,e,d.md())){return false}}else{h=pke(a.e.Dh(),e);c=RD(a.g,124);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function Kwb(a,b){var c,d,e,f,g,h;f=a.a*Mxe+a.b*1502;h=a.b*Mxe+11;c=$wnd.Math.floor(h*Nxe);f+=c;h-=c*Oxe;f%=Oxe;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*Ewb[b])}else{e=a.a*(1<=2147483648&&(d-=4294967296);return d}} +function uSc(a,b,c){var d,e,f,g,h,i,j;f=new bnb;j=new Yub;g=new Yub;vSc(a,j,g,b);tSc(a,j,g,b,c);for(i=new Anb(a);i.ad.b.g&&(ZEb(f.c,d),true)}}return f} +function jed(a,b,c){var d,e,f,g,h,i;h=a.c;for(g=(!c.q?(yob(),yob(),wob):c.q).vc().Kc();g.Ob();){f=RD(g.Pb(),44);d=!QDb(CDb(new SDb(null,new Swb(h,16)),new PAb(new xed(b,f)))).Bd((xDb(),wDb));if(d){i=f.md();if(ZD(i,4)){e=FId(i);e!=null&&(i=e)}b.qf(RD(f.ld(),149),i)}}} +function mbd(a,b,c){var d,e;Sed(a.b);Ved(a.b,(gbd(),dbd),(_cd(),$cd));Ved(a.b,ebd,b.g);Ved(a.b,fbd,b.a);a.a=Qed(a.b,b);c.Ug('Compaction by shrinking a tree',a.a.c.length);if(b.i.c.length>1){for(e=new Anb(a.a);e.a=0?a.Lh(d,true,true):Qvd(a,f,true),160));RD(e,220).Xl(b,c)}else{throw Adb(new agb(KHe+b.xe()+LHe))}} +function k2d(a,b){var c,d,e,f,g;if(!b){return null}else{f=ZD(a.Cb,90)||ZD(a.Cb,102);g=!f&&ZD(a.Cb,331);for(d=new dMd((!b.a&&(b.a=new iae(b,o7,b)),b.a));d.e!=d.i.gc();){c=RD(bMd(d),89);e=i2d(c);if(f?ZD(e,90):g?ZD(e,156):!!e){return e}}return f?(JTd(),zTd):(JTd(),wTd)}} +function W8b(a,b){var c,d,e,f;b.Ug('Resize child graph to fit parent.',1);for(d=new Anb(a.b);d.a=2*b&&Rmb(c,new BTc(g[d-1]+b,g[d]-b))}return c} +function dEd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new vue(f);for(h=(d.b-d.a)*d.c<0?(uue(),tue):new Rue(d);h.Ob();){g=RD(h.Pb(),17);e=xDd(c,g.a);!!e&&(i=null,j=sEd(a,(k=(bvd(),l=new PCd,l),!!b&&NCd(k,b),k),e),jyd(j,zDd(e,uIe)),GEd(e,j),HEd(e,j),CEd(a,e,j))}}} +function sYd(a){var b,c,d,e,f,g;if(!a.j){g=new f1d;b=iYd;f=b.a.zc(a,b);if(f==null){for(d=new dMd(zYd(a));d.e!=d.i.gc();){c=RD(bMd(d),29);e=sYd(c);YGd(g,e);WGd(g,c)}b.a.Bc(a)!=null}VHd(g);a.j=new N$d((RD(QHd(xYd((lTd(),kTd).o),11),19),g.i),g.g);yYd(a).b&=-33}return a.j} +function lne(a){var b,c,d,e;if(a==null){return null}else{d=nue(a,true);e=mLe.length;if(lhb(d.substr(d.length-e,e),mLe)){c=d.length;if(c==4){b=(BFb(0,d.length),d.charCodeAt(0));if(b==43){return Yme}else if(b==45){return Xme}}else if(c==3){return Yme}}return new Ufb(d)}} +function pD(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ogb(c)}if(b==0&&d!=0&&c==0){return ogb(d)+22}if(b!=0&&d==0&&c==0){return ogb(b)+44}return -1} +function yo(a,b){var c,d,e,f,g;e=b.a&a.f;f=null;for(d=a.b[e];true;d=d.b){if(d==b){!f?(a.b[e]=b.b):(f.b=b.b);break}f=d}g=b.f&a.f;f=null;for(c=a.c[g];true;c=c.d){if(c==b){!f?(a.c[g]=b.d):(f.d=b.d);break}f=c}!b.e?(a.a=b.c):(b.e.c=b.c);!b.c?(a.e=b.e):(b.c.e=b.e);--a.i;++a.g} +function Dt(a,b){var c;b.d?(b.d.b=b.b):(a.a=b.b);b.b?(b.b.d=b.d):(a.e=b.d);if(!b.e&&!b.c){c=RD(Hvb(RD(_jb(a.b,b.a),260)),260);c.a=0;++a.c}else{c=RD(Hvb(RD(Wjb(a.b,b.a),260)),260);--c.a;!b.e?(c.b=RD(Hvb(b.c),511)):(b.e.c=b.c);!b.c?(c.c=RD(Hvb(b.e),511)):(b.c.e=b.e)}--a.d} +function XPb(a){var b,c,d,e,f,g,h,i,j,k;c=a.o;b=a.p;g=lve;e=qwe;h=lve;f=qwe;for(j=0;j0);f.a.Xb(f.c=--f.b);Ikb(f,e);sFb(f.b3&&UA(a,0,b-3)}} +function eXb(a){var b,c,d,e;if(dE(mQb(a,(yCc(),IAc)))===dE((Fnd(),Cnd))){return !a.e&&dE(mQb(a,gAc))!==dE((xvc(),uvc))}d=RD(mQb(a,hAc),299);e=Heb(TD(mQb(a,nAc)))||dE(mQb(a,oAc))===dE((stc(),ptc));b=RD(mQb(a,fAc),17).a;c=a.a.c.length;return !e&&d!=(xvc(),uvc)&&(b==0||b>c)} +function Rnc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+Qzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Czd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,6,d));d=Bzd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,6,b,b))} +function pzd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+qzd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?jzd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,12,d));d=izd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,b,b))} +function NCd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+OCd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?LCd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,9,d));d=KCd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,9,b,b))} +function tWd(b){var c,d,e,f,g;e=WVd(b);g=b.j;if(g==null&&!!e){return b.Jk()?null:e.ik()}else if(ZD(e,156)){d=e.jk();if(d){f=d.wi();if(f!=b.i){c=RD(e,156);if(c.nk()){try{b.g=f.ti(c,g)}catch(a){a=zdb(a);if(ZD(a,82)){b.g=null}else throw Adb(a)}}b.i=f}}return b.g}return null} +function nRb(a){var b;b=new bnb;Rmb(b,new TFb(new rjd(a.c,a.d),new rjd(a.c+a.b,a.d)));Rmb(b,new TFb(new rjd(a.c,a.d),new rjd(a.c,a.d+a.a)));Rmb(b,new TFb(new rjd(a.c+a.b,a.d+a.a),new rjd(a.c+a.b,a.d)));Rmb(b,new TFb(new rjd(a.c+a.b,a.d+a.a),new rjd(a.c,a.d+a.a)));return b} +function ic(b){var c,d,e;if(b==null){return vve}try{return jeb(b)}catch(a){a=zdb(a);if(ZD(a,103)){c=a;e=nfb(rb(b))+'@'+(d=(gib(),jFb(b))>>>0,d.toString(16));lBb(pBb(),(SAb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+nfb(c.Rm)+'>'}else throw Adb(a)}} +function mTb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=RD(f.Pb(),74);d=RD(Wjb(a.b,e),272);!d&&(vCd(JGd(e))==vCd(LGd(e))?lTb(a,e,c):JGd(e)==vCd(LGd(e))?Wjb(a.c,e)==null&&Wjb(a.b,LGd(e))!=null&&oTb(a,e,c,false):Wjb(a.d,e)==null&&Wjb(a.b,JGd(e))!=null&&oTb(a,e,c,true))}} +function Pfc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=RD(e.Pb(),10);h=new R3b;P3b(h,d);Q3b(h,(qpd(),Xod));pQb(h,(Ywc(),Hwc),(Geb(),true));for(g=b.Kc();g.Ob();){f=RD(g.Pb(),10);i=new R3b;P3b(i,f);Q3b(i,ppd);pQb(i,Hwc,true);c=new a1b;pQb(c,Hwc,true);Y0b(c,h);Z0b(c,i)}}} +function Pqc(a,b,c,d){var e,f,g,h;e=Nqc(a,b,c);f=Nqc(a,c,b);g=RD(Wjb(a.c,b),118);h=RD(Wjb(a.c,c),118);if(e1){b=eJb((c=new gJb,++a.b,c),a.d);for(h=Sub(f,0);h.b!=h.d.c;){g=RD(evb(h),125);rIb(uIb(tIb(vIb(sIb(new wIb,1),0),b),g))}}} +function isc(a,b,c){var d,e,f,g,h;c.Ug('Breaking Point Removing',1);a.a=RD(mQb(b,(yCc(),yAc)),223);for(f=new Anb(b.b);f.a>16!=11&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+zCd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?sCd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=Ivd(b,a,10,d));d=rCd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,11,b,b))} +function C0b(a){var b,c,d,e;for(d=new vkb((new mkb(a.b)).a);d.b;){c=tkb(d);e=RD(c.ld(),12);b=RD(c.md(),10);pQb(b,(Ywc(),Awc),e);pQb(e,Iwc,b);pQb(e,nwc,(Geb(),true));Q3b(e,RD(mQb(b,hwc),64));mQb(b,hwc);pQb(e.i,(yCc(),BBc),(Bod(),yod));RD(mQb(Y2b(e.i),kwc),21).Fc((ovc(),kvc))}} +function X7b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new Anb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=$C(D6,KJe,66,2*i+4,0,1);for(f=0;f=9223372036854775807){return MD(),ID}e=false;if(a<0){e=true;a=-a}d=0;if(a>=hxe){d=eE(a/hxe);a-=d*hxe}c=0;if(a>=gxe){c=eE(a/gxe);a-=c*gxe}b=eE(a);f=hD(b,c,d);e&&nD(f);return f} +function KCb(a){var b,c,d,e,f;f=new bnb;Umb(a.b,new SEb(f));a.b.c.length=0;if(f.c.length!=0){b=(tFb(0,f.c.length),RD(f.c[0],82));for(c=1,d=f.c.length;c=-b&&d==b){return new Ptd(sgb(c-1),sgb(d))}return new Ptd(sgb(c),sgb(d-1))} +function lcc(){hcc();return cD(WC(YS,1),jwe,81,0,[nbc,kbc,obc,Ebc,Xbc,Ibc,bcc,Nbc,Vbc,zbc,Rbc,Mbc,Wbc,vbc,dcc,ebc,Qbc,Zbc,Fbc,Ybc,fcc,Tbc,fbc,Ubc,gcc,_bc,ecc,Gbc,sbc,Hbc,Dbc,ccc,ibc,qbc,Kbc,hbc,Lbc,Bbc,wbc,Obc,ybc,lbc,jbc,Cbc,xbc,Pbc,acc,gbc,Sbc,Abc,Jbc,tbc,rbc,$bc,pbc,ubc,mbc])} +function Cmc(a,b,c){a.d=0;a.b=0;b.k==(r3b(),q3b)&&c.k==q3b&&RD(mQb(b,(Ywc(),Awc)),10)==RD(mQb(c,Awc),10)&&(Gmc(b).j==(qpd(),Yod)?Dmc(a,b,c):Dmc(a,c,b));b.k==q3b&&c.k==o3b?Gmc(b).j==(qpd(),Yod)?(a.d=1):(a.b=1):c.k==q3b&&b.k==o3b&&(Gmc(c).j==(qpd(),Yod)?(a.b=1):(a.d=1));Imc(a,b,c)} +function EFd(a){var b,c,d,e,f,g,h,i,j,k,l;l=HFd(a);b=a.a;i=b!=null;i&&sDd(l,'category',a.a);e=cve(new Xkb(a.d));g=!e;if(g){j=new MB;sC(l,'knownOptions',j);c=new MFd(j);xgb(new Xkb(a.d),c)}f=cve(a.g);h=!f;if(h){k=new MB;sC(l,'supportedFeatures',k);d=new OFd(k);xgb(a.g,d)}return l} +function Ly(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new hq(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+gCd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cCd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=RD(b,54).Rh(a,1,H4,d));d=bCd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,7,b,b))} +function lVd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(Oje(a,b))throw Adb(new agb(UHe+oVd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?iVd(a,d):a.Cb.Th(a,-1-c,null,d)));!!b&&(d=RD(b,54).Rh(a,0,p7,d));d=hVd(a,b,d);!!d&&d.oj()}else (a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,3,b,b))} +function Mjb(a,b){Ljb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Qjb(a,b)}g=(a.d&-2)<<4;j=$ib(a,g);k=$ib(b,g);d=Gjb(a,Zib(j,g));e=Gjb(b,Zib(k,g));i=Mjb(j,k);c=Mjb(d,e);f=Mjb(Gjb(j,d),Gjb(e,k));f=Bjb(Bjb(f,i),c);f=Zib(f,g);i=Zib(i,g<<1);return Bjb(Bjb(i,f),c)} +function _Cc(){_Cc=geb;ZCc=new bDc(lEe,0);WCc=new bDc('LONGEST_PATH',1);XCc=new bDc('LONGEST_PATH_SOURCE',2);TCc=new bDc('COFFMAN_GRAHAM',3);VCc=new bDc(BBe,4);$Cc=new bDc('STRETCH_WIDTH',5);YCc=new bDc('MIN_WIDTH',6);SCc=new bDc('BF_MODEL_ORDER',7);UCc=new bDc('DF_MODEL_ORDER',8)} +function AKc(a,b,c){var d,e,f,g,h;g=aMc(a,c);h=$C(jR,WAe,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=RD(f.Pb(),12);Heb(TD(mQb(e,(Ywc(),nwc))))&&(h[d++]=RD(mQb(e,Iwc),10))}if(d=0;f+=c?1:-1){g=g|b.c.lg(i,f,c,d&&!Heb(TD(mQb(b.j,(Ywc(),jwc))))&&!Heb(TD(mQb(b.j,(Ywc(),Owc)))));g=g|b.q.ug(i,f,c);g=g|CKc(a,i[f],c,d)}Ysb(a.c,b);return g} +function F6b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=u2b(a.j),l=0,m=k.length;l1&&(a.a=true);QQb(RD(c.b,68),$id(ajd(RD(b.b,68).c),ijd(ojd(ajd(RD(c.b,68).a),RD(b.b,68).a),e)));Odd(a,b);Qdd(a,c)}} +function tYb(a){var b,c,d,e,f,g,h;for(f=new Anb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}yob();_mb(a.j,new Lfc)} +function zic(a){var b,c;c=null;b=RD(Vmb(a.g,0),18);do{c=b.d.i;if(nQb(c,(Ywc(),wwc))){return RD(mQb(c,wwc),12).i}if(c.k!=(r3b(),p3b)&&gs(new is(Mr(a3b(c).a.Kc(),new ir)))){b=RD(hs(new is(Mr(a3b(c).a.Kc(),new ir))),18)}else if(c.k!=p3b){return null}}while(!!c&&c.k!=(r3b(),p3b));return c} +function sqc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=RD(Vmb(h,h.c.length-1),113);k=(tFb(0,h.c.length),RD(h.c[0],113));j=oqc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function fMc(a,b,c){var d,e,f,g,h,i,j;j=new yAb(new TMc(a));for(g=cD(WC(xR,1),XAe,12,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0){if(f.a){h=f.b.Mf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(Rod(a.u)){d=wsd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.Mf().a&&(f.d.c=d.c+d.b-f.b.Mf().a)}}} +function RUc(a,b){var c,d,e,f,g;g=new bnb;c=b;do{f=RD(Wjb(a.b,c),131);f.B=c.c;f.D=c.d;ZEb(g.c,f);c=RD(Wjb(a.k,c),18)}while(c);d=(tFb(0,g.c.length),RD(g.c[0],131));d.j=true;d.A=RD(d.d.a.ec().Kc().Pb(),18).c.i;e=RD(Vmb(g,g.c.length-1),131);e.q=true;e.C=RD(e.d.a.ec().Kc().Pb(),18).d.i;return g} +function pPb(a){var b,c;b=RD(a.a,17).a;c=RD(a.b,17).a;if(b>=0){if(b==c){return new Ptd(sgb(-b-1),sgb(-b-1))}if(b==-c){return new Ptd(sgb(-b),sgb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new Ptd(sgb(-b),sgb(c))}return new Ptd(sgb(-b),sgb(c+1))}return new Ptd(sgb(b+1),sgb(c))} +function H8b(a){var b,c;c=RD(mQb(a,(yCc(),UAc)),171);b=RD(mQb(a,(Ywc(),owc)),311);if(c==(cxc(),$wc)){pQb(a,UAc,bxc);pQb(a,owc,(Gvc(),Fvc))}else if(c==axc){pQb(a,UAc,bxc);pQb(a,owc,(Gvc(),Dvc))}else if(b==(Gvc(),Fvc)){pQb(a,UAc,$wc);pQb(a,owc,Evc)}else if(b==Dvc){pQb(a,UAc,axc);pQb(a,owc,Evc)}} +function dSc(){dSc=geb;bSc=new pSc;ZRc=pfd(new ufd,(sXb(),pXb),(hcc(),Fbc));aSc=nfd(pfd(new ufd,pXb,Tbc),rXb,Sbc);cSc=mfd(mfd(rfd(nfd(pfd(new ufd,nXb,bcc),rXb,acc),qXb),_bc),ccc);$Rc=nfd(pfd(pfd(pfd(new ufd,oXb,Ibc),qXb,Kbc),qXb,Lbc),rXb,Jbc);_Rc=nfd(pfd(pfd(new ufd,qXb,Lbc),qXb,qbc),rXb,pbc)} +function HUc(){HUc=geb;CUc=pfd(nfd(new ufd,(sXb(),rXb),(hcc(),tbc)),pXb,Fbc);GUc=mfd(mfd(rfd(nfd(pfd(new ufd,nXb,bcc),rXb,acc),qXb),_bc),ccc);DUc=nfd(pfd(pfd(pfd(new ufd,oXb,Ibc),qXb,Kbc),qXb,Lbc),rXb,Jbc);FUc=pfd(pfd(new ufd,pXb,Tbc),rXb,Sbc);EUc=nfd(pfd(pfd(new ufd,qXb,Lbc),qXb,qbc),rXb,pbc)} +function eSc(a,b,c,d,e){var f,g;if((!W0b(b)&&b.c.i.c==b.d.i.c||!djd(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])),c))&&!W0b(b)){b.c==e?hu(b.a,0,new sjd(c)):Mub(b.a,new sjd(c));if(d&&!Zsb(a.a,c)){g=RD(mQb(b,(yCc(),RAc)),75);if(!g){g=new Ejd;pQb(b,RAc,g)}f=new sjd(c);Pub(g,f,g.c.b,g.c);Ysb(a.a,f)}}} +function ht(a,b){var c,d,e,f;f=Ydb(Ndb(cwe,qgb(Ydb(Ndb(b==null?0:tb(b),dwe)),15)));c=f&a.b.length-1;e=null;for(d=a.b[c];d;e=d,d=d.a){if(d.d==f&&Hb(d.i,b)){!e?(a.b[c]=d.a):(e.a=d.a);Ts(RD(Hvb(d.c),604),RD(Hvb(d.f),604));Ss(RD(Hvb(d.b),227),RD(Hvb(d.e),227));--a.f;++a.e;return true}}return false} +function dec(a){var b,c;for(c=new is(Mr(Z2b(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),18);if(b.c.i.k!=(r3b(),n3b)){throw Adb(new Jed(nBe+X2b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function Twd(a,b,c){var d,e,f,g,h,i,j;e=ggb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=$C(jJ,rve,1,2,5,1);f=Xwd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=$C(jJ,rve,1,e+1,5,1);g=SD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function vQb(a,b,c){var d,e,f,g;this.b=new bnb;e=0;d=0;for(g=new Anb(a);g.a0){f=RD(Vmb(this.b,0),176);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=eE($wnd.Math.ceil(e*b))):(d=eE($wnd.Math.ceil(d/b)));this.a=new gQb(e,d)} +function mkc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=RD(Wjb(a.f,b.A),60);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=RD(Wjb(a.f,c.C),60);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(qpd(),Xod)?e?b3b(h,d):hv(b3b(h,d)):e?hv(b3b(h,d)):b3b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=RD(l.Pb(),12);a.d[k.p]=j++}Tmb(c,i)}} +function AUc(a,b,c){var d,e,f,g,h,i,j,k;f=Kfb(UD(a.b.Kc().Pb()));j=Kfb(UD(fr(b.b)));d=ijd(ajd(a.a),j-c);e=ijd(ajd(b.a),c-f);k=$id(d,e);ijd(k,1/(j-f));this.a=k;this.b=new bnb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Kfb(UD(g.Pb()));if(h&&i-c>AEe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function mJb(a){var b,c,d,e;pJb(a,a.n);if(a.d.c.length>0){Nnb(a.c);while(xJb(a,RD(ynb(new Anb(a.e.a)),125))>5;b&=31;if(d>=a.d){return a.e<0?(Pib(),Jib):(Pib(),Oib)}f=a.d-d;e=$C(kE,Pwe,28,f+1,15,1);ujb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=Eee((lke(),jke),e,b);if(!c){return true}else{d=c.Ik();return (d>1||d==-1)&&yfe(Qee(jke,c))!=3}}}}else{return false}} +function _4b(a,b,c,d){var e,f,g,h,i;h=AGd(RD(QHd((!b.b&&(b.b=new Yie(E4,b,4,7)),b.b),0),84));i=AGd(RD(QHd((!b.c&&(b.c=new Yie(E4,b,5,8)),b.c),0),84));if(vCd(h)==vCd(i)){return null}if(NGd(i,h)){return null}g=kzd(b);if(g==c){return d}else{f=RD(Wjb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function uHc(a,b,c){var d,e,f,g,h;c.Ug('Longest path to source layering',1);a.a=b;h=a.a.a;a.b=$C(kE,Pwe,28,h.c.length,15,1);d=0;for(g=new Anb(h);g.a0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);mKb(a,XJb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==XJb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function D_b(){this.c=$C(iE,vxe,28,(qpd(),cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd])).length,15,1);this.b=$C(iE,vxe,28,cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd]).length,15,1);this.a=$C(iE,vxe,28,cD(WC(E3,1),NAe,64,0,[opd,Yod,Xod,npd,ppd]).length,15,1);Lnb(this.c,oxe);Lnb(this.b,pxe);Lnb(this.a,pxe)} +function rte(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=$C(kE,Pwe,28,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=$C(kE,Pwe,28,d+2,15,1);hib(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||vte(a)}} +function Oqc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new cnb(j.c.length);a.c=new Tsb;for(h=new Anb(j);h.a=0?a.Lh(j,false,true):Qvd(a,c,false),61));n:for(f=l.Kc();f.Ob();){e=RD(f.Pb(),58);for(k=0;k1){vLd(e,e.i-1)}}return d}} +function Vdc(a,b){var c,d,e,f,g,h,i;c=new wmb;for(f=new Anb(a.b);f.aa.d[g.p]){c+=ZLc(a.b,f);hmb(a.a,sgb(f))}}while(!nmb(a.a)){XLc(a.b,RD(smb(a.a),17).a)}}return c} +function Uec(a){var b,c,d,e,f,g,h,i,j;a.a=new e6b;j=0;e=0;for(d=new Anb(a.i.b);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function ovc(){ovc=geb;fvc=new pvc('COMMENTS',0);hvc=new pvc('EXTERNAL_PORTS',1);ivc=new pvc('HYPEREDGES',2);jvc=new pvc('HYPERNODES',3);kvc=new pvc('NON_FREE_PORTS',4);lvc=new pvc('NORTH_SOUTH_PORTS',5);nvc=new pvc(FBe,6);evc=new pvc('CENTER_LABELS',7);gvc=new pvc('END_LABELS',8);mvc=new pvc('PARTITIONS',9)} +function PA(a,b,c,d,e){if(d<0){d=EA(a,e,cD(WC(qJ,1),Nve,2,6,[Cwe,Dwe,Ewe,Fwe,Gwe,Hwe,Iwe,Jwe,Kwe,Lwe,Mwe,Nwe]),b);d<0&&(d=EA(a,e,cD(WC(qJ,1),Nve,2,6,['Jan','Feb','Mar','Apr',Gwe,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function RA(a,b,c,d,e){if(d<0){d=EA(a,e,cD(WC(qJ,1),Nve,2,6,[Cwe,Dwe,Ewe,Fwe,Gwe,Hwe,Iwe,Jwe,Kwe,Lwe,Mwe,Nwe]),b);d<0&&(d=EA(a,e,cD(WC(qJ,1),Nve,2,6,['Jan','Feb','Mar','Apr',Gwe,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function TA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=ihb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=HA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new uB;j=i.q.getFullYear()-Owe+Owe-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=0?jjb(a):Xib(jjb(Odb(a))));Kjb[b]=Jdb(Sdb(a,b),0)?jjb(Sdb(a,b)):Xib(jjb(Odb(Sdb(a,b))));a=Ndb(a,5)}for(;b=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function SNb(a){var b,c,d,e,f,g,h;f=new yAb(RD(Qb(new eOb),50));h=pxe;for(c=new Anb(a.d);c.aFFe?_mb(i,a.b):d<=FFe&&d>GFe?_mb(i,a.d):d<=GFe&&d>HFe?_mb(i,a.c):d<=HFe&&_mb(i,a.a);f=$5c(a,i,f)}return e} +function sTc(a,b,c,d){var e,f,g,h,i,j;e=(d.c+d.a)/2;Xub(b.j);Mub(b.j,e);Xub(c.e);Mub(c.e,e);j=new ATc;for(h=new Anb(a.f);h.a1;if(h){d=new rjd(e,c.b);Mub(b.a,d)}zjd(b.a,cD(WC(l3,1),Nve,8,0,[m,l]))} +function TGc(a,b,c){var d,e;if(b=48;c--){Eqe[c]=c-48<<24>>24}for(d=70;d>=65;d--){Eqe[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){Eqe[e]=e-97+10<<24>>24}for(f=0;f<10;f++)Fqe[f]=48+f&Bwe;for(a=10;a<=15;a++)Fqe[a]=65+a-10&Bwe} +function yYc(a,b){b.Ug('Process graph bounds',1);pQb(a,(q$c(),ZZc),Uvb(TCb(HDb(new SDb(null,new Swb(a.b,16)),new DYc))));pQb(a,_Zc,Uvb(TCb(HDb(new SDb(null,new Swb(a.b,16)),new FYc))));pQb(a,YZc,Uvb(SCb(HDb(new SDb(null,new Swb(a.b,16)),new HYc))));pQb(a,$Zc,Uvb(SCb(HDb(new SDb(null,new Swb(a.b,16)),new JYc))));b.Vg()} +function PWb(a){var b,c,d,e,f;e=RD(mQb(a,(yCc(),lBc)),21);f=RD(mQb(a,oBc),21);c=new rjd(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new sjd(c);if(e.Hc((Qpd(),Mpd))){d=RD(mQb(a,nBc),8);if(f.Hc((dqd(),Ypd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}Heb(TD(mQb(a,mBc)))||QWb(a,c,b)} +function lOc(a,b){var c,d,e,f;for(f=b3b(b,(qpd(),npd)).Kc();f.Ob();){d=RD(f.Pb(),12);c=RD(mQb(d,(Ywc(),Iwc)),10);!!c&&rIb(uIb(tIb(vIb(sIb(new wIb,0),0.1),a.i[b.p].d),a.i[c.p].a))}for(e=b3b(b,Yod).Kc();e.Ob();){d=RD(e.Pb(),12);c=RD(mQb(d,(Ywc(),Iwc)),10);!!c&&rIb(uIb(tIb(vIb(sIb(new wIb,0),0.1),a.i[c.p].d),a.i[b.p].a))}} +function oYd(a){var b,c,d,e,f,g;if(!a.c){g=new W$d;b=iYd;f=b.a.zc(a,b);if(f==null){for(d=new dMd(tYd(a));d.e!=d.i.gc();){c=RD(bMd(d),89);e=i2d(c);ZD(e,90)&&YGd(g,oYd(RD(e,29)));WGd(g,c)}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}T$d(g);VHd(g);a.c=new N$d((RD(QHd(xYd((lTd(),kTd).o),15),19),g.i),g.g);yYd(a).b&=-33}return a.c} +function Dre(a){var b;if(a.c!=10)throw Adb(new Lqe(TId((Hde(),VIe))));b=a.a;switch(b){case 110:b=10;break;case 114:b=13;break;case 116:b=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw Adb(new Lqe(TId((Hde(),xJe))));}return b} +function GD(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return '0'}if(a.h==fxe&&a.m==0&&a.l==0){return '-9223372036854775808'}if(a.h>>19!=0){return '-'+GD(xD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=fD(ixe);c=iD(c,e,true);b=''+FD(eD);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function tkc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new Anb(a.d.b);e.a=a.a){return -1}if(!W9b(b,c)){return -1}if(gr(RD(d.Kb(b),20))){return 1}e=0;for(g=RD(d.Kb(b),20).Kc();g.Ob();){f=RD(g.Pb(),18);i=f.c.i==b?f.d.i:f.c.i;h=X9b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function _Gd(a,b){var c,d,e,f,g,h;if(dE(b)===dE(a)){return true}if(!ZD(b,15)){return false}d=RD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.Yi()){for(c=0;c0){a._j();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw Adb(new Vgb('Invalid hexadecimal'))}}} +function iIb(){iIb=geb;hIb=new jIb('SPIRAL',0);cIb=new jIb('LINE_BY_LINE',1);dIb=new jIb('MANHATTAN',2);bIb=new jIb('JITTER',3);fIb=new jIb('QUADRANTS_LINE_BY_LINE',4);gIb=new jIb('QUADRANTS_MANHATTAN',5);eIb=new jIb('QUADRANTS_JITTER',6);aIb=new jIb('COMBINE_LINE_BY_LINE_MANHATTAN',7);_Hb=new jIb('COMBINE_JITTER_MANHATTAN',8)} +function Urc(a,b,c,d){var e,f,g,h,i,j;i=Zrc(a,c);j=Zrc(b,c);e=false;while(!!i&&!!j){if(d||Xrc(i,j,c)){g=Zrc(i,c);h=Zrc(j,c);asc(b);asc(a);f=i.c;Hec(i,false);Hec(j,false);if(c){f3b(b,j.p,f);b.p=j.p;f3b(a,i.p+1,f);a.p=i.p}else{f3b(a,i.p,f);a.p=i.p;f3b(b,j.p+1,f);b.p=j.p}g3b(i,null);g3b(j,null);i=g;j=h;e=true}else{break}}return e} +function aDc(a){switch(a.g){case 0:return new XHc;case 1:return new pHc;case 3:return new GGc;case 4:return new gHc;case 5:return new jIc;case 6:return new IHc;case 2:return new xHc;case 7:return new pGc;case 8:return new YGc;default:throw Adb(new agb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function tIc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new Anb(d.j);h.a=b.length){throw Adb(new veb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new DMc(d);rMc(this.e,this.c,(qpd(),ppd));this.i=new DMc(d);rMc(this.i,this.c,Xod);this.f=new Kmc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(r3b(),m3b);this.a&&Nmc(this,a,b.length)} +function $Mb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((dqd(),Wpd));g=a.B.Hc(Zpd);a.a=new wKb(g,f,a.c);!!a.n&&C2b(a.a.n,a.n);cLb(a.g,(ZJb(),XJb),a.a);if(!b){d=new dLb(1,f,a.c);d.n.a=a.k;Wrb(a.p,(qpd(),Yod),d);e=new dLb(1,f,a.c);e.n.d=a.k;Wrb(a.p,npd,e);h=new dLb(0,f,a.c);h.n.c=a.k;Wrb(a.p,ppd,h);c=new dLb(0,f,a.c);c.n.b=a.k;Wrb(a.p,Xod,c)}} +function zkc(a){var b,c,d;b=RD(mQb(a.d,(yCc(),yAc)),223);switch(b.g){case 2:c=rkc(a);break;case 3:c=(d=new bnb,FDb(CDb(GDb(EDb(EDb(new SDb(null,new Swb(a.d.b,16)),new wlc),new ylc),new Alc),new Kkc),new Clc(d)),d);break;default:throw Adb(new dgb('Compaction not supported for '+b+' edges.'));}ykc(a,c);xgb(new Xkb(a.g),new ilc(a))} +function qYc(a,b){var c,d,e,f,g,h,i;b.Ug('Process directions',1);c=RD(mQb(a,(h_c(),H$c)),88);if(c!=(Cmd(),xmd)){for(e=Sub(a.b,0);e.b!=e.d.c;){d=RD(evb(e),40);h=RD(mQb(d,(q$c(),o$c)),17).a;i=RD(mQb(d,p$c),17).a;switch(c.g){case 4:i*=-1;break;case 1:f=h;h=i;i=f;break;case 2:g=h;h=-i;i=g;}pQb(d,o$c,sgb(h));pQb(d,p$c,sgb(i))}}b.Vg()} +function led(a,b){var c;c=new qQb;!!b&&kQb(c,RD(Wjb(a.a,H4),96));ZD(b,422)&&kQb(c,RD(Wjb(a.a,L4),96));if(ZD(b,366)){kQb(c,RD(Wjb(a.a,I4),96));return c}ZD(b,84)&&kQb(c,RD(Wjb(a.a,E4),96));if(ZD(b,207)){kQb(c,RD(Wjb(a.a,J4),96));return c}if(ZD(b,193)){kQb(c,RD(Wjb(a.a,K4),96));return c}ZD(b,326)&&kQb(c,RD(Wjb(a.a,G4),96));return c} +function a_b(a){var b,c,d,e,f,g,h,i;i=new m_b;for(h=new Anb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Rmb(c.e,b)}if(e==(r3b(),o3b)||e==q3b){for(g=new Anb(b.j);g.aa.d[h.p]){c+=ZLc(a.b,f);hmb(a.a,sgb(f))}}else{++g}}c+=a.b.d*g;while(!nmb(a.a)){XLc(a.b,RD(smb(a.a),17).a)}}return c} +function pje(a){var b,c,d,e,f,g;f=0;b=WVd(a);!!b.kk()&&(f|=4);(a.Bb&bKe)!=0&&(f|=2);if(ZD(a,102)){c=RD(a,19);e=Z5d(c);(c.Bb&QHe)!=0&&(f|=32);if(e){AYd(uWd(e));f|=8;g=e.t;(g>1||g==-1)&&(f|=16);(e.Bb&QHe)!=0&&(f|=64)}(c.Bb&txe)!=0&&(f|=cKe);f|=gwe}else{if(ZD(b,469)){f|=512}else{d=b.kk();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function vke(a,b){var c;if(a.f==tke){c=yfe(Qee((lke(),jke),b));return a.e?c==4&&b!=(Lle(),Jle)&&b!=(Lle(),Gle)&&b!=(Lle(),Hle)&&b!=(Lle(),Ile):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(zfe(Qee((lke(),jke),b)))||a.d.Hc(Eee((lke(),jke),a.b,b)))){return true}if(a.f){if(Xee((lke(),a.f),Bfe(Qee(jke,b)))){c=yfe(Qee(jke,b));return a.e?c==4:c==2}}return false} +function oKc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;m=-1;n=0;for(j=a,k=0,l=j.length;k0&&++n}}}++m}return n} +function S2c(a,b,c,d){var e,f,g,h,i,j,k,l;g=RD(Gxd(c,(umd(),Qld)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dFe);e+=b;e>dFe&&(e-=dFe);h=RD(Gxd(d,Qld),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dFe);f+=b;f>dFe&&(f-=dFe);return Zy(),bz(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:cz(isNaN(e),isNaN(f))} +function PGb(a){var b,c,d,e,f,g,h;h=new Tsb;for(d=new Anb(a.a.b);d.a=b.o){throw Adb(new web)}i=c>>5;h=c&31;g=Sdb(1,Ydb(Sdb(h,1)));f?(b.n[d][i]=Rdb(b.n[d][i],g)):(b.n[d][i]=Cdb(b.n[d][i],Qdb(g)));g=Sdb(g,1);e?(b.n[d][i]=Rdb(b.n[d][i],g)):(b.n[d][i]=Cdb(b.n[d][i],Qdb(g)))}catch(a){a=zdb(a);if(ZD(a,333)){throw Adb(new veb(fze+b.o+'*'+b.p+gze+c+pve+d+hze))}else throw Adb(a)}} +function eMc(a,b,c,d){var e,f,g,h,i,j,k,l,m;m=new yAb(new PMc(a));for(h=cD(WC(jR,1),WAe,10,0,[b,c]),i=0,j=h.length;i0){d=(!a.n&&(a.n=new C5d(I4,a,1,7)),RD(QHd(a.n,0),135)).a;!d||Zhb(Zhb((b.a+=' "',b),d),'"')}}else{Zhb(Zhb((b.a+=' "',b),c),'"')}Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function OCd(a){var b,c,d;if((a.Db&64)!=0)return Fyd(a);b=new dib(HHe);c=a.k;if(!c){!a.n&&(a.n=new C5d(I4,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new C5d(I4,a,1,7)),RD(QHd(a.n,0),135)).a;!d||Zhb(Zhb((b.a+=' "',b),d),'"')}}else{Zhb(Zhb((b.a+=' "',b),c),'"')}Zhb(Uhb(Zhb(Uhb(Zhb(Uhb(Zhb(Uhb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Xnc(a,b){var c,d,e,f,g;b==(TEc(),QEc)&&Eob(RD(Qc(a.a,(Bnc(),xnc)),15));for(e=RD(Qc(a.a,(Bnc(),xnc)),15).Kc();e.Ob();){d=RD(e.Pb(),105);c=RD(Vmb(d.j,0),113).d.j;f=new dnb(d.j);_mb(f,new Boc);switch(b.g){case 2:Pnc(a,f,c,(joc(),hoc),1);break;case 1:case 0:g=Rnc(f);Pnc(a,new Rkb(f,0,g),c,(joc(),hoc),0);Pnc(a,new Rkb(f,g,f.c.length),c,hoc,1);}}} +function sgd(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=RD(Xjb(a.a,b),143);if(!e){for(d=(h=(new glb(a.b)).a.vc().Kc(),new llb(h));d.a.Ob();){c=(f=RD(d.a.Pb(),44),RD(f.md(),143));g=c.c;i=b.length;if(lhb(g.substr(g.length-i,i),b)&&(b.length==g.length||ihb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&$jb(a.a,b,e)}return e} +function HOb(a,b){var c,d,e,f;c=new MOb;d=RD(zDb(GDb(new SDb(null,new Swb(a.f,16)),c),sBb(new _Bb,new bCb,new yCb,new ACb,cD(WC(QL,1),jwe,108,0,[(xBb(),wBb),vBb]))),21);e=d.gc();d=RD(zDb(GDb(new SDb(null,new Swb(b.f,16)),c),sBb(new _Bb,new bCb,new yCb,new ACb,cD(WC(QL,1),jwe,108,0,[wBb,vBb]))),21);f=d.gc();if(ee.p){Q3b(f,npd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==npd&&e.p>a.p){Q3b(f,Yod);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function nTb(a,b,c,d,e){var f,g,h,i,j,k,l;if(!(ZD(b,207)||ZD(b,366)||ZD(b,193))){throw Adb(new agb('Method only works for ElkNode-, ElkLabel and ElkPort-objects.'))}g=a.a/2;i=b.i+d-g;k=b.j+e-g;j=i+b.g+a.a;l=k+b.f+a.a;f=new Ejd;Mub(f,new rjd(i,k));Mub(f,new rjd(i,l));Mub(f,new rjd(j,l));Mub(f,new rjd(j,k));h=new ORb(f);kQb(h,b);c&&Zjb(a.b,b,h);return h} +function w$b(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new rjd(b,c);for(k=new Anb(a.a);k.a1;if(h){d=new rjd(e,c.b);Mub(b.a,d)}zjd(b.a,cD(WC(l3,1),Nve,8,0,[m,l]))} +function aEc(){aEc=geb;$Dc=new bEc(LAe,0);VDc=new bEc('NIKOLOV',1);YDc=new bEc('NIKOLOV_PIXEL',2);WDc=new bEc('NIKOLOV_IMPROVED',3);XDc=new bEc('NIKOLOV_IMPROVED_PIXEL',4);SDc=new bEc('DUMMYNODE_PERCENTAGE',5);ZDc=new bEc('NODECOUNT_PERCENTAGE',6);_Dc=new bEc('NO_BOUNDARY',7);TDc=new bEc('MODEL_ORDER_LEFT_TO_RIGHT',8);UDc=new bEc('MODEL_ORDER_RIGHT_TO_LEFT',9)} +function use(a){var b,c,d,e,f;d=a.length;b=new Rhb;f=0;while(f=40;g&&wJb(a);nJb(a);mJb(a);c=qJb(a);d=0;while(!!c&&d0&&Mub(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Mub(a.e,f)}}}}} +function FVc(a,b,c,d){var e,f,g,h,i,j,k;i=new rjd(c,d);ojd(i,RD(mQb(b,(q$c(),SZc)),8));for(k=Sub(b.b,0);k.b!=k.d.c;){j=RD(evb(k),40);$id(j.e,i);Mub(a.b,j)}for(h=RD(zDb(BDb(new SDb(null,new Swb(b.a,16))),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15).Kc();h.Ob();){g=RD(h.Pb(),65);for(f=Sub(g.a,0);f.b!=f.d.c;){e=RD(evb(f),8);e.a+=i.a;e.b+=i.b}Mub(a.a,g)}} +function kWc(a,b){var c,d,e,f;if(0<(ZD(a,16)?RD(a,16).gc():Kr(a.Kc()))){e=b;if(1=0&&if*2){k=new zrd(l);j=urd(g)/trd(g);i=ird(k,b,new z3b,c,d,e,j);$id(hjd(k.e),i);l.c.length=0;f=0;ZEb(l.c,k);ZEb(l.c,g);f=urd(k)*trd(k)+urd(g)*trd(g)}else{ZEb(l.c,g);f+=urd(g)*trd(g)}}return l} +function O9b(a,b){var c,d,e,f,g,h;h=RD(mQb(b,(yCc(),BBc)),101);if(!(h==(Bod(),xod)||h==wod)){return}e=(new rjd(b.f.a+b.d.b+b.d.c,b.f.b+b.d.d+b.d.a)).b;for(g=new Anb(a.a);g.ac?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.am(f.Lk());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=RD(uLd(a,b,c),76);h!=i&&eZd(a,new c4d(a.e,7,g,sgb(h),n.md(),i));return m}}}else{return RD(SHd(a,b,c),76)}return RD(uLd(a,b,c),76)} +function ugc(a,b){var c,d,e,f,g,h,i;b.Ug('Port order processing',1);i=RD(mQb(a,(yCc(),HBc)),430);for(d=new Anb(a.b);d.a=0){h=rD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&nD(i);if(f){if(d){eD=xD(a);e&&(eD=DD(eD,(MD(),KD)))}else{eD=hD(a.l,a.m,a.h)}}return i} +function rIc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new Anb(a.a);h.a0&&(BFb(0,a.length),a.charCodeAt(0)==45||(BFb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw Adb(new Vgb(nxe+a+'"'))}return h} +function Jqc(a){var b,c,d,e,f,g,h;g=new Yub;for(f=new Anb(a.a);f.a1)&&b==1&&RD(a.a[a.b],10).k==(r3b(),n3b)){Qdc(RD(a.a[a.b],10),(Pnd(),Lnd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&RD(a.a[a.c-1&a.a.length-1],10).k==(r3b(),n3b)){Qdc(RD(a.a[a.c-1&a.a.length-1],10),(Pnd(),Mnd))}else if((a.c-a.b&a.a.length-1)==2){Qdc(RD(omb(a),10),(Pnd(),Lnd));Qdc(RD(omb(a),10),Mnd)}else{Ndc(a,e)}jmb(a)} +function QVc(a,b,c){var d,e,f,g,h;f=0;for(e=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));e.e!=e.i.gc();){d=RD(bMd(e),27);g='';(!d.n&&(d.n=new C5d(I4,d,1,7)),d.n).i==0||(g=RD(QHd((!d.n&&(d.n=new C5d(I4,d,1,7)),d.n),0),135).a);h=new bXc(f++,b,g);kQb(h,d);pQb(h,(q$c(),h$c),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Mub(b.b,h);rtb(c.f,d,h)}} +function L5b(a){var b,c,d,e,f;d=RD(mQb(a,(Ywc(),Awc)),27);f=RD(Gxd(d,(yCc(),lBc)),181).Hc((Qpd(),Ppd));if(!a.e){e=RD(mQb(a,kwc),21);b=new rjd(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((ovc(),hvc))){Ixd(d,BBc,(Bod(),wod));Esd(d,b.a,b.b,false,true)}else{Heb(TD(Gxd(d,mBc)))||Esd(d,b.a,b.b,true,true)}}f?Ixd(d,lBc,xsb(Ppd)):Ixd(d,lBc,(c=RD(mfb(H3),9),new Fsb(c,RD(WEb(c,c.length),9),0)))} +function JA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(ihb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=HA(a,b);if(g==0&&b[0]==f){return false}if(b[0]h){h=e;k.c.length=0}e==h&&Rmb(k,new Ptd(c.c.i,c))}yob();_mb(k,a.c);Qmb(a.b,i.p,k)}}} +function kRc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new Anb(b.b);g.ah){h=e;k.c.length=0}e==h&&Rmb(k,new Ptd(c.d.i,c))}yob();_mb(k,a.c);Qmb(a.f,i.p,k)}}} +function HVc(a,b){var c,d,e,f,g,h,i,j;j=TD(mQb(b,(h_c(),Z$c)));if(j==null||(uFb(j),j)){EVc(a,b);e=new bnb;for(i=Sub(b.b,0);i.b!=i.d.c;){g=RD(evb(i),40);c=DVc(a,g,null);if(c){kQb(c,b);ZEb(e.c,c)}}a.a=null;a.b=null;if(e.c.length>1){for(d=new Anb(e);d.a=0&&h!=c){f=new N3d(a,1,h,g,null);!d?(d=f):d.nj(f)}if(c>=0){f=new N3d(a,1,c,h==c?g:null,b);!d?(d=f):d.nj(f)}}return d} +function jSd(a){var b,c,d;if(a.b==null){d=new Qhb;if(a.i!=null){Nhb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){wSd(a.i)||(d.a+='//',d);Nhb(d,a.a)}if(a.d!=null){d.a+='/';Nhb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=S9c(d,m,false),i.a);if(k+h+l<=b.b){Q9c(c,f-c.s);c.c=true;Q9c(d,f-c.s);U9c(d,c.s,c.t+c.d+h);d.k=true;aad(c.q,d);n=true;if(e){Cad(b,d);d.j=b;if(a.c.length>g){Fad((tFb(g,a.c.length),RD(a.c[g],186)),d);(tFb(g,a.c.length),RD(a.c[g],186)).a.c.length==0&&Xmb(a,g)}}}return n} +function Qfc(a,b){var c,d,e,f,g,h;b.Ug('Partition midprocessing',1);e=new Tp;FDb(CDb(new SDb(null,new Swb(a.a,16)),new Ufc),new Wfc(e));if(e.d==0){return}h=RD(zDb(ODb((f=e.i,new SDb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);d=h.Kc();c=RD(d.Pb(),17);while(d.Ob()){g=RD(d.Pb(),17);Pfc(RD(Qc(e,c),21),RD(Qc(e,g),21));c=g}b.Vg()} +function G_b(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new bnb;f=(d=RD(mfb(E3),9),new Fsb(d,RD(WEb(d,d.length),9),0));g=new Ptd(e,f)}RD(g.a,15).Fc(b);b.k==(r3b(),m3b)&&RD(g.b,21).Fc(RD(mQb(b,(Ywc(),hwc)),64));for(i=new Anb(b.j);i.a0){e=RD(a.Ab.g,2033);if(b==null){for(f=0;fc.s&&hg){return qpd(),Xod}break;case 4:case 3:if(k<0){return qpd(),Yod}else if(k+c>f){return qpd(),npd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(qpd(),ppd):i+d>=1&&i-d>=0?(qpd(),Xod):d<0.5?(qpd(),Yod):(qpd(),npd)} +function PNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Kfb(UD(mQb(b,(yCc(),bCc))));o=pwe*k;for(e=new Anb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function MJb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new Tid;for(j=b.Kc();j.Ob();){h=RD(j.Pb(),853);for(l=new Anb(h.Rf());l.a0){if(h.a){j=h.b.Mf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=RD(Vmb(h.c.d,0),187).Mf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(Rod(a.u)){f=wsd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.Mf().b&&(h.d.a=f.d+f.a-h.b.Mf().b)}}} +function yVb(){yVb=geb;lVb=new mGd((umd(),Rld),sgb(1));rVb=new mGd(fmd,80);qVb=new mGd($ld,5);ZUb=new mGd(Dkd,Yze);mVb=new mGd(Sld,sgb(1));pVb=new mGd(Vld,(Geb(),true));iVb=new A3b(50);hVb=new mGd(tld,iVb);_Ub=ald;jVb=Hld;$Ub=new mGd(Pkd,false);gVb=sld;eVb=mld;fVb=pld;dVb=kld;cVb=ild;kVb=Lld;bVb=(OUb(),HUb);sVb=MUb;aVb=GUb;nVb=JUb;oVb=LUb;vVb=mmd;xVb=qmd;uVb=lmd;tVb=kmd;wVb=(mqd(),jqd);new mGd(nmd,wVb)} +function VC(a,b){var c;switch(XC(a)){case 6:return bE(b);case 7:return _D(b);case 8:return $D(b);case 3:return Array.isArray(b)&&(c=XC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===kve;case 12:return b!=null&&(typeof b===gve||typeof b==kve);case 0:return QD(b,a.__elementTypeId$);case 2:return cE(b)&&!(b.Tm===keb);case 1:return cE(b)&&!(b.Tm===keb)||QD(b,a.__elementTypeId$);default:return true;}} +function gNb(a){var b,c,d,e;d=a.o;RMb();if(a.A.dc()||pb(a.A,QMb)){e=d.a}else{a.D?(e=$wnd.Math.max(d.a,ZKb(a.f))):(e=ZKb(a.f));if(a.A.Hc((Qpd(),Npd))&&!a.B.Hc((dqd(),_pd))){e=$wnd.Math.max(e,ZKb(RD(Vrb(a.p,(qpd(),Yod)),252)));e=$wnd.Math.max(e,ZKb(RD(Vrb(a.p,npd),252)))}b=TMb(a);!!b&&(e=$wnd.Math.max(e,b.a))}Heb(TD(a.e.Tf().of((umd(),mld))))?(d.a=$wnd.Math.max(d.a,e)):(d.a=e);c=a.f.i;c.c=0;c.b=e;$Kb(a.f)} +function oRb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function oWb(a,b){var c,d,e,f,g,h,i;f=0;h=0;i=0;for(e=new Anb(a.f.e);e.a0&&a.d!=(AWb(),zWb)&&(h+=g*(d.d.a+a.a[b.a][d.a]*(b.d.a-d.d.a)/c));c>0&&a.d!=(AWb(),xWb)&&(i+=g*(d.d.b+a.a[b.a][d.a]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new rjd(h/f,b.d.b);case 2:return new rjd(b.d.a,i/f);default:return new rjd(h/f,i/f);}} +function xsd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new XZd(D4,a,5)),a.a).i+2;g=new cnb(c);Rmb(g,new rjd(a.j,a.k));FDb(new SDb(null,(!a.a&&(a.a=new XZd(D4,a,5)),new Swb(a.a,16))),new Usd(g));Rmb(g,new rjd(a.b,a.c));b=1;while(b0){aHb(i,false,(Cmd(),ymd));aHb(i,true,zmd)}Umb(b.g,new Elc(a,c));Zjb(a.g,b,c)} +function Ugb(){Ugb=geb;var a;Qgb=cD(WC(kE,1),Pwe,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Rgb=$C(kE,Pwe,28,37,15,1);Sgb=cD(WC(kE,1),Pwe,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Tgb=$C(lE,rxe,28,37,14,1);for(a=2;a<=36;a++){Rgb[a]=eE($wnd.Math.pow(a,Qgb[a]));Tgb[a]=Fdb(Sve,Rgb[a])}} +function tsd(a){var b;if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i!=1){throw Adb(new agb(tHe+(!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i))}b=new Ejd;!!BGd(RD(QHd((!a.b&&(a.b=new Yie(E4,a,4,7)),a.b),0),84))&&ye(b,usd(a,BGd(RD(QHd((!a.b&&(a.b=new Yie(E4,a,4,7)),a.b),0),84)),false));!!BGd(RD(QHd((!a.c&&(a.c=new Yie(E4,a,5,8)),a.c),0),84))&&ye(b,usd(a,BGd(RD(QHd((!a.c&&(a.c=new Yie(E4,a,5,8)),a.c),0),84)),true));return b} +function zRc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(wQc(),vQc)?Z2b(b.b):a3b(b.b)):(e=a.a.c==(wQc(),uQc)?Z2b(b.b):a3b(b.b));f=false;for(d=new is(Mr(e.a.Kc(),new ir));gs(d);){c=RD(hs(d),18);g=Heb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!W0b(c)&&c.c.i.c==c.d.i.c){continue}if(Heb(a.a.n[a.a.g[b.b.p].p])||Heb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Zsb(a.b,a.a.g[rRc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function QJd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.Pj()){i=a.Qj();ZId(a,b,c);g=d==1?a.Ij(3,null,c.Kc().Pb(),b,i):a.Ij(5,null,c,b,i);if(a.Mj()){h=d<100?null:new gLd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.Yh()&&pKd(new O3d(a.Cb,9,13,c,a.c,fZd(o4d(RD(a.Cb,62)),a)))}else if(ZD(a.Cb,90)){if(a.Db>>16==-23&&a.Cb.Yh()){b=a.c;ZD(b,90)||(b=(JTd(),zTd));ZD(c,90)||(c=(JTd(),zTd));pKd(new O3d(a.Cb,9,10,c,b,fZd(tYd(RD(a.Cb,29)),a)))}}}}return a.c} +function lac(a,b,c){var d,e,f,g,h,i,j,k,l;c.Ug('Hyperedge merging',1);jac(a,b);i=new Jkb(b.b,0);while(i.b0;h=oIb(b,f);c?FIb(h.b,b):FIb(h.g,b);CIb(h).c.length==1&&(Pub(d,h,d.c.b,d.c),true);e=new Ptd(f,b);hmb(a.o,e);Ymb(a.e.a,f)}} +function SQb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(Oid(a.b).a-Oid(b.b).a);h=$wnd.Math.abs(Oid(a.b).b-Oid(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function LUc(a){var b,c,d,e;NUc(a,a.e,a.f,(dVc(),bVc),true,a.c,a.i);NUc(a,a.e,a.f,bVc,false,a.c,a.i);NUc(a,a.e,a.f,cVc,true,a.c,a.i);NUc(a,a.e,a.f,cVc,false,a.c,a.i);MUc(a,a.c,a.e,a.f,a.i);d=new Jkb(a.i,0);while(d.b=65;c--){xqe[c]=c-65<<24>>24}for(d=122;d>=97;d--){xqe[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){xqe[e]=e-48+52<<24>>24}xqe[43]=62;xqe[47]=63;for(f=0;f<=25;f++)yqe[f]=65+f&Bwe;for(g=26,i=0;g<=51;++g,i++)yqe[g]=97+i&Bwe;for(a=52,h=0;a<=61;++a,h++)yqe[a]=48+h&Bwe;yqe[62]=43;yqe[63]=47} +function uib(a,b){var c,d,e,f,g,h;e=xib(a);h=xib(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*xxe)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*xxe)+1);if(c>d+1){return e}else if(c0&&(g=Wib(g,Sjb(d)));return Qib(f,g)}}else return ej){m=0;n+=i+b;i=0}w$b(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new rjd(c+b,n+i+b)} +function osd(a,b){var c,d,e,f,g,h,i;if(!MCd(a)){throw Adb(new dgb(sHe))}d=MCd(a);f=d.g;e=d.f;if(f<=0&&e<=0){return qpd(),opd}h=a.i;i=a.j;switch(b.g){case 2:case 1:if(h<0){return qpd(),ppd}else if(h+a.g>f){return qpd(),Xod}break;case 4:case 3:if(i<0){return qpd(),Yod}else if(i+a.f>e){return qpd(),npd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(qpd(),ppd):g+c>=1&&g-c>=0?(qpd(),Xod):c<0.5?(qpd(),Yod):(qpd(),npd)} +function Djb(a,b,c,d,e){var f,g;f=Bdb(Cdb(b[0],yxe),Cdb(d[0],yxe));a[0]=Ydb(f);f=Tdb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){PSc(i,i.d-e.d);e.c==(fTc(),dTc)&&NSc(i,i.a-e.d);i.d<=0&&i.i>0&&(Pub(b,i,b.c.b,b.c),true)}}}for(f=new Anb(a.f);f.a0){QSc(h,h.i-e.d);e.c==(fTc(),dTc)&&OSc(h,h.b-e.d);h.i<=0&&h.d>0&&(Pub(c,h,c.c.b,c.c),true)}}}} +function drd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;yob();_mb(a,new Mrd);g=gv(a);n=new bnb;m=new bnb;h=null;i=0;while(g.b!=0){f=RD(g.b==0?null:(sFb(g.b!=0),Wub(g,g.a.a)),163);if(!h||urd(h)*trd(h)/21&&(i>urd(h)*trd(h)/2||g.b==0)){l=new zrd(m);k=urd(h)/trd(h);j=ird(l,b,new z3b,c,d,e,k);$id(hjd(l.e),j);h=l;ZEb(n.c,l);i=0;m.c.length=0}}}Tmb(n,m);return n} +function hib(a,b,c,d,e){gib();var f,g,h,i,j,k,l;vFb(a,'src');vFb(c,'dest');l=rb(a);i=rb(c);qFb((l.i&4)!=0,'srcType is not an array');qFb((i.i&4)!=0,'destType is not an array');k=l.c;g=i.c;qFb((k.i&1)!=0?k==g:(g.i&1)==0,"Array types don't match");iib(a,b,c,d,e);if((k.i&1)==0&&l!=i){j=SD(a);f=SD(c);if(dE(a)===dE(c)&&bd;){bD(f,h,j[--b])}}else{for(h=d+e;d0);d.a.Xb(d.c=--d.b);l>m+i&&Ckb(d)}for(g=new Anb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function gte(){Vse();var a,b,c,d,e,f;if(Fse)return Fse;a=(++Use,new xte(4));ute(a,hte(WLe,true));wte(a,hte('M',true));wte(a,hte('C',true));f=(++Use,new xte(4));for(d=0;d<11;d++){rte(f,d,d)}b=(++Use,new xte(4));ute(b,hte('M',true));rte(b,4448,4607);rte(b,65438,65439);e=(++Use,new iue(2));hue(e,a);hue(e,Ese);c=(++Use,new iue(2));c.Jm($se(f,hte('L',true)));c.Jm(b);c=(++Use,new Kte(3,c));c=(++Use,new Qte(e,c));Fse=c;return Fse} +function vhb(a,b){var c,d,e,f,g,h,i,j;c=new RegExp(b,'g');i=$C(qJ,Nve,2,0,6,1);d=0;j=a;f=null;while(true){h=c.exec(j);if(h==null||j==''){i[d]=j;break}else{g=h.index;i[d]=(AFb(0,g,j.length),j.substr(0,g));j=zhb(j,g+h[0].length,j.length);c.lastIndex=0;if(f==j){i[d]=(AFb(0,1,j.length),j.substr(0,1));j=(BFb(1,j.length+1),j.substr(1))}f=j;++d}}if(a.length>0){e=i.length;while(e>0&&i[e-1]==''){--e}e0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);dKb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new Anb(a.n);d.a1){for(d=Sub(e,0);d.b!=d.d.c;){c=RD(evb(d),235);f=0;for(i=new Anb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);eKb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i0||$y(e.b.d,a.b.d+a.b.a)==0&&d.b<0||$y(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,PQb(a,e,d))}h=$wnd.Math.min(h,FQb(a,f,h,d))}return h} +function lsd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw Adb(new agb('The vector chain must contain at least a source and a target point.'))}e=(sFb(a.b!=0),RD(a.a.a.c,8));Nzd(b,e.a,e.b);i=new mMd((!b.a&&(b.a=new XZd(D4,b,5)),b.a));g=Sub(a,1);while(g.a=0&&f!=c){throw Adb(new agb(LIe))}}e=0;for(i=0;iKfb(pJc(g.g,g.d[0]).a)){sFb(i.b>0);i.a.Xb(i.c=--i.b);Ikb(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new bnb),h.e).Mc(b);j=(!h.e&&(h.e=new bnb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new bnb),h.e).Fc(g);++g.c}}}e||(ZEb(d.c,g),true)} +function H3c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;l=a.a.i+a.a.g/2;m=a.a.i+a.a.g/2;o=b.i+b.g/2;q=b.j+b.f/2;h=new rjd(o,q);j=RD(Gxd(b,(umd(),Qld)),8);j.a=j.a+l;j.b=j.b+m;f=(h.b-j.b)/(h.a-j.a);d=h.b-f*h.a;p=c.i+c.g/2;r=c.j+c.f/2;i=new rjd(p,r);k=RD(Gxd(c,Qld),8);k.a=k.a+l;k.b=k.b+m;g=(i.b-k.b)/(i.a-k.a);e=i.b-g*i.a;n=(d-e)/(g-f);if(j.a>>0,'0'+b.toString(16));d='\\x'+zhb(c,c.length-2,c.length)}else if(a>=txe){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+zhb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&Bwe);}return d} +function Ugc(a){var b,c,d;if(Dod(RD(mQb(a,(yCc(),BBc)),101))){for(c=new Anb(a.j);c.a=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=RD(Vmb(b.n,b.n.c.length-1),209);if(g.e+g.d+c.g+e<=d&&(f=RD(Vmb(b.n,b.n.c.length-1),209),f.f-a.f+c.f<=a.b||a.a.c.length==1)){K9c(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Rmb(b.b,c);h=RD(Vmb(b.n,b.n.c.length-1),209);Rmb(b.n,new _9c(b.s,h.f+h.a+b.i,b.i));W9c(RD(Vmb(b.n,b.n.c.length-1),209),c);M9c(b,c);return true}}return false} +function xLd(a,b,c){var d,e,f,g;if(a.Pj()){e=null;f=a.Qj();d=a.Ij(1,g=UHd(a,b,c),c,b,f);if(a.Mj()&&!(a.Yi()&&g!=null?pb(g,c):dE(g)===dE(c))){g!=null&&(e=a.Oj(g,e));e=a.Nj(c,e);a.Tj()&&(e=a.Wj(g,c,e));if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}else{a.Tj()&&(e=a.Wj(g,c,e));if(!e){a.Jj(d)}else{e.nj(d);e.oj()}}return g}else{g=UHd(a,b,c);if(a.Mj()&&!(a.Yi()&&g!=null?pb(g,c):dE(g)===dE(c))){e=null;g!=null&&(e=a.Oj(g,null));e=a.Nj(c,e);!!e&&e.oj()}return g}} +function Rsc(a,b){var c,d,e,f,g;b.Ug('Path-Like Graph Wrapping',1);if(a.b.c.length==0){b.Vg();return}e=new ysc(a);g=(e.i==null&&(e.i=tsc(e,new Asc)),Kfb(e.i)*e.f);c=g/(e.i==null&&(e.i=tsc(e,new Asc)),Kfb(e.i));if(e.b>c){b.Vg();return}switch(RD(mQb(a,(yCc(),rCc)),351).g){case 2:f=new Ksc;break;case 0:f=new zrc;break;default:f=new Nsc;}d=f.og(a,e);if(!f.pg()){switch(RD(mQb(a,xCc),352).g){case 2:d=Wsc(e,d);break;case 1:d=Usc(e,d);}}Qsc(a,e,d);b.Vg()} +function mB(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function kKc(a,b){var c,d,e,f;Nwb(a.d,a.e);a.c.a.$b();if(Kfb(UD(mQb(b.j,(yCc(),Zzc))))!=0||Kfb(UD(mQb(b.j,Zzc)))!=0){c=Hze;dE(mQb(b.j,cAc))!==dE((kEc(),hEc))&&pQb(b.j,(Ywc(),jwc),(Geb(),true));f=RD(mQb(b.j,gCc),17).a;for(e=0;ee&&++j;Rmb(g,(tFb(h+j,b.c.length),RD(b.c[h+j],17)));i+=(tFb(h+j,b.c.length),RD(b.c[h+j],17)).a-d;++c;while(c=q&&a.e[i.p]>o*a.b||t>=c*q){ZEb(m.c,h);h=new bnb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new Ptd(n,m)} +function pYd(a){var b,c,d,e,f,g,h;if(!a.d){h=new v_d;b=iYd;f=b.a.zc(a,b);if(f==null){for(d=new dMd(zYd(a));d.e!=d.i.gc();){c=RD(bMd(d),29);YGd(h,pYd(c))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}g=h.i;for(e=(!a.q&&(a.q=new C5d(s7,a,11,10)),new dMd(a.q));e.e!=e.i.gc();++g){RD(bMd(e),411)}YGd(h,(!a.q&&(a.q=new C5d(s7,a,11,10)),a.q));VHd(h);a.d=new N$d((RD(QHd(xYd((lTd(),kTd).o),9),19),h.i),h.g);a.e=RD(h.g,688);a.e==null&&(a.e=jYd);yYd(a).b&=-17}return a.d} +function kge(a,b,c,d){var e,f,g,h,i,j;j=pke(a.e.Dh(),b);i=0;e=RD(a.g,124);nke();if(RD(b,69).xk()){for(g=0;g1||o==-1){l=RD(p,71);m=RD(k,71);if(l.dc()){m.$b()}else{g=!!Z5d(b);f=0;for(h=a.a?l.Kc():l.Ii();h.Ob();){j=RD(h.Pb(),58);e=RD(cub(a,j),58);if(!e){if(a.b&&!g){m.Gi(f,j);++f}}else{if(g){i=m.dd(e);i==-1?m.Gi(f,e):f!=i&&m.Ui(f,e)}else{m.Gi(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=cub(a,p);e==null?a.b&&!Z5d(b)&&k.Wb(p):k.Wb(e)}}}}} +function V9b(a,b){var c,d,e,f,g,h,i,j;c=new aac;for(e=new is(Mr(Z2b(b).a.Kc(),new ir));gs(e);){d=RD(hs(e),18);if(W0b(d)){continue}h=d.c.i;if(W9b(h,T9b)){j=X9b(a,h,T9b,S9b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new bnb);Rmb(c.a,h)}}for(g=new is(Mr(a3b(b).a.Kc(),new ir));gs(g);){f=RD(hs(g),18);if(W0b(f)){continue}i=f.d.i;if(W9b(i,S9b)){j=X9b(a,i,S9b,T9b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new bnb);Rmb(c.c,i)}}return c} +function pcc(a,b,c,d){var e,f,g,h,i,j,k;if(c.d.i==b.i){return}e=new j3b(a);h3b(e,(r3b(),o3b));pQb(e,(Ywc(),Awc),c);pQb(e,(yCc(),BBc),(Bod(),wod));ZEb(d.c,e);g=new R3b;P3b(g,e);Q3b(g,(qpd(),ppd));h=new R3b;P3b(h,e);Q3b(h,Xod);k=c.d;Z0b(c,g);f=new a1b;kQb(f,c);pQb(f,RAc,null);Y0b(f,h);Z0b(f,k);j=new Jkb(c.b,0);while(j.b1000000){throw Adb(new teb('power of ten too big'))}if(a<=lve){return Zib(Yib(Jjb[1],b),b)}d=Yib(Jjb[1],lve);e=d;c=Hdb(a-lve);b=eE(a%lve);while(Ddb(c,lve)>0){e=Wib(e,d);c=Vdb(c,lve)}e=Wib(e,Yib(Jjb[1],b));e=Zib(e,lve);c=Hdb(a-lve);while(Ddb(c,lve)>0){e=Zib(e,lve);c=Vdb(c,lve)}e=Zib(e,b);return e} +function s9b(a){var b,c,d,e,f,g,h,i,j,k;for(i=new Anb(a.a);i.aj&&d>j){k=h;j=Kfb(b.p[h.p])+Kfb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c._g()&&c.bh('bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c._g()&&c.bh(b+' is feasible: '+e);return e} +function Dfc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new j3b(a);h3b(f,(r3b(),q3b));pQb(f,(yCc(),BBc),(Bod(),wod));e=0;if(b){g=new R3b;pQb(g,(Ywc(),Awc),b);pQb(f,Awc,b.i);Q3b(g,(qpd(),ppd));P3b(g,f);m=s2b(b.e);for(j=m,k=0,l=j.length;k0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!MA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!MA(b,j,k,0,g)){return 0}}}else{e=-1;if(ihb(k.c,0)==32){l=j[0];KA(b,j);if(j[0]>l){continue}}else if(xhb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!CB(g,c)){return 0}return j[0]} +function qWb(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new pwb(new GWb(c));h=$C(xdb,Hye,28,a.f.e.c.length,16,1);Snb(h,h.length);c[b.a]=0;for(j=new Anb(a.f.e);j.a=0&&!PPb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!PPb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&TPb(a,i,m,false,true)}}} +function hUb(a){var b,c,d,e,f,g,h,i;c=Heb(TD(mQb(a,(yVb(),$Ub))));f=a.a.c.d;h=a.a.d.d;if(c){g=ijd(ojd(new rjd(h.a,h.b),f),0.5);i=ijd(ajd(a.e),0.5);b=ojd($id(new rjd(f.a,f.b),g),i);mjd(a.d,b)}else{e=Kfb(UD(mQb(a.a,qVb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function qYd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new a_d;h=new a_d;b=iYd;g=b.a.zc(a,b);if(g==null){for(f=new dMd(zYd(a));f.e!=f.i.gc();){e=RD(bMd(f),29);YGd(i,qYd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new C5d(y7,a,21,17)),new dMd(a.s));d.e!=d.i.gc();){c=RD(bMd(d),179);ZD(c,102)&&WGd(h,RD(c,19))}VHd(h);a.r=new s_d(a,(RD(QHd(xYd((lTd(),kTd).o),6),19),h.i),h.g);YGd(i,a.r);VHd(i);a.f=new N$d((RD(QHd(xYd(kTd.o),5),19),i.i),i.g);yYd(a).b&=-3}return a.f} +function uSb(a){Cgd(a,new Pfd($fd(Xfd(Zfd(Yfd(new agd,Aze),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new xSb)));Agd(a,Aze,Bze,iGd(sSb));Agd(a,Aze,Cze,iGd(mSb));Agd(a,Aze,Dze,iGd(hSb));Agd(a,Aze,Eze,iGd(nSb));Agd(a,Aze,Bye,iGd(qSb));Agd(a,Aze,Cye,iGd(pSb));Agd(a,Aze,Aye,iGd(rSb));Agd(a,Aze,Dye,iGd(oSb));Agd(a,Aze,vze,iGd(jSb));Agd(a,Aze,wze,iGd(iSb));Agd(a,Aze,xze,iGd(kSb));Agd(a,Aze,yze,iGd(lSb))} +function qAd(){qAd=geb;oAd=cD(WC(hE,1),zwe,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);pAd=new RegExp('[ \t\n\r\f]+');try{nAd=cD(WC(h8,1),rve,2114,0,[new c2d((WA(),YA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",_A(($A(),$A(),ZA))))),new c2d(YA("yyyy-MM-dd'T'HH:mm:ss'.'SSS",_A((null,ZA)))),new c2d(YA("yyyy-MM-dd'T'HH:mm:ss",_A((null,ZA)))),new c2d(YA("yyyy-MM-dd'T'HH:mm",_A((null,ZA)))),new c2d(YA('yyyy-MM-dd',_A((null,ZA))))])}catch(a){a=zdb(a);if(!ZD(a,82))throw Adb(a)}} +function uKc(a,b){var c,d,e,f;e=Kwb(a.d,1)!=0;d=mKc(a,b);if(d==0&&Heb(TD(mQb(b.j,(Ywc(),jwc))))){return 0}!Heb(TD(mQb(b.j,(Ywc(),jwc))))&&!Heb(TD(mQb(b.j,Owc)))||dE(mQb(b.j,(yCc(),cAc)))===dE((kEc(),hEc))?b.c.mg(b.e,e):(e=Heb(TD(mQb(b.j,jwc))));DKc(a,b,e,true);Heb(TD(mQb(b.j,Owc)))&&pQb(b.j,Owc,(Geb(),false));if(Heb(TD(mQb(b.j,jwc)))){pQb(b.j,jwc,(Geb(),false));pQb(b.j,Owc,true)}c=mKc(a,b);do{yKc(a);if(c==0){return 0}e=!e;f=c;DKc(a,b,e,false);c=mKc(a,b)}while(f>c);return f} +function vKc(a,b){var c,d,e,f;e=Kwb(a.d,1)!=0;d=lKc(a,b);if(d==0&&Heb(TD(mQb(b.j,(Ywc(),jwc))))){return 0}!Heb(TD(mQb(b.j,(Ywc(),jwc))))&&!Heb(TD(mQb(b.j,Owc)))||dE(mQb(b.j,(yCc(),cAc)))===dE((kEc(),hEc))?b.c.mg(b.e,e):(e=Heb(TD(mQb(b.j,jwc))));DKc(a,b,e,true);Heb(TD(mQb(b.j,Owc)))&&pQb(b.j,Owc,(Geb(),false));if(Heb(TD(mQb(b.j,jwc)))){pQb(b.j,jwc,(Geb(),false));pQb(b.j,Owc,true)}c=lKc(a,b);do{yKc(a);if(c==0){return 0}e=!e;f=c;DKc(a,b,e,false);c=lKc(a,b)}while(f>c);return f} +function Gid(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=ojd(new rjd(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=$id(new rjd(c.a,c.b),ijd(new rjd(d.a,d.b),0.5));f=bjd(a,e);g=bjd($id(new rjd(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?$id(new rjd(a.a,a.b),ijd(new rjd(b.a,b.b),l)):null}} +function QWb(a,b,c){var d,e,f,g,h;d=RD(mQb(a,(yCc(),dAc)),21);c.a>b.a&&(d.Hc((ukd(),okd))?(a.c.a+=(c.a-b.a)/2):d.Hc(qkd)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((ukd(),skd))?(a.c.b+=(c.b-b.b)/2):d.Hc(rkd)&&(a.c.b+=c.b-b.b));if(RD(mQb(a,(Ywc(),kwc)),21).Hc((ovc(),hvc))&&(c.a>b.a||c.b>b.b)){for(h=new Anb(a.a);h.ab.a&&(d.Hc((ukd(),okd))?(a.c.a+=(c.a-b.a)/2):d.Hc(qkd)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((ukd(),skd))?(a.c.b+=(c.b-b.b)/2):d.Hc(rkd)&&(a.c.b+=c.b-b.b));if(RD(mQb(a,(Ywc(),kwc)),21).Hc((ovc(),hvc))&&(c.a>b.a||c.b>b.b)){for(g=new Anb(a.a);g.a0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Rmb(a.n,new _9c(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&W9c(RD(Vmb(a.n,l),209),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;Ead(a.j)}return new Uid(a.s,a.t,e,d)} +function CRb(a){var b,c,d,e,f,g,h,i,j,k,l,m;a.b=false;l=oxe;i=pxe;m=oxe;j=pxe;for(d=a.e.a.ec().Kc();d.Ob();){c=RD(d.Pb(),272);e=c.a;l=$wnd.Math.min(l,e.c);i=$wnd.Math.max(i,e.c+e.b);m=$wnd.Math.min(m,e.d);j=$wnd.Math.max(j,e.d+e.a);for(g=new Anb(c.c);g.aa.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function RId(a){var b,c,d,e,f,g,h,i;f=new med;ied(f,(hed(),eed));for(d=(e=oC(a,$C(qJ,Nve,2,0,6,1)),new Dkb(new mob((new CC(a,e)).b)));d.bh?1:-1:Ejb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?Hjb(b.a,h,a.a,f):Cjb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Pib(),Oib}k=Hjb(a.a,f,b.a,h)}else{k=Cjb(a.a,f,b.a,h)}}j=new cjb(l,k.length,k);Rib(j);return j} +function c5b(a,b){var c,d,e,f;f=Z4b(b);!b.c&&(b.c=new C5d(K4,b,9,9));FDb(new SDb(null,(!b.c&&(b.c=new C5d(K4,b,9,9)),new Swb(b.c,16))),new s5b(f));e=RD(mQb(f,(Ywc(),kwc)),21);Y4b(b,e);if(e.Hc((ovc(),hvc))){for(d=new dMd((!b.c&&(b.c=new C5d(K4,b,9,9)),b.c));d.e!=d.i.gc();){c=RD(bMd(d),123);g5b(a,b,f,c)}}RD(Gxd(b,(yCc(),lBc)),181).gc()!=0&&V4b(b,f);Heb(TD(mQb(f,sBc)))&&e.Fc(mvc);nQb(f,PBc)&&HCc(new RCc(Kfb(UD(mQb(f,PBc)))),f);dE(Gxd(b,IAc))===dE((Fnd(),Cnd))?d5b(a,b,f):b5b(a,b,f);return f} +function Vrc(a){var b,c,d,e,f,g,h,i;for(e=new Anb(a.b);e.a0?zhb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function xic(a,b){var c,d,e,f,g,h,i;b.Ug('Sort By Input Model '+mQb(a,(yCc(),cAc)),1);e=0;for(d=new Anb(a.b);d.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=oxe;a.p=oxe;for(f=new Anb(a.b);f.a0){e=(!a.n&&(a.n=new C5d(I4,a,1,7)),RD(QHd(a.n,0),135)).a;!e||Zhb(Zhb((b.a+=' "',b),e),'"')}}else{Zhb(Zhb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new Yie(E4,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new Yie(E4,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Zhb(b,Eb(new Gb,new dMd(a.b)));c&&(b.a+=']',b);b.a+=SAe;c&&(b.a+='[',b);Zhb(b,Eb(new Gb,new dMd(a.c)));c&&(b.a+=']',b);return b.a} +function odc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Wmb(v.a,a,0);d=Wmb(w.a,b,0);t=RD(c3b(a,(BEc(),yEc)).Kc().Pb(),12);C=RD(c3b(a,zEc).Kc().Pb(),12);u=RD(c3b(b,yEc).Kc().Pb(),12);D=RD(c3b(b,zEc).Kc().Pb(),12);r=s2b(t.e);A=s2b(C.g);s=s2b(u.e);B=s2b(D.g);f3b(a,d,w);for(g=s,k=0,o=g.length;kk){new bTc((fTc(),eTc),c,b,j-k)}else if(j>0&&k>0){new bTc((fTc(),eTc),b,c,0);new bTc(eTc,c,b,0)}}return g} +function pXc(a,b,c){var d,e,f;a.a=new bnb;for(f=Sub(b.b,0);f.b!=f.d.c;){e=RD(evb(f),40);while(RD(mQb(e,(h_c(),f_c)),17).a>a.a.c.length-1){Rmb(a.a,new Ptd(Hze,KEe))}d=RD(mQb(e,f_c),17).a;if(c==(Cmd(),ymd)||c==zmd){e.e.aKfb(UD(RD(Vmb(a.a,d),42).b))&&Otd(RD(Vmb(a.a,d),42),e.e.a+e.f.a)}else{e.e.bKfb(UD(RD(Vmb(a.a,d),42).b))&&Otd(RD(Vmb(a.a,d),42),e.e.b+e.f.b)}}} +function g2b(a,b,c,d){var e,f,g,h,i,j,k;f=i2b(d);h=Heb(TD(mQb(d,(yCc(),aBc))));if((h||Heb(TD(mQb(a,MAc))))&&!Dod(RD(mQb(a,BBc),101))){e=vpd(f);i=q2b(a,c,c==(BEc(),zEc)?e:spd(e))}else{i=new R3b;P3b(i,a);if(b){k=i.n;k.a=b.a-a.n.a;k.b=b.b-a.n.b;_id(k,0,0,a.o.a,a.o.b);Q3b(i,c2b(i,f))}else{e=vpd(f);Q3b(i,c==(BEc(),zEc)?e:spd(e))}g=RD(mQb(d,(Ywc(),kwc)),21);j=i.j;switch(f.g){case 2:case 1:(j==(qpd(),Yod)||j==npd)&&g.Fc((ovc(),lvc));break;case 4:case 3:(j==(qpd(),Xod)||j==ppd)&&g.Fc((ovc(),lvc));}}return i} +function VXb(a,b){var c,d,e,f,g,h;for(g=new vkb((new mkb(a.f.b)).a);g.b;){f=tkb(g);e=RD(f.ld(),602);if(b==1){if(e.Af()!=(Cmd(),Bmd)&&e.Af()!=xmd){continue}}else{if(e.Af()!=(Cmd(),ymd)&&e.Af()!=zmd){continue}}d=RD(RD(f.md(),42).b,86);h=RD(RD(f.md(),42).a,194);c=h.c;switch(e.Af().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function NNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=$C(kE,Pwe,28,b.b.c.length,15,1);j=$C(hR,jwe,273,b.b.c.length,0,1);i=$C(jR,WAe,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=bFc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new Anb(k.e);f.a1){throw Adb(new agb(gLe))}if(!i){f=oke(b,d.Kc().Pb());g.Fc(f)}}return XGd(a,gge(a,b,c),g)} +function Fge(a,b,c){var d,e,f,g,h,i,j,k;if(qke(a.e,b)){i=(nke(),RD(b,69).xk()?new ole(b,a):new Eke(b,a));bge(i.c,i.b);Ake(i,RD(c,16))}else{k=pke(a.e.Dh(),b);d=RD(a.g,124);for(g=0;g'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';r2d(a.b,b)}else{if(a.f){b.a+=' extends ';r2d(a.f,b)}}}} +function Uae(a){a.b=null;a.a=null;a.o=null;a.q=null;a.v=null;a.w=null;a.B=null;a.p=null;a.Q=null;a.R=null;a.S=null;a.T=null;a.U=null;a.V=null;a.W=null;a.bb=null;a.eb=null;a.ab=null;a.H=null;a.db=null;a.c=null;a.d=null;a.f=null;a.n=null;a.r=null;a.s=null;a.u=null;a.G=null;a.J=null;a.e=null;a.j=null;a.i=null;a.g=null;a.k=null;a.t=null;a.F=null;a.I=null;a.L=null;a.M=null;a.O=null;a.P=null;a.$=null;a.N=null;a.Z=null;a.cb=null;a.K=null;a.D=null;a.A=null;a.C=null;a._=null;a.fb=null;a.X=null;a.Y=null;a.gb=false;a.hb=false} +function yib(a){var b,c,d,e;d=Ajb((!a.c&&(a.c=ojb(Hdb(a.f))),a.c),0);if(a.e==0||a.a==0&&a.f!=-1&&a.e<0){return d}b=xib(a)<0?1:0;c=a.e;e=(d.length+1+$wnd.Math.abs(eE(a.e)),new cib);b==1&&(e.a+='-',e);if(a.e>0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>mib.length;c-=mib.length){$hb(e,mib)}_hb(e,mib,eE(c));Zhb(e,(BFb(b,d.length+1),d.substr(b)))}else{c=b-c;Zhb(e,zhb(d,b,eE(c)));e.a+='.';Zhb(e,yhb(d,eE(c)))}}else{Zhb(e,(BFb(b,d.length+1),d.substr(b)));for(;c<-mib.length;c+=mib.length){$hb(e,mib)}_hb(e,mib,eE(-c))}return e.a} +function BOc(a){var b,c,d,e,f,g,h,i,j;if(a.k!=(r3b(),p3b)){return false}if(a.j.c.length<=1){return false}f=RD(mQb(a,(yCc(),BBc)),101);if(f==(Bod(),wod)){return false}e=(wDc(),(!a.q?(yob(),yob(),wob):a.q)._b(iBc)?(d=RD(mQb(a,iBc),203)):(d=RD(mQb(Y2b(a),jBc),203)),d);if(e==uDc){return false}if(!(e==tDc||e==sDc)){g=Kfb(UD(hFc(a,fCc)));b=RD(mQb(a,eCc),140);!b&&(b=new R2b(g,g,g,g));j=b3b(a,(qpd(),ppd));i=b.d+b.a+(j.gc()-1)*g;if(i>a.o.b){return false}c=b3b(a,Xod);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function VRc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b.Ug('Orthogonal edge routing',1);j=Kfb(UD(mQb(a,(yCc(),cCc))));c=Kfb(UD(mQb(a,UBc)));d=Kfb(UD(mQb(a,XBc)));m=new TTc(0,c);q=0;g=new Jkb(a.b,0);h=null;k=null;i=null;l=null;do{k=g.b0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);nb||Heb(TD(Gxd(i,(X7c(),D7c))))){e=0;f+=k.b+c;ZEb(l.c,k);k=new Had(f,c);d=new V9c(0,k.f,k,c);Cad(k,d);e=0}if(d.b.c.length==0||!Heb(TD(Gxd(vCd(i),(X7c(),L7c))))&&(i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f)){K9c(d,i)}else{g=new V9c(d.s+d.r+c,k.f,k,c);Cad(k,g);K9c(g,i)}e=i.i+i.g}ZEb(l.c,k);return l} +function ste(a){var b,c,d,e;if(a.b==null||a.b.length<=2)return;if(a.a)return;b=0;e=0;while(e=a.b[e+1]){e+=2}else if(c0){d=new dnb(RD(Qc(a.a,f),21));yob();_mb(d,new M0b(b));e=new Jkb(f.b,0);while(e.b0&&d>=-6){if(d>=0){aib(f,c-eE(a.e),String.fromCharCode(46))}else{peb(f,b-1,b-1,'0.');aib(f,b+1,Ihb(mib,0,-eE(d)-1))}}else{if(c-b>=1){aib(f,b,String.fromCharCode(46));++c}aib(f,c,String.fromCharCode(69));d>0&&aib(f,++c,String.fromCharCode(43));aib(f,++c,''+Zdb(Hdb(d)))}a.g=f.a;return a.g} +function KNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;d=Kfb(UD(mQb(b,(yCc(),hBc))));v=RD(mQb(b,gCc),17).a;m=4;e=3;w=20/v;n=false;i=0;g=lve;do{f=i!=1;l=i!=0;A=0;for(q=a.a,s=0,u=q.length;sv)){i=2;g=lve}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:cz(isNaN(d),isNaN(0)))>=0^(null,bz(vEe),($wnd.Math.abs(h)<=vEe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:cz(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}bz(vEe);if(($wnd.Math.abs(d)<=vEe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:cz(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function hue(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new gyb);if(a.e==2){dyb(a.a,b);return}if(b.e==1){for(e=0;e=txe?Nhb(c,qse(d)):Jhb(c,d&Bwe);g=(++Use,new eue(10,null,0));fyb(a.a,g,h-1)}else{c=(g.Mm().length+f,new Rhb);Nhb(c,g.Mm())}if(b.e==0){d=b.Km();d>=txe?Nhb(c,qse(d)):Jhb(c,d&Bwe)}else{Nhb(c,b.Mm())}RD(g,530).b=c.a} +function Qsc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=RD(d.Pb(),17).a;while(h1&&(i=j.Hg(i,a.a,h))}if(i.c.length==1){return RD(Vmb(i,i.c.length-1),238)}if(i.c.length==2){return e8c((tFb(0,i.c.length),RD(i.c[0],238)),(tFb(1,i.c.length),RD(i.c[1],238)),g,f)}return null} +function CZc(a,b,c){var d,e,f,g,h,i,j;c.Ug('Find roots',1);a.a.c.length=0;for(e=Sub(b.b,0);e.b!=e.d.c;){d=RD(evb(e),40);if(d.b.b==0){pQb(d,(q$c(),n$c),(Geb(),true));Rmb(a.a,d)}}switch(a.a.c.length){case 0:f=new bXc(0,b,'DUMMY_ROOT');pQb(f,(q$c(),n$c),(Geb(),true));pQb(f,WZc,true);Mub(b.b,f);break;case 1:break;default:g=new bXc(0,b,IEe);for(i=new Anb(a.a);i.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new zNd(a.i,a.g);c=a.i;f=c<100?null:new gLd(c);if(a.Tj()){for(d=0;d0){h=a.g;j=a.i;OHd(a);f=j<100?null:new gLd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&dxe;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=dxe;u+=p>>22;p&=dxe;u&=exe;return hD(m,p,u)} +function Fac(a){var b,c,d,e,f,g,h;h=RD(Vmb(a.j,0),12);if(h.g.c.length!=0&&h.e.c.length!=0){throw Adb(new dgb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=oxe;for(c=new Anb(h.g);c.a4){if(a.fk(b)){if(a.al()){e=RD(b,54);d=e.Eh();i=d==a.e&&(a.ml()?e.yh(e.Fh(),a.il())==a.jl():-1-e.Fh()==a.Lj());if(a.nl()&&!i&&!d&&!!e.Jh()){for(f=0;f0&&aGc(a,h,l)}for(e=new Anb(l);e.aa.d[g.p]){c+=ZLc(a.b,f)*RD(i.b,17).a;hmb(a.a,sgb(f))}}while(!nmb(a.a)){XLc(a.b,RD(smb(a.a),17).a)}}return c} +function x9b(a,b){var c,d,e,f,g,h,i,j,k,l;k=RD(mQb(a,(Ywc(),hwc)),64);d=RD(Vmb(a.j,0),12);k==(qpd(),Yod)?Q3b(d,npd):k==npd&&Q3b(d,Yod);if(RD(mQb(b,(yCc(),lBc)),181).Hc((Qpd(),Ppd))){i=Kfb(UD(mQb(a,_Bc)));j=Kfb(UD(mQb(a,aCc)));g=Kfb(UD(mQb(a,ZBc)));h=RD(mQb(b,EBc),21);if(h.Hc((Pod(),Lod))){c=j;l=a.o.a/2-d.n.a;for(f=new Anb(d.f);f.a0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}pQb(a,(Ywc(),Jwc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=zod&&b!=Aod&&h!=opd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function VJd(a){var b,c,d,e,f,g,h,i,j,k;if(a.Pj()){k=a.Ej();i=a.Qj();if(k>0){b=new $Hd(a.pj());c=k;f=c<100?null:new gLd(c);aJd(a,c,b.g);e=c==1?a.Ij(4,QHd(b,0),null,0,i):a.Ij(6,b,null,-1,i);if(a.Mj()){for(d=new dMd(b);d.e!=d.i.gc();){f=a.Oj(bMd(d),f)}if(!f){a.Jj(e)}else{f.nj(e);f.oj()}}else{if(!f){a.Jj(e)}else{f.nj(e);f.oj()}}}else{aJd(a,a.Ej(),a.Fj());a.Jj(a.Ij(6,(yob(),vob),null,-1,i))}}else if(a.Mj()){k=a.Ej();if(k>0){h=a.Fj();j=k;aJd(a,k,h);f=j<100?null:new gLd(j);for(d=0;d1&&urd(g)*trd(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Rkb(p,0,f+1);l=new zrd(o);k=urd(g)/trd(g);i=ird(l,b,new z3b,c,d,e,k);$id(hjd(l.e),i);zFb(lwb(m,l),Bxe);n=new Rkb(p,f+1,p.c.length);iwb(m,n);p.c.length=0;j=0;Pnb(h,h.length,0)}else{q=m.b.c.length==0?null:Vmb(m.b,0);q!=null&&owb(m,0);j>0&&(h[j]=h[j-1]);h[j]+=urd(g)*trd(g);++j;ZEb(p.c,g)}}return p} +function _nc(a,b){var c,d,e,f;c=b.b;f=new dnb(c.j);e=0;d=c.j;d.c.length=0;Nnc(RD($i(a.b,(qpd(),Yod),(joc(),ioc)),15),c);e=Onc(f,e,new Hoc,d);Nnc(RD($i(a.b,Yod,hoc),15),c);e=Onc(f,e,new Joc,d);Nnc(RD($i(a.b,Yod,goc),15),c);Nnc(RD($i(a.b,Xod,ioc),15),c);Nnc(RD($i(a.b,Xod,hoc),15),c);e=Onc(f,e,new Loc,d);Nnc(RD($i(a.b,Xod,goc),15),c);Nnc(RD($i(a.b,npd,ioc),15),c);e=Onc(f,e,new Noc,d);Nnc(RD($i(a.b,npd,hoc),15),c);e=Onc(f,e,new Poc,d);Nnc(RD($i(a.b,npd,goc),15),c);Nnc(RD($i(a.b,ppd,ioc),15),c);e=Onc(f,e,new toc,d);Nnc(RD($i(a.b,ppd,hoc),15),c);Nnc(RD($i(a.b,ppd,goc),15),c)} +function jJc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;for(h=new Anb(b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function jec(a){var b,c,d,e,f;d=RD(mQb(a,(yCc(),UAc)),171);if(d==(cxc(),$wc)){for(c=new is(Mr(Z2b(a).a.Kc(),new ir));gs(c);){b=RD(hs(c),18);if(!lec(b)){throw Adb(new Jed(nBe+X2b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==axc){for(f=new is(Mr(a3b(a).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);if(!lec(e)){throw Adb(new Jed(nBe+X2b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function Qed(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.c>19!=0){b=xD(b);i=!i}g=pD(b);f=false;e=false;d=false;if(a.h==fxe&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=gD((MD(),ID));d=true;i=!i}else{h=BD(a,g);i&&nD(h);c&&(eD=hD(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=xD(a);d=true;i=!i}if(g!=-1){return kD(a,g,i,f,c)}if(uD(a,b)<0){c&&(f?(eD=xD(a)):(eD=hD(a.l,a.m,a.h)));return hD(0,0,0)}return lD(d?a:hD(a.l,a.m,a.h),b,i,f,e,c)} +function Bjb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=Cdb(a.a[0],yxe);d=Cdb(b.a[0],yxe);if(g==i){k=Bdb(c,d);o=Ydb(k);n=Ydb(Udb(k,32));return n==0?new ajb(g,o):new cjb(g,2,cD(WC(kE,1),Pwe,28,15,[o,n]))}return Pib(),Jdb(g<0?Vdb(d,c):Vdb(c,d),0)?jjb(g<0?Vdb(d,c):Vdb(c,d)):Xib(jjb(Odb(g<0?Vdb(d,c):Vdb(c,d))))}else if(g==i){m=g;l=f>=h?Cjb(a.a,f,b.a,h):Cjb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:Ejb(a.a,b.a,f);if(e==0){return Pib(),Oib}if(e==1){m=g;l=Hjb(a.a,f,b.a,h)}else{m=i;l=Hjb(b.a,h,a.a,f)}}j=new cjb(m,l.length,l);Rib(j);return j} +function KUc(a,b){var c,d,e,f,g,h,i;if(a.g>b.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=RD(g.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=RD(h.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=RD(i.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=RD(f.Pb(),12);AVc(xjd(cD(WC(l3,1),Nve,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){return c}switch(yfe(Qee(a,c))){case 2:{if(lhb('',Oee(a,c.qk()).xe())){i=Bfe(Qee(a,c));h=Afe(Qee(a,c));k=Ree(a,b,i,h);if(k){return k}e=Fee(a,b);for(g=0,l=e.gc();g1){throw Adb(new agb(gLe))}k=pke(a.e.Dh(),b);d=RD(a.g,124);for(g=0;g1;for(j=new l4b(m.b);xnb(j.a)||xnb(j.b);){i=RD(xnb(j.a)?ynb(j.a):ynb(j.b),18);l=i.c==m?i.d:i.c;$wnd.Math.abs(xjd(cD(WC(l3,1),Nve,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&eSc(a,i,g,f,m)}}} +function vUc(a){var b,c,d,e,f,g;e=new Jkb(a.e,0);d=new Jkb(a.a,0);if(a.d){for(c=0;cAEe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);uUc(a,a.b-g,f,d,e);sFb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function xne(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function C8b(a,b,c){var d,e,f,g;c.Ug('Graph transformation ('+a.a+')',1);g=bv(b.a);for(f=new Anb(b.b);f.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new PZb((nZb(),jZb));t$b(a,AZb,new mob(cD(WC(wQ,1),rve,382,0,[d])));g=new PZb(mZb);t$b(a,zZb,new mob(cD(WC(wQ,1),rve,382,0,[g])));e=new PZb(kZb);t$b(a,yZb,new mob(cD(WC(wQ,1),rve,382,0,[e])));f=new PZb(lZb);t$b(a,xZb,new mob(cD(WC(wQ,1),rve,382,0,[f])));FZb(d.c,jZb);FZb(e.c,kZb);FZb(f.c,lZb);FZb(g.c,mZb);h.a.c.length=0;Tmb(h.a,d.c);Tmb(h.a,hv(e.c));Tmb(h.a,f.c);Tmb(h.a,hv(g.c));return h} +function n9c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;b.Ug(bGe,1);n=Kfb(UD(Gxd(a,(X6c(),W6c))));g=Kfb(UD(Gxd(a,(X7c(),Q7c))));h=RD(Gxd(a,N7c),107);Bad((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));k=U8c((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a),n,g);!a.a&&(a.a=new C5d(J4,a,10,11));for(j=new Anb(k);j.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new TTc(1,f);n=STc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function osc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Kfb(UD(mQb(a,(yCc(),WBc))));d=Kfb(UD(mQb(a,nCc)));m=new dtd;pQb(m,WBc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=Q4b(p.c);t=Q4b(s.c);e=new bnb;for(l=q;l<=t;l++){h=new j3b(a);h3b(h,(r3b(),o3b));pQb(h,(Ywc(),Awc),j);pQb(h,BBc,(Bod(),wod));pQb(h,YBc,m);n=RD(Vmb(a.b,l),30);l==q?f3b(h,n.a.c.length-c,n):g3b(h,n);u=Kfb(UD(mQb(j,FAc)));if(u<0){u=0;pQb(j,FAc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new R3b;Q3b(g,(qpd(),ppd));P3b(g,h);g.n.b=o;i=new R3b;Q3b(i,Xod);P3b(i,h);i.n.b=o;Z0b(j,g);f=new a1b;kQb(f,j);pQb(f,RAc,null);Y0b(f,i);Z0b(f,r);psc(h,j,f);ZEb(e.c,f);j=f}return e} +function Hec(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=RD(e3b(a,(qpd(),ppd)).Kc().Pb(),12).e;n=RD(e3b(a,Xod).Kc().Pb(),12).g;h=i.c.length;t=K3b(RD(Vmb(a.j,0),12));while(h-->0){p=(tFb(0,i.c.length),RD(i.c[0],18));e=(tFb(0,n.c.length),RD(n.c[0],18));s=e.d.e;f=Wmb(s,e,0);$0b(p,e.d,f);Y0b(e,null);Z0b(e,null);o=p.a;b&&Mub(o,new sjd(t));for(d=Sub(e.a,0);d.b!=d.d.c;){c=RD(evb(d),8);Mub(o,new sjd(c))}r=p.b;for(m=new Anb(e.b);m.ag)&&Ysb(a.b,RD(q.b,18))}}++h}f=g}}}} +function zhd(b,c){var d;if(c==null||lhb(c,vve)){return null}if(c.length==0&&b.k!=(kid(),fid)){return null}switch(b.k.g){case 1:return mhb(c,FGe)?(Geb(),Feb):mhb(c,GGe)?(Geb(),Eeb):null;case 2:try{return sgb(Oeb(c,qwe,lve))}catch(a){a=zdb(a);if(ZD(a,130)){return null}else throw Adb(a)}case 4:try{return Neb(c)}catch(a){a=zdb(a);if(ZD(a,130)){return null}else throw Adb(a)}case 3:return c;case 5:uhd(b);return xhd(b,c);case 6:uhd(b);return yhd(b,b.a,c);case 7:try{d=whd(b);d.cg(c);return d}catch(a){a=zdb(a);if(ZD(a,33)){return null}else throw Adb(a)}default:throw Adb(new dgb('Invalid type set for this layout option.'));}} +function JKd(a){var b;switch(a.d){case 1:{if(a.Sj()){return a.o!=-2}break}case 2:{if(a.Sj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.Rj();switch(a.p){case 0:return b!=null&&Heb(TD(b))!=Pdb(a.k,0);case 1:return b!=null&&RD(b,222).a!=Ydb(a.k)<<24>>24;case 2:return b!=null&&RD(b,180).a!=(Ydb(a.k)&Bwe);case 6:return b!=null&&Pdb(RD(b,168).a,a.k);case 5:return b!=null&&RD(b,17).a!=Ydb(a.k);case 7:return b!=null&&RD(b,191).a!=Ydb(a.k)<<16>>16;case 3:return b!=null&&Kfb(UD(b))!=a.j;case 4:return b!=null&&RD(b,161).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function N_d(a,b,c){var d,e,f,g;if(a.ol()&&a.nl()){g=O_d(a,RD(c,58));if(dE(g)!==dE(c)){a.xj(b);a.Dj(b,P_d(a,b,g));if(a.al()){f=(e=RD(c,54),a.ml()?a.kl()?e.Th(a.b,Z5d(RD(vYd(Uwd(a.b),a.Lj()),19)).n,RD(vYd(Uwd(a.b),a.Lj()).Hk(),29).kk(),null):e.Th(a.b,BYd(e.Dh(),Z5d(RD(vYd(Uwd(a.b),a.Lj()),19))),null,null):e.Th(a.b,-1-a.Lj(),null,null));!RD(g,54).Ph()&&(f=(d=RD(g,54),a.ml()?a.kl()?d.Rh(a.b,Z5d(RD(vYd(Uwd(a.b),a.Lj()),19)).n,RD(vYd(Uwd(a.b),a.Lj()).Hk(),29).kk(),f):d.Rh(a.b,BYd(d.Dh(),Z5d(RD(vYd(Uwd(a.b),a.Lj()),19))),null,f):d.Rh(a.b,-1-a.Lj(),null,f)));!!f&&f.oj()}Mvd(a.b)&&a.Jj(a.Ij(9,c,g,b,false));return g}}return c} +function iJb(a){var b,c,d,e,f,g,h,i,j,k;d=new bnb;for(g=new Anb(a.e.a);g.a0&&(g=$wnd.Math.max(g,zMb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(l-e)<=Tye||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(l-1)<=Tye||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function ENb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=RD(Vrb(a.b,b),127);i=RD(RD(Qc(a.r,b),21),87);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((Pod(),Lod));g=0;a.A.Hc((Qpd(),Ppd))&&JNb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=RD(h.Pb(),117);f=Kfb(UD(d.b.of((tNb(),sNb))));e=d.b.Mf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,zMb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(m-f)<=Tye||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Zy(),bz(Tye),$wnd.Math.abs(m-1)<=Tye||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function L8c(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r;o=false;j=dad(c.q,b.f+b.b-c.q.f);n=d.f>b.b&&h;r=e-(c.q.e+j-g);l=(i=S9c(d,r,false),i.a);if(n&&l>d.f){return false}if(n){m=0;for(q=new Anb(b.d);q.a=(tFb(f,a.c.length),RD(a.c[f],186)).e;if(!n&&l>b.b&&!k){return false}if(k||n||l<=b.b){if(k&&l>b.b){c.d=l;Q9c(c,P9c(c,l))}else{ead(c.q,j);c.c=true}Q9c(d,e-(c.s+c.r));U9c(d,c.q.e+c.q.d,b.f);Cad(b,d);if(a.c.length>f){Fad((tFb(f,a.c.length),RD(a.c[f],186)),d);(tFb(f,a.c.length),RD(a.c[f],186)).a.c.length==0&&Xmb(a,f)}o=true}return o} +function zJc(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=$C(jR,WAe,10,h+i,0,1);for(g=0;g0?xJc(this,this.f/this.a):pJc(b.g,b.d[0]).a!=null&&pJc(c.g,c.d[0]).a!=null?xJc(this,(Kfb(pJc(b.g,b.d[0]).a)+Kfb(pJc(c.g,c.d[0]).a))/2):pJc(b.g,b.d[0]).a!=null?xJc(this,pJc(b.g,b.d[0]).a):pJc(c.g,c.d[0]).a!=null&&xJc(this,pJc(c.g,c.d[0]).a)} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new fYb(wsb(s3));for(d=new Anb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;pQb(a,(yCc(),lBc),(Qpd(),d=RD(mfb(H3),9),new Fsb(d,RD(WEb(d,d.length),9),0)))} +function ISd(a,b,c,d,e,f){var g;if(!(b==null||!mSd(b,ZRd,$Rd))){throw Adb(new agb('invalid scheme: '+b))}if(!a&&!(c!=null&&qhb(c,Fhb(35))==-1&&c.length>0&&(BFb(0,c.length),c.charCodeAt(0)!=47))){throw Adb(new agb('invalid opaquePart: '+c))}if(a&&!(b!=null&&tpb(eSd,b.toLowerCase()))&&!(c==null||!mSd(c,aSd,bSd))){throw Adb(new agb(NJe+c))}if(a&&b!=null&&tpb(eSd,b.toLowerCase())&&!ESd(c)){throw Adb(new agb(NJe+c))}if(!FSd(d)){throw Adb(new agb('invalid device: '+d))}if(!HSd(e)){g=e==null?'invalid segments: null':'invalid segment: '+tSd(e);throw Adb(new agb(g))}if(!(f==null||qhb(f,Fhb(35))==-1)){throw Adb(new agb('invalid query: '+f))}} +function WHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;c.Ug('Network simplex layering',1);a.b=b;r=RD(mQb(b,(yCc(),gCc)),17).a*4;q=a.b.a;if(q.c.length<1){c.Vg();return}f=SHc(a,q);p=null;for(e=Sub(f,0);e.b!=e.d.c;){d=RD(evb(e),15);h=r*eE($wnd.Math.sqrt(d.gc()));g=VHc(d);lJb(yJb(AJb(zJb(CJb(g),h),p),true),c.eh(1));m=a.b.b;for(o=new Anb(g.a);o.a1){p=$C(kE,Pwe,28,a.b.b.c.length,15,1);l=0;for(j=new Anb(a.b.b);j.a0){wA(a,c,0);c.a+=String.fromCharCode(d);e=BA(b,f);wA(a,c,e);f+=e-1;continue}if(d==39){if(f+10&&o.a<=0){i.c.length=0;ZEb(i.c,o);break}n=o.i-o.d;if(n>=h){if(n>h){i.c.length=0;h=n}ZEb(i.c,o)}}if(i.c.length!=0){g=RD(Vmb(i,Jwb(e,i.c.length)),118);t.a.Bc(g)!=null;g.g=k++;wSc(g,b,c,d);i.c.length=0}}q=a.c.length+1;for(m=new Anb(a);m.apxe||b.o==CQc&&k=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(ipwe)&&h<10);BYb(a.c,new bYb);QXb(a);xYb(a.c);AXb(a.f)} +function B9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=RD(mQb(a,(yCc(),BBc)),101);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new bnb;l=new bnb;for(e=new Anb(b);e.a=2){i=Sub(c,0);g=RD(evb(i),8);h=RD(evb(i),8);while(h.a0&&aHb(j,true,(Cmd(),zmd));h.k==(r3b(),m3b)&&bHb(j);Zjb(a.f,h,b)}}} +function OVc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=RD(mQb(a,(q$c(),h$c)),27);j=lve;k=lve;h=qwe;i=qwe;for(t=Sub(a.b,0);t.b!=t.d.c;){r=RD(evb(t),40);n=r.e;o=r.f;j=$wnd.Math.min(j,n.a-o.a/2);k=$wnd.Math.min(k,n.b-o.b/2);h=$wnd.Math.max(h,n.a+o.a/2);i=$wnd.Math.max(i,n.b+o.b/2)}m=RD(Gxd(e,(h_c(),T$c)),107);for(s=Sub(a.b,0);s.b!=s.d.c;){r=RD(evb(s),40);l=mQb(r,h$c);if(ZD(l,207)){f=RD(l,27);Byd(f,r.e.a,r.e.b);zxd(f,r)}}for(q=Sub(a.a,0);q.b!=q.d.c;){p=RD(evb(q),65);d=RD(mQb(p,h$c),74);if(d){b=p.a;c=IGd(d,true,true);lsd(b,c)}}u=h-j+(m.b+m.c);g=i-k+(m.d+m.a);Heb(TD(Gxd(e,(umd(),mld))))||Esd(e,u,g,false,false);Ixd(e,Ikd,u-(m.b+m.c));Ixd(e,Hkd,g-(m.d+m.a))} +function Wec(a,b){var c,d,e,f,g,h,i,j,k,l;i=true;e=0;j=a.g[b.p];k=b.o.b+a.o;c=a.d[b.p][2];$mb(a.b,j,sgb(RD(Vmb(a.b,j),17).a-1+c));$mb(a.c,j,Kfb(UD(Vmb(a.c,j)))-k+c*a.f);++j;if(j>=a.j){++a.j;Rmb(a.b,sgb(1));Rmb(a.c,k)}else{d=a.d[b.p][1];$mb(a.b,j,sgb(RD(Vmb(a.b,j),17).a+1-d));$mb(a.c,j,Kfb(UD(Vmb(a.c,j)))+k-d*a.f)}(a.r==(aEc(),VDc)&&(RD(Vmb(a.b,j),17).a>a.k||RD(Vmb(a.b,j-1),17).a>a.k)||a.r==YDc&&(Kfb(UD(Vmb(a.c,j)))>a.n||Kfb(UD(Vmb(a.c,j-1)))>a.n))&&(i=false);for(g=new is(Mr(Z2b(b).a.Kc(),new ir));gs(g);){f=RD(hs(g),18);h=f.c.i;if(a.g[h.p]==j){l=Wec(a,h);e=e+RD(l.a,17).a;i=i&&Heb(TD(l.b))}}a.g[b.p]=j;e=e+a.d[b.p][0];return new Ptd(sgb(e),(Geb(),i?true:false))} +function cXb(a,b){var c,d,e,f,g;c=Kfb(UD(mQb(b,(yCc(),TBc))));c<2&&pQb(b,TBc,2);d=RD(mQb(b,rAc),88);d==(Cmd(),Amd)&&pQb(b,rAc,i2b(b));e=RD(mQb(b,NBc),17);e.a==0?pQb(b,(Ywc(),Lwc),new Owb):pQb(b,(Ywc(),Lwc),new Pwb(e.a));f=TD(mQb(b,gBc));f==null&&pQb(b,gBc,(Geb(),dE(mQb(b,yAc))===dE((Ymd(),Umd))?true:false));FDb(new SDb(null,new Swb(b.a,16)),new fXb(a));FDb(EDb(new SDb(null,new Swb(b.b,16)),new hXb),new jXb(a));g=new gFc(b);pQb(b,(Ywc(),Qwc),g);Sed(a.a);Ved(a.a,(sXb(),nXb),RD(mQb(b,pAc),188));Ved(a.a,oXb,RD(mQb(b,$Ac),188));Ved(a.a,pXb,RD(mQb(b,oAc),188));Ved(a.a,qXb,RD(mQb(b,kBc),188));Ved(a.a,rXb,KRc(RD(mQb(b,yAc),223)));Ped(a.a,bXb(b));pQb(b,Kwc,Qed(a.a,b))} +function STc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Tsb;g=new bnb;QTc(a,c,a.d.Ag(),g,l);QTc(a,d,a.d.Bg(),g,l);a.b=0.2*(p=RTc(EDb(new SDb(null,new Swb(g,16)),new XTc)),q=RTc(EDb(new SDb(null,new Swb(g,16)),new ZTc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=uSc(g,true,m),!a.e&&(a.e=new xTc(a)),tTc(a.e,r,g,a.b),undefined);UTc(g,m);WTc(g);n=-1;for(k=new Anb(g);k.ah} +function Iad(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=oxe;k=oxe;h=pxe;i=pxe;for(m=new Anb(b.i);m.a-1){for(e=Sub(h,0);e.b!=e.d.c;){d=RD(evb(e),131);d.v=g}while(h.b!=0){d=RD(ku(h,0),131);for(c=new Anb(d.i);c.a-1){for(f=new Anb(h);f.a0){continue}RSc(i,$wnd.Math.min(i.o,e.o-1));QSc(i,i.i-1);i.i==0&&(ZEb(h.c,i),true)}}}} +function Lid(a,b,c,d,e){var f,g,h,i;i=oxe;g=false;h=Gid(a,ojd(new rjd(b.a,b.b),a),$id(new rjd(c.a,c.b),e),ojd(new rjd(d.a,d.b),c));f=!!h&&!($wnd.Math.abs(h.a-a.a)<=IGe&&$wnd.Math.abs(h.b-a.b)<=IGe||$wnd.Math.abs(h.a-b.a)<=IGe&&$wnd.Math.abs(h.b-b.b)<=IGe);h=Gid(a,ojd(new rjd(b.a,b.b),a),c,e);!!h&&(($wnd.Math.abs(h.a-a.a)<=IGe&&$wnd.Math.abs(h.b-a.b)<=IGe)==($wnd.Math.abs(h.a-b.a)<=IGe&&$wnd.Math.abs(h.b-b.b)<=IGe)||f?(i=$wnd.Math.min(i,ejd(ojd(h,c)))):(g=true));h=Gid(a,ojd(new rjd(b.a,b.b),a),d,e);!!h&&(g||($wnd.Math.abs(h.a-a.a)<=IGe&&$wnd.Math.abs(h.b-a.b)<=IGe)==($wnd.Math.abs(h.a-b.a)<=IGe&&$wnd.Math.abs(h.b-b.b)<=IGe)||f)&&(i=$wnd.Math.min(i,ejd(ojd(h,d))));return i} +function eWb(a){Cgd(a,new Pfd(Wfd($fd(Xfd(Zfd(Yfd(new agd,AAe),BAe),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new hWb),Zze)));Agd(a,AAe,dAe,iGd(XVb));Agd(a,AAe,fAe,(Geb(),true));Agd(a,AAe,jAe,iGd($Vb));Agd(a,AAe,CAe,iGd(_Vb));Agd(a,AAe,iAe,iGd(aWb));Agd(a,AAe,kAe,iGd(ZVb));Agd(a,AAe,gAe,iGd(bWb));Agd(a,AAe,lAe,iGd(cWb));Agd(a,AAe,vAe,iGd(WVb));Agd(a,AAe,xAe,iGd(UVb));Agd(a,AAe,yAe,iGd(VVb));Agd(a,AAe,zAe,iGd(YVb));Agd(a,AAe,wAe,iGd(TVb))} +function kJc(a){var b,c,d,e,f,g,h,i;b=null;for(d=new Anb(a);d.a0&&c.c==0){!b&&(b=new bnb);ZEb(b.c,c)}}if(b){while(b.c.length!=0){c=RD(Xmb(b,0),239);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new bnb),new Anb(c.b));f.aWmb(a,c,0)){return new Ptd(e,c)}}else if(Kfb(pJc(e.g,e.d[0]).a)>Kfb(pJc(c.g,c.d[0]).a)){return new Ptd(e,c)}}}for(h=(!c.e&&(c.e=new bnb),c.e).Kc();h.Ob();){g=RD(h.Pb(),239);i=(!g.b&&(g.b=new bnb),g.b);wFb(0,i.c.length);XEb(i.c,0,c);g.c==i.c.length&&(ZEb(b.c,g),true)}}}return null} +function _Jc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;b.Ug('Interactive crossing minimization',1);g=0;for(f=new Anb(a.b);f.a0){c+=i.n.a+i.o.a/2;++l}for(o=new Anb(i.j);o.a0&&(c/=l);r=$C(iE,vxe,28,d.a.c.length,15,1);h=0;for(j=new Anb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i2){k=new bnb;Tmb(k,new Rkb(r,1,r.b));f=jTb(k,t+a.a);s=new ORb(f);kQb(s,b);ZEb(c.c,s)}else{d?(s=RD(Wjb(a.b,JGd(b)),272)):(s=RD(Wjb(a.b,LGd(b)),272))}i=JGd(b);d&&(i=LGd(b));g=qTb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new rjd(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new rjd((l.a+q.a)/2,l.b)}d?Zjb(a.d,b,new QRb(s,g,p,j)):Zjb(a.c,b,new QRb(s,g,p,j));Zjb(a.b,b,s);o=(!b.n&&(b.n=new C5d(I4,b,1,7)),b.n);for(n=new dMd(o);n.e!=n.i.gc();){m=RD(bMd(n),135);e=nTb(a,m,true,0,0);ZEb(c.c,e)}} +function sMb(a){var b,c,d,e,f,g,h;if(a.A.dc()){return}if(a.A.Hc((Qpd(),Opd))){RD(Vrb(a.b,(qpd(),Yod)),127).k=true;RD(Vrb(a.b,npd),127).k=true;b=a.q!=(Bod(),xod)&&a.q!=wod;QJb(RD(Vrb(a.b,Xod),127),b);QJb(RD(Vrb(a.b,ppd),127),b);QJb(a.g,b);if(a.A.Hc(Ppd)){RD(Vrb(a.b,Yod),127).j=true;RD(Vrb(a.b,npd),127).j=true;RD(Vrb(a.b,Xod),127).k=true;RD(Vrb(a.b,ppd),127).k=true;a.g.k=true}}if(a.A.Hc(Npd)){a.a.j=true;a.a.k=true;a.g.j=true;a.g.k=true;h=a.B.Hc((dqd(),_pd));for(e=nMb(),f=0,g=e.length;f0),RD(k.a.Xb(k.c=--k.b),18));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sFb(k.b>0),RD(k.a.Xb(k.c=--k.b),18))}k.b>0&&Ckb(k)}}}}} +function Zyb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.b){return false}g=null;m=null;i=new Fzb(null,null);e=1;i.a[1]=a.b;l=i;while(l.a[e]){j=e;h=m;m=l;l=l.a[e];d=a.a.Ne(b,l.d);e=d<0?0:1;d==0&&(!c.c||Fvb(l.e,c.d))&&(g=l);if(!(!!l&&l.b)&&!Vyb(l.a[e])){if(Vyb(l.a[1-e])){m=m.a[j]=azb(l,e)}else if(!Vyb(l.a[1-e])){n=m.a[1-j];if(n){if(!Vyb(n.a[1-j])&&!Vyb(n.a[j])){m.b=false;n.b=true;l.b=true}else{f=h.a[1]==m?1:0;Vyb(n.a[j])?(h.a[f]=_yb(m,j)):Vyb(n.a[1-j])&&(h.a[f]=azb(m,j));l.b=h.a[f].b=true;h.a[f].a[0].b=false;h.a[f].a[1].b=false}}}}}if(g){c.b=true;c.d=g.e;if(l!=g){k=new Fzb(l.d,l.e);$yb(a,i,g,k);m==g&&(m=k)}m.a[m.a[1]==l?1:0]=l.a[!l.a[0]?1:0];--a.c}a.b=i.a[1];!!a.b&&(a.b.b=false);return c.b} +function Ilc(a){var b,c,d,e,f,g,h,i,j,k,l,m;for(e=new Anb(a.a.a.b);e.a0?(e-=86400000):(e+=86400000);i=new wB(Bdb(Hdb(b.q.getTime()),e))}k=new cib;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw Adb(new agb("Missing trailing '"))}g+1=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new dib(c.d)):Zhb(c.a,c.b);Whb(c.a,'[...]')}else{h=SD(d);j=new btb(b);Gyb(c,Inb(h,j))}}else ZD(d,183)?Gyb(c,hob(RD(d,183))):ZD(d,195)?Gyb(c,aob(RD(d,195))):ZD(d,201)?Gyb(c,bob(RD(d,201))):ZD(d,2111)?Gyb(c,gob(RD(d,2111))):ZD(d,53)?Gyb(c,eob(RD(d,53))):ZD(d,376)?Gyb(c,fob(RD(d,376))):ZD(d,846)?Gyb(c,dob(RD(d,846))):ZD(d,109)&&Gyb(c,cob(RD(d,109)))}else{Gyb(c,d==null?vve:jeb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function KXd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;yXd(a,null)}else{a.F=(uFb(b),b);d=qhb(b,Fhb(60));if(d!=-1){e=(AFb(0,d,b.length),b.substr(0,d));qhb(b,Fhb(46))==-1&&!lhb(e,hve)&&!lhb(e,dKe)&&!lhb(e,eKe)&&!lhb(e,fKe)&&!lhb(e,gKe)&&!lhb(e,hKe)&&!lhb(e,iKe)&&!lhb(e,jKe)&&(e=kKe);c=thb(b,Fhb(62));c!=-1&&(e+=''+(BFb(c+1,b.length+1),b.substr(c+1)));yXd(a,e)}else{e=b;if(qhb(b,Fhb(46))==-1){d=qhb(b,Fhb(91));d!=-1&&(e=(AFb(0,d,b.length),b.substr(0,d)));if(!lhb(e,hve)&&!lhb(e,dKe)&&!lhb(e,eKe)&&!lhb(e,fKe)&&!lhb(e,gKe)&&!lhb(e,hKe)&&!lhb(e,iKe)&&!lhb(e,jKe)){e=kKe;d!=-1&&(e+=''+(BFb(d,b.length+1),b.substr(d)))}else{e=b}}yXd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&qvd(a,new N3d(a,1,5,f,b))} +function Pvd(b,c){var d,e,f,g,h,i,j,k,l,m;j=c.length-1;i=(BFb(j,c.length),c.charCodeAt(j));if(i==93){h=qhb(c,Fhb(91));if(h>=0){f=Uvd(b,(AFb(1,h,c.length),c.substr(1,h-1)));l=(AFb(h+1,j,c.length),c.substr(h+1,j-(h+1)));return Nvd(b,l,f)}}else{d=-1;_eb==null&&(_eb=new RegExp('\\d'));if(_eb.test(String.fromCharCode(i))){d=uhb(c,Fhb(46),j-1);if(d>=0){e=RD(Fvd(b,Zvd(b,(AFb(1,d,c.length),c.substr(1,d-1))),false),61);k=0;try{k=Oeb((BFb(d+1,c.length+1),c.substr(d+1)),qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){g=a;throw Adb(new RSd(g))}else throw Adb(a)}if(k>16==-10){c=RD(a.Cb,292).Yk(b,c)}else if(a.Db>>16==-15){!b&&(b=(JTd(),wTd));!j&&(j=(JTd(),wTd));if(a.Cb.Yh()){i=new P3d(a.Cb,1,13,j,b,fZd(o4d(RD(a.Cb,62)),a),false);!c?(c=i):c.nj(i)}}}else if(ZD(a.Cb,90)){if(a.Db>>16==-23){ZD(b,90)||(b=(JTd(),zTd));ZD(j,90)||(j=(JTd(),zTd));if(a.Cb.Yh()){i=new P3d(a.Cb,1,10,j,b,fZd(tYd(RD(a.Cb,29)),a),false);!c?(c=i):c.nj(i)}}}else if(ZD(a.Cb,457)){h=RD(a.Cb,850);g=(!h.b&&(h.b=new pae(new lae)),h.b);for(f=(d=new vkb((new mkb(g.a)).a),new xae(d));f.a.b;){e=RD(tkb(f.a).ld(),89);c=o2d(e,k2d(e,h),c)}}}return c} +function Y4b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Heb(TD(Gxd(a,(yCc(),NAc))));m=RD(Gxd(a,EBc),21);i=false;j=false;l=new dMd((!a.c&&(a.c=new C5d(K4,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=RD(bMd(l),123);h=0;for(e=Fl(Al(cD(WC(cJ,1),rve,20,0,[(!f.d&&(f.d=new Yie(G4,f,8,5)),f.d),(!f.e&&(f.e=new Yie(G4,f,7,4)),f.e)])));gs(e);){d=RD(hs(e),74);k=g&&ozd(d)&&Heb(TD(Gxd(d,OAc)));c=cZd((!d.b&&(d.b=new Yie(E4,d,4,7)),d.b),f)?a==vCd(AGd(RD(QHd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c),0),84))):a==vCd(AGd(RD(QHd((!d.b&&(d.b=new Yie(E4,d,4,7)),d.b),0),84)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((Pod(),Lod))&&(!f.n&&(f.n=new C5d(I4,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((ovc(),hvc));j&&b.Fc((ovc(),ivc))} +function Dsd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=RD(Gxd(a,(umd(),kld)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((Qpd(),Opd))){k=RD(Gxd(a,Hld),101);d=2;c=2;e=2;f=2;b=!vCd(a)?RD(Gxd(a,Nkd),88):RD(Gxd(vCd(a),Nkd),88);for(j=new dMd((!a.c&&(a.c=new C5d(K4,a,9,9)),a.c));j.e!=j.i.gc();){i=RD(bMd(j),123);l=RD(Gxd(i,Old),64);if(l==(qpd(),opd)){l=osd(i,b);Ixd(i,Old,l)}if(k==(Bod(),wod)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Esd(a,h,g,true,true)} +function Rqc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=RD(zDb(PDb(CDb(new SDb(null,new Swb(b.d,16)),new Vqc(c)),new Xqc(c)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);l=lve;k=qwe;for(i=new Anb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=RD(Vmb(r.c.a,m),10);d=Z7b(l);n=!(Did(d,w,c[0])||yid(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p=0){i=null;h=new Jkb(k.a,j+1);while(h.bg?1:cz(isNaN(0),isNaN(g)))<0&&(null,bz(vEe),($wnd.Math.abs(g-1)<=vEe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:cz(isNaN(g),isNaN(1)))<0)&&(null,bz(vEe),($wnd.Math.abs(0-h)<=vEe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:cz(isNaN(0),isNaN(h)))<0)&&(null,bz(vEe),($wnd.Math.abs(h-1)<=vEe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:cz(isNaN(h),isNaN(1)))<0));return f} +function EXd(b){var c,d,e,f;d=b.D!=null?b.D:b.B;c=qhb(d,Fhb(91));if(c!=-1){e=(AFb(0,c,d.length),d.substr(0,c));f=new Qhb;do f.a+='[';while((c=phb(d,91,++c))!=-1);if(lhb(e,hve))f.a+='Z';else if(lhb(e,dKe))f.a+='B';else if(lhb(e,eKe))f.a+='C';else if(lhb(e,fKe))f.a+='D';else if(lhb(e,gKe))f.a+='F';else if(lhb(e,hKe))f.a+='I';else if(lhb(e,iKe))f.a+='J';else if(lhb(e,jKe))f.a+='S';else{f.a+='L';f.a+=''+e;f.a+=';'}try{return null}catch(a){a=zdb(a);if(!ZD(a,63))throw Adb(a)}}else if(qhb(d,Fhb(46))==-1){if(lhb(d,hve))return xdb;else if(lhb(d,dKe))return gE;else if(lhb(d,eKe))return hE;else if(lhb(d,fKe))return iE;else if(lhb(d,gKe))return jE;else if(lhb(d,hKe))return kE;else if(lhb(d,iKe))return lE;else if(lhb(d,jKe))return wdb}return null} +function pTb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;a.e=b;h=RSb(b);w=new bnb;for(d=new Anb(h);d.a=0&&p=j.c.c.length?(k=hOc((r3b(),p3b),o3b)):(k=hOc((r3b(),o3b),o3b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function qkc(a){var b,c,d,e;FDb(CDb(new SDb(null,new Swb(a.a.b,16)),new Qkc),new Skc);okc(a);FDb(CDb(new SDb(null,new Swb(a.a.b,16)),new Ukc),new Wkc);if(a.c==(Ymd(),Wmd)){FDb(CDb(EDb(new SDb(null,new Swb(new Xkb(a.f),1)),new clc),new elc),new glc(a));FDb(CDb(GDb(EDb(EDb(new SDb(null,new Swb(a.d.b,16)),new klc),new mlc),new olc),new qlc),new slc(a))}e=new rjd(oxe,oxe);b=new rjd(pxe,pxe);for(d=new Anb(a.a.b);d.a0&&(b.a+=pve,b);Csd(RD(bMd(h),167),b)}b.a+=SAe;i=new mMd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=pve,b);Csd(RD(bMd(i),167),b)}b.a+=')'}}} +function LTb(a,b,c){var d,e,f,g,h,i,j,k;for(i=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));i.e!=i.i.gc();){h=RD(bMd(i),27);for(e=new is(Mr(zGd(h).a.Kc(),new ir));gs(e);){d=RD(hs(e),74);!d.b&&(d.b=new Yie(E4,d,4,7));if(!(d.b.i<=1&&(!d.c&&(d.c=new Yie(E4,d,5,8)),d.c.i<=1))){throw Adb(new Ked('Graph must not contain hyperedges.'))}if(!nzd(d)&&h!=AGd(RD(QHd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c),0),84))){j=new cUb;kQb(j,d);pQb(j,(JVb(),HVb),d);_Tb(j,RD(Wd(qtb(c.f,h)),153));aUb(j,RD(Wjb(c,AGd(RD(QHd((!d.c&&(d.c=new Yie(E4,d,5,8)),d.c),0),84))),153));Rmb(b.c,j);for(g=new dMd((!d.n&&(d.n=new C5d(I4,d,1,7)),d.n));g.e!=g.i.gc();){f=RD(bMd(g),135);k=new iUb(j,f.a);kQb(k,f);pQb(k,HVb,f);k.e.a=$wnd.Math.max(f.g,1);k.e.b=$wnd.Math.max(f.f,1);hUb(k);Rmb(b.d,k)}}}}} +function Vec(a,b,c){var d,e,f,g,h,i,j,k,l,m;c.Ug('Node promotion heuristic',1);a.i=b;a.r=RD(mQb(b,(yCc(),ZAc)),243);a.r!=(aEc(),TDc)&&a.r!=UDc?Tec(a):Uec(a);k=RD(mQb(a.i,YAc),17).a;f=new nfc;switch(a.r.g){case 2:case 1:Yec(a,f);break;case 3:a.r=_Dc;Yec(a,f);i=0;for(h=new Anb(a.b);h.aa.k){a.r=VDc;Yec(a,f)}break;case 4:a.r=_Dc;Yec(a,f);j=0;for(e=new Anb(a.c);e.aa.n){a.r=YDc;Yec(a,f)}break;case 6:m=eE($wnd.Math.ceil(a.g.length*k/100));Yec(a,new qfc(m));break;case 5:l=eE($wnd.Math.ceil(a.e*k/100));Yec(a,new tfc(l));break;case 8:Sec(a,true);break;case 9:Sec(a,false);break;default:Yec(a,f);}a.r!=TDc&&a.r!=UDc?Zec(a,b):$ec(a,b);c.Vg()} +function $rc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=a.b;k=new Jkb(l,0);Ikb(k,new R4b(a));s=false;g=1;while(k.b0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function u9b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new rjd(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new Anb(a.a);j.a0){a.c[b.c.p][b.p].d+=Kwb(a.i,24)*Nxe*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function D8b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new Anb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function pA(a,b){var c,d,e,f,g,h,i,j,k;j='';if(b.length==0){return a.ne(ywe,wwe,-1,-1)}k=Dhb(b);lhb(k.substr(0,3),'at ')&&(k=(BFb(3,k.length+1),k.substr(3)));k=k.replace(/\[.*?\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=Dhb((BFb(g+1,k.length+1),k.substr(g+1)));k=Dhb((AFb(0,g,k.length),k.substr(0,g)))}}else{c=k.indexOf(')',g);j=(AFb(g+1,c,k.length),k.substr(g+1,c-(g+1)));k=Dhb((AFb(0,g,k.length),k.substr(0,g)))}g=qhb(k,Fhb(46));g!=-1&&(k=(BFb(g+1,k.length+1),k.substr(g+1)));(k.length==0||lhb(k,'Anonymous function'))&&(k=wwe);h=thb(j,Fhb(58));e=uhb(j,Fhb(58),h-1);i=-1;d=-1;f=ywe;if(h!=-1&&e!=-1){f=(AFb(0,e,j.length),j.substr(0,e));i=jA((AFb(e+1,h,j.length),j.substr(e+1,h-(e+1))));d=jA((BFb(h+1,j.length+1),j.substr(h+1)))}return a.ne(f,k,i,d)} +function C6b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new Anb(a);j.a0||k.j==ppd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new Anb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new Anb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function hTb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;f=a.f.b;m=f.a;k=f.b;o=a.e.g;n=a.e.f;zyd(a.e,f.a,f.b);w=m/o;A=k/n;for(j=new dMd(iyd(a.e));j.e!=j.i.gc();){i=RD(bMd(j),135);Dyd(i,i.i*w);Eyd(i,i.j*A)}for(s=new dMd(wCd(a.e));s.e!=s.i.gc();){r=RD(bMd(s),123);u=r.i;v=r.j;u>0&&Dyd(r,u*w);v>0&&Eyd(r,v*A)}Bvb(a.b,new tTb);b=new bnb;for(h=new vkb((new mkb(a.c)).a);h.b;){g=tkb(h);d=RD(g.ld(),74);c=RD(g.md(),407).a;e=IGd(d,false,false);l=fTb(JGd(d),ssd(e),c);lsd(l,e);t=KGd(d);if(!!t&&Wmb(b,t,0)==-1){ZEb(b.c,t);gTb(t,(sFb(l.b!=0),RD(l.a.a.c,8)),c)}}for(q=new vkb((new mkb(a.d)).a);q.b;){p=tkb(q);d=RD(p.ld(),74);c=RD(p.md(),407).a;e=IGd(d,false,false);l=fTb(LGd(d),Ijd(ssd(e)),c);l=Ijd(l);lsd(l,e);t=MGd(d);if(!!t&&Wmb(b,t,0)==-1){ZEb(b.c,t);gTb(t,(sFb(l.b!=0),RD(l.c.b.c,8)),c)}}} +function GJb(a,b,c,d){var e,f,g,h,i;h=new CLb(b);iNb(h,d);e=true;if(!!a&&a.pf((umd(),Nkd))){f=RD(a.of((umd(),Nkd)),88);e=f==(Cmd(),Amd)||f==ymd||f==zmd}$Mb(h,false);Umb(h.e.Rf(),new dNb(h,false,e));EMb(h,h.f,(ZJb(),WJb),(qpd(),Yod));EMb(h,h.f,YJb,npd);EMb(h,h.g,WJb,ppd);EMb(h,h.g,YJb,Xod);GMb(h,Yod);GMb(h,npd);FMb(h,Xod);FMb(h,ppd);RMb();g=h.A.Hc((Qpd(),Mpd))&&h.B.Hc((dqd(),$pd))?SMb(h):null;!!g&&uKb(h.a,g);XMb(h);xMb(h);GNb(h);sMb(h);gNb(h);yNb(h);oNb(h,Yod);oNb(h,npd);tMb(h);fNb(h);if(!c){return h.o}VMb(h);CNb(h);oNb(h,Xod);oNb(h,ppd);i=h.B.Hc((dqd(),_pd));IMb(h,i,Yod);IMb(h,i,npd);JMb(h,i,Xod);JMb(h,i,ppd);FDb(new SDb(null,new Swb(new glb(h.i),0)),new KMb);FDb(CDb(new SDb(null,ki(h.r).a.oc()),new MMb),new OMb);WMb(h);h.e.Pf(h.o);FDb(new SDb(null,ki(h.r).a.oc()),new YMb);return h.o} +function LYb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=oxe;for(d=new Anb(a.a.b);d.a1){n=new xVc(o,t,d);xgb(t,new nVc(a,n));ZEb(g.c,n);for(l=t.a.ec().Kc();l.Ob();){k=RD(l.Pb(),42);Ymb(f,k.b)}}if(h.a.gc()>1){n=new xVc(o,h,d);xgb(h,new pVc(a,n));ZEb(g.c,n);for(l=h.a.ec().Kc();l.Ob();){k=RD(l.Pb(),42);Ymb(f,k.b)}}}} +function p6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=a.n;q=a.o;m=a.d;l=Kfb(UD(hFc(a,(yCc(),QBc))));if(b){k=l*(b.gc()-1);n=0;for(i=b.Kc();i.Ob();){g=RD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b-m.d+n;d=q.a/(b.gc()+1);e=d;for(h=b.Kc();h.Ob();){g=RD(h.Pb(),10);g.n.a=r;g.n.b=f-g.o.b;r+=g.o.a+l;j=n6b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=g.o.b;o=RD(mQb(g,(Ywc(),Xvc)),12);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=0;P3b(o,a)}e+=d}}if(c){k=l*(c.gc()-1);n=0;for(i=c.Kc();i.Ob();){g=RD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b+q.b+m.a-n;d=q.a/(c.gc()+1);e=d;for(h=c.Kc();h.Ob();){g=RD(h.Pb(),10);g.n.a=r;g.n.b=f;r+=g.o.a+l;j=n6b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=0;o=RD(mQb(g,(Ywc(),Xvc)),12);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=q.b;P3b(o,a)}e+=d}}} +function Hac(a,b){var c,d,e,f,g,h;if(!RD(mQb(b,(Ywc(),kwc)),21).Hc((ovc(),hvc))){return}for(h=new Anb(b.a);h.a=0&&g0&&(RD(Vrb(a.b,b),127).a.b=c)} +function wcc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;m=Kfb(UD(mQb(a,(yCc(),_Bc))));n=Kfb(UD(mQb(a,aCc)));l=Kfb(UD(mQb(a,ZBc)));h=a.o;f=RD(Vmb(a.j,0),12);g=f.n;p=ucc(f,l);if(!p){return}if(b.Hc((Pod(),Lod))){switch(RD(mQb(a,(Ywc(),hwc)),64).g){case 1:p.c=(h.a-p.b)/2-g.a;p.d=n;break;case 3:p.c=(h.a-p.b)/2-g.a;p.d=-n-p.a;break;case 2:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:RD(Vmb(f.f,0),72).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=-m-p.b;break;case 4:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:RD(Vmb(f.f,0),72).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=m;}}else if(b.Hc(Nod)){switch(RD(mQb(a,(Ywc(),hwc)),64).g){case 1:case 3:p.c=g.a+m;break;case 2:case 4:if(c&&!f.c){k=d?p.a:RD(Vmb(f.f,0),72).o.b;p.d=(h.b-k)/2-g.b}else{p.d=g.b+n}}}e=p.d;for(j=new Anb(f.f);j.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!Ftb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[Jxe]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function q$c(){q$c=geb;h$c=new jGd(rAe);new jGd(sAe);new kGd('DEPTH',sgb(0));XZc=new kGd('FAN',sgb(0));VZc=new kGd(QEe,sgb(0));n$c=new kGd('ROOT',(Geb(),false));b$c=new kGd('LEFTNEIGHBOR',null);l$c=new kGd('RIGHTNEIGHBOR',null);c$c=new kGd('LEFTSIBLING',null);m$c=new kGd('RIGHTSIBLING',null);WZc=new kGd('DUMMY',false);new kGd('LEVEL',sgb(0));k$c=new kGd('REMOVABLE_EDGES',new Yub);o$c=new kGd('XCOOR',sgb(0));p$c=new kGd('YCOOR',sgb(0));d$c=new kGd('LEVELHEIGHT',0);f$c=new kGd('LEVELMIN',0);e$c=new kGd('LEVELMAX',0);ZZc=new kGd('GRAPH_XMIN',0);_Zc=new kGd('GRAPH_YMIN',0);YZc=new kGd('GRAPH_XMAX',0);$Zc=new kGd('GRAPH_YMAX',0);UZc=new kGd('COMPACT_LEVEL_ASCENSION',false);TZc=new kGd('COMPACT_CONSTRAINTS',new bnb);a$c=new kGd('ID','');i$c=new kGd('POSITION',sgb(0));j$c=new kGd('PRELIM',0);g$c=new kGd('MODIFIER',0);SZc=new jGd(tAe);RZc=new jGd(uAe)} +function Bqe(a){zqe();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=$C(hE,zwe,28,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=yqe[o];f[g++]=yqe[p|j<<4];f[g++]=yqe[k<<2|q];f[g++]=yqe[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=yqe[o];f[g++]=yqe[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=yqe[o];f[g++]=yqe[p|j<<4];f[g++]=yqe[k<<2];f[g++]=61}return Ihb(f,0,f.length)} +function CB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>qwe&&tB(b,a.p-Owe);g=b.q.getDate();nB(b,1);a.k>=0&&qB(b,a.k);if(a.c>=0){nB(b,a.c)}else if(a.k>=0){i=new vB(b.q.getFullYear()-Owe,b.q.getMonth(),35);d=35-i.q.getDate();nB(b,$wnd.Math.min(d,g))}else{nB(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);oB(b,a.f==24&&a.g?0:a.f);a.j>=0&&pB(b,a.j);a.n>=0&&rB(b,a.n);a.i>=0&&sB(b,Bdb(Ndb(Fdb(Hdb(b.q.getTime()),Awe),Awe),a.i));if(a.a){e=new uB;tB(e,e.q.getFullYear()-Owe-80);Ldb(Hdb(b.q.getTime()),Hdb(e.q.getTime()))&&tB(b,e.q.getFullYear()-Owe+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();nB(b,b.q.getDate()+c);b.q.getMonth()!=h&&nB(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>qwe){f=b.q.getTimezoneOffset();sB(b,Bdb(Hdb(b.q.getTime()),(a.o-f)*60*Awe))}return true} +function J5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=mQb(b,(Ywc(),Awc));if(!ZD(e,207)){return}o=RD(e,27);p=b.e;m=new sjd(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=RD(Gxd(o,(yCc(),oBc)),181);if(Csb(u,(dqd(),Xpd))){n=RD(Gxd(o,qBc),107);E2b(n,f.a);H2b(n,f.d);F2b(n,f.b);G2b(n,f.c)}c=new bnb;for(k=new Anb(b.a);k.ad.c.length-1){Rmb(d,new Ptd(Hze,KEe))}c=RD(mQb(e,f_c),17).a;if(Dmd(RD(mQb(a,H$c),88))){e.e.aKfb(UD((tFb(c,d.c.length),RD(d.c[c],42)).b))&&Otd((tFb(c,d.c.length),RD(d.c[c],42)),e.e.a+e.f.a)}else{e.e.bKfb(UD((tFb(c,d.c.length),RD(d.c[c],42)).b))&&Otd((tFb(c,d.c.length),RD(d.c[c],42)),e.e.b+e.f.b)}}for(f=Sub(a.b,0);f.b!=f.d.c;){e=RD(evb(f),40);c=RD(mQb(e,(h_c(),f_c)),17).a;pQb(e,(q$c(),f$c),UD((tFb(c,d.c.length),RD(d.c[c],42)).a));pQb(e,e$c,UD((tFb(c,d.c.length),RD(d.c[c],42)).b))}b.Vg()} +function Tec(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;a.o=Kfb(UD(mQb(a.i,(yCc(),bCc))));a.f=Kfb(UD(mQb(a.i,XBc)));a.j=a.i.b.c.length;h=a.j-1;m=0;a.k=0;a.n=0;a.b=dv($C(bJ,Nve,17,a.j,0,1));a.c=dv($C(VI,Nve,345,a.j,7,1));for(g=new Anb(a.i.b);g.a0&&Rmb(a.q,k);Rmb(a.p,k)}b-=d;n=i+b;j+=b*a.f;$mb(a.b,h,sgb(n));$mb(a.c,h,j);a.k=$wnd.Math.max(a.k,n);a.n=$wnd.Math.max(a.n,j);a.e+=b;b+=p}} +function qpd(){qpd=geb;var a;opd=new upd(Sye,0);Yod=new upd(_ye,1);Xod=new upd(aze,2);npd=new upd(bze,3);ppd=new upd(cze,4);bpd=(yob(),new Lqb((a=RD(mfb(E3),9),new Fsb(a,RD(WEb(a,a.length),9),0))));cpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[])));Zod=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[])));kpd=eq(ysb(npd,cD(WC(E3,1),NAe,64,0,[])));mpd=eq(ysb(ppd,cD(WC(E3,1),NAe,64,0,[])));hpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[npd])));apd=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[ppd])));jpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[ppd])));dpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod])));lpd=eq(ysb(npd,cD(WC(E3,1),NAe,64,0,[ppd])));$od=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[npd])));gpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod,ppd])));_od=eq(ysb(Xod,cD(WC(E3,1),NAe,64,0,[npd,ppd])));ipd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[npd,ppd])));epd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod,npd])));fpd=eq(ysb(Yod,cD(WC(E3,1),NAe,64,0,[Xod,npd,ppd])))} +function Gfc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;b.Ug(qBe,1);p=new bnb;w=new bnb;for(j=new Anb(a.b);j.a0&&(t-=n);p2b(g,t);k=0;for(m=new Anb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.b0){j=(BFb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BFb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=(AFb(1,m,c.length),c.substr(1,m-1));u=lhb('%',h)?null:oSd(h);e=0;if(k){try{e=Oeb((BFb(m+2,c.length+1),c.substr(m+2)),qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){i=a;throw Adb(new RSd(i))}else throw Adb(a)}}for(r=P2d(b.Gh());r.Ob();){p=k3d(r);if(ZD(p,519)){f=RD(p,598);t=f.d;if((u==null?t==null:lhb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:(AFb(0,l,c.length),c.substr(0,l));d=0;if(l!=-1){try{d=Oeb((BFb(l+1,c.length+1),c.substr(l+1)),qwe,lve)}catch(a){a=zdb(a);if(ZD(a,130)){o=c}else throw Adb(a)}}o=lhb('%',o)?null:oSd(o);for(q=P2d(b.Gh());q.Ob();){p=k3d(q);if(ZD(p,197)){g=RD(p,197);s=g.xe();if((o==null?s==null:lhb(o,s))&&d--==0){return g}}}return null}}return Pvd(b,c)} +function Hlc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;k=new Tsb;i=new Tp;for(d=new Anb(a.a.a.b);d.ab.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}rIb(uIb(tIb(vIb(sIb(new wIb,1),100),n),q))}}}}}}} +function mNb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;m=RD(RD(Qc(a.r,b),21),87);if(b==(qpd(),Xod)||b==ppd){qNb(a,b);return}f=b==Yod?(mOb(),iOb):(mOb(),lOb);u=b==Yod?(vLb(),uLb):(vLb(),sLb);c=RD(Vrb(a.b,b),127);d=c.i;e=d.c+Hid(cD(WC(iE,1),vxe,28,15,[c.n.b,a.C.b,a.k]));r=d.c+d.b-Hid(cD(WC(iE,1),vxe,28,15,[c.n.c,a.C.c,a.k]));g=WNb(_Nb(f),a.t);s=b==Yod?pxe:oxe;for(l=m.Kc();l.Ob();){j=RD(l.Pb(),117);if(!j.c||j.c.d.c.length<=0){continue}q=j.b.Mf();p=j.e;n=j.c;o=n.i;o.b=(i=n.n,n.e.a+i.b+i.c);o.a=(h=n.n,n.e.b+h.d+h.a);Ivb(u,Pye);n.f=u;RKb(n,(EKb(),DKb));o.c=p.a-(o.b-q.a)/2;v=$wnd.Math.min(e,p.a);w=$wnd.Math.max(r,p.a+q.a);o.cw&&(o.c=w-o.b);Rmb(g.d,new sOb(o,UNb(g,o)));s=b==Yod?$wnd.Math.max(s,p.b+j.b.Mf().b):$wnd.Math.min(s,p.b)}s+=b==Yod?a.t:-a.t;t=VNb((g.e=s,g));t>0&&(RD(Vrb(a.b,b),127).a.b=t);for(k=m.Kc();k.Ob();){j=RD(k.Pb(),117);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function JSb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Tsb;for(i=new dMd(a);i.e!=i.i.gc();){h=RD(bMd(i),27);c=new _sb;Zjb(FSb,h,c);n=new TSb;e=RD(zDb(new SDb(null,new Twb(new is(Mr(yGd(h).a.Kc(),new ir)))),OBb(n,tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)])))),85);ISb(c,RD(e.xc((Geb(),true)),16),new VSb);d=RD(zDb(CDb(RD(e.xc(false),15).Lc(),new XSb),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);for(g=d.Kc();g.Ob();){f=RD(g.Pb(),74);m=KGd(f);if(m){j=RD(Wd(qtb(b.f,m)),21);if(!j){j=LSb(m);rtb(b.f,m,j)}ye(c,j)}}e=RD(zDb(new SDb(null,new Twb(new is(Mr(zGd(h).a.Kc(),new ir)))),OBb(n,tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb])))),85);ISb(c,RD(e.xc(true),16),new ZSb);d=RD(zDb(CDb(RD(e.xc(false),15).Lc(),new _Sb),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);for(l=d.Kc();l.Ob();){k=RD(l.Pb(),74);m=MGd(k);if(m){j=RD(Wd(qtb(b.f,m)),21);if(!j){j=LSb(m);rtb(b.f,m,j)}ye(c,j)}}}} +function zjb(a,b){xjb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=Ddb(a,0)<0;i&&(a=Odb(a));if(Ddb(a,0)==0){switch(b){case 0:return '0';case 1:return zxe;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new bib;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==qwe?'2147483648':''+-b;return n.a;}}k=18;l=$C(hE,zwe,28,k+1,15,1);c=k;p=a;do{j=p;p=Fdb(p,10);l[--c]=Ydb(Bdb(48,Vdb(j,Ndb(p,10))))&Bwe}while(Ddb(p,0)!=0);e=Vdb(Vdb(Vdb(k,c),b),1);if(b==0){i&&(l[--c]=45);return Ihb(l,c,k-c)}if(b>0&&Ddb(e,-6)>=0){if(Ddb(e,0)>=0){f=c+Ydb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return Ihb(l,c,k-c+1)}for(g=2;Ldb(g,Bdb(Odb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return Ihb(l,c,k-c)}o=c+1;d=k;m=new cib;i&&(m.a+='-',m);if(d-o>=1){Thb(m,l[c]);m.a+='.';m.a+=Ihb(l,c+1,k-c-1)}else{m.a+=Ihb(l,c,k-c)}m.a+='E';Ddb(e,0)>0&&(m.a+='+',m);m.a+=''+Zdb(e);return m.a} +function Esd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=new rjd(a.g,a.f);p=vsd(a);p.a=$wnd.Math.max(p.a,b);p.b=$wnd.Math.max(p.b,c);w=p.a/q.a;k=p.b/q.b;u=p.a-q.a;i=p.b-q.b;if(d){g=!vCd(a)?RD(Gxd(a,(umd(),Nkd)),88):RD(Gxd(vCd(a),(umd(),Nkd)),88);h=dE(Gxd(a,(umd(),Hld)))===dE((Bod(),wod));for(s=new dMd((!a.c&&(a.c=new C5d(K4,a,9,9)),a.c));s.e!=s.i.gc();){r=RD(bMd(s),123);t=RD(Gxd(r,Old),64);if(t==(qpd(),opd)){t=osd(r,g);Ixd(r,Old,t)}switch(t.g){case 1:h||Dyd(r,r.i*w);break;case 2:Dyd(r,r.i+u);h||Eyd(r,r.j*k);break;case 3:h||Dyd(r,r.i*w);Eyd(r,r.j+i);break;case 4:h||Eyd(r,r.j*k);}}}zyd(a,p.a,p.b);if(e){for(m=new dMd((!a.n&&(a.n=new C5d(I4,a,1,7)),a.n));m.e!=m.i.gc();){l=RD(bMd(m),135);n=l.i+l.g/2;o=l.j+l.f/2;v=n/q.a;j=o/q.b;if(v+j>=1){if(v-j>0&&o>=0){Dyd(l,l.i+u);Eyd(l,l.j+i*j)}else if(v-j<0&&n>=0){Dyd(l,l.i+u*v);Eyd(l,l.j+i)}}}}Ixd(a,(umd(),kld),(Qpd(),f=RD(mfb(H3),9),new Fsb(f,RD(WEb(f,f.length),9),0)));return new rjd(w,k)} +function _4c(a){Cgd(a,new Pfd(Wfd($fd(Xfd(Zfd(Yfd(new agd,CFe),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new c5c),CFe)));Agd(a,CFe,fEe,iGd(R4c));Agd(a,CFe,_ze,iGd(Y4c));Agd(a,CFe,jAe,iGd(K4c));Agd(a,CFe,CAe,iGd(L4c));Agd(a,CFe,iAe,iGd(M4c));Agd(a,CFe,kAe,iGd(J4c));Agd(a,CFe,gAe,iGd(N4c));Agd(a,CFe,lAe,iGd(Q4c));Agd(a,CFe,tFe,iGd(H4c));Agd(a,CFe,sFe,iGd(I4c));Agd(a,CFe,rFe,iGd(T4c));Agd(a,CFe,xFe,iGd(W4c));Agd(a,CFe,yFe,iGd(U4c));Agd(a,CFe,zFe,iGd(V4c));Agd(a,CFe,wFe,iGd(O4c));Agd(a,CFe,pFe,iGd(P4c));Agd(a,CFe,qFe,iGd(S4c));Agd(a,CFe,uFe,iGd(X4c));Agd(a,CFe,vFe,iGd(Z4c));Agd(a,CFe,oFe,iGd(G4c))} +function Peb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw Adb(new Vgb(vve))}j=a;f=a.length;i=false;if(f>0){b=(BFb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=(BFb(1,a.length+1),a.substr(1));--f;i=b==45}}if(f==0){throw Adb(new Vgb(nxe+j+'"'))}while(a.length>0&&(BFb(0,a.length),a.charCodeAt(0)==48)){a=(BFb(1,a.length+1),a.substr(1));--f}if(f>(Ugb(),Sgb)[10]){throw Adb(new Vgb(nxe+j+'"'))}for(e=0;e0){l=-parseInt((AFb(0,d,a.length),a.substr(0,d)),10);a=(BFb(d,a.length+1),a.substr(d));f-=d;c=false}while(f>=g){d=parseInt((AFb(0,g,a.length),a.substr(0,g)),10);a=(BFb(g,a.length+1),a.substr(g));f-=g;if(c){c=false}else{if(Ddb(l,h)<0){throw Adb(new Vgb(nxe+j+'"'))}l=Ndb(l,k)}l=Vdb(l,d)}if(Ddb(l,0)>0){throw Adb(new Vgb(nxe+j+'"'))}if(!i){l=Odb(l);if(Ddb(l,0)<0){throw Adb(new Vgb(nxe+j+'"'))}}return l} +function oSd(a){gSd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=qhb(a,Fhb(37));if(e<0){return a}else{i=new dib((AFb(0,e,a.length),a.substr(0,e)));b=$C(gE,YHe,28,4,15,1);h=0;d=0;for(g=a.length;ee+2&&zSd((BFb(e+1,a.length),a.charCodeAt(e+1)),XRd,YRd)&&zSd((BFb(e+2,a.length),a.charCodeAt(e+2)),XRd,YRd)){c=DSd((BFb(e+1,a.length),a.charCodeAt(e+1)),(BFb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Thb(i,((b[0]&31)<<6|b[1]&63)&Bwe);break}case 3:{Thb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&Bwe);break}}h=0;d=0}}else{for(f=0;f=2){if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i==0){c=(bvd(),e=new Rzd,e);WGd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i>1){m=new mMd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a));while(m.e!=m.i.gc()){cMd(m)}}lsd(b,RD(QHd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),0),166))}if(l){for(d=new dMd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a));d.e!=d.i.gc();){c=RD(bMd(d),166);for(j=new dMd((!c.a&&(c.a=new XZd(D4,c,5)),c.a));j.e!=j.i.gc();){i=RD(bMd(j),377);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new dMd((!a.n&&(a.n=new C5d(I4,a,1,7)),a.n));g.e!=g.i.gc();){f=RD(bMd(g),135);k=RD(Gxd(f,und),8);!!k&&Byd(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function MA(a,b,c,d,e){var f,g,h;KA(a,b);g=b[0];f=ihb(c.c,0);h=-1;if(DA(c)){if(d>0){if(g+d>a.length){return false}h=HA((AFb(0,g+d,a.length),a.substr(0,g+d)),b)}else{h=HA(a,b)}}switch(f){case 71:h=EA(a,g,cD(WC(qJ,1),Nve,2,6,[Qwe,Rwe]),b);e.e=h;return true;case 77:return PA(a,b,e,h,g);case 76:return RA(a,b,e,h,g);case 69:return NA(a,b,g,e);case 99:return QA(a,b,g,e);case 97:h=EA(a,g,cD(WC(qJ,1),Nve,2,6,['AM','PM']),b);e.b=h;return true;case 121:return TA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return OA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gB[i]&&(q=i);for(l=new Anb(a.a.b);l.a1){e=N8c(b);l=f.g;o=RD(Gxd(b,N7c),107);p=Kfb(UD(Gxd(b,x7c)));(!b.a&&(b.a=new C5d(J4,b,10,11)),b.a).i>1&&Kfb(UD(Gxd(b,(X6c(),T6c))))!=oxe&&(f.c+(o.b+o.c))/(f.b+(o.d+o.a))1&&Kfb(UD(Gxd(b,(X6c(),S6c))))!=oxe&&(f.c+(o.b+o.c))/(f.b+(o.d+o.a))>p&&Ixd(e,(X6c(),W6c),$wnd.Math.max(Kfb(UD(Gxd(b,U6c))),Kfb(UD(Gxd(e,W6c)))-Kfb(UD(Gxd(b,S6c)))));n=new m9c(d,k);i=l9c(n,e,m);j=i.g;if(j>=l&&j==j){for(g=0;g<(!e.a&&(e.a=new C5d(J4,e,10,11)),e.a).i;g++){O8c(a,RD(QHd((!e.a&&(e.a=new C5d(J4,e,10,11)),e.a),g),27),RD(QHd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a),g),27))}P8c(b,n);jad(f,i.c);iad(f,i.b)}--h}Ixd(b,(X6c(),N6c),f.b);Ixd(b,O6c,f.c);c.Vg()} +function fHc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b.Ug('Interactive node layering',1);c=new bnb;for(m=new Anb(a.a);m.a=h){sFb(s.b>0);s.a.Xb(s.c=--s.b);break}else if(q.a>i){if(!d){Rmb(q.b,k);q.c=$wnd.Math.min(q.c,i);q.a=$wnd.Math.max(q.a,h);d=q}else{Tmb(d.b,q.b);d.a=$wnd.Math.max(d.a,q.a);Ckb(s)}}}if(!d){d=new jHc;d.c=i;d.a=h;Ikb(s,d);Rmb(d.b,k)}}g=a.b;j=0;for(r=new Anb(c);r.an){if(f){Oub(w,m);Oub(B,sgb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}Dyd(h,H);Eyd(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(FVze;C=$wnd.Math.abs(m.b-o.b)>Vze;(!c&&B&&C||c&&(B||C))&&Mub(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sFb(d.b!=0),RD(d.c.b.c,8)));j0b(n,l,p);if(I0b(e)==A){if(Y2b(A.i)!=e.a){p=new pjd;e2b(p,Y2b(A.i),s)}pQb(q,Wwc,p)}k0b(n,q,s);k.a.zc(n,k)}Y0b(q,v);Z0b(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=RD(j.Pb(),18);Y0b(i,null);Z0b(i,null)}b.Vg()} +function lXc(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=RD(mQb(a,(h_c(),H$c)),88);k=e==(Cmd(),ymd)||e==zmd?xmd:zmd;c=RD(zDb(CDb(new SDb(null,new Swb(a.b,16)),new $Xc),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);i=RD(zDb(GDb(c.Oc(),new aYc(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);i.Gc(RD(zDb(GDb(c.Oc(),new cYc(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),16));i.jd(new eYc(k));m=new yAb(new iYc(e));d=new Tsb;for(h=i.Kc();h.Ob();){g=RD(h.Pb(),240);j=RD(g.a,40);if(Heb(TD(g.c))){m.a.zc(j,(Geb(),Eeb))==null;(new zAb(m.a.Zc(j,false))).a.gc()>0&&Zjb(d,j,RD((new zAb(m.a.Zc(j,false))).a.Vc(),40));(new zAb(m.a.ad(j,true))).a.gc()>1&&Zjb(d,nXc(m,j),j)}else{if((new zAb(m.a.Zc(j,false))).a.gc()>0){f=RD((new zAb(m.a.Zc(j,false))).a.Vc(),40);dE(f)===dE(Wd(qtb(d.f,j)))&&RD(mQb(j,(q$c(),TZc)),15).Fc(f)}if((new zAb(m.a.ad(j,true))).a.gc()>1){l=nXc(m,j);dE(Wd(qtb(d.f,l)))===dE(j)&&RD(mQb(l,(q$c(),TZc)),15).Fc(j)}m.a.Bc(j)!=null}}} +function BTb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return RD(a.Xb(0),235)}else if(a.gc()<=0){return new gUb}for(e=a.Kc();e.Ob();){c=RD(e.Pb(),235);o=0;k=lve;l=lve;i=qwe;j=qwe;for(n=new Anb(c.e);n.ah){t=0;u+=g+r;g=0}ATb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Aqe(a){zqe();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=Ahb(a);o=Dqe(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return $C(gE,YHe,28,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=$C(gE,YHe,28,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!Cqe(g=f[k++])||!Cqe(h=f[k++])){return null}b=xqe[g];c=xqe[h];i=f[k++];j=f[k++];if(xqe[i]==-1||xqe[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=$C(gE,YHe,28,n*3+1,15,1);hib(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=xqe[i];if((d&3)!=0)return null;q=$C(gE,YHe,28,n*3+2,15,1);hib(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=xqe[i];e=xqe[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function wfc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;b.Ug(qBe,1);o=RD(mQb(a,(yCc(),yAc)),223);for(e=new Anb(a.b);e.a=2){p=true;m=new Anb(f.j);c=RD(ynb(m),12);n=null;while(m.a0){d=l.gc();j=eE($wnd.Math.floor((d+1)/2))-1;e=eE($wnd.Math.ceil((d+1)/2))-1;if(b.o==DQc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=RD(l.Xb(k),42);o=RD(p.a,10);if(!Zsb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Geb(),Heb(b.f[b.g[u.p].p])&u.k==(r3b(),o3b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=RD(l.Xb(k),42);q=RD(r.a,10);if(!Zsb(c,r.b)&&n0){e=RD(Vmb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(bFc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=oxe;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function OJb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new Uid(b.Lf().a,b.Lf().b,b.Mf().a,b.Mf().b);e=new Tid;if(a.c){for(g=new Anb(b.Rf());g.aj&&(d.a+=Hhb($C(hE,zwe,28,-j,15,1)));d.a+='Is';if(qhb(i,Fhb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=RD(mQb(d,(Ywc(),Xwc)),15);if(!r){f=new bnb;pQb(d,Xwc,f)}else if(m){f=r}else{e=RD(mQb(d,Vvc),15);if(!e){f=new bnb;pQb(d,Vvc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=RD(mQb(d,(Ywc(),Vvc)),15);if(!e){f=new bnb;pQb(d,Vvc,f)}else if(l){f=e}else{r=RD(mQb(d,Xwc),15);if(!r){f=new bnb;pQb(d,Xwc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);pQb(a,(Ywc(),Xvc),c);if(b.d==c){Z0b(b,null);c.e.c.length+c.g.c.length==0&&P3b(c,null);u6b(c)}else{Y0b(b,null);c.e.c.length+c.g.c.length==0&&P3b(c,null)}Xub(b.a)} +function GHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;c.Ug('MinWidth layering',1);n=b.b;A=b.a;I=RD(mQb(b,(yCc(),WAc)),17).a;h=RD(mQb(b,XAc),17).a;a.b=Kfb(UD(mQb(b,TBc)));a.d=oxe;for(u=new Anb(A);u.a0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,JUc(t,g,s,A)));if(j=a.a){d=V9b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Rmb(h,new Ptd(s,d))}}B=new bnb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new R4b(a.b),Ikb(q,C),sFb(q.b0){m=k<100?null:new gLd(k);j=new $Hd(b);o=j.g;r=$C(kE,Pwe,28,k,15,1);d=0;u=new ZHd(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):dE(n)===dE(o[i])){if(r.length<=d){q=r;r=$C(kE,Pwe,28,2*r.length,15,1);hib(q,0,r,0,d)}r[d++]=e;WGd(u,o[i]);break v}}n=n;if(dE(n)===dE(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=$C(kE,Pwe,28,d,15,1);hib(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){THd(a,r[g])}if(d!=k){for(e=k;--e>=d;){THd(j,e)}q=r;r=$C(kE,Pwe,28,d,15,1);hib(q,0,r,0,d)}b=j}}}else{b=aHd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){THd(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?dZd(a,4,b.Kc().Pb(),null,r[0],p):dZd(a,6,b,r,r[0],p);m=c<100?null:new gLd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=oge(a,RD(n,76),m)}if(!m){qvd(a.e,l)}else{m.nj(l);m.oj()}}else{m=tLd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=oge(a,RD(n,76),m)}!!m&&m.oj()}return true}else{return false}} +function i_b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new p_b(b);c.a||b_b(b);j=a_b(b);i=new Tp;q=new D_b;for(p=new Anb(b.a);p.a0||c.o==DQc&&e=c} +function zEd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;t=b;s=new Tp;u=new Tp;k=wDd(t,mIe);d=new OEd(a,c,s,u);QDd(d.a,d.b,d.c,d.d,k);i=(A=s.i,!A?(s.i=new zf(s,s.c)):A);for(C=i.Kc();C.Ob();){B=RD(C.Pb(),166);e=RD(Qc(s,B),21);for(p=e.Kc();p.Ob();){o=p.Pb();v=RD(Ao(a.d,o),166);if(v){h=(!B.e&&(B.e=new Yie(F4,B,10,9)),B.e);WGd(h,v)}else{g=zDd(t,uIe);m=AIe+o+BIe+g;n=m+zIe;throw Adb(new CDd(n))}}}j=(w=u.i,!w?(u.i=new zf(u,u.c)):w);for(F=j.Kc();F.Ob();){D=RD(F.Pb(),166);f=RD(Qc(u,D),21);for(r=f.Kc();r.Ob();){q=r.Pb();v=RD(Ao(a.d,q),166);if(v){l=(!D.g&&(D.g=new Yie(F4,D,9,10)),D.g);WGd(l,v)}else{g=zDd(t,uIe);m=AIe+q+BIe+g;n=m+zIe;throw Adb(new CDd(n))}}}!c.b&&(c.b=new Yie(E4,c,4,7));if(c.b.i!=0&&(!c.c&&(c.c=new Yie(E4,c,5,8)),c.c.i!=0)&&(!c.b&&(c.b=new Yie(E4,c,4,7)),c.b.i<=1&&(!c.c&&(c.c=new Yie(E4,c,5,8)),c.c.i<=1))&&(!c.a&&(c.a=new C5d(F4,c,6,6)),c.a).i==1){G=RD(QHd((!c.a&&(c.a=new C5d(F4,c,6,6)),c.a),0),166);if(!Dzd(G)&&!Ezd(G)){Kzd(G,RD(QHd((!c.b&&(c.b=new Yie(E4,c,4,7)),c.b),0),84));Lzd(G,RD(QHd((!c.c&&(c.c=new Yie(E4,c,5,8)),c.c),0),84))}}} +function QNc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;for(t=a.a,u=0,v=t.length;u0){l=RD(Vmb(m.c.a,g-1),10);B=bFc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(g1&&(g=$wnd.Math.min(g,$wnd.Math.abs(RD(ju(h.a,1),8).b-k.b)))}}}}}else{for(p=new Anb(b.j);p.ae){f=m.a-e;g=lve;d.c.length=0;e=m.a}if(m.a>=e){ZEb(d.c,h);h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(RD(ju(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new R3b;P3b(n,b);Q3b(n,(qpd(),Yod));n.n.a=b.o.a/2;r=new R3b;P3b(r,b);Q3b(r,npd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new Anb(d);i.a=j.b?Y0b(h,r):Y0b(h,n)}else{j=RD(Vub(h.a),8);q=h.a.b==0?K3b(h.c):RD(Rub(h.a),8);q.b>=j.b?Z0b(h,r):Z0b(h,n)}l=RD(mQb(h,(yCc(),RAc)),75);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function E0c(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(h=Sub(a.b,0);h.b!=h.d.c;){g=RD(evb(h),40);if(lhb(g.c,IEe)){continue}j=iWc(g,a);b==(Cmd(),ymd)||b==zmd?_mb(j,new D1c):_mb(j,new H1c);i=j.c.length;for(d=0;d=0?(n=vpd(h)):(n=spd(vpd(h)));a.qf(GBc,n)}j=new pjd;m=false;if(a.pf(zBc)){mjd(j,RD(a.of(zBc),8));m=true}else{ljd(j,g.a/2,g.b/2)}switch(n.g){case 4:pQb(k,UAc,(cxc(),$wc));pQb(k,bwc,(huc(),guc));k.o.b=g.b;p<0&&(k.o.a=-p);Q3b(l,(qpd(),Xod));m||(j.a=g.a);j.a-=g.a;break;case 2:pQb(k,UAc,(cxc(),axc));pQb(k,bwc,(huc(),euc));k.o.b=g.b;p<0&&(k.o.a=-p);Q3b(l,(qpd(),ppd));m||(j.a=0);break;case 1:pQb(k,owc,(Gvc(),Fvc));k.o.a=g.a;p<0&&(k.o.b=-p);Q3b(l,(qpd(),npd));m||(j.b=g.b);j.b-=g.b;break;case 3:pQb(k,owc,(Gvc(),Dvc));k.o.a=g.a;p<0&&(k.o.b=-p);Q3b(l,(qpd(),Yod));m||(j.b=0);}mjd(l.n,j);pQb(k,zBc,j);if(b==vod||b==xod||b==wod){o=0;if(b==vod&&a.pf(CBc)){switch(n.g){case 1:case 2:o=RD(a.of(CBc),17).a;break;case 3:case 4:o=-RD(a.of(CBc),17).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==xod&&(o/=e.b);break;case 1:case 3:o=f.a;b==xod&&(o/=e.a);}}pQb(k,Jwc,o)}pQb(k,hwc,n);return k} +function OId(){MId();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=PId((yob(),new xpb(new glb(LId.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=PId((yob(),new xpb(new glb(LId.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=PId((yob(),new xpb(new glb(LId.d))));f.postMessage({id:b.id,data:e});break;case 'register':SId(b.algorithms);f.postMessage({id:b.id});break;case 'layout':QId(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===Yxe&&typeof self!==Yxe){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==Yxe&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function i5b(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new j3b(c);kQb(k,b);pQb(k,(Ywc(),Awc),b);k.o.a=b.g;k.o.b=b.f;k.n.a=b.i;k.n.b=b.j;Rmb(c.a,k);Zjb(a.a,b,k);((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a).i!=0||Heb(TD(Gxd(b,(yCc(),NAc)))))&&pQb(k,Yvc,(Geb(),true));j=RD(mQb(c,kwc),21);l=RD(mQb(k,(yCc(),BBc)),101);l==(Bod(),Aod)?pQb(k,BBc,zod):l!=zod&&j.Fc((ovc(),kvc));m=0;d=RD(mQb(c,rAc),88);for(i=new dMd((!b.c&&(b.c=new C5d(K4,b,9,9)),b.c));i.e!=i.i.gc();){h=RD(bMd(i),123);e=vCd(b);(dE(Gxd(e,cAc))!==dE((kEc(),hEc))||dE(Gxd(e,pAc))===dE((Ptc(),Otc))||dE(Gxd(e,pAc))===dE((Ptc(),Mtc))||Heb(TD(Gxd(e,eAc)))||dE(Gxd(e,Yzc))!==dE((U$b(),T$b))||dE(Gxd(e,ZAc))===dE((aEc(),TDc))||dE(Gxd(e,ZAc))===dE((aEc(),UDc))||dE(Gxd(e,$Ac))===dE((_Cc(),SCc))||dE(Gxd(e,$Ac))===dE((_Cc(),UCc)))&&!Heb(TD(Gxd(b,aAc)))&&Ixd(h,zwc,sgb(m++));Heb(TD(Gxd(h,pBc)))||j5b(a,h,k,j,d,l)}for(g=new dMd((!b.n&&(b.n=new C5d(I4,b,1,7)),b.n));g.e!=g.i.gc();){f=RD(bMd(g),135);!Heb(TD(Gxd(f,pBc)))&&!!f.a&&Rmb(k.b,h5b(f))}Heb(TD(mQb(k,Uzc)))&&j.Fc((ovc(),fvc));if(Heb(TD(mQb(k,MAc)))){j.Fc((ovc(),jvc));j.Fc(ivc);pQb(k,BBc,zod)}return k} +function ird(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new Anb(a.b);j.ap){if(f){Oub(w,n);Oub(B,sgb(k.b-1));Rmb(a.d,o);h.c.length=0}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}ZEb(h.c,i);xrd(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Tmb(a.a,h);Rmb(a.d,RD(Vmb(h,h.c.length-1),163));l=$wnd.Math.max(l,d);F=I+n+c.a;if(Fe.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=RD(Wjb(a.f,g.d.i),60);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new is(Mr(Z2b(n).a.Kc(),new ir));gs(h);){g=RD(hs(h),18);if(g.a.b!=0){b=RD(Rub(g.a),8);if(g.d.j==(qpd(),Yod)){q=new Nlc(b,new rjd(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;ZEb(p.c,q)}if(g.d.j==npd){q=new Nlc(b,new rjd(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;ZEb(p.c,q)}}}}}return p} +function Nvd(a,b,c){var d,e,f,g,h,i,j,k,l,m;i=new bnb;l=b.length;g=$5d(c);for(j=0;j=o){if(s>o){n.c.length=0;o=s}ZEb(n.c,g)}}if(n.c.length!=0){m=RD(Vmb(n,Jwb(b,n.c.length)),131);F.a.Bc(m)!=null;m.s=p++;$Uc(m,C,w);n.c.length=0}}u=a.c.length+1;for(h=new Anb(a);h.aD.s){Ckb(c);Ymb(D.i,d);if(d.c>0){d.a=D;Rmb(D.t,d);d.b=A;Rmb(A.i,d)}}}}} +function Efc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new cnb(b.b);u=new cnb(b.b);m=new cnb(b.b);B=new cnb(b.b);q=new cnb(b.b);for(A=Sub(b,0);A.b!=A.d.c;){v=RD(evb(A),12);for(h=new Anb(v.g);h.a0;r=v.g.c.length>0;j&&r?(ZEb(m.c,v),true):j?(ZEb(p.c,v),true):r&&(ZEb(u.c,v),true)}for(o=new Anb(p);o.as.nh()-j.b&&(m=s.nh()-j.b);n>s.oh()-j.d&&(n=s.oh()-j.d);k0){for(t=Sub(a.f,0);t.b!=t.d.c;){s=RD(evb(t),10);s.p+=m-a.e}WGc(a);Xub(a.f);TGc(a,d,n)}else{Mub(a.f,n);n.p=d;a.e=$wnd.Math.max(a.e,d);for(f=new is(Mr(Z2b(n).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);if(!e.c.i.c&&e.c.i.k==(r3b(),n3b)){Mub(a.f,e.c.i);e.c.i.p=d-1}}a.c=d}}}else{WGc(a);Xub(a.f);d=0;if(gs(new is(Mr(Z2b(n).a.Kc(),new ir)))){m=0;m=UGc(m,n);d=m+2;TGc(a,d,n)}else{Mub(a.f,n);n.p=0;a.e=$wnd.Math.max(a.e,0);a.b=RD(Vmb(a.d.b,0),30);a.c=0}}}}a.f.b==0||WGc(a);a.d.a.c.length=0;r=new bnb;for(j=new Anb(a.d.b);j.a=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw Adb(new Lqe(TId((Hde(),CJe))))}}else{throw Adb(new Lqe(TId((Hde(),yJe))))}c=d;if(b==44){if(e>=a.j){throw Adb(new Lqe(TId((Hde(),AJe))))}else if((b=ihb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw Adb(new Lqe(TId((Hde(),CJe))))}if(d>c)throw Adb(new Lqe(TId((Hde(),BJe))))}else{c=-1}}if(b!=125)throw Adb(new Lqe(TId((Hde(),zJe))));if(a.bm(e)){f=(Vse(),Vse(),++Use,new Kte(9,f));a.d=e+1}else{f=(Vse(),Vse(),++Use,new Kte(3,f));a.d=e}f.Om(d);f.Nm(c);Mqe(a)}}return f} +function bXb(a){var b,c,d,e,f;c=RD(mQb(a,(Ywc(),kwc)),21);b=vfd(YWb);e=RD(mQb(a,(yCc(),IAc)),346);e==(Fnd(),Cnd)&&ofd(b,ZWb);Heb(TD(mQb(a,GAc)))?pfd(b,(sXb(),nXb),(hcc(),Zbc)):pfd(b,(sXb(),pXb),(hcc(),Zbc));mQb(a,(rid(),qid))!=null&&ofd(b,$Wb);(Heb(TD(mQb(a,PAc)))||Heb(TD(mQb(a,HAc))))&&nfd(b,(sXb(),rXb),(hcc(),lbc));switch(RD(mQb(a,rAc),88).g){case 2:case 3:case 4:nfd(pfd(b,(sXb(),nXb),(hcc(),nbc)),rXb,mbc);}c.Hc((ovc(),fvc))&&nfd(pfd(pfd(b,(sXb(),nXb),(hcc(),kbc)),qXb,ibc),rXb,jbc);dE(mQb(a,ZAc))!==dE((aEc(),$Dc))&&pfd(b,(sXb(),pXb),(hcc(),Rbc));if(c.Hc(mvc)){pfd(b,(sXb(),nXb),(hcc(),Xbc));pfd(b,oXb,Vbc);pfd(b,pXb,Wbc)}dE(mQb(a,Xzc))!==dE(($uc(),Yuc))&&dE(mQb(a,yAc))!==dE((Ymd(),Vmd))&&nfd(b,(sXb(),rXb),(hcc(),Abc));Heb(TD(mQb(a,KAc)))&&pfd(b,(sXb(),pXb),(hcc(),zbc));Heb(TD(mQb(a,nAc)))&&pfd(b,(sXb(),pXb),(hcc(),dcc));if(eXb(a)){dE(mQb(a,IAc))===dE(Cnd)?(d=RD(mQb(a,gAc),299)):(d=RD(mQb(a,hAc),299));f=d==(xvc(),vvc)?(hcc(),Ubc):(hcc(),gcc);pfd(b,(sXb(),qXb),f)}switch(RD(mQb(a,vCc),388).g){case 1:pfd(b,(sXb(),qXb),(hcc(),ecc));break;case 2:nfd(pfd(pfd(b,(sXb(),pXb),(hcc(),ebc)),qXb,fbc),rXb,gbc);}dE(mQb(a,cAc))!==dE((kEc(),hEc))&&pfd(b,(sXb(),pXb),(hcc(),fcc));return b} +function crc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(Ujb(a.a,b)){if(Zsb(RD(Wjb(a.a,b),49),c)){return 1}}else{Zjb(a.a,b,new _sb)}if(Ujb(a.a,c)){if(Zsb(RD(Wjb(a.a,c),49),b)){return -1}}else{Zjb(a.a,c,new _sb)}if(Ujb(a.e,b)){if(Zsb(RD(Wjb(a.e,b),49),c)){return -1}}else{Zjb(a.e,b,new _sb)}if(Ujb(a.e,c)){if(Zsb(RD(Wjb(a.a,c),49),b)){return 1}}else{Zjb(a.e,c,new _sb)}if(a.c==(kEc(),iEc)||!nQb(b,(Ywc(),zwc))||!nQb(c,(Ywc(),zwc))){l=null;for(j=new Anb(b.j);j.ag?erc(a,b,c):erc(a,c,b);return eg?1:0}}d=RD(mQb(b,(Ywc(),zwc)),17).a;f=RD(mQb(c,zwc),17).a;d>f?erc(a,b,c):erc(a,c,b);return df?1:0} +function uAd(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(d==null){return null}if(b.a!=c.jk()){throw Adb(new agb(VHe+c.xe()+WHe))}if(ZD(c,469)){r=z1d(RD(c,685),d);if(!r){throw Adb(new agb(XHe+d+"' is not a valid enumerator of '"+c.xe()+"'"))}return r}switch(Oee((lke(),jke),c).Nl()){case 2:{d=nue(d,false);break}case 3:{d=nue(d,true);break}}e=Oee(jke,c).Jl();if(e){return e.jk().wi().ti(e,d)}n=Oee(jke,c).Ll();if(n){r=new bnb;for(k=xAd(d),l=0,m=k.length;l1){o=new mMd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a));while(o.e!=o.i.gc()){cMd(o)}}g=RD(QHd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),0),166);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Kwb(b,24)*Nxe*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(bvd(),i=new Xxd,i);Vxd(e,m);Wxd(e,n);WGd((!g.a&&(g.a=new XZd(D4,g,5)),g.a),e)}} +function Y7c(a){Cgd(a,new Pfd($fd(Xfd(Zfd(Yfd(new agd,$Fe),'ELK Rectangle Packing'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'),new _7c)));Agd(a,$Fe,Dze,1.3);Agd(a,$Fe,hAe,(Geb(),false));Agd(a,$Fe,Eze,O7c);Agd(a,$Fe,_ze,15);Agd(a,$Fe,YDe,iGd(y7c));Agd(a,$Fe,jAe,iGd(F7c));Agd(a,$Fe,CAe,iGd(H7c));Agd(a,$Fe,iAe,iGd(I7c));Agd(a,$Fe,kAe,iGd(E7c));Agd(a,$Fe,gAe,iGd(J7c));Agd(a,$Fe,lAe,iGd(P7c));Agd(a,$Fe,RFe,iGd(U7c));Agd(a,$Fe,SFe,iGd(T7c));Agd(a,$Fe,QFe,iGd(W7c));Agd(a,$Fe,PFe,iGd(V7c));Agd(a,$Fe,TFe,iGd(M7c));Agd(a,$Fe,UFe,iGd(L7c));Agd(a,$Fe,VFe,iGd(K7c));Agd(a,$Fe,WFe,iGd(S7c));Agd(a,$Fe,dAe,iGd(B7c));Agd(a,$Fe,iEe,iGd(C7c));Agd(a,$Fe,NFe,iGd(A7c));Agd(a,$Fe,MFe,iGd(z7c));Agd(a,$Fe,OFe,iGd(D7c));Agd(a,$Fe,LFe,iGd(R7c))} +function Ajb(a,b){xjb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return zxe;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new bib;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=$C(hE,zwe,28,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=Cdb(h,yxe);do{p=H;H=Fdb(H,10);u[--c]=48+Ydb(Vdb(p,Ndb(H,10)))&Bwe}while(Ddb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&Bwe}while(H!=0)}}else{D=$C(kE,Pwe,28,o,15,1);G=o;hib(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=Bdb(Sdb(A,32),Cdb(D[j],yxe));r=yjb(F);D[j]=Ydb(r);A=Ydb(Tdb(r,32))}s=Ydb(A);q=c;do{u[--c]=48+s%10&Bwe}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return Ihb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return Ihb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return Ihb(u,c,t-c)}C=c+1;f=t;v=new cib;n&&(v.a+='-',v);if(f-C>=1){Thb(v,u[c]);v.a+='.';v.a+=Ihb(u,c+1,t-c-1)}else{v.a+=Ihb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function Jad(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Tsb;c=(lud(),new zud(a.c));d=new PJb(c);LJb(d);t=WD(Gxd(a.c,(ncd(),gcd)));i=RD(Gxd(a.c,icd),324);v=RD(Gxd(a.c,jcd),437);g=RD(Gxd(a.c,bcd),490);u=RD(Gxd(a.c,hcd),438);a.j=Kfb(UD(Gxd(a.c,kcd)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw Adb(new agb(eGe+(i.f!=null?i.f:''+i.g)));}a.d=new qbd(h,v,g);pQb(a.d,(OQb(),MQb),TD(Gxd(a.c,dcd)));a.d.c=Heb(TD(Gxd(a.c,ccd)));if(tCd(a.c).i==0){return a.d}for(l=new dMd(tCd(a.c));l.e!=l.i.gc();){k=RD(bMd(l),27);n=k.g/2;m=k.f/2;w=new rjd(k.i+n,k.j+m);while(Ujb(a.g,w)){Zid(w,($wnd.Math.random()-0.5)*Vze,($wnd.Math.random()-0.5)*Vze)}p=RD(Gxd(k,(umd(),eld)),140);q=new TQb(w,new Uid(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Rmb(a.d.i,q);Zjb(a.g,w,new Ptd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=RD(Vmb(a.d.i,0),68)}else{for(s=new Anb(a.d.i);s.a0?G+1:1}for(g=new Anb(w.g);g.a0?G+1:1}}a.c[j]==0?Mub(a.e,p):a.a[j]==0&&Mub(a.f,p);++j}o=-1;n=1;l=new bnb;a.d=RD(mQb(b,(Ywc(),Lwc)),234);while(L>0){while(a.e.b!=0){I=RD(Uub(a.e),10);a.b[I.p]=o--;TFc(a,I);--L}while(a.f.b!=0){J=RD(Uub(a.f),10);a.b[J.p]=n++;TFc(a,J);--L}if(L>0){m=qwe;for(s=new Anb(t);s.a=m){if(u>m){l.c.length=0;m=u}ZEb(l.c,p)}}}k=a.sg(l);a.b[k.p]=n++;TFc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){X0b(d,true);pQb(b,awc,(Geb(),true))}}}}a.a=null;a.c=null;a.b=null;Xub(a.f);Xub(a.e);c.Vg()} +function usd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;v=RD(QHd((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a),0),166);k=new Ejd;u=new Tsb;w=xsd(v);rtb(u.f,v,w);m=new Tsb;d=new Yub;for(o=Fl(Al(cD(WC(cJ,1),rve,20,0,[(!b.d&&(b.d=new Yie(G4,b,8,5)),b.d),(!b.e&&(b.e=new Yie(G4,b,7,4)),b.e)])));gs(o);){n=RD(hs(o),74);if((!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i!=1){throw Adb(new agb(tHe+(!a.a&&(a.a=new C5d(F4,a,6,6)),a.a).i))}if(n!=a){q=RD(QHd((!n.a&&(n.a=new C5d(F4,n,6,6)),n.a),0),166);Pub(d,q,d.c.b,d.c);p=RD(Wd(qtb(u.f,q)),13);if(!p){p=xsd(q);rtb(u.f,q,p)}l=c?ojd(new sjd(RD(Vmb(w,w.c.length-1),8)),RD(Vmb(p,p.c.length-1),8)):ojd(new sjd((tFb(0,w.c.length),RD(w.c[0],8))),(tFb(0,p.c.length),RD(p.c[0],8)));rtb(m.f,q,l)}}if(d.b!=0){r=RD(Vmb(w,c?w.c.length-1:0),8);for(j=1;j1&&(Pub(k,r,k.c.b,k.c),true);gvb(e)}}}r=s}}return k} +function S_c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c.Ug(_Ee,1);D=RD(zDb(CDb(new SDb(null,new Swb(b,16)),new e0c),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);k=RD(zDb(CDb(new SDb(null,new Swb(b,16)),new g0c(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);o=RD(zDb(CDb(new SDb(null,new Swb(b,16)),new i0c(b)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[vBb]))),15);p=$C(Z$,NEe,40,b.gc(),0,1);for(g=0;g=0&&C=0&&!p[n]){p[n]=e;k.gd(h);--h;break}n=C-m;if(n=0&&!p[n]){p[n]=e;k.gd(h);--h;break}}}o.jd(new k0c);for(i=p.length-1;i>=0;i--){if(!p[i]&&!o.dc()){p[i]=RD(o.Xb(0),40);o.gd(0)}}for(j=0;j=0;i--){Mub(c,(tFb(i,g.c.length),RD(g.c[i],8)))}return c} +function l9c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;t=Kfb(UD(Gxd(b,(X6c(),W6c))));n=Kfb(UD(Gxd(b,U6c)));m=Kfb(UD(Gxd(b,R6c)));Bad((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));r=U8c((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a),t,a.b);for(q=0;qm&&Fad((tFb(m,b.c.length),RD(b.c[m],186)),k);k=null;while(b.c.length>m&&(tFb(m,b.c.length),RD(b.c[m],186)).a.c.length==0){Ymb(b,(tFb(m,b.c.length),b.c[m]))}}if(!k){--g;continue}if(!Heb(TD(RD(Vmb(k.b,0),27).of((X7c(),D7c))))&&K8c(b,o,f,k,q,c,m,d)){p=true;continue}if(q){n=o.b;l=k.f;if(!Heb(TD(RD(Vmb(k.b,0),27).of(D7c)))&&L8c(b,o,f,k,c,m,d,e)){p=true;if(n=a.j){a.a=-1;a.c=1;return}b=ihb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw Adb(new Lqe(TId((Hde(),VIe))));a.a=ihb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(ihb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw Adb(new Lqe(TId((Hde(),WIe))));b=ihb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw Adb(new Lqe(TId((Hde(),WIe))));b=ihb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw Adb(new Lqe(TId((Hde(),XIe))));break;case 35:while(a.d=a.j)throw Adb(new Lqe(TId((Hde(),VIe))));a.a=ihb(a.i,a.d++);break;default:d=0;}a.c=d} +function oXc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;c.Ug('Process compaction',1);if(!Heb(TD(mQb(b,(h_c(),F$c))))){return}e=RD(mQb(b,H$c),88);n=Kfb(UD(mQb(b,_$c)));pXc(a,b,e);lXc(b,n/2/2);o=b.b;tvb(o,new EXc(e));for(j=Sub(o,0);j.b!=j.d.c;){i=RD(evb(j),40);if(!Heb(TD(mQb(i,(q$c(),n$c))))){d=mXc(i,e);p=lWc(i,b);l=0;m=0;if(d){q=d.e;switch(e.g){case 2:l=q.a-n-i.f.a;p.e.a-n-i.f.al&&(l=p.e.a+p.f.a+n);m=l+i.f.a;break;case 4:l=q.b-n-i.f.b;p.e.b-n-i.f.bl&&(l=p.e.b+p.f.b+n);m=l+i.f.b;}}else if(p){switch(e.g){case 2:l=p.e.a-n-i.f.a;m=l+i.f.a;break;case 1:l=p.e.a+p.f.a+n;m=l+i.f.a;break;case 4:l=p.e.b-n-i.f.b;m=l+i.f.b;break;case 3:l=p.e.b+p.f.b+n;m=l+i.f.b;}}if(dE(mQb(b,K$c))===dE((LZc(),IZc))){f=l;g=m;h=DDb(CDb(new SDb(null,new Swb(a.a,16)),new IXc(f,g)));if(h.a!=null){e==(Cmd(),ymd)||e==zmd?(i.e.a=l):(i.e.b=l)}else{e==(Cmd(),ymd)||e==Bmd?(h=DDb(CDb(NDb(new SDb(null,new Swb(a.a,16))),new WXc(f)))):(h=DDb(CDb(NDb(new SDb(null,new Swb(a.a,16))),new YXc(f))));h.a!=null&&(e==ymd||e==zmd?(i.e.a=Kfb(UD((sFb(h.a!=null),RD(h.a,42)).a))):(i.e.b=Kfb(UD((sFb(h.a!=null),RD(h.a,42)).a))))}if(h.a!=null){k=Wmb(a.a,(sFb(h.a!=null),h.a),0);if(k>0&&k!=RD(mQb(i,f_c),17).a){pQb(i,UZc,(Geb(),true));pQb(i,f_c,sgb(k))}}}else{e==(Cmd(),ymd)||e==zmd?(i.e.a=l):(i.e.b=l)}}}c.Vg()} +function Fre(a){var b,c,d,e,f,g,h,i,j;a.b=1;Mqe(a);b=null;if(a.c==0&&a.a==94){Mqe(a);b=(Vse(),Vse(),++Use,new xte(4));rte(b,0,MLe);h=(null,++Use,new xte(4))}else{h=(Vse(),Vse(),++Use,new xte(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){wte(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:ute(h,Ere(c));d=true;break;case 105:case 73:case 99:case 67:c=(ute(h,Ere(c)),-1);c<0&&(d=true);break;case 112:case 80:i=Sqe(a,c);if(!i)throw Adb(new Lqe(TId((Hde(),hJe))));ute(h,i);d=true;break;default:c=Dre(a);}}else if(j==24&&!e){if(b){wte(b,h);h=b}f=Fre(a);wte(h,f);if(a.c!=0||a.a!=93)throw Adb(new Lqe(TId((Hde(),lJe))));break}Mqe(a);if(!d){if(j==0){if(c==91)throw Adb(new Lqe(TId((Hde(),mJe))));if(c==93)throw Adb(new Lqe(TId((Hde(),nJe))));if(c==45&&!e&&a.a!=93)throw Adb(new Lqe(TId((Hde(),oJe))))}if(a.c!=0||a.a!=45||c==45&&e){rte(h,c,c)}else{Mqe(a);if((j=a.c)==1)throw Adb(new Lqe(TId((Hde(),jJe))));if(j==0&&a.a==93){rte(h,c,c);rte(h,45,45)}else if(j==0&&a.a==93||j==24){throw Adb(new Lqe(TId((Hde(),oJe))))}else{g=a.a;if(j==0){if(g==91)throw Adb(new Lqe(TId((Hde(),mJe))));if(g==93)throw Adb(new Lqe(TId((Hde(),nJe))));if(g==45)throw Adb(new Lqe(TId((Hde(),oJe))))}else j==10&&(g=Dre(a));Mqe(a);if(c>g)throw Adb(new Lqe(TId((Hde(),rJe))));rte(h,c,g)}}}e=false}if(a.c==1)throw Adb(new Lqe(TId((Hde(),jJe))));vte(h);ste(h);a.b=0;Mqe(a);return h} +function EGc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c.Ug('Coffman-Graham Layering',1);if(b.a.c.length==0){c.Vg();return}v=RD(mQb(b,(yCc(),SAc)),17).a;i=0;g=0;for(m=new Anb(b.a);m.a=v||!zGc(r,d))&&(d=BGc(b,k));g3b(r,d);for(f=new is(Mr(Z2b(r).a.Kc(),new ir));gs(f);){e=RD(hs(f),18);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zFb(lwb(n,p),Bxe),true)}}for(j=k.c.length-1;j>=0;--j){Rmb(b.b,(tFb(j,k.c.length),RD(k.c[j],30)))}b.a.c.length=0;c.Vg()} +function Sec(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=false;do{u=false;for(f=b?(new Xkb(a.a.b)).a.gc()-2:1;b?f>=0:f<(new Xkb(a.a.b)).a.gc();f+=b?-1:1){e=_5b(a.a,sgb(f));for(n=0;nRD(mQb(q,zwc),17).a)&&(t=false)}if(!t){continue}i=b?f+1:f-1;h=_5b(a.a,sgb(i));g=false;s=true;d=false;for(k=Sub(h,0);k.b!=k.d.c;){j=RD(evb(k),10);if(nQb(j,zwc)){if(j.p!=l.p){g=g|(b?RD(mQb(j,zwc),17).aRD(mQb(l,zwc),17).a);s=false}}else if(!g&&s){if(j.k==(r3b(),n3b)){d=true;b?(m=RD(hs(new is(Mr(Z2b(j).a.Kc(),new ir))),18).c.i):(m=RD(hs(new is(Mr(a3b(j).a.Kc(),new ir))),18).d.i);if(m==l){b?(c=RD(hs(new is(Mr(a3b(j).a.Kc(),new ir))),18).d.i):(c=RD(hs(new is(Mr(Z2b(j).a.Kc(),new ir))),18).c.i);(b?RD($5b(a.a,c),17).a-RD($5b(a.a,m),17).a:RD($5b(a.a,m),17).a-RD($5b(a.a,c),17).a)<=2&&(s=false)}}}}if(d&&s){b?(c=RD(hs(new is(Mr(a3b(l).a.Kc(),new ir))),18).d.i):(c=RD(hs(new is(Mr(Z2b(l).a.Kc(),new ir))),18).c.i);(b?RD($5b(a.a,c),17).a-RD($5b(a.a,l),17).a:RD($5b(a.a,l),17).a-RD($5b(a.a,c),17).a)<=2&&c.k==(r3b(),p3b)&&(s=false)}if(g||s){p=Xec(a,l,b);while(p.a.gc()!=0){o=RD(p.a.ec().Kc().Pb(),10);p.a.Bc(o)!=null;ye(p,Xec(a,o,b))}--n;u=true}}}}while(u)} +function Xae(a){_Ad(a.c,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#decimal']));_Ad(a.d,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#integer']));_Ad(a.e,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#boolean']));_Ad(a.f,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EBoolean',GIe,'EBoolean:Object']));_Ad(a.i,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#byte']));_Ad(a.g,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#hexBinary']));_Ad(a.j,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EByte',GIe,'EByte:Object']));_Ad(a.n,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EChar',GIe,'EChar:Object']));_Ad(a.t,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#double']));_Ad(a.u,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EDouble',GIe,'EDouble:Object']));_Ad(a.F,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#float']));_Ad(a.G,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EFloat',GIe,'EFloat:Object']));_Ad(a.I,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#int']));_Ad(a.J,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EInt',GIe,'EInt:Object']));_Ad(a.N,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#long']));_Ad(a.O,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'ELong',GIe,'ELong:Object']));_Ad(a.Z,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#short']));_Ad(a.$,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'EShort',GIe,'EShort:Object']));_Ad(a._,qKe,cD(WC(qJ,1),Nve,2,6,[DKe,'http://www.w3.org/2001/XMLSchema#string']))} +function C0c(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o;m=RD(d.a,17).a;n=RD(d.b,17).a;l=a.b;o=a.c;h=0;k=0;if(b==(Cmd(),ymd)||b==zmd){k=Uvb(QCb(HDb(GDb(new SDb(null,new Swb(c.b,16)),new b2c),new b1c)));if(l.e.b+l.f.b/2>k){j=++n;h=Kfb(UD(Lvb(JDb(GDb(new SDb(null,new Swb(c.b,16)),new d2c(e,j)),new d1c))))}else{i=++m;h=Kfb(UD(Lvb(KDb(GDb(new SDb(null,new Swb(c.b,16)),new f2c(e,i)),new h1c))))}}else{k=Uvb(QCb(HDb(GDb(new SDb(null,new Swb(c.b,16)),new x1c),new l1c)));if(l.e.a+l.f.a/2>k){j=++n;h=Kfb(UD(Lvb(JDb(GDb(new SDb(null,new Swb(c.b,16)),new z1c(e,j)),new n1c))))}else{i=++m;h=Kfb(UD(Lvb(KDb(GDb(new SDb(null,new Swb(c.b,16)),new B1c(e,i)),new r1c))))}}if(b==ymd){Oub(a.a,new rjd(Kfb(UD(mQb(l,(q$c(),f$c))))-e,h));Oub(a.a,new rjd(o.e.a+o.f.a+e+f,h));Oub(a.a,new rjd(o.e.a+o.f.a+e+f,o.e.b+o.f.b/2));Oub(a.a,new rjd(o.e.a+o.f.a,o.e.b+o.f.b/2))}else if(b==zmd){Oub(a.a,new rjd(Kfb(UD(mQb(l,(q$c(),e$c))))+e,l.e.b+l.f.b/2));Oub(a.a,new rjd(l.e.a+l.f.a+e,h));Oub(a.a,new rjd(o.e.a-e-f,h));Oub(a.a,new rjd(o.e.a-e-f,o.e.b+o.f.b/2));Oub(a.a,new rjd(o.e.a,o.e.b+o.f.b/2))}else if(b==Bmd){Oub(a.a,new rjd(h,Kfb(UD(mQb(l,(q$c(),f$c))))-e));Oub(a.a,new rjd(h,o.e.b+o.f.b+e+f));Oub(a.a,new rjd(o.e.a+o.f.a/2,o.e.b+o.f.b+e+f));Oub(a.a,new rjd(o.e.a+o.f.a/2,o.e.b+o.f.b+e))}else{a.a.b==0||(RD(Rub(a.a),8).b=Kfb(UD(mQb(l,(q$c(),e$c))))+e*RD(g.b,17).a);Oub(a.a,new rjd(h,Kfb(UD(mQb(l,(q$c(),e$c))))+e*RD(g.b,17).a));Oub(a.a,new rjd(h,o.e.b-e*RD(g.a,17).a-f))}return new Ptd(sgb(m),sgb(n))} +function ASd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=_Rd;j=null;f=null;h=0;i=sSd(a,h,ZRd,$Rd);if(i=0&&lhb(a.substr(h,'//'.length),'//')){h+=2;i=sSd(a,h,aSd,bSd);d=(AFb(h,i,a.length),a.substr(h,i-h));h=i}else if(l!=null&&(h==a.length||(BFb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=rhb(a,Fhb(35),h);i==-1&&(i=a.length);d=(AFb(h,i,a.length),a.substr(h,i-h));h=i}if(!c&&h0&&ihb(k,k.length-1)==58){e=k;h=i}}if(hqQc(f))&&(l=f)}}!l&&(l=(tFb(0,q.c.length),RD(q.c[0],185)));for(p=new Anb(b.b);p.al){F=0;G+=k+A;k=0}FVc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Tsb;c=new Tsb;for(C=new Anb(a);C.a=-1900?1:0;c>=4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Qwe,Rwe])[h]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['BC','AD'])[h]);break;case 121:AA(a,c,d);break;case 77:zA(a,c,d);break;case 107:i=e.q.getHours();i==0?UA(a,24,c):UA(a,i,c);break;case 83:yA(a,c,e);break;case 69:k=d.q.getDay();c==5?Zhb(a,cD(WC(qJ,1),Nve,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Swe,Twe,Uwe,Vwe,Wwe,Xwe,Ywe])[k]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Zhb(a,cD(WC(qJ,1),Nve,2,6,['AM','PM'])[1]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?UA(a,12,c):UA(a,l,c);break;case 75:m=e.q.getHours()%12;UA(a,m,c);break;case 72:n=e.q.getHours();UA(a,n,c);break;case 99:o=d.q.getDay();c==5?Zhb(a,cD(WC(qJ,1),Nve,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Swe,Twe,Uwe,Vwe,Wwe,Xwe,Ywe])[o]):c==3?Zhb(a,cD(WC(qJ,1),Nve,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):UA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Zhb(a,cD(WC(qJ,1),Nve,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Zhb(a,cD(WC(qJ,1),Nve,2,6,[Cwe,Dwe,Ewe,Fwe,Gwe,Hwe,Iwe,Jwe,Kwe,Lwe,Mwe,Nwe])[p]):c==3?Zhb(a,cD(WC(qJ,1),Nve,2,6,['Jan','Feb','Mar','Apr',Gwe,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):UA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Zhb(a,cD(WC(qJ,1),Nve,2,6,['Q1','Q2','Q3','Q4'])[q]):Zhb(a,cD(WC(qJ,1),Nve,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();UA(a,r,c);break;case 109:j=e.q.getMinutes();UA(a,j,c);break;case 115:g=e.q.getSeconds();UA(a,g,c);break;case 122:c<4?Zhb(a,f.c[0]):Zhb(a,f.c[1]);break;case 118:Zhb(a,f.b);break;case 90:c<3?Zhb(a,cB(f)):c==3?Zhb(a,bB(f)):Zhb(a,eB(f.a));break;default:return false;}return true} +function f5b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;X4b(b);i=RD(QHd((!b.b&&(b.b=new Yie(E4,b,4,7)),b.b),0),84);k=RD(QHd((!b.c&&(b.c=new Yie(E4,b,5,8)),b.c),0),84);h=AGd(i);j=AGd(k);g=(!b.a&&(b.a=new C5d(F4,b,6,6)),b.a).i==0?null:RD(QHd((!b.a&&(b.a=new C5d(F4,b,6,6)),b.a),0),166);A=RD(Wjb(a.a,h),10);F=RD(Wjb(a.a,j),10);B=null;G=null;if(ZD(i,193)){w=RD(Wjb(a.a,i),305);if(ZD(w,12)){B=RD(w,12)}else if(ZD(w,10)){A=RD(w,10);B=RD(Vmb(A.j,0),12)}}if(ZD(k,193)){D=RD(Wjb(a.a,k),305);if(ZD(D,12)){G=RD(D,12)}else if(ZD(D,10)){F=RD(D,10);G=RD(Vmb(F.j,0),12)}}if(!A||!F){throw Adb(new Ked('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new a1b;kQb(p,b);pQb(p,(Ywc(),Awc),b);pQb(p,(yCc(),RAc),null);n=RD(mQb(d,kwc),21);A==F&&n.Fc((ovc(),nvc));if(!B){v=(BEc(),zEc);C=null;if(!!g&&Dod(RD(mQb(A,BBc),101))){C=new rjd(g.j,g.k);Fsd(C,kzd(b));Gsd(C,c);if(NGd(j,h)){v=yEc;$id(C,A.n)}}B=g2b(A,C,v,d)}if(!G){v=(BEc(),yEc);H=null;if(!!g&&Dod(RD(mQb(F,BBc),101))){H=new rjd(g.b,g.c);Fsd(H,kzd(b));Gsd(H,c)}G=g2b(F,H,v,Y2b(F))}Y0b(p,B);Z0b(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((ovc(),ivc));for(m=new dMd((!b.n&&(b.n=new C5d(I4,b,1,7)),b.n));m.e!=m.i.gc();){l=RD(bMd(m),135);if(!Heb(TD(Gxd(l,pBc)))&&!!l.a){q=h5b(l);Rmb(p.b,q);switch(RD(mQb(q,wAc),278).g){case 1:case 2:n.Fc((ovc(),gvc));break;case 0:n.Fc((ovc(),evc));pQb(q,wAc,(Omd(),Lmd));}}}f=RD(mQb(d,oAc),322);r=RD(mQb(d,kBc),323);e=f==(stc(),ptc)||r==(JDc(),FDc);if(!!g&&(!g.a&&(g.a=new XZd(D4,g,5)),g.a).i!=0&&e){s=ssd(g);o=new Ejd;for(u=Sub(s,0);u.b!=u.d.c;){t=RD(evb(u),8);Mub(o,new sjd(t))}pQb(p,Bwc,o)}return p} +function F0c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;C=0;D=0;A=new Tsb;v=RD(Lvb(JDb(GDb(new SDb(null,new Swb(a.b,16)),new v1c),new Z0c)),17).a+1;B=$C(kE,Pwe,28,v,15,1);q=$C(kE,Pwe,28,v,15,1);for(p=0;p1){for(h=G+1;hj.b.e.b*(1-r)+j.c.e.b*r){break}}if(w.gc()>0){H=j.a.b==0?ajd(j.b.e):RD(Rub(j.a),8);t=$id(ajd(RD(w.Xb(w.gc()-1),40).e),RD(w.Xb(w.gc()-1),40).f);m=$id(ajd(RD(w.Xb(0),40).e),RD(w.Xb(0),40).f);if(o>=w.gc()-1&&H.b>t.b&&j.c.e.b>t.b){continue}if(o<=0&&H.bj.b.e.a*(1-r)+j.c.e.a*r){break}}if(w.gc()>0){H=j.a.b==0?ajd(j.b.e):RD(Rub(j.a),8);t=$id(ajd(RD(w.Xb(w.gc()-1),40).e),RD(w.Xb(w.gc()-1),40).f);m=$id(ajd(RD(w.Xb(0),40).e),RD(w.Xb(0),40).f);if(o>=w.gc()-1&&H.a>t.a&&j.c.e.a>t.a){continue}if(o<=0&&H.a=Kfb(UD(mQb(a,(q$c(),$Zc))))&&++D}else{n.f&&n.d.e.a<=Kfb(UD(mQb(a,(q$c(),ZZc))))&&++C;n.g&&n.c.e.a+n.c.f.a>=Kfb(UD(mQb(a,(q$c(),YZc))))&&++D}}}else if(u==0){H0c(j)}else if(u<0){++B[G];++q[I];F=C0c(j,b,a,new Ptd(sgb(C),sgb(D)),c,d,new Ptd(sgb(q[I]),sgb(B[G])));C=RD(F.a,17).a;D=RD(F.b,17).a}}} +function qrc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;d=b;i=c;if(a.b&&d.j==(qpd(),ppd)&&i.j==(qpd(),ppd)){s=d;d=i;i=s}if(Ujb(a.a,d)){if(Zsb(RD(Wjb(a.a,d),49),i)){return 1}}else{Zjb(a.a,d,new _sb)}if(Ujb(a.a,i)){if(Zsb(RD(Wjb(a.a,i),49),d)){return -1}}else{Zjb(a.a,i,new _sb)}if(Ujb(a.d,d)){if(Zsb(RD(Wjb(a.d,d),49),i)){return -1}}else{Zjb(a.d,d,new _sb)}if(Ujb(a.d,i)){if(Zsb(RD(Wjb(a.a,i),49),d)){return 1}}else{Zjb(a.d,i,new _sb)}if(d.j!=i.j){r=yrc(d.j,i.j);r==-1?rrc(a,i,d):rrc(a,d,i);return r}if(d.e.c.length!=0&&i.e.c.length!=0){if(a.b){r=orc(d,i);if(r!=0){r==-1?rrc(a,i,d):r==1&&rrc(a,d,i);return r}}f=RD(Vmb(d.e,0),18).c.i;k=RD(Vmb(i.e,0),18).c.i;if(f==k){e=RD(mQb(RD(Vmb(d.e,0),18),(Ywc(),zwc)),17).a;j=RD(mQb(RD(Vmb(i.e,0),18),zwc),17).a;e>j?rrc(a,d,i):rrc(a,i,d);return ej?1:0}for(o=a.c,p=0,q=o.length;pj?rrc(a,d,i):rrc(a,i,d);return ej?1:0}if(a.b){r=orc(d,i);if(r!=0){r==-1?rrc(a,i,d):r==1&&rrc(a,d,i);return r}}g=0;l=0;nQb(RD(Vmb(d.g,0),18),zwc)&&(g=RD(mQb(RD(Vmb(d.g,0),18),zwc),17).a);nQb(RD(Vmb(i.g,0),18),zwc)&&(l=RD(mQb(RD(Vmb(d.g,0),18),zwc),17).a);if(!!h&&h==m){if(Heb(TD(mQb(RD(Vmb(d.g,0),18),Nwc)))&&!Heb(TD(mQb(RD(Vmb(i.g,0),18),Nwc)))){rrc(a,d,i);return 1}else if(!Heb(TD(mQb(RD(Vmb(d.g,0),18),Nwc)))&&Heb(TD(mQb(RD(Vmb(i.g,0),18),Nwc)))){rrc(a,i,d);return -1}g>l?rrc(a,d,i):rrc(a,i,d);return gl?1:0}if(a.f){a.f._b(h)&&(g=RD(a.f.xc(h),17).a);a.f._b(m)&&(l=RD(a.f.xc(m),17).a)}g>l?rrc(a,d,i):rrc(a,i,d);return gl?1:0}if(d.e.c.length!=0&&i.g.c.length!=0){rrc(a,d,i);return 1}else if(d.g.c.length!=0&&i.e.c.length!=0){rrc(a,i,d);return -1}else if(nQb(d,(Ywc(),zwc))&&nQb(i,zwc)){e=RD(mQb(d,zwc),17).a;j=RD(mQb(i,zwc),17).a;e>j?rrc(a,d,i):rrc(a,i,d);return ej?1:0}else{rrc(a,i,d);return -1}} +function Yae(a){if(a.gb)return;a.gb=true;a.b=jBd(a,0);iBd(a.b,18);oBd(a.b,19);a.a=jBd(a,1);iBd(a.a,1);oBd(a.a,2);oBd(a.a,3);oBd(a.a,4);oBd(a.a,5);a.o=jBd(a,2);iBd(a.o,8);iBd(a.o,9);oBd(a.o,10);oBd(a.o,11);oBd(a.o,12);oBd(a.o,13);oBd(a.o,14);oBd(a.o,15);oBd(a.o,16);oBd(a.o,17);oBd(a.o,18);oBd(a.o,19);oBd(a.o,20);oBd(a.o,21);oBd(a.o,22);oBd(a.o,23);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);nBd(a.o);a.p=jBd(a,3);iBd(a.p,2);iBd(a.p,3);iBd(a.p,4);iBd(a.p,5);oBd(a.p,6);oBd(a.p,7);nBd(a.p);nBd(a.p);a.q=jBd(a,4);iBd(a.q,8);a.v=jBd(a,5);oBd(a.v,9);nBd(a.v);nBd(a.v);nBd(a.v);a.w=jBd(a,6);iBd(a.w,2);iBd(a.w,3);iBd(a.w,4);oBd(a.w,5);a.B=jBd(a,7);oBd(a.B,1);nBd(a.B);nBd(a.B);nBd(a.B);a.Q=jBd(a,8);oBd(a.Q,0);nBd(a.Q);a.R=jBd(a,9);iBd(a.R,1);a.S=jBd(a,10);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);nBd(a.S);a.T=jBd(a,11);oBd(a.T,10);oBd(a.T,11);oBd(a.T,12);oBd(a.T,13);oBd(a.T,14);nBd(a.T);nBd(a.T);a.U=jBd(a,12);iBd(a.U,2);iBd(a.U,3);oBd(a.U,4);oBd(a.U,5);oBd(a.U,6);oBd(a.U,7);nBd(a.U);a.V=jBd(a,13);oBd(a.V,10);a.W=jBd(a,14);iBd(a.W,18);iBd(a.W,19);iBd(a.W,20);oBd(a.W,21);oBd(a.W,22);oBd(a.W,23);a.bb=jBd(a,15);iBd(a.bb,10);iBd(a.bb,11);iBd(a.bb,12);iBd(a.bb,13);iBd(a.bb,14);iBd(a.bb,15);iBd(a.bb,16);oBd(a.bb,17);nBd(a.bb);nBd(a.bb);a.eb=jBd(a,16);iBd(a.eb,2);iBd(a.eb,3);iBd(a.eb,4);iBd(a.eb,5);iBd(a.eb,6);iBd(a.eb,7);oBd(a.eb,8);oBd(a.eb,9);a.ab=jBd(a,17);iBd(a.ab,0);iBd(a.ab,1);a.H=jBd(a,18);oBd(a.H,0);oBd(a.H,1);oBd(a.H,2);oBd(a.H,3);oBd(a.H,4);oBd(a.H,5);nBd(a.H);a.db=jBd(a,19);oBd(a.db,2);a.c=kBd(a,20);a.d=kBd(a,21);a.e=kBd(a,22);a.f=kBd(a,23);a.i=kBd(a,24);a.g=kBd(a,25);a.j=kBd(a,26);a.k=kBd(a,27);a.n=kBd(a,28);a.r=kBd(a,29);a.s=kBd(a,30);a.t=kBd(a,31);a.u=kBd(a,32);a.fb=kBd(a,33);a.A=kBd(a,34);a.C=kBd(a,35);a.D=kBd(a,36);a.F=kBd(a,37);a.G=kBd(a,38);a.I=kBd(a,39);a.J=kBd(a,40);a.L=kBd(a,41);a.M=kBd(a,42);a.N=kBd(a,43);a.O=kBd(a,44);a.P=kBd(a,45);a.X=kBd(a,46);a.Y=kBd(a,47);a.Z=kBd(a,48);a.$=kBd(a,49);a._=kBd(a,50);a.cb=kBd(a,51);a.K=kBd(a,52)} +function d5b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;g=new Yub;w=RD(mQb(c,(yCc(),rAc)),88);p=0;ye(g,(!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));while(g.b!=0){k=RD(g.b==0?null:(sFb(g.b!=0),Wub(g,g.a.a)),27);j=vCd(k);(dE(Gxd(j,cAc))!==dE((kEc(),hEc))||dE(Gxd(j,pAc))===dE((Ptc(),Otc))||dE(Gxd(j,pAc))===dE((Ptc(),Mtc))||Heb(TD(Gxd(j,eAc)))||dE(Gxd(j,Yzc))!==dE((U$b(),T$b))||dE(Gxd(j,ZAc))===dE((aEc(),TDc))||dE(Gxd(j,ZAc))===dE((aEc(),UDc))||dE(Gxd(j,$Ac))===dE((_Cc(),SCc))||dE(Gxd(j,$Ac))===dE((_Cc(),UCc)))&&!Heb(TD(Gxd(k,aAc)))&&Ixd(k,(Ywc(),zwc),sgb(p++));r=!Heb(TD(Gxd(k,pBc)));if(r){m=(!k.a&&(k.a=new C5d(J4,k,10,11)),k.a).i!=0;o=a5b(k);n=dE(Gxd(k,IAc))===dE((Fnd(),Cnd));G=!Hxd(k,(umd(),Akd))||khb(WD(Gxd(k,Akd)));u=null;if(G&&n&&(m||o)){u=Z4b(k);pQb(u,rAc,w);nQb(u,PBc)&&HCc(new RCc(Kfb(UD(mQb(u,PBc)))),u);if(RD(Gxd(k,lBc),181).gc()!=0){l=u;FDb(new SDb(null,(!k.c&&(k.c=new C5d(K4,k,9,9)),new Swb(k.c,16))),new u5b(l));V4b(k,u)}}A=c;B=RD(Wjb(a.a,vCd(k)),10);!!B&&(A=B.e);t=i5b(a,k,A);if(u){t.e=u;u.e=t;ye(g,(!k.a&&(k.a=new C5d(J4,k,10,11)),k.a))}}}p=0;Pub(g,b,g.c.b,g.c);while(g.b!=0){f=RD(g.b==0?null:(sFb(g.b!=0),Wub(g,g.a.a)),27);for(i=new dMd((!f.b&&(f.b=new C5d(G4,f,12,3)),f.b));i.e!=i.i.gc();){h=RD(bMd(i),74);X4b(h);(dE(Gxd(b,cAc))!==dE((kEc(),hEc))||dE(Gxd(b,pAc))===dE((Ptc(),Otc))||dE(Gxd(b,pAc))===dE((Ptc(),Mtc))||Heb(TD(Gxd(b,eAc)))||dE(Gxd(b,Yzc))!==dE((U$b(),T$b))||dE(Gxd(b,ZAc))===dE((aEc(),TDc))||dE(Gxd(b,ZAc))===dE((aEc(),UDc))||dE(Gxd(b,$Ac))===dE((_Cc(),SCc))||dE(Gxd(b,$Ac))===dE((_Cc(),UCc)))&&Ixd(h,(Ywc(),zwc),sgb(p++));D=AGd(RD(QHd((!h.b&&(h.b=new Yie(E4,h,4,7)),h.b),0),84));F=AGd(RD(QHd((!h.c&&(h.c=new Yie(E4,h,5,8)),h.c),0),84));if(Heb(TD(Gxd(h,pBc)))||Heb(TD(Gxd(D,pBc)))||Heb(TD(Gxd(F,pBc)))){continue}q=ozd(h)&&Heb(TD(Gxd(D,NAc)))&&Heb(TD(Gxd(h,OAc)));v=f;q||NGd(F,D)?(v=D):NGd(D,F)&&(v=F);A=c;B=RD(Wjb(a.a,v),10);!!B&&(A=B.e);s=f5b(a,h,v,A);pQb(s,(Ywc(),Zvc),_4b(a,h,b,c))}n=dE(Gxd(f,IAc))===dE((Fnd(),Cnd));if(n){for(e=new dMd((!f.a&&(f.a=new C5d(J4,f,10,11)),f.a));e.e!=e.i.gc();){d=RD(bMd(e),27);G=!Hxd(d,(umd(),Akd))||khb(WD(Gxd(d,Akd)));C=dE(Gxd(d,IAc))===dE(Cnd);G&&C&&(Pub(g,d,g.c.b,g.c),true)}}}} +function Ywc(){Ywc=geb;var a,b;Awc=new jGd(rAe);Zvc=new jGd('coordinateOrigin');Kwc=new jGd('processors');Yvc=new kGd('compoundNode',(Geb(),false));nwc=new kGd('insideConnections',false);Bwc=new jGd('originalBendpoints');Cwc=new jGd('originalDummyNodePosition');Dwc=new jGd('originalLabelEdge');Mwc=new jGd('representedLabels');cwc=new jGd('endLabels');dwc=new jGd('endLabel.origin');swc=new kGd('labelSide',(Pnd(),Ond));ywc=new kGd('maxEdgeThickness',0);Nwc=new kGd('reversed',false);Lwc=new jGd(sAe);vwc=new kGd('longEdgeSource',null);wwc=new kGd('longEdgeTarget',null);uwc=new kGd('longEdgeHasLabelDummies',false);twc=new kGd('longEdgeBeforeLabelDummy',false);bwc=new kGd('edgeConstraint',(huc(),fuc));pwc=new jGd('inLayerLayoutUnit');owc=new kGd('inLayerConstraint',(Gvc(),Evc));qwc=new kGd('inLayerSuccessorConstraint',new bnb);rwc=new kGd('inLayerSuccessorConstraintBetweenNonDummies',false);Iwc=new jGd('portDummy');$vc=new kGd('crossingHint',sgb(0));kwc=new kGd('graphProperties',(b=RD(mfb(iX),9),new Fsb(b,RD(WEb(b,b.length),9),0)));hwc=new kGd('externalPortSide',(qpd(),opd));iwc=new kGd('externalPortSize',new pjd);fwc=new jGd('externalPortReplacedDummies');gwc=new jGd('externalPortReplacedDummy');ewc=new kGd('externalPortConnections',(a=RD(mfb(E3),9),new Fsb(a,RD(WEb(a,a.length),9),0)));Jwc=new kGd(Xye,0);Uvc=new jGd('barycenterAssociates');Xwc=new jGd('TopSideComments');Vvc=new jGd('BottomSideComments');Xvc=new jGd('CommentConnectionPort');mwc=new kGd('inputCollect',false);Gwc=new kGd('outputCollect',false);awc=new kGd('cyclic',false);_vc=new jGd('crossHierarchyMap');Wwc=new jGd('targetOffset');new kGd('splineLabelSize',new pjd);Qwc=new jGd('spacings');Hwc=new kGd('partitionConstraint',false);Wvc=new jGd('breakingPoint.info');Uwc=new jGd('splines.survivingEdge');Twc=new jGd('splines.route.start');Rwc=new jGd('splines.edgeChain');Fwc=new jGd('originalPortConstraints');Pwc=new jGd('selfLoopHolder');Swc=new jGd('splines.nsPortY');zwc=new jGd('modelOrder');xwc=new jGd('longEdgeTargetNode');jwc=new kGd(GBe,false);Owc=new kGd(GBe,false);lwc=new jGd('layerConstraints.hiddenNodes');Ewc=new jGd('layerConstraints.opposidePort');Vwc=new jGd('targetNode.modelOrder')} +function D0c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;for(l=Sub(a.b,0);l.b!=l.d.c;){k=RD(evb(l),40);if(lhb(k.c,IEe)){continue}f=RD(zDb(new SDb(null,new Swb(hWc(k,a),16)),tBb(new ZBb,new XBb,new wCb,cD(WC(QL,1),jwe,108,0,[(xBb(),vBb)]))),15);b==(Cmd(),ymd)||b==zmd?f.jd(new L1c):f.jd(new R1c);o=f.gc();for(e=0;e0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(i-n)/($wnd.Math.abs(h-m)/40)>50&&(n>i?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a+d/5.3,k.e.b+k.f.b*g-d/2)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a+d/5.3,k.e.b+k.f.b*g+d/2)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a,k.e.b+k.f.b*g))}else if(b==zmd){j=Kfb(UD(mQb(k,(q$c(),f$c))));if(k.e.a-d>j){Oub(RD(f.Xb(e),65).a,new rjd(j-c,k.e.b+k.f.b*g))}else if(RD(f.Xb(e),65).a.b>0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(i-n)/($wnd.Math.abs(h-m)/40)>50&&(n>i?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a-d/5.3,k.e.b+k.f.b*g-d/2)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a-d/5.3,k.e.b+k.f.b*g+d/2)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a,k.e.b+k.f.b*g))}else if(b==Bmd){j=Kfb(UD(mQb(k,(q$c(),e$c))));if(k.e.b+k.f.b+d0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(h-m)/($wnd.Math.abs(i-n)/40)>50&&(m>h?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g-d/2,k.e.b+d/5.3+k.f.b)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g+d/2,k.e.b+d/5.3+k.f.b)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,k.e.b+k.f.b))}else{j=Kfb(UD(mQb(k,(q$c(),f$c))));if(mWc(RD(f.Xb(e),65),a)){Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,RD(Rub(RD(f.Xb(e),65).a),8).b))}else if(k.e.b-d>j){Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,j-c))}else if(RD(f.Xb(e),65).a.b>0){h=RD(Rub(RD(f.Xb(e),65).a),8).a;m=k.e.a+k.f.a/2;i=RD(Rub(RD(f.Xb(e),65).a),8).b;n=k.e.b+k.f.b/2;d>0&&$wnd.Math.abs(h-m)/($wnd.Math.abs(i-n)/40)>50&&(m>h?Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g-d/2,k.e.b-d/5.3)):Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g+d/2,k.e.b-d/5.3)))}Oub(RD(f.Xb(e),65).a,new rjd(k.e.a+k.f.a*g,k.e.b))}}}} +function umd(){umd=geb;var a,b;Akd=new jGd(OGe);Tld=new jGd(PGe);Ckd=(Rjd(),Ljd);Bkd=new lGd(MDe,Ckd);new Xsd;Dkd=new lGd(Dze,null);Ekd=new jGd(QGe);Lkd=(ukd(),ysb(tkd,cD(WC(q3,1),jwe,298,0,[pkd])));Kkd=new lGd(YDe,Lkd);Mkd=new lGd(LDe,(Geb(),false));Okd=(Cmd(),Amd);Nkd=new lGd(PDe,Okd);Tkd=(Ymd(),Xmd);Skd=new lGd(kDe,Tkd);Wkd=new lGd(MGe,false);Ykd=(Fnd(),Dnd);Xkd=new lGd(fDe,Ykd);uld=new A3b(12);tld=new lGd(Eze,uld);ald=new lGd(dAe,false);bld=new lGd(iEe,false);sld=new lGd(gAe,false);Ild=(Bod(),Aod);Hld=new lGd(eAe,Ild);Qld=new jGd(fEe);Rld=new jGd($ze);Sld=new jGd(bAe);Vld=new jGd(cAe);dld=new Ejd;cld=new lGd(ZDe,dld);Jkd=new lGd(aEe,false);Zkd=new lGd(bEe,false);new jGd(RGe);fld=new P2b;eld=new lGd(gEe,fld);rld=new lGd(JDe,false);new Xsd;Uld=new lGd(SGe,1);Ikd=new jGd(TGe);Hkd=new jGd(UGe);mmd=new lGd(mAe,false);new lGd(VGe,true);sgb(0);new lGd(WGe,sgb(100));new lGd(XGe,false);sgb(0);new lGd(YGe,sgb(4000));sgb(0);new lGd(ZGe,sgb(400));new lGd($Ge,false);new lGd(_Ge,false);new lGd(aHe,true);new lGd(bHe,false);Gkd=(Grd(),Frd);Fkd=new lGd(NGe,Gkd);Wld=new lGd(xDe,10);Xld=new lGd(yDe,10);Yld=new lGd(Bze,20);Zld=new lGd(zDe,10);$ld=new lGd(aAe,2);_ld=new lGd(ADe,10);bmd=new lGd(BDe,0);cmd=new lGd(EDe,5);dmd=new lGd(CDe,1);emd=new lGd(DDe,1);fmd=new lGd(_ze,20);gmd=new lGd(FDe,10);jmd=new lGd(GDe,10);amd=new jGd(HDe);imd=new Q2b;hmd=new lGd(hEe,imd);xld=new jGd(eEe);wld=false;vld=new lGd(dEe,wld);hld=new A3b(5);gld=new lGd(QDe,hld);jld=(dod(),b=RD(mfb(A3),9),new Fsb(b,RD(WEb(b,b.length),9),0));ild=new lGd(kAe,jld);Ald=(pod(),mod);zld=new lGd(TDe,Ald);Cld=new jGd(UDe);Dld=new jGd(VDe);Eld=new jGd(WDe);Bld=new jGd(XDe);lld=(a=RD(mfb(H3),9),new Fsb(a,RD(WEb(a,a.length),9),0));kld=new lGd(jAe,lld);qld=xsb((dqd(),Ypd));pld=new lGd(iAe,qld);old=new rjd(0,0);nld=new lGd(CAe,old);mld=new lGd(hAe,false);Rkd=(Omd(),Lmd);Qkd=new lGd($De,Rkd);Pkd=new lGd(fAe,false);new jGd(cHe);sgb(1);new lGd(dHe,null);Fld=new jGd(cEe);Jld=new jGd(_De);Pld=(qpd(),opd);Old=new lGd(KDe,Pld);Gld=new jGd(IDe);Mld=(Pod(),xsb(Nod));Lld=new lGd(lAe,Mld);Kld=new lGd(RDe,false);Nld=new lGd(SDe,true);new Xsd;qmd=new lGd(nAe,1);smd=new lGd(eHe,null);lmd=new lGd(oAe,150);kmd=new lGd(pAe,1.414);nmd=new lGd(qAe,null);omd=new lGd(fHe,1);$kd=new lGd(NDe,false);_kd=new lGd(ODe,false);Ukd=new lGd(Cze,1);Vkd=(ind(),gnd);new lGd(gHe,Vkd);yld=true;rmd=(mqd(),jqd);tmd=jqd;pmd=jqd} +function hcc(){hcc=geb;nbc=new icc('DIRECTION_PREPROCESSOR',0);kbc=new icc('COMMENT_PREPROCESSOR',1);obc=new icc('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);Ebc=new icc('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);Xbc=new icc('PARTITION_PREPROCESSOR',4);Ibc=new icc('LABEL_DUMMY_INSERTER',5);bcc=new icc('SELF_LOOP_PREPROCESSOR',6);Nbc=new icc('LAYER_CONSTRAINT_PREPROCESSOR',7);Vbc=new icc('PARTITION_MIDPROCESSOR',8);zbc=new icc('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);Rbc=new icc('NODE_PROMOTION',10);Mbc=new icc('LAYER_CONSTRAINT_POSTPROCESSOR',11);Wbc=new icc('PARTITION_POSTPROCESSOR',12);vbc=new icc('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);dcc=new icc('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);ebc=new icc('BREAKING_POINT_INSERTER',15);Qbc=new icc('LONG_EDGE_SPLITTER',16);Zbc=new icc('PORT_SIDE_PROCESSOR',17);Fbc=new icc('INVERTED_PORT_PROCESSOR',18);Ybc=new icc('PORT_LIST_SORTER',19);fcc=new icc('SORT_BY_INPUT_ORDER_OF_MODEL',20);Tbc=new icc('NORTH_SOUTH_PORT_PREPROCESSOR',21);fbc=new icc('BREAKING_POINT_PROCESSOR',22);Ubc=new icc(jBe,23);gcc=new icc(kBe,24);_bc=new icc('SELF_LOOP_PORT_RESTORER',25);ecc=new icc('SINGLE_EDGE_GRAPH_WRAPPER',26);Gbc=new icc('IN_LAYER_CONSTRAINT_PROCESSOR',27);sbc=new icc('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);Hbc=new icc('LABEL_AND_NODE_SIZE_PROCESSOR',29);Dbc=new icc('INNERMOST_NODE_MARGIN_CALCULATOR',30);ccc=new icc('SELF_LOOP_ROUTER',31);ibc=new icc('COMMENT_NODE_MARGIN_CALCULATOR',32);qbc=new icc('END_LABEL_PREPROCESSOR',33);Kbc=new icc('LABEL_DUMMY_SWITCHER',34);hbc=new icc('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);Lbc=new icc('LABEL_SIDE_SELECTOR',36);Bbc=new icc('HYPEREDGE_DUMMY_MERGER',37);wbc=new icc('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);Obc=new icc('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);ybc=new icc('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);lbc=new icc('CONSTRAINTS_POSTPROCESSOR',41);jbc=new icc('COMMENT_POSTPROCESSOR',42);Cbc=new icc('HYPERNODE_PROCESSOR',43);xbc=new icc('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);Pbc=new icc('LONG_EDGE_JOINER',45);acc=new icc('SELF_LOOP_POSTPROCESSOR',46);gbc=new icc('BREAKING_POINT_REMOVER',47);Sbc=new icc('NORTH_SOUTH_PORT_POSTPROCESSOR',48);Abc=new icc('HORIZONTAL_COMPACTOR',49);Jbc=new icc('LABEL_DUMMY_REMOVER',50);tbc=new icc('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);rbc=new icc('END_LABEL_SORTER',52);$bc=new icc('REVERSED_EDGE_RESTORER',53);pbc=new icc('END_LABEL_POSTPROCESSOR',54);ubc=new icc('HIERARCHICAL_NODE_RESIZER',55);mbc=new icc('DIRECTION_POSTPROCESSOR',56)} +function Ozc(){Ozc=geb;Uxc=($tc(),Ytc);Txc=new lGd(HBe,Uxc);jyc=new lGd(IBe,(Geb(),false));pyc=(Ovc(),Mvc);oyc=new lGd(JBe,pyc);Hyc=new lGd(KBe,false);Iyc=new lGd(LBe,true);ixc=new lGd(MBe,false);azc=(sEc(),qEc);_yc=new lGd(NBe,azc);sgb(1);izc=new lGd(OBe,sgb(7));jzc=new lGd(PBe,false);kyc=new lGd(QBe,false);Sxc=(Ptc(),Ltc);Rxc=new lGd(RBe,Sxc);Gyc=(_Cc(),ZCc);Fyc=new lGd(SBe,Gyc);wyc=(cxc(),bxc);vyc=new lGd(TBe,wyc);sgb(-1);uyc=new lGd(UBe,null);sgb(-1);xyc=new lGd(VBe,sgb(-1));sgb(-1);yyc=new lGd(WBe,sgb(4));sgb(-1);Ayc=new lGd(XBe,sgb(2));Eyc=(aEc(),$Dc);Dyc=new lGd(YBe,Eyc);sgb(0);Cyc=new lGd(ZBe,sgb(0));syc=new lGd($Be,sgb(lve));Qxc=(stc(),qtc);Pxc=new lGd(_Be,Qxc);yxc=new lGd(aCe,false);Hxc=new lGd(bCe,0.1);Nxc=new lGd(cCe,false);Jxc=new lGd(dCe,null);Kxc=new lGd(eCe,null);sgb(-1);Lxc=new lGd(fCe,null);sgb(-1);Mxc=new lGd(gCe,sgb(-1));sgb(0);zxc=new lGd(hCe,sgb(40));Fxc=(xvc(),wvc);Exc=new lGd(iCe,Fxc);Bxc=uvc;Axc=new lGd(jCe,Bxc);$yc=(JDc(),EDc);Zyc=new lGd(kCe,$yc);Pyc=new jGd(lCe);Kyc=(Cuc(),Auc);Jyc=new lGd(mCe,Kyc);Nyc=(Ouc(),Luc);Myc=new lGd(nCe,Nyc);new Xsd;Syc=new lGd(oCe,0.3);Uyc=new jGd(pCe);Wyc=(wDc(),uDc);Vyc=new lGd(qCe,Wyc);ayc=(KEc(),IEc);_xc=new lGd(rCe,ayc);cyc=(TEc(),SEc);byc=new lGd(sCe,cyc);eyc=(lFc(),kFc);dyc=new lGd(tCe,eyc);gyc=new lGd(uCe,0.2);Zxc=new lGd(vCe,2);ezc=new lGd(wCe,null);gzc=new lGd(xCe,10);fzc=new lGd(yCe,10);hzc=new lGd(zCe,20);sgb(0);bzc=new lGd(ACe,sgb(0));sgb(0);czc=new lGd(BCe,sgb(0));sgb(0);dzc=new lGd(CCe,sgb(0));jxc=new lGd(DCe,false);nxc=($uc(),Yuc);mxc=new lGd(ECe,nxc);lxc=(jtc(),itc);kxc=new lGd(FCe,lxc);myc=new lGd(GCe,false);sgb(0);lyc=new lGd(HCe,sgb(16));sgb(0);nyc=new lGd(ICe,sgb(5));Gzc=(DFc(),BFc);Fzc=new lGd(JCe,Gzc);kzc=new lGd(KCe,10);nzc=new lGd(LCe,1);wzc=(Etc(),Dtc);vzc=new lGd(MCe,wzc);qzc=new jGd(NCe);tzc=sgb(1);sgb(0);szc=new lGd(OCe,tzc);Lzc=(uFc(),rFc);Kzc=new lGd(PCe,Lzc);Hzc=new jGd(QCe);Bzc=new lGd(RCe,true);zzc=new lGd(SCe,2);Dzc=new lGd(TCe,true);Yxc=(tuc(),ruc);Xxc=new lGd(UCe,Yxc);Wxc=(btc(),Zsc);Vxc=new lGd(VCe,Wxc);xxc=(kEc(),hEc);wxc=new lGd(WCe,xxc);vxc=new lGd(XCe,false);uxc=new lGd(YCe,false);pxc=(U$b(),T$b);oxc=new lGd(ZCe,pxc);txc=(lDc(),iDc);sxc=new lGd($Ce,txc);qxc=new lGd(_Ce,0);rxc=new lGd(aDe,0);ryc=Ntc;qyc=ptc;zyc=YCc;Byc=YCc;tyc=TCc;Ixc=(Fnd(),Cnd);Oxc=qtc;Gxc=qtc;Cxc=qtc;Dxc=Cnd;Qyc=HDc;Ryc=EDc;Lyc=EDc;Oyc=EDc;Tyc=GDc;Yyc=HDc;Xyc=HDc;fyc=(Ymd(),Wmd);hyc=Wmd;iyc=kFc;$xc=Vmd;lzc=CFc;mzc=AFc;ozc=CFc;pzc=AFc;xzc=CFc;yzc=AFc;rzc=Ctc;uzc=Dtc;Mzc=CFc;Nzc=AFc;Izc=CFc;Jzc=AFc;Czc=AFc;Azc=AFc;Ezc=AFc} +function iNc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sFb(Y.b>0),RD(Y.a.Xb(Y.c=--Y.b),12));X=0;for(h=new Anb(U.e);h.a0){if(U.j==(qpd(),Yod)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Tsb;o=new Iub;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Wnb(p,0,p.length,null);gb=$C(kE,Pwe,28,p.length,15,1);d=$C(kE,Pwe,28,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=$C(NY,rve,374,p.length*2,0,1);for(u=0;u0&&(ltd(J.f),false)){if(RD(Gxd(r,nmd),280)==jqd){throw Adb(new Jed('Topdown Layout Providers should only be used on parallel nodes.'))}fE(ltd(J.f));null.Um();zyd(r,$wnd.Math.max(r.g,null.Vm),$wnd.Math.max(r.f,null.Vm))}else if(Gxd(r,smd)!=null){h=RD(Gxd(r,smd),347);W=h.Tg(r);zyd(r,$wnd.Math.max(r.g,W.a),$wnd.Math.max(r.f,W.b))}}}O=RD(Gxd(b,tld),107);n=b.g-(O.b+O.c);m=b.f-(O.d+O.a);Z.bh('Available Child Area: ('+n+'|'+m+')');Ixd(b,Dkd,n/m);Ced(b,e,d.eh(M));if(RD(Gxd(b,nmd),280)==lqd){psd(b);zyd(b,O.b+Kfb(UD(Gxd(b,Ikd)))+O.c,O.d+Kfb(UD(Gxd(b,Hkd)))+O.a)}Z.bh('Executed layout algorithm: '+WD(Gxd(b,Akd))+' on node '+b.k);if(RD(Gxd(b,nmd),280)==jqd){if(n<0||m<0){throw Adb(new Jed('The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. '+b.k))}Hxd(b,Ikd)||Hxd(b,Hkd)||psd(b);p=Kfb(UD(Gxd(b,Ikd)));o=Kfb(UD(Gxd(b,Hkd)));Z.bh('Desired Child Area: ('+p+'|'+o+')');Q=n/p;R=m/o;P=$wnd.Math.min(Q,$wnd.Math.min(R,Kfb(UD(Gxd(b,omd)))));Ixd(b,qmd,P);Z.bh(b.k+' -- Local Scale Factor (X|Y): ('+Q+'|'+R+')');u=RD(Gxd(b,Kkd),21);f=0;g=0;P'?":lhb(XIe,a)?"'(?<' or '(? toIndex: ',bye=', toIndex: ',cye='Index: ',dye=', Size: ',eye='org.eclipse.elk.alg.common',fye={50:1},gye='org.eclipse.elk.alg.common.compaction',hye='Scanline/EventHandler',iye='org.eclipse.elk.alg.common.compaction.oned',jye='CNode belongs to another CGroup.',kye='ISpacingsHandler/1',lye='The ',mye=' instance has been finished already.',nye='The direction ',oye=' is not supported by the CGraph instance.',pye='OneDimensionalCompactor',qye='OneDimensionalCompactor/lambda$0$Type',rye='Quadruplet',sye='ScanlineConstraintCalculator',tye='ScanlineConstraintCalculator/ConstraintsScanlineHandler',uye='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',vye='ScanlineConstraintCalculator/Timestamp',wye='ScanlineConstraintCalculator/lambda$0$Type',xye={178:1,46:1},yye='org.eclipse.elk.alg.common.compaction.options',zye='org.eclipse.elk.core.data',Aye='org.eclipse.elk.polyomino.traversalStrategy',Bye='org.eclipse.elk.polyomino.lowLevelSort',Cye='org.eclipse.elk.polyomino.highLevelSort',Dye='org.eclipse.elk.polyomino.fill',Eye={134:1},Fye='polyomino',Gye='org.eclipse.elk.alg.common.networksimplex',Hye={183:1,3:1,4:1},Iye='org.eclipse.elk.alg.common.nodespacing',Jye='org.eclipse.elk.alg.common.nodespacing.cellsystem',Kye='CENTER',Lye={217:1,336:1},Mye={3:1,4:1,5:1,603:1},Nye='LEFT',Oye='RIGHT',Pye='Vertical alignment cannot be null',Qye='BOTTOM',Rye='org.eclipse.elk.alg.common.nodespacing.internal',Sye='UNDEFINED',Tye=0.01,Uye='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',Vye='LabelPlacer/lambda$0$Type',Wye='LabelPlacer/lambda$1$Type',Xye='portRatioOrPosition',Yye='org.eclipse.elk.alg.common.overlaps',Zye='DOWN',$ye='org.eclipse.elk.alg.common.polyomino',_ye='NORTH',aze='EAST',bze='SOUTH',cze='WEST',dze='org.eclipse.elk.alg.common.polyomino.structures',eze='Direction',fze='Grid is only of size ',gze='. Requested point (',hze=') is out of bounds.',ize=' Given center based coordinates were (',jze='org.eclipse.elk.graph.properties',kze='IPropertyHolder',lze={3:1,96:1,137:1},mze='org.eclipse.elk.alg.common.spore',nze='org.eclipse.elk.alg.common.utils',oze={205:1},pze='org.eclipse.elk.core',qze='Connected Components Compaction',rze='org.eclipse.elk.alg.disco',sze='org.eclipse.elk.alg.disco.graph',tze='org.eclipse.elk.alg.disco.options',uze='CompactionStrategy',vze='org.eclipse.elk.disco.componentCompaction.strategy',wze='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',xze='org.eclipse.elk.disco.debug.discoGraph',yze='org.eclipse.elk.disco.debug.discoPolys',zze='componentCompaction',Aze='org.eclipse.elk.disco',Bze='org.eclipse.elk.spacing.componentComponent',Cze='org.eclipse.elk.edge.thickness',Dze='org.eclipse.elk.aspectRatio',Eze='org.eclipse.elk.padding',Fze='org.eclipse.elk.alg.disco.transform',Gze=1.5707963267948966,Hze=1.7976931348623157E308,Ize={3:1,4:1,5:1,198:1},Jze={3:1,6:1,4:1,5:1,100:1,115:1},Kze='org.eclipse.elk.alg.force',Lze='ComponentsProcessor',Mze='ComponentsProcessor/1',Nze='ElkGraphImporter/lambda$0$Type',Oze='org.eclipse.elk.alg.force.graph',Pze='Component Layout',Qze='org.eclipse.elk.alg.force.model',Rze='org.eclipse.elk.force.model',Sze='org.eclipse.elk.force.iterations',Tze='org.eclipse.elk.force.repulsivePower',Uze='org.eclipse.elk.force.temperature',Vze=0.001,Wze='org.eclipse.elk.force.repulsion',Xze='org.eclipse.elk.alg.force.options',Yze=1.600000023841858,Zze='org.eclipse.elk.force',$ze='org.eclipse.elk.priority',_ze='org.eclipse.elk.spacing.nodeNode',aAe='org.eclipse.elk.spacing.edgeLabel',bAe='org.eclipse.elk.randomSeed',cAe='org.eclipse.elk.separateConnectedComponents',dAe='org.eclipse.elk.interactive',eAe='org.eclipse.elk.portConstraints',fAe='org.eclipse.elk.edgeLabels.inline',gAe='org.eclipse.elk.omitNodeMicroLayout',hAe='org.eclipse.elk.nodeSize.fixedGraphSize',iAe='org.eclipse.elk.nodeSize.options',jAe='org.eclipse.elk.nodeSize.constraints',kAe='org.eclipse.elk.nodeLabels.placement',lAe='org.eclipse.elk.portLabels.placement',mAe='org.eclipse.elk.topdownLayout',nAe='org.eclipse.elk.topdown.scaleFactor',oAe='org.eclipse.elk.topdown.hierarchicalNodeWidth',pAe='org.eclipse.elk.topdown.hierarchicalNodeAspectRatio',qAe='org.eclipse.elk.topdown.nodeType',rAe='origin',sAe='random',tAe='boundingBox.upLeft',uAe='boundingBox.lowRight',vAe='org.eclipse.elk.stress.fixed',wAe='org.eclipse.elk.stress.desiredEdgeLength',xAe='org.eclipse.elk.stress.dimension',yAe='org.eclipse.elk.stress.epsilon',zAe='org.eclipse.elk.stress.iterationLimit',AAe='org.eclipse.elk.stress',BAe='ELK Stress',CAe='org.eclipse.elk.nodeSize.minimum',DAe='org.eclipse.elk.alg.force.stress',EAe='Layered layout',FAe='org.eclipse.elk.alg.layered',GAe='org.eclipse.elk.alg.layered.compaction.components',HAe='org.eclipse.elk.alg.layered.compaction.oned',IAe='org.eclipse.elk.alg.layered.compaction.oned.algs',JAe='org.eclipse.elk.alg.layered.compaction.recthull',KAe='org.eclipse.elk.alg.layered.components',LAe='NONE',MAe='MODEL_ORDER',NAe={3:1,6:1,4:1,9:1,5:1,126:1},OAe={3:1,6:1,4:1,5:1,150:1,100:1,115:1},PAe='org.eclipse.elk.alg.layered.compound',QAe={47:1},RAe='org.eclipse.elk.alg.layered.graph',SAe=' -> ',TAe='Not supported by LGraph',UAe='Port side is undefined',VAe={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},WAe={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},XAe={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},YAe='([{"\' \t\r\n',ZAe=')]}"\' \t\r\n',$Ae='The given string contains parts that cannot be parsed as numbers.',_Ae='org.eclipse.elk.core.math',aBe={3:1,4:1,140:1,214:1,423:1},bBe={3:1,4:1,107:1,214:1,423:1},cBe='org.eclipse.elk.alg.layered.graph.transform',dBe='ElkGraphImporter',eBe='ElkGraphImporter/lambda$1$Type',fBe='ElkGraphImporter/lambda$2$Type',gBe='ElkGraphImporter/lambda$4$Type',hBe='org.eclipse.elk.alg.layered.intermediate',iBe='Node margin calculation',jBe='ONE_SIDED_GREEDY_SWITCH',kBe='TWO_SIDED_GREEDY_SWITCH',lBe='No implementation is available for the layout processor ',mBe='IntermediateProcessorStrategy',nBe="Node '",oBe='FIRST_SEPARATE',pBe='LAST_SEPARATE',qBe='Odd port side processing',rBe='org.eclipse.elk.alg.layered.intermediate.compaction',sBe='org.eclipse.elk.alg.layered.intermediate.greedyswitch',tBe='org.eclipse.elk.alg.layered.p3order.counting',uBe={230:1},vBe='org.eclipse.elk.alg.layered.intermediate.loops',wBe='org.eclipse.elk.alg.layered.intermediate.loops.ordering',xBe='org.eclipse.elk.alg.layered.intermediate.loops.routing',yBe='org.eclipse.elk.alg.layered.intermediate.preserveorder',zBe='org.eclipse.elk.alg.layered.intermediate.wrapping',ABe='org.eclipse.elk.alg.layered.options',BBe='INTERACTIVE',CBe='GREEDY',DBe='DEPTH_FIRST',EBe='EDGE_LENGTH',FBe='SELF_LOOPS',GBe='firstTryWithInitialOrder',HBe='org.eclipse.elk.layered.directionCongruency',IBe='org.eclipse.elk.layered.feedbackEdges',JBe='org.eclipse.elk.layered.interactiveReferencePoint',KBe='org.eclipse.elk.layered.mergeEdges',LBe='org.eclipse.elk.layered.mergeHierarchyEdges',MBe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',NBe='org.eclipse.elk.layered.portSortingStrategy',OBe='org.eclipse.elk.layered.thoroughness',PBe='org.eclipse.elk.layered.unnecessaryBendpoints',QBe='org.eclipse.elk.layered.generatePositionAndLayerIds',RBe='org.eclipse.elk.layered.cycleBreaking.strategy',SBe='org.eclipse.elk.layered.layering.strategy',TBe='org.eclipse.elk.layered.layering.layerConstraint',UBe='org.eclipse.elk.layered.layering.layerChoiceConstraint',VBe='org.eclipse.elk.layered.layering.layerId',WBe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',XBe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',YBe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ZBe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',$Be='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',_Be='org.eclipse.elk.layered.crossingMinimization.strategy',aCe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',bCe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',cCe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',dCe='org.eclipse.elk.layered.crossingMinimization.inLayerPredOf',eCe='org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf',fCe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',gCe='org.eclipse.elk.layered.crossingMinimization.positionId',hCe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',iCe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',jCe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',kCe='org.eclipse.elk.layered.nodePlacement.strategy',lCe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',mCe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',nCe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',oCe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',pCe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',qCe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',rCe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',sCe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',tCe='org.eclipse.elk.layered.edgeRouting.splines.mode',uCe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',vCe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',wCe='org.eclipse.elk.layered.spacing.baseValue',xCe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',yCe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',zCe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',ACe='org.eclipse.elk.layered.priority.direction',BCe='org.eclipse.elk.layered.priority.shortness',CCe='org.eclipse.elk.layered.priority.straightness',DCe='org.eclipse.elk.layered.compaction.connectedComponents',ECe='org.eclipse.elk.layered.compaction.postCompaction.strategy',FCe='org.eclipse.elk.layered.compaction.postCompaction.constraints',GCe='org.eclipse.elk.layered.highDegreeNodes.treatment',HCe='org.eclipse.elk.layered.highDegreeNodes.threshold',ICe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',JCe='org.eclipse.elk.layered.wrapping.strategy',KCe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',LCe='org.eclipse.elk.layered.wrapping.correctionFactor',MCe='org.eclipse.elk.layered.wrapping.cutting.strategy',NCe='org.eclipse.elk.layered.wrapping.cutting.cuts',OCe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',PCe='org.eclipse.elk.layered.wrapping.validify.strategy',QCe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',RCe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',SCe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',TCe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',UCe='org.eclipse.elk.layered.edgeLabels.sideSelection',VCe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',WCe='org.eclipse.elk.layered.considerModelOrder.strategy',XCe='org.eclipse.elk.layered.considerModelOrder.portModelOrder',YCe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',ZCe='org.eclipse.elk.layered.considerModelOrder.components',$Ce='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',_Ce='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',aDe='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',bDe='layering',cDe='layering.minWidth',dDe='layering.nodePromotion',eDe='crossingMinimization',fDe='org.eclipse.elk.hierarchyHandling',gDe='crossingMinimization.greedySwitch',hDe='nodePlacement',iDe='nodePlacement.bk',jDe='edgeRouting',kDe='org.eclipse.elk.edgeRouting',lDe='spacing',mDe='priority',nDe='compaction',oDe='compaction.postCompaction',pDe='Specifies whether and how post-process compaction is applied.',qDe='highDegreeNodes',rDe='wrapping',sDe='wrapping.cutting',tDe='wrapping.validify',uDe='wrapping.multiEdge',vDe='edgeLabels',wDe='considerModelOrder',xDe='org.eclipse.elk.spacing.commentComment',yDe='org.eclipse.elk.spacing.commentNode',zDe='org.eclipse.elk.spacing.edgeEdge',ADe='org.eclipse.elk.spacing.edgeNode',BDe='org.eclipse.elk.spacing.labelLabel',CDe='org.eclipse.elk.spacing.labelPortHorizontal',DDe='org.eclipse.elk.spacing.labelPortVertical',EDe='org.eclipse.elk.spacing.labelNode',FDe='org.eclipse.elk.spacing.nodeSelfLoop',GDe='org.eclipse.elk.spacing.portPort',HDe='org.eclipse.elk.spacing.individual',IDe='org.eclipse.elk.port.borderOffset',JDe='org.eclipse.elk.noLayout',KDe='org.eclipse.elk.port.side',LDe='org.eclipse.elk.debugMode',MDe='org.eclipse.elk.alignment',NDe='org.eclipse.elk.insideSelfLoops.activate',ODe='org.eclipse.elk.insideSelfLoops.yo',PDe='org.eclipse.elk.direction',QDe='org.eclipse.elk.nodeLabels.padding',RDe='org.eclipse.elk.portLabels.nextToPortIfPossible',SDe='org.eclipse.elk.portLabels.treatAsGroup',TDe='org.eclipse.elk.portAlignment.default',UDe='org.eclipse.elk.portAlignment.north',VDe='org.eclipse.elk.portAlignment.south',WDe='org.eclipse.elk.portAlignment.west',XDe='org.eclipse.elk.portAlignment.east',YDe='org.eclipse.elk.contentAlignment',ZDe='org.eclipse.elk.junctionPoints',$De='org.eclipse.elk.edgeLabels.placement',_De='org.eclipse.elk.port.index',aEe='org.eclipse.elk.commentBox',bEe='org.eclipse.elk.hypernode',cEe='org.eclipse.elk.port.anchor',dEe='org.eclipse.elk.partitioning.activate',eEe='org.eclipse.elk.partitioning.partition',fEe='org.eclipse.elk.position',gEe='org.eclipse.elk.margins',hEe='org.eclipse.elk.spacing.portsSurrounding',iEe='org.eclipse.elk.interactiveLayout',jEe='org.eclipse.elk.core.util',kEe={3:1,4:1,5:1,601:1},lEe='NETWORK_SIMPLEX',mEe='SIMPLE',nEe={106:1,47:1},oEe='org.eclipse.elk.alg.layered.p1cycles',pEe='org.eclipse.elk.alg.layered.p2layers',qEe={413:1,230:1},rEe={846:1,3:1,4:1},sEe='org.eclipse.elk.alg.layered.p3order',tEe='org.eclipse.elk.alg.layered.p4nodes',uEe={3:1,4:1,5:1,854:1},vEe=1.0E-5,wEe='org.eclipse.elk.alg.layered.p4nodes.bk',xEe='org.eclipse.elk.alg.layered.p5edges',yEe='org.eclipse.elk.alg.layered.p5edges.orthogonal',zEe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',AEe=1.0E-6,BEe='org.eclipse.elk.alg.layered.p5edges.splines',CEe=0.09999999999999998,DEe=1.0E-8,EEe=4.71238898038469,FEe=3.141592653589793,GEe='org.eclipse.elk.alg.mrtree',HEe=0.10000000149011612,IEe='SUPER_ROOT',JEe='org.eclipse.elk.alg.mrtree.graph',KEe=-1.7976931348623157E308,LEe='org.eclipse.elk.alg.mrtree.intermediate',MEe='Processor compute fanout',NEe={3:1,6:1,4:1,5:1,534:1,100:1,115:1},OEe='Set neighbors in level',PEe='org.eclipse.elk.alg.mrtree.options',QEe='DESCENDANTS',REe='org.eclipse.elk.mrtree.compaction',SEe='org.eclipse.elk.mrtree.edgeEndTextureLength',TEe='org.eclipse.elk.mrtree.treeLevel',UEe='org.eclipse.elk.mrtree.positionConstraint',VEe='org.eclipse.elk.mrtree.weighting',WEe='org.eclipse.elk.mrtree.edgeRoutingMode',XEe='org.eclipse.elk.mrtree.searchOrder',YEe='Position Constraint',ZEe='org.eclipse.elk.mrtree',$Ee='org.eclipse.elk.tree',_Ee='Processor arrange level',aFe='org.eclipse.elk.alg.mrtree.p2order',bFe='org.eclipse.elk.alg.mrtree.p4route',cFe='org.eclipse.elk.alg.radial',dFe=6.283185307179586,eFe='Before',fFe=4.9E-324,gFe='After',hFe='org.eclipse.elk.alg.radial.intermediate',iFe='COMPACTION',jFe='org.eclipse.elk.alg.radial.intermediate.compaction',kFe={3:1,4:1,5:1,100:1},lFe='org.eclipse.elk.alg.radial.intermediate.optimization',mFe='No implementation is available for the layout option ',nFe='org.eclipse.elk.alg.radial.options',oFe='org.eclipse.elk.radial.centerOnRoot',pFe='org.eclipse.elk.radial.orderId',qFe='org.eclipse.elk.radial.radius',rFe='org.eclipse.elk.radial.rotate',sFe='org.eclipse.elk.radial.compactor',tFe='org.eclipse.elk.radial.compactionStepSize',uFe='org.eclipse.elk.radial.sorter',vFe='org.eclipse.elk.radial.wedgeCriteria',wFe='org.eclipse.elk.radial.optimizationCriteria',xFe='org.eclipse.elk.radial.rotation.targetAngle',yFe='org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace',zFe='org.eclipse.elk.radial.rotation.outgoingEdgeAngles',AFe='Compaction',BFe='rotation',CFe='org.eclipse.elk.radial',DFe='org.eclipse.elk.alg.radial.p1position.wedge',EFe='org.eclipse.elk.alg.radial.sorting',FFe=5.497787143782138,GFe=3.9269908169872414,HFe=2.356194490192345,IFe='org.eclipse.elk.alg.rectpacking',JFe='org.eclipse.elk.alg.rectpacking.intermediate',KFe='org.eclipse.elk.alg.rectpacking.options',LFe='org.eclipse.elk.rectpacking.trybox',MFe='org.eclipse.elk.rectpacking.currentPosition',NFe='org.eclipse.elk.rectpacking.desiredPosition',OFe='org.eclipse.elk.rectpacking.inNewRow',PFe='org.eclipse.elk.rectpacking.widthApproximation.strategy',QFe='org.eclipse.elk.rectpacking.widthApproximation.targetWidth',RFe='org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal',SFe='org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift',TFe='org.eclipse.elk.rectpacking.packing.strategy',UFe='org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation',VFe='org.eclipse.elk.rectpacking.packing.compaction.iterations',WFe='org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy',XFe='widthApproximation',YFe='Compaction Strategy',ZFe='packing.compaction',$Fe='org.eclipse.elk.rectpacking',_Fe='org.eclipse.elk.alg.rectpacking.p1widthapproximation',aGe='org.eclipse.elk.alg.rectpacking.p2packing',bGe='No Compaction',cGe='org.eclipse.elk.alg.rectpacking.p3whitespaceelimination',dGe='org.eclipse.elk.alg.rectpacking.util',eGe='No implementation available for ',fGe='org.eclipse.elk.alg.spore',gGe='org.eclipse.elk.alg.spore.options',hGe='org.eclipse.elk.sporeCompaction',iGe='org.eclipse.elk.underlyingLayoutAlgorithm',jGe='org.eclipse.elk.processingOrder.treeConstruction',kGe='org.eclipse.elk.processingOrder.spanningTreeCostFunction',lGe='org.eclipse.elk.processingOrder.preferredRoot',mGe='org.eclipse.elk.processingOrder.rootSelection',nGe='org.eclipse.elk.structure.structureExtractionStrategy',oGe='org.eclipse.elk.compaction.compactionStrategy',pGe='org.eclipse.elk.compaction.orthogonal',qGe='org.eclipse.elk.overlapRemoval.maxIterations',rGe='org.eclipse.elk.overlapRemoval.runScanline',sGe='processingOrder',tGe='overlapRemoval',uGe='org.eclipse.elk.sporeOverlap',vGe='org.eclipse.elk.alg.spore.p1structure',wGe='org.eclipse.elk.alg.spore.p2processingorder',xGe='org.eclipse.elk.alg.spore.p3execution',yGe='Topdown Layout',zGe='Invalid index: ',AGe='org.eclipse.elk.core.alg',BGe={341:1},CGe={295:1},DGe='Make sure its type is registered with the ',EGe=' utility class.',FGe='true',GGe='false',HGe="Couldn't clone property '",IGe=0.05,JGe='org.eclipse.elk.core.options',KGe=1.2999999523162842,LGe='org.eclipse.elk.box',MGe='org.eclipse.elk.expandNodes',NGe='org.eclipse.elk.box.packingMode',OGe='org.eclipse.elk.algorithm',PGe='org.eclipse.elk.resolvedAlgorithm',QGe='org.eclipse.elk.bendPoints',RGe='org.eclipse.elk.labelManager',SGe='org.eclipse.elk.scaleFactor',TGe='org.eclipse.elk.childAreaWidth',UGe='org.eclipse.elk.childAreaHeight',VGe='org.eclipse.elk.animate',WGe='org.eclipse.elk.animTimeFactor',XGe='org.eclipse.elk.layoutAncestors',YGe='org.eclipse.elk.maxAnimTime',ZGe='org.eclipse.elk.minAnimTime',$Ge='org.eclipse.elk.progressBar',_Ge='org.eclipse.elk.validateGraph',aHe='org.eclipse.elk.validateOptions',bHe='org.eclipse.elk.zoomToFit',cHe='org.eclipse.elk.font.name',dHe='org.eclipse.elk.font.size',eHe='org.eclipse.elk.topdown.sizeApproximator',fHe='org.eclipse.elk.topdown.scaleCap',gHe='org.eclipse.elk.edge.type',hHe='partitioning',iHe='nodeLabels',jHe='portAlignment',kHe='nodeSize',lHe='port',mHe='portLabels',nHe='topdown',oHe='insideSelfLoops',pHe='org.eclipse.elk.fixed',qHe='org.eclipse.elk.random',rHe={3:1,34:1,22:1,347:1},sHe='port must have a parent node to calculate the port side',tHe='The edge needs to have exactly one edge section. Found: ',uHe='org.eclipse.elk.core.util.adapters',vHe='org.eclipse.emf.ecore',wHe='org.eclipse.elk.graph',xHe='EMapPropertyHolder',yHe='ElkBendPoint',zHe='ElkGraphElement',AHe='ElkConnectableShape',BHe='ElkEdge',CHe='ElkEdgeSection',DHe='EModelElement',EHe='ENamedElement',FHe='ElkLabel',GHe='ElkNode',HHe='ElkPort',IHe={94:1,93:1},JHe='org.eclipse.emf.common.notify.impl',KHe="The feature '",LHe="' is not a valid changeable feature",MHe='Expecting null',NHe="' is not a valid feature",OHe='The feature ID',PHe=' is not a valid feature ID',QHe=32768,RHe={110:1,94:1,93:1,58:1,54:1,99:1},SHe='org.eclipse.emf.ecore.impl',THe='org.eclipse.elk.graph.impl',UHe='Recursive containment not allowed for ',VHe="The datatype '",WHe="' is not a valid classifier",XHe="The value '",YHe={195:1,3:1,4:1},ZHe="The class '",$He='http://www.eclipse.org/elk/ElkGraph',_He='property',aIe='value',bIe='source',cIe='properties',dIe='identifier',eIe='height',fIe='width',gIe='parent',hIe='text',iIe='children',jIe='hierarchical',kIe='sources',lIe='targets',mIe='sections',nIe='bendPoints',oIe='outgoingShape',pIe='incomingShape',qIe='outgoingSections',rIe='incomingSections',sIe='org.eclipse.emf.common.util',tIe='Severe implementation error in the Json to ElkGraph importer.',uIe='id',vIe='org.eclipse.elk.graph.json',wIe='Unhandled parameter types: ',xIe='startPoint',yIe="An edge must have at least one source and one target (edge id: '",zIe="').",AIe='Referenced edge section does not exist: ',BIe=" (edge id: '",CIe='target',DIe='sourcePoint',EIe='targetPoint',FIe='group',GIe='name',HIe='connectableShape cannot be null',IIe='edge cannot be null',JIe="Passed edge is not 'simple'.",KIe='org.eclipse.elk.graph.util',LIe="The 'no duplicates' constraint is violated",MIe='targetIndex=',NIe=', size=',OIe='sourceIndex=',PIe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},QIe={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},RIe='logging',SIe='measureExecutionTime',TIe='parser.parse.1',UIe='parser.parse.2',VIe='parser.next.1',WIe='parser.next.2',XIe='parser.next.3',YIe='parser.next.4',ZIe='parser.factor.1',$Ie='parser.factor.2',_Ie='parser.factor.3',aJe='parser.factor.4',bJe='parser.factor.5',cJe='parser.factor.6',dJe='parser.atom.1',eJe='parser.atom.2',fJe='parser.atom.3',gJe='parser.atom.4',hJe='parser.atom.5',iJe='parser.cc.1',jJe='parser.cc.2',kJe='parser.cc.3',lJe='parser.cc.5',mJe='parser.cc.6',nJe='parser.cc.7',oJe='parser.cc.8',pJe='parser.ope.1',qJe='parser.ope.2',rJe='parser.ope.3',sJe='parser.descape.1',tJe='parser.descape.2',uJe='parser.descape.3',vJe='parser.descape.4',wJe='parser.descape.5',xJe='parser.process.1',yJe='parser.quantifier.1',zJe='parser.quantifier.2',AJe='parser.quantifier.3',BJe='parser.quantifier.4',CJe='parser.quantifier.5',DJe='org.eclipse.emf.common.notify',EJe={424:1,686:1},FJe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},GJe={378:1,152:1},HJe='index=',IJe={3:1,4:1,5:1,129:1},JJe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},KJe={3:1,6:1,4:1,5:1,198:1},LJe={3:1,4:1,5:1,173:1,379:1},MJe=';/?:@&=+$,',NJe='invalid authority: ',OJe='EAnnotation',PJe='ETypedElement',QJe='EStructuralFeature',RJe='EAttribute',SJe='EClassifier',TJe='EEnumLiteral',UJe='EGenericType',VJe='EOperation',WJe='EParameter',XJe='EReference',YJe='ETypeParameter',ZJe='org.eclipse.emf.ecore.util',$Je={79:1},_Je={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},aKe='org.eclipse.emf.ecore.util.FeatureMap$Entry',bKe=8192,cKe=2048,dKe='byte',eKe='char',fKe='double',gKe='float',hKe='int',iKe='long',jKe='short',kKe='java.lang.Object',lKe={3:1,4:1,5:1,254:1},mKe={3:1,4:1,5:1,688:1},nKe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},oKe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},pKe='mixed',qKe='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',rKe='kind',sKe={3:1,4:1,5:1,689:1},tKe={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},uKe={20:1,31:1,56:1,16:1,15:1,61:1,71:1},vKe={51:1,128:1,287:1},wKe={76:1,343:1},xKe="The value of type '",yKe="' must be of type '",zKe=1352,AKe='http://www.eclipse.org/emf/2002/Ecore',BKe=-32768,CKe='constraints',DKe='baseType',EKe='getEStructuralFeature',FKe='getFeatureID',GKe='feature',HKe='getOperationID',IKe='operation',JKe='defaultValue',KKe='eTypeParameters',LKe='isInstance',MKe='getEEnumLiteral',NKe='eContainingClass',OKe={57:1},PKe={3:1,4:1,5:1,124:1},QKe='org.eclipse.emf.ecore.resource',RKe={94:1,93:1,599:1,2034:1},SKe='org.eclipse.emf.ecore.resource.impl',TKe='unspecified',UKe='simple',VKe='attribute',WKe='attributeWildcard',XKe='element',YKe='elementWildcard',ZKe='collapse',$Ke='itemType',_Ke='namespace',aLe='##targetNamespace',bLe='whiteSpace',cLe='wildcards',dLe='http://www.eclipse.org/emf/2003/XMLType',eLe='##any',fLe='uninitialized',gLe='The multiplicity constraint is violated',hLe='org.eclipse.emf.ecore.xml.type',iLe='ProcessingInstruction',jLe='SimpleAnyType',kLe='XMLTypeDocumentRoot',lLe='org.eclipse.emf.ecore.xml.type.impl',mLe='INF',nLe='processing',oLe='ENTITIES_._base',pLe='minLength',qLe='ENTITY',rLe='NCName',sLe='IDREFS_._base',tLe='integer',uLe='token',vLe='pattern',wLe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',xLe='\\i\\c*',yLe='[\\i-[:]][\\c-[:]]*',zLe='nonPositiveInteger',ALe='maxInclusive',BLe='NMTOKEN',CLe='NMTOKENS_._base',DLe='nonNegativeInteger',ELe='minInclusive',FLe='normalizedString',GLe='unsignedByte',HLe='unsignedInt',ILe='18446744073709551615',JLe='unsignedShort',KLe='processingInstruction',LLe='org.eclipse.emf.ecore.xml.type.internal',MLe=1114111,NLe='Internal Error: shorthands: \\u',OLe='xml:isDigit',PLe='xml:isWord',QLe='xml:isSpace',RLe='xml:isNameChar',SLe='xml:isInitialNameChar',TLe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',ULe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',VLe='Private Use',WLe='ASSIGNED',XLe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',YLe='UNASSIGNED',ZLe={3:1,122:1},$Le='org.eclipse.emf.ecore.xml.type.util',_Le={3:1,4:1,5:1,381:1},aMe='org.eclipse.xtext.xbase.lib',bMe='Cannot add elements to a Range',cMe='Cannot set elements in a Range',dMe='Cannot remove elements from a Range',eMe='user.agent';var _,eeb,_db,ydb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;eeb={};feb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.Rm};_.Hb=function sb(){return kFb(this)};_.Ib=function ub(){var a;return nfb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var ND,OD,PD;feb(297,1,{297:1,2124:1},pfb);_.ve=function qfb(a){var b;b=new pfb;b.i=4;a>1?(b.c=xfb(this,a-1)):(b.c=this);return b};_.we=function wfb(){lfb(this);return this.b};_.xe=function yfb(){return nfb(this)};_.ye=function Afb(){return lfb(this),this.k};_.ze=function Cfb(){return (this.i&4)!=0};_.Ae=function Dfb(){return (this.i&1)!=0};_.Ib=function Gfb(){return ofb(this)};_.i=0;var kfb=1;var jJ=sfb(mve,'Object',1);var UI=sfb(mve,'Class',297);feb(2096,1,nve);var oE=sfb(ove,'Optional',2096);feb(1191,2096,nve,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var mE=sfb(ove,'Absent',1191);feb(636,1,{},Gb);var nE=sfb(ove,'Joiner',636);var pE=ufb(ove,'Predicate');feb(589,1,{178:1,589:1,3:1,46:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(ZD(a,589)){b=RD(a,589);return Rt(this.a,b.a)}return false};_.Hb=function _b(){return Cob(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var qE=sfb(ove,'Predicates/AndPredicate',589);feb(419,2096,{419:1,3:1},cc);_.Fb=function dc(a){var b;if(ZD(a,419)){b=RD(a,419);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return uve+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var rE=sfb(ove,'Present',419);feb(204,1,wve);_.Nb=function kc(a){Ztb(this,a)};_.Qb=function lc(){jc()};var eI=sfb(xve,'UnmodifiableIterator',204);feb(2076,204,yve);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw Adb(new jib)};_.Wb=function oc(a){throw Adb(new jib)};var fI=sfb(xve,'UnmodifiableListIterator',2076);feb(399,2076,yve);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw Adb(new Dvb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw Adb(new Dvb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var sE=sfb(xve,'AbstractIndexedListIterator',399);feb(713,204,wve);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var tE=sfb(xve,'AbstractIterator',713);feb(2084,1,{229:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return xw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return jeb(this.Zb())};var YE=sfb(xve,'AbstractMultimap',2084);feb(742,2084,zve);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return ek(this.c.vc().Nc(),new hh,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return yob(),new xpb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return ek(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new lg(this,a,b,null)};_.d=0;var TE=sfb(xve,'AbstractMapBasedMultimap',742);feb(1696,742,zve);_.hc=function pd(){return new cnb(this.a)};_.jc=function qd(){return yob(),yob(),vob};_.cc=function sd(a){return RD(Qc(this,a),15)};_.fc=function ud(a){return RD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return xw(this,a)};_.qc=function td(a){return RD(Qc(this,a),15)};_.rc=function vd(a){return RD(Sc(this,a),15)};_.mc=function wd(a){return Hob(RD(a,15))};_.pc=function xd(a,b){return Vc(this,a,RD(b,15),null)};var uE=sfb(xve,'AbstractListMultimap',1696);feb(748,1,Ave);_.Nb=function zd(a){Ztb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=RD(this.c.Pb(),44);this.b=a.ld();this.a=RD(a.md(),16);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();RD(Hvb(this.a),16).dc()&&this.c.Qb();--this.d.d};var CE=sfb(xve,'AbstractMapBasedMultimap/Itr',748);feb(1129,748,Ave,Dd);_.sc=function Ed(a,b){return b};var vE=sfb(xve,'AbstractMapBasedMultimap/1',1129);feb(1130,1,{},Fd);_.Kb=function Gd(a){return RD(a,16).Nc()};var wE=sfb(xve,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1130);feb(1131,748,Ave,Hd);_.sc=function Id(a,b){return new gp(a,b)};var xE=sfb(xve,'AbstractMapBasedMultimap/2',1131);var VK=ufb(Bve,'Map');feb(2065,1,Cve);_.wc=function Td(a){Bvb(this,a)};_.yc=function $d(a,b,c){return Cvb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=RD(c.Pb(),44);d=b.md();if(dE(a)===dE(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!ZD(a,85)){return false}d=RD(a,85);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=RD(c.Pb(),44);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return Bob(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Xkb(this)};_.zc=function _d(a,b){throw Adb(new kib('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new glb(this)};var KJ=sfb(Bve,'AbstractMap',2065);feb(2085,2065,Cve);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new nw(this)):a};var uH=sfb(xve,'Maps/ViewCachingAbstractMap',2085);feb(402,2085,Cve,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():Ar(new mf(this))};_._b=function pe(a){return Wv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return jeb(this.d)};var BE=sfb(xve,'AbstractMapBasedMultimap/AsMap',402);var cJ=ufb(mve,'Iterable');feb(31,1,Dve);_.Jc=function Le(a){xgb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Swb(this,0)};_.Oc=function Qe(){return new SDb(null,this.Nc())};_.Fc=function Ge(a){throw Adb(new kib('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var vJ=sfb(Bve,'AbstractCollection',31);var bL=ufb(Bve,'Set');feb(Eve,31,Fve);_.Nc=function Ye(){return new Swb(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return Bob(this)};var RJ=sfb(Bve,'AbstractSet',Eve);feb(2068,Eve,Fve);var UH=sfb(xve,'Sets/ImprovedAbstractSet',2068);feb(2069,2068,Fve);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)&&ZD(a,44)){b=RD(a,44);return this.Rc().ec().Mc(b.ld())}return false};_.gc=function cf(){return this.Rc().gc()};var nH=sfb(xve,'Maps/EntrySet',2069);feb(1127,2069,Fve,df);_.Hc=function ef(a){return Nk(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Nk(this.a.d.vc(),a)){return false}b=RD(Hvb(RD(a,44)),44);Tc(this.a.e,b.ld());return true};_.Nc=function jf(){return gk(this.a.d.vc().Nc(),new kf(this.a))};var zE=sfb(xve,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1127);feb(1128,1,{},kf);_.Kb=function lf(a){return me(this.a,RD(a,44))};var yE=sfb(xve,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1128);feb(746,1,Ave,mf);_.Nb=function nf(a){Ztb(this,a)};_.Pb=function pf(){var a;return a=RD(this.b.Pb(),44),this.a=RD(a.md(),16),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var AE=sfb(xve,'AbstractMapBasedMultimap/AsMap/AsMapIterator',746);feb(542,2068,Fve,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new lw(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new aw(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var rH=sfb(xve,'Maps/KeySet',542);feb(327,542,Fve,zf);_.$b=function Af(){var a;Ar((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=RD(this.b.Bc(a),16);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var EE=sfb(xve,'AbstractMapBasedMultimap/KeySet',327);feb(747,1,Ave,Hf);_.Nb=function If(a){Ztb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=RD(this.c.Pb(),44);return this.a.ld()};_.Qb=function Lf(){var a;Vb(!!this.a);a=RD(this.a.md(),16);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var DE=sfb(xve,'AbstractMapBasedMultimap/KeySet/1',747);feb(503,402,{85:1,133:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Qf(){return this.Uc()};_.Sc=function Of(){return new eg(this.c,this.Wc())};_.Tc=function Pf(){return this.Wc().Tc()};_.Uc=function Rf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Vc=function Sf(){return this.Wc().Vc()};_.Wc=function Tf(){return RD(this.d,133)};var IE=sfb(xve,'AbstractMapBasedMultimap/SortedAsMap',503);feb(446,503,Gve,Uf);_.bc=function Wf(){return new gg(this.a,RD(RD(this.d,133),139))};_.Sc=function Xf(){return new gg(this.a,RD(RD(this.d,133),139))};_.ec=function _f(){var a;return a=this.b,RD(!a?(this.b=new gg(this.a,RD(RD(this.d,133),139))):a,277)};_.Uc=function ag(){var a;return a=this.b,RD(!a?(this.b=new gg(this.a,RD(RD(this.d,133),139))):a,277)};_.Wc=function cg(){return RD(RD(this.d,133),139)};_.Xc=function Vf(a){return RD(RD(this.d,133),139).Xc(a)};_.Yc=function Yf(a){return RD(RD(this.d,133),139).Yc(a)};_.Zc=function Zf(a,b){return new Uf(this.a,RD(RD(this.d,133),139).Zc(a,b))};_.$c=function $f(a){return RD(RD(this.d,133),139).$c(a)};_._c=function bg(a){return RD(RD(this.d,133),139)._c(a)};_.ad=function dg(a,b){return new Uf(this.a,RD(RD(this.d,133),139).ad(a,b))};var FE=sfb(xve,'AbstractMapBasedMultimap/NavigableAsMap',446);feb(502,327,Hve,eg);_.Nc=function fg(){return this.b.ec().Nc()};var JE=sfb(xve,'AbstractMapBasedMultimap/SortedKeySet',502);feb(401,502,Ive,gg);var GE=sfb(xve,'AbstractMapBasedMultimap/NavigableKeySet',401);feb(551,31,Dve,lg);_.Fc=function mg(a){var b,c;ig(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&hg(this)}return b};_.Gc=function ng(a){var b,c,d;if(a.dc()){return false}d=(ig(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&hg(this)}return b};_.$b=function og(){var a;a=(ig(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;jg(this)};_.Hc=function pg(a){ig(this);return this.d.Hc(a)};_.Ic=function qg(a){ig(this);return this.d.Ic(a)};_.Fb=function rg(a){if(a===this){return true}ig(this);return pb(this.d,a)};_.Hb=function sg(){ig(this);return tb(this.d)};_.Kc=function tg(){ig(this);return new Og(this)};_.Mc=function ug(a){var b;ig(this);b=this.d.Mc(a);if(b){--this.f.d;jg(this)}return b};_.gc=function vg(){return kg(this)};_.Nc=function wg(){return ig(this),this.d.Nc()};_.Ib=function xg(){ig(this);return jeb(this.d)};var LE=sfb(xve,'AbstractMapBasedMultimap/WrappedCollection',551);var QK=ufb(Bve,'List');feb(744,551,{20:1,31:1,16:1,15:1},yg);_.jd=function Hg(a){tvb(this,a)};_.Nc=function Ig(){return ig(this),this.d.Nc()};_.bd=function zg(a,b){var c;ig(this);c=this.d.dc();RD(this.d,15).bd(a,b);++this.a.d;c&&hg(this)};_.cd=function Ag(a,b){var c,d,e;if(b.dc()){return false}e=(ig(this),this.d.gc());c=RD(this.d,15).cd(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&hg(this)}return c};_.Xb=function Bg(a){ig(this);return RD(this.d,15).Xb(a)};_.dd=function Cg(a){ig(this);return RD(this.d,15).dd(a)};_.ed=function Dg(){ig(this);return new Ug(this)};_.fd=function Eg(a){ig(this);return new Vg(this,a)};_.gd=function Fg(a){var b;ig(this);b=RD(this.d,15).gd(a);--this.a.d;jg(this);return b};_.hd=function Gg(a,b){ig(this);return RD(this.d,15).hd(a,b)};_.kd=function Jg(a,b){ig(this);return Vc(this.a,this.e,RD(this.d,15).kd(a,b),!this.b?this:this.b)};var NE=sfb(xve,'AbstractMapBasedMultimap/WrappedList',744);feb(1126,744,{20:1,31:1,16:1,15:1,59:1},Kg);var HE=sfb(xve,'AbstractMapBasedMultimap/RandomAccessWrappedList',1126);feb(628,1,Ave,Og);_.Nb=function Qg(a){Ztb(this,a)};_.Ob=function Rg(){Ng(this);return this.b.Ob()};_.Pb=function Sg(){Ng(this);return this.b.Pb()};_.Qb=function Tg(){Mg(this)};var KE=sfb(xve,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',628);feb(745,628,Jve,Ug,Vg);_.Qb=function _g(){Mg(this)};_.Rb=function Wg(a){var b;b=kg(this.a)==0;(Ng(this),RD(this.b,128)).Rb(a);++this.a.a.d;b&&hg(this.a)};_.Sb=function Xg(){return (Ng(this),RD(this.b,128)).Sb()};_.Tb=function Yg(){return (Ng(this),RD(this.b,128)).Tb()};_.Ub=function Zg(){return (Ng(this),RD(this.b,128)).Ub()};_.Vb=function $g(){return (Ng(this),RD(this.b,128)).Vb()};_.Wb=function ah(a){(Ng(this),RD(this.b,128)).Wb(a)};var ME=sfb(xve,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',745);feb(743,551,Hve,bh);_.Nc=function dh(){return ig(this),this.d.Nc()};var QE=sfb(xve,'AbstractMapBasedMultimap/WrappedSortedSet',743);feb(1125,743,Ive,eh);var OE=sfb(xve,'AbstractMapBasedMultimap/WrappedNavigableSet',1125);feb(1124,551,Fve,fh);_.Nc=function gh(){return ig(this),this.d.Nc()};var PE=sfb(xve,'AbstractMapBasedMultimap/WrappedSet',1124);feb(1133,1,{},hh);_.Kb=function ih(a){return fd(RD(a,44))};var RE=sfb(xve,'AbstractMapBasedMultimap/lambda$1$Type',1133);feb(1132,1,{},jh);_.Kb=function kh(a){return new gp(this.a,a)};var SE=sfb(xve,'AbstractMapBasedMultimap/lambda$2$Type',1132);var UK=ufb(Bve,'Map/Entry');feb(358,1,Kve);_.Fb=function lh(a){var b;if(ZD(a,44)){b=RD(a,44);return Hb(this.ld(),b.ld())&&Hb(this.md(),b.md())}return false};_.Hb=function mh(){var a,b;a=this.ld();b=this.md();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.nd=function nh(a){throw Adb(new jib)};_.Ib=function oh(){return this.ld()+'='+this.md()};var UE=sfb(xve,Lve,358);feb(2086,31,Dve);_.$b=function ph(){this.od().$b()};_.Hc=function qh(a){var b;if(ZD(a,44)){b=RD(a,44);return Cc(this.od(),b.ld(),b.md())}return false};_.Mc=function rh(a){var b;if(ZD(a,44)){b=RD(a,44);return Gc(this.od(),b.ld(),b.md())}return false};_.gc=function sh(){return this.od().d};var yH=sfb(xve,'Multimaps/Entries',2086);feb(749,2086,Dve,th);_.Kc=function uh(){return this.a.kc()};_.od=function vh(){return this.a};_.Nc=function wh(){return this.a.lc()};var VE=sfb(xve,'AbstractMultimap/Entries',749);feb(750,749,Fve,xh);_.Nc=function Ah(){return this.a.lc()};_.Fb=function yh(a){return Rx(this,a)};_.Hb=function zh(){return Sx(this)};var WE=sfb(xve,'AbstractMultimap/EntrySet',750);feb(751,31,Dve,Bh);_.$b=function Ch(){this.a.$b()};_.Hc=function Dh(a){return Dc(this.a,a)};_.Kc=function Eh(){return this.a.nc()};_.gc=function Fh(){return this.a.d};_.Nc=function Gh(){return this.a.oc()};var XE=sfb(xve,'AbstractMultimap/Values',751);feb(2087,31,{849:1,20:1,31:1,16:1});_.Jc=function Oh(a){Qb(a);Ih(this).Jc(new lx(a))};_.Nc=function Sh(){var a;return a=Ih(this).Nc(),ek(a,new sx,64|a.yd()&1296,this.a.d)};_.Fc=function Kh(a){Hh();return true};_.Gc=function Lh(a){return Qb(this),Qb(a),ZD(a,552)?nx(RD(a,849)):!a.dc()&&xr(this,a.Kc())};_.Hc=function Mh(a){var b;return b=RD(Xv(nd(this.a),a),16),(!b?0:b.gc())>0};_.Fb=function Nh(a){return ox(this,a)};_.Hb=function Ph(){return tb(Ih(this))};_.dc=function Qh(){return Ih(this).dc()};_.Mc=function Rh(a){return Rw(this,a,1)>0};_.Ib=function Th(){return jeb(Ih(this))};var $E=sfb(xve,'AbstractMultiset',2087);feb(2089,2068,Fve);_.$b=function Uh(){Nc(this.a.a)};_.Hc=function Vh(a){var b,c;if(ZD(a,504)){c=RD(a,425);if(RD(c.a.md(),16).gc()<=0){return false}b=Qw(this.a,c.a.ld());return b==RD(c.a.md(),16).gc()}return false};_.Mc=function Wh(a){var b,c,d,e;if(ZD(a,504)){c=RD(a,425);b=c.a.ld();d=RD(c.a.md(),16).gc();if(d!=0){e=this.a;return qx(e,b,d)}}return false};var IH=sfb(xve,'Multisets/EntrySet',2089);feb(1139,2089,Fve,Xh);_.Kc=function Yh(){return new _w(fe(nd(this.a.a)).Kc())};_.gc=function Zh(){return nd(this.a.a).gc()};var ZE=sfb(xve,'AbstractMultiset/EntrySet',1139);feb(627,742,zve);_.hc=function ai(){return this.pd()};_.jc=function bi(){return this.qd()};_.cc=function ei(a){return this.rd(a)};_.fc=function gi(a){return this.sd(a)};_.Zb=function _h(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.qd=function ci(){return yob(),yob(),xob};_.Fb=function di(a){return xw(this,a)};_.rd=function fi(a){return RD(Qc(this,a),21)};_.sd=function hi(a){return RD(Sc(this,a),21)};_.mc=function ii(a){return yob(),new Lqb(RD(a,21))};_.pc=function ji(a,b){return new fh(this,a,RD(b,21))};var _E=sfb(xve,'AbstractSetMultimap',627);feb(1723,627,zve);_.hc=function mi(){return new yAb(this.b)};_.pd=function ni(){return new yAb(this.b)};_.jc=function oi(){return Zx(new yAb(this.b))};_.qd=function pi(){return Zx(new yAb(this.b))};_.cc=function qi(a){return RD(RD(Qc(this,a),21),87)};_.rd=function ri(a){return RD(RD(Qc(this,a),21),87)};_.fc=function si(a){return RD(RD(Sc(this,a),21),87)};_.sd=function ti(a){return RD(RD(Sc(this,a),21),87)};_.mc=function ui(a){return ZD(a,277)?Zx(RD(a,277)):(yob(),new jrb(RD(a,87)))};_.Zb=function li(){var a;return a=this.f,!a?(this.f=ZD(this.c,139)?new Uf(this,RD(this.c,139)):ZD(this.c,133)?new Mf(this,RD(this.c,133)):new ne(this,this.c)):a};_.pc=function vi(a,b){return ZD(b,277)?new eh(this,a,RD(b,277)):new bh(this,a,RD(b,87))};var bF=sfb(xve,'AbstractSortedSetMultimap',1723);feb(1724,1723,zve);_.Zb=function xi(){var a;return a=this.f,RD(RD(!a?(this.f=ZD(this.c,139)?new Uf(this,RD(this.c,139)):ZD(this.c,133)?new Mf(this,RD(this.c,133)):new ne(this,this.c)):a,133),139)};_.ec=function zi(){var a;return a=this.i,RD(RD(!a?(this.i=ZD(this.c,139)?new gg(this,RD(this.c,139)):ZD(this.c,133)?new eg(this,RD(this.c,133)):new zf(this,this.c)):a,87),277)};_.bc=function yi(){return ZD(this.c,139)?new gg(this,RD(this.c,139)):ZD(this.c,133)?new eg(this,RD(this.c,133)):new zf(this,this.c)};var aF=sfb(xve,'AbstractSortedKeySortedSetMultimap',1724);feb(2109,1,{2046:1});_.Fb=function Ai(a){return Qy(this,a)};_.Hb=function Bi(){var a;return Bob((a=this.g,!a?(this.g=new Di(this)):a))};_.Ib=function Ci(){var a;return Md((a=this.f,!a?(this.f=new Zj(this)):a))};var eF=sfb(xve,'AbstractTable',2109);feb(679,Eve,Fve,Di);_.$b=function Ei(){Xi()};_.Hc=function Fi(a){var b,c;if(ZD(a,479)){b=RD(a,697);c=RD(Xv(bj(this.a),Qm(b.c.e,b.b)),85);return !!c&&Nk(c.vc(),new gp(Qm(b.c.c,b.a),Ui(b.c,b.b,b.a)))}return false};_.Kc=function Gi(){return Vi(this.a)};_.Mc=function Hi(a){var b,c;if(ZD(a,479)){b=RD(a,697);c=RD(Xv(bj(this.a),Qm(b.c.e,b.b)),85);return !!c&&Ok(c.vc(),new gp(Qm(b.c.c,b.a),Ui(b.c,b.b,b.a)))}return false};_.gc=function Ii(){return dj(this.a)};_.Nc=function Ji(){return Wi(this.a)};var cF=sfb(xve,'AbstractTable/CellSet',679);feb(2025,31,Dve,Ki);_.$b=function Li(){Xi()};_.Hc=function Mi(a){return Yi(this.a,a)};_.Kc=function Ni(){return fj(this.a)};_.gc=function Oi(){return dj(this.a)};_.Nc=function Pi(){return gj(this.a)};var dF=sfb(xve,'AbstractTable/Values',2025);feb(1697,1696,zve);var fF=sfb(xve,'ArrayListMultimapGwtSerializationDependencies',1697);feb(520,1697,zve,Ri,Si);_.hc=function Ti(){return new cnb(this.a)};_.a=0;var gF=sfb(xve,'ArrayListMultimap',520);feb(678,2109,{678:1,2046:1,3:1},hj);var sF=sfb(xve,'ArrayTable',678);feb(2021,399,yve,ij);_.Xb=function jj(a){return new pj(this.a,a)};var hF=sfb(xve,'ArrayTable/1',2021);feb(2022,1,{},kj);_.td=function lj(a){return new pj(this.a,a)};var iF=sfb(xve,'ArrayTable/1methodref$getCell$Type',2022);feb(2110,1,{697:1});_.Fb=function mj(a){var b;if(a===this){return true}if(ZD(a,479)){b=RD(a,697);return Hb(Qm(this.c.e,this.b),Qm(b.c.e,b.b))&&Hb(Qm(this.c.c,this.a),Qm(b.c.c,b.a))&&Hb(Ui(this.c,this.b,this.a),Ui(b.c,b.b,b.a))}return false};_.Hb=function nj(){return Tnb(cD(WC(jJ,1),rve,1,5,[Qm(this.c.e,this.b),Qm(this.c.c,this.a),Ui(this.c,this.b,this.a)]))};_.Ib=function oj(){return '('+Qm(this.c.e,this.b)+','+Qm(this.c.c,this.a)+')='+Ui(this.c,this.b,this.a)};var bI=sfb(xve,'Tables/AbstractCell',2110);feb(479,2110,{479:1,697:1},pj);_.a=0;_.b=0;_.d=0;var jF=sfb(xve,'ArrayTable/2',479);feb(2024,1,{},qj);_.td=function rj(a){return _i(this.a,a)};var kF=sfb(xve,'ArrayTable/2methodref$getValue$Type',2024);feb(2023,399,yve,sj);_.Xb=function tj(a){return _i(this.a,a)};var lF=sfb(xve,'ArrayTable/3',2023);feb(2077,2065,Cve);_.$b=function vj(){Ar(this.kc())};_.vc=function wj(){return new gw(this)};_.lc=function xj(){return new Uwb(this.kc(),this.gc())};var pH=sfb(xve,'Maps/IteratorBasedAbstractMap',2077);feb(842,2077,Cve);_.$b=function Bj(){throw Adb(new jib)};_._b=function Cj(a){return En(this.c,a)};_.kc=function Dj(){return new Rj(this,this.c.b.c.gc())};_.lc=function Ej(){return fk(this.c.b.c.gc(),16,new Lj(this))};_.xc=function Fj(a){var b;b=RD(Fn(this.c,a),17);return !b?null:this.vd(b.a)};_.dc=function Gj(){return this.c.b.c.dc()};_.ec=function Hj(){return hn(this.c)};_.zc=function Ij(a,b){var c;c=RD(Fn(this.c,a),17);if(!c){throw Adb(new agb(this.ud()+' '+a+' not in '+hn(this.c)))}return this.wd(c.a,b)};_.Bc=function Jj(a){throw Adb(new jib)};_.gc=function Kj(){return this.c.b.c.gc()};var pF=sfb(xve,'ArrayTable/ArrayMap',842);feb(2020,1,{},Lj);_.td=function Mj(a){return yj(this.a,a)};var mF=sfb(xve,'ArrayTable/ArrayMap/0methodref$getEntry$Type',2020);feb(2018,358,Kve,Nj);_.ld=function Oj(){return zj(this.a,this.b)};_.md=function Pj(){return this.a.vd(this.b)};_.nd=function Qj(a){return this.a.wd(this.b,a)};_.b=0;var nF=sfb(xve,'ArrayTable/ArrayMap/1',2018);feb(2019,399,yve,Rj);_.Xb=function Sj(a){return yj(this.a,a)};var oF=sfb(xve,'ArrayTable/ArrayMap/2',2019);feb(2017,842,Cve,Tj);_.ud=function Uj(){return 'Column'};_.vd=function Vj(a){return Ui(this.b,this.a,a)};_.wd=function Wj(a,b){return cj(this.b,this.a,a,b)};_.a=0;var rF=sfb(xve,'ArrayTable/Row',2017);feb(843,842,Cve,Zj);_.vd=function _j(a){return new Tj(this.a,a)};_.zc=function ak(a,b){return RD(b,85),Xj()};_.wd=function bk(a,b){return RD(b,85),Yj()};_.ud=function $j(){return 'Row'};var qF=sfb(xve,'ArrayTable/RowMap',843);feb(1157,1,Pve,hk);_.Ad=function lk(a){return (this.a.yd()&-262&a)!=0};_.yd=function ik(){return this.a.yd()&-262};_.zd=function jk(){return this.a.zd()};_.Nb=function kk(a){this.a.Nb(new pk(a,this.b))};_.Bd=function mk(a){return this.a.Bd(new nk(a,this.b))};var yF=sfb(xve,'CollectSpliterators/1',1157);feb(1158,1,Qve,nk);_.Cd=function ok(a){this.a.Cd(this.b.Kb(a))};var tF=sfb(xve,'CollectSpliterators/1/lambda$0$Type',1158);feb(1159,1,Qve,pk);_.Cd=function qk(a){this.a.Cd(this.b.Kb(a))};var uF=sfb(xve,'CollectSpliterators/1/lambda$1$Type',1159);feb(1154,1,Pve,rk);_.Ad=function vk(a){return ((16464|this.b)&a)!=0};_.yd=function sk(){return 16464|this.b};_.zd=function tk(){return this.a.zd()};_.Nb=function uk(a){this.a.Qe(new zk(a,this.c))};_.Bd=function wk(a){return this.a.Re(new xk(a,this.c))};_.b=0;var xF=sfb(xve,'CollectSpliterators/1WithCharacteristics',1154);feb(1155,1,Rve,xk);_.Dd=function yk(a){this.a.Cd(this.b.td(a))};var vF=sfb(xve,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1155);feb(1156,1,Rve,zk);_.Dd=function Ak(a){this.a.Cd(this.b.td(a))};var wF=sfb(xve,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1156);feb(1150,1,Pve);_.Ad=function Gk(a){return (this.a&a)!=0};_.yd=function Dk(){return this.a};_.zd=function Ek(){!!this.e&&(this.b=Kgb(this.b,this.e.zd()));return Kgb(this.b,0)};_.Nb=function Fk(a){if(this.e){this.e.Nb(a);this.e=null}this.c.Nb(new Kk(this,a));this.b=0};_.Bd=function Hk(a){while(true){if(!!this.e&&this.e.Bd(a)){Pdb(this.b,Sve)&&(this.b=Vdb(this.b,1));return true}else{this.e=null}if(!this.c.Bd(new Ik(this))){return false}}};_.a=0;_.b=0;var CF=sfb(xve,'CollectSpliterators/FlatMapSpliterator',1150);feb(1152,1,Qve,Ik);_.Cd=function Jk(a){Bk(this.a,a)};var zF=sfb(xve,'CollectSpliterators/FlatMapSpliterator/lambda$0$Type',1152);feb(1153,1,Qve,Kk);_.Cd=function Lk(a){Ck(this.a,this.b,a)};var AF=sfb(xve,'CollectSpliterators/FlatMapSpliterator/lambda$1$Type',1153);feb(1151,1150,Pve,Mk);var BF=sfb(xve,'CollectSpliterators/FlatMapSpliteratorOfObject',1151);feb(253,1,Tve);_.Fd=function Sk(a){return this.Ed(RD(a,253))};_.Ed=function Rk(a){var b;if(a==(kl(),jl)){return 1}if(a==(Wk(),Vk)){return -1}b=(ux(),Leb(this.a,a.a));if(b!=0){return b}return ZD(this,526)==ZD(a,526)?0:ZD(this,526)?1:-1};_.Id=function Tk(){return this.a};_.Fb=function Uk(a){return Pk(this,a)};var HF=sfb(xve,'Cut',253);feb(1823,253,Tve,Xk);_.Ed=function Yk(a){return a==this?0:1};_.Gd=function Zk(a){throw Adb(new Ceb)};_.Hd=function $k(a){a.a+='+\u221E)'};_.Id=function _k(){throw Adb(new dgb(Uve))};_.Hb=function al(){return gib(),jFb(this)};_.Jd=function bl(a){return false};_.Ib=function cl(){return '+\u221E'};var Vk;var DF=sfb(xve,'Cut/AboveAll',1823);feb(526,253,{253:1,526:1,3:1,34:1},dl);_.Gd=function el(a){Yhb((a.a+='(',a),this.a)};_.Hd=function fl(a){Thb(Yhb(a,this.a),93)};_.Hb=function gl(){return ~tb(this.a)};_.Jd=function hl(a){return ux(),Leb(this.a,a)<0};_.Ib=function il(){return '/'+this.a+'\\'};var EF=sfb(xve,'Cut/AboveValue',526);feb(1822,253,Tve,ll);_.Ed=function ml(a){return a==this?0:-1};_.Gd=function nl(a){a.a+='(-\u221E'};_.Hd=function ol(a){throw Adb(new Ceb)};_.Id=function pl(){throw Adb(new dgb(Uve))};_.Hb=function ql(){return gib(),jFb(this)};_.Jd=function rl(a){return true};_.Ib=function sl(){return '-\u221E'};var jl;var FF=sfb(xve,'Cut/BelowAll',1822);feb(1824,253,Tve,tl);_.Gd=function ul(a){Yhb((a.a+='[',a),this.a)};_.Hd=function vl(a){Thb(Yhb(a,this.a),41)};_.Hb=function wl(){return tb(this.a)};_.Jd=function xl(a){return ux(),Leb(this.a,a)<=0};_.Ib=function yl(){return '\\'+this.a+'/'};var GF=sfb(xve,'Cut/BelowValue',1824);feb(547,1,Vve);_.Jc=function Bl(a){xgb(this,a)};_.Ib=function Cl(){return Lr(RD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var LF=sfb(xve,'FluentIterable',547);feb(442,547,Vve,Dl);_.Kc=function El(){return new is(Mr(this.a.Kc(),new ir))};var IF=sfb(xve,'FluentIterable/2',442);feb(1059,547,Vve,Gl);_.Kc=function Hl(){return Fl(this)};var KF=sfb(xve,'FluentIterable/3',1059);feb(724,399,yve,Il);_.Xb=function Jl(a){return this.a[a].Kc()};var JF=sfb(xve,'FluentIterable/3/1',724);feb(2070,1,{});_.Ib=function Kl(){return jeb(this.Kd().b)};var SF=sfb(xve,'ForwardingObject',2070);feb(2071,2070,Wve);_.Kd=function Ql(){return this.Ld()};_.Jc=function Rl(a){xgb(this,a)};_.Lc=function Ul(){return this.Oc()};_.Nc=function Xl(){return new Swb(this,0)};_.Oc=function Yl(){return new SDb(null,this.Nc())};_.Fc=function Ll(a){return this.Ld(),qpb()};_.Gc=function Ml(a){return this.Ld(),rpb()};_.$b=function Nl(){this.Ld(),spb()};_.Hc=function Ol(a){return this.Ld().Hc(a)};_.Ic=function Pl(a){return this.Ld().Ic(a)};_.dc=function Sl(){return this.Ld().b.dc()};_.Kc=function Tl(){return this.Ld().Kc()};_.Mc=function Vl(a){return this.Ld(),vpb()};_.gc=function Wl(){return this.Ld().b.gc()};_.Pc=function Zl(){return this.Ld().Pc()};_.Qc=function $l(a){return this.Ld().Qc(a)};var MF=sfb(xve,'ForwardingCollection',2071);feb(2078,31,Xve);_.Kc=function gm(){return this.Od()};_.Fc=function am(a){throw Adb(new jib)};_.Gc=function bm(a){throw Adb(new jib)};_.Md=function cm(){var a;a=this.c;return !a?(this.c=this.Nd()):a};_.$b=function dm(){throw Adb(new jib)};_.Hc=function em(a){return a!=null&&ze(this,a,false)};_.Nd=function fm(){switch(this.gc()){case 0:return tm(),tm(),sm;case 1:return tm(),new Dy(Qb(this.Od().Pb()));default:return new Fx(this,this.Pc());}};_.Mc=function hm(a){throw Adb(new jib)};var lG=sfb(xve,'ImmutableCollection',2078);feb(727,2078,Xve,im);_.Kc=function nm(){return Nr(this.a.Kc())};_.Hc=function jm(a){return a!=null&&this.a.Hc(a)};_.Ic=function km(a){return this.a.Ic(a)};_.dc=function lm(){return this.a.dc()};_.Od=function mm(){return Nr(this.a.Kc())};_.gc=function om(){return this.a.gc()};_.Pc=function pm(){return this.a.Pc()};_.Qc=function qm(a){return this.a.Qc(a)};_.Ib=function rm(){return jeb(this.a)};var NF=sfb(xve,'ForwardingImmutableCollection',727);feb(307,2078,Yve);_.Kc=function Em(){return this.Od()};_.ed=function Fm(){return this.Pd(0)};_.fd=function Hm(a){return this.Pd(a)};_.jd=function Lm(a){tvb(this,a)};_.Nc=function Mm(){return new Swb(this,16)};_.kd=function Om(a,b){return this.Qd(a,b)};_.bd=function wm(a,b){throw Adb(new jib)};_.cd=function xm(a,b){throw Adb(new jib)};_.Md=function ym(){return this};_.Fb=function Am(a){return $u(this,a)};_.Hb=function Bm(){return _u(this)};_.dd=function Cm(a){return a==null?-1:av(this,a)};_.Od=function Dm(){return this.Pd(0)};_.Pd=function Gm(a){return um(this,a)};_.gd=function Jm(a){throw Adb(new jib)};_.hd=function Km(a,b){throw Adb(new jib)};_.Qd=function Nm(a,b){var c;return Pm((c=new pv(this),new Rkb(c,a,b)))};var sm;var qG=sfb(xve,'ImmutableList',307);feb(2105,307,Yve);_.Kc=function Zm(){return Nr(this.Rd().Kc())};_.kd=function an(a,b){return Pm(this.Rd().kd(a,b))};_.Hc=function Rm(a){return a!=null&&this.Rd().Hc(a)};_.Ic=function Sm(a){return this.Rd().Ic(a)};_.Fb=function Tm(a){return pb(this.Rd(),a)};_.Xb=function Um(a){return Qm(this,a)};_.Hb=function Vm(){return tb(this.Rd())};_.dd=function Wm(a){return this.Rd().dd(a)};_.dc=function Xm(){return this.Rd().dc()};_.Od=function Ym(){return Nr(this.Rd().Kc())};_.gc=function $m(){return this.Rd().gc()};_.Qd=function _m(a,b){return Pm(this.Rd().kd(a,b))};_.Pc=function bn(){return this.Rd().Qc($C(jJ,rve,1,this.Rd().gc(),5,1))};_.Qc=function cn(a){return this.Rd().Qc(a)};_.Ib=function dn(){return jeb(this.Rd())};var OF=sfb(xve,'ForwardingImmutableList',2105);feb(729,1,$ve);_.vc=function pn(){return gn(this)};_.wc=function rn(a){Bvb(this,a)};_.ec=function vn(){return hn(this)};_.yc=function wn(a,b,c){return Cvb(this,a,b,c)};_.Cc=function Dn(){return this.Vd()};_.$b=function kn(){throw Adb(new jib)};_._b=function ln(a){return this.xc(a)!=null};_.uc=function mn(a){return this.Vd().Hc(a)};_.Td=function nn(){return new xq(this)};_.Ud=function on(){return new Gq(this)};_.Fb=function qn(a){return Tv(this,a)};_.Hb=function tn(){return gn(this).Hb()};_.dc=function un(){return this.gc()==0};_.zc=function zn(a,b){return jn()};_.Bc=function An(a){throw Adb(new jib)};_.Ib=function Bn(){return Zv(this)};_.Vd=function Cn(){if(this.e){return this.e}return this.e=this.Ud()};_.c=null;_.d=null;_.e=null;var en;var AG=sfb(xve,'ImmutableMap',729);feb(730,729,$ve);_._b=function Hn(a){return En(this,a)};_.uc=function In(a){return pqb(this.b,a)};_.Sd=function Jn(){return go(new Xn(this))};_.Td=function Kn(){return go(sqb(this.b))};_.Ud=function Ln(){return _l(),new im(tqb(this.b))};_.Fb=function Mn(a){return rqb(this.b,a)};_.xc=function Nn(a){return Fn(this,a)};_.Hb=function On(){return tb(this.b.c)};_.dc=function Pn(){return this.b.c.dc()};_.gc=function Qn(){return this.b.c.gc()};_.Ib=function Rn(){return jeb(this.b.c)};var QF=sfb(xve,'ForwardingImmutableMap',730);feb(2072,2071,_ve);_.Kd=function Sn(){return this.Wd()};_.Ld=function Tn(){return this.Wd()};_.Nc=function Wn(){return new Swb(this,1)};_.Fb=function Un(a){return a===this||this.Wd().Fb(a)};_.Hb=function Vn(){return this.Wd().Hb()};var TF=sfb(xve,'ForwardingSet',2072);feb(1085,2072,_ve,Xn);_.Kd=function Zn(){return qqb(this.a.b)};_.Ld=function $n(){return qqb(this.a.b)};_.Hc=function Yn(b){if(ZD(b,44)&&RD(b,44).ld()==null){return false}try{return Pqb(qqb(this.a.b),b)}catch(a){a=zdb(a);if(ZD(a,212)){return false}else throw Adb(a)}};_.Wd=function _n(){return qqb(this.a.b)};_.Qc=function ao(a){var b;b=Qqb(qqb(this.a.b),a);qqb(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=AB($wnd.Math.abs(c)%60);return (Mrb(),Krb)[this.q.getDay()]+' '+Lrb[this.q.getMonth()]+' '+AB(this.q.getDate())+' '+AB(this.q.getHours())+':'+AB(this.q.getMinutes())+':'+AB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var qK=sfb(Bve,'Date',206);feb(2015,206,bxe,DB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var xI=sfb('com.google.gwt.i18n.shared.impl','DateRecord',2015);feb(2064,1,{});_.pe=function EB(){return null};_.qe=function FB(){return null};_.re=function GB(){return null};_.se=function HB(){return null};_.te=function IB(){return null};var GI=sfb(cxe,'JSONValue',2064);feb(221,2064,{221:1},MB,NB);_.Fb=function OB(a){if(!ZD(a,221)){return false}return Hz(this.a,RD(a,221).a)};_.oe=function PB(){return TB};_.Hb=function QB(){return Iz(this.a)};_.pe=function RB(){return this};_.Ib=function SB(){var a,b,c;c=new dib('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Yhb(c,JB(this,b))}c.a+=']';return c.a};var yI=sfb(cxe,'JSONArray',221);feb(493,2064,{493:1},XB);_.oe=function YB(){return _B};_.qe=function ZB(){return this};_.Ib=function $B(){return Geb(),''+this.a};_.a=false;var UB,VB;var zI=sfb(cxe,'JSONBoolean',493);feb(997,63,swe,aC);var AI=sfb(cxe,'JSONException',997);feb(1036,2064,{},dC);_.oe=function eC(){return gC};_.Ib=function fC(){return vve};var bC;var BI=sfb(cxe,'JSONNull',1036);feb(263,2064,{263:1},hC);_.Fb=function iC(a){if(!ZD(a,263)){return false}return this.a==RD(a,263).a};_.oe=function jC(){return nC};_.Hb=function kC(){return Nfb(this.a)};_.re=function lC(){return this};_.Ib=function mC(){return this.a+''};_.a=0;var CI=sfb(cxe,'JSONNumber',263);feb(190,2064,{190:1},uC,vC);_.Fb=function wC(a){if(!ZD(a,190)){return false}return Hz(this.a,RD(a,190).a)};_.oe=function xC(){return BC};_.Hb=function yC(){return Iz(this.a)};_.se=function zC(){return this};_.Ib=function AC(){var a,b,c,d,e,f,g;g=new dib('{');a=true;f=oC(this,$C(qJ,Nve,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var mJ=sfb(mve,'StackTraceElement',319);PD={3:1,484:1,34:1,2:1};var qJ=sfb(mve,uwe,2);feb(111,427,{484:1},Qhb,Rhb,Shb);var nJ=sfb(mve,'StringBuffer',111);feb(104,427,{484:1},bib,cib,dib);var oJ=sfb(mve,'StringBuilder',104);feb(702,77,lxe,eib);var pJ=sfb(mve,'StringIndexOutOfBoundsException',702);feb(2145,1,{});var fib;feb(48,63,{3:1,103:1,63:1,82:1,48:1},jib,kib);var sJ=sfb(mve,'UnsupportedOperationException',48);feb(247,242,{3:1,34:1,242:1,247:1},Aib,Bib);_.Fd=function Eib(a){return uib(this,RD(a,247))};_.ue=function Fib(){return Neb(zib(this))};_.Fb=function Gib(a){var b;if(this===a){return true}if(ZD(a,247)){b=RD(a,247);return this.e==b.e&&uib(this,b)==0}return false};_.Hb=function Hib(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Hdb(this.f);this.b=Ydb(Cdb(a,-1));this.b=33*this.b+Ydb(Cdb(Tdb(a,32),-1));this.b=17*this.b+eE(this.e);return this.b}this.b=17*Vib(this.c)+eE(this.e);return this.b};_.Ib=function Iib(){return zib(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var lib,mib,nib,oib,pib,qib,rib,sib;var tJ=sfb('java.math','BigDecimal',247);feb(92,242,{3:1,34:1,242:1,92:1},ajb,bjb,cjb,djb,ejb);_.Fd=function gjb(a){return Qib(this,RD(a,92))};_.ue=function hjb(){return Neb(Ajb(this,0))};_.Fb=function ijb(a){return Sib(this,a)};_.Hb=function ljb(){return Vib(this)};_.Ib=function njb(){return Ajb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Jib,Kib,Lib,Mib,Nib,Oib;var uJ=sfb('java.math','BigInteger',92);var vjb,wjb;var Jjb,Kjb;feb(498,2065,Cve);_.$b=function dkb(){akb(this)};_._b=function ekb(a){return Ujb(this,a)};_.uc=function fkb(a){return Vjb(this,a,this.i)||Vjb(this,a,this.f)};_.vc=function gkb(){return new mkb(this)};_.xc=function hkb(a){return Wjb(this,a)};_.zc=function ikb(a,b){return Zjb(this,a,b)};_.Bc=function jkb(a){return _jb(this,a)};_.gc=function kkb(){return bkb(this)};_.g=0;var yJ=sfb(Bve,'AbstractHashMap',498);feb(267,Eve,Fve,mkb);_.$b=function nkb(){this.a.$b()};_.Hc=function okb(a){return lkb(this,a)};_.Kc=function pkb(){return new vkb(this.a)};_.Mc=function qkb(a){var b;if(lkb(this,a)){b=RD(a,44).ld();this.a.Bc(b);return true}return false};_.gc=function rkb(){return this.a.gc()};var xJ=sfb(Bve,'AbstractHashMap/EntrySet',267);feb(268,1,Ave,vkb);_.Nb=function wkb(a){Ztb(this,a)};_.Pb=function ykb(){return tkb(this)};_.Ob=function xkb(){return this.b};_.Qb=function zkb(){ukb(this)};_.b=false;_.d=0;var wJ=sfb(Bve,'AbstractHashMap/EntrySetIterator',268);feb(426,1,Ave,Dkb);_.Nb=function Ekb(a){Ztb(this,a)};_.Ob=function Fkb(){return Akb(this)};_.Pb=function Gkb(){return Bkb(this)};_.Qb=function Hkb(){Ckb(this)};_.b=0;_.c=-1;var zJ=sfb(Bve,'AbstractList/IteratorImpl',426);feb(98,426,Jve,Jkb);_.Qb=function Pkb(){Ckb(this)};_.Rb=function Kkb(a){Ikb(this,a)};_.Sb=function Lkb(){return this.b>0};_.Tb=function Mkb(){return this.b};_.Ub=function Nkb(){return sFb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Okb(){return this.b-1};_.Wb=function Qkb(a){yFb(this.c!=-1);this.a.hd(this.c,a)};var AJ=sfb(Bve,'AbstractList/ListIteratorImpl',98);feb(244,56,kwe,Rkb);_.bd=function Skb(a,b){wFb(a,this.b);this.c.bd(this.a+a,b);++this.b};_.Xb=function Tkb(a){tFb(a,this.b);return this.c.Xb(this.a+a)};_.gd=function Ukb(a){var b;tFb(a,this.b);b=this.c.gd(this.a+a);--this.b;return b};_.hd=function Vkb(a,b){tFb(a,this.b);return this.c.hd(this.a+a,b)};_.gc=function Wkb(){return this.b};_.a=0;_.b=0;var BJ=sfb(Bve,'AbstractList/SubList',244);feb(266,Eve,Fve,Xkb);_.$b=function Ykb(){this.a.$b()};_.Hc=function Zkb(a){return this.a._b(a)};_.Kc=function $kb(){var a;return a=this.a.vc().Kc(),new blb(a)};_.Mc=function _kb(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function alb(){return this.a.gc()};var EJ=sfb(Bve,'AbstractMap/1',266);feb(541,1,Ave,blb);_.Nb=function clb(a){Ztb(this,a)};_.Ob=function dlb(){return this.a.Ob()};_.Pb=function elb(){var a;return a=RD(this.a.Pb(),44),a.ld()};_.Qb=function flb(){this.a.Qb()};var DJ=sfb(Bve,'AbstractMap/1/1',541);feb(231,31,Dve,glb);_.$b=function hlb(){this.a.$b()};_.Hc=function ilb(a){return this.a.uc(a)};_.Kc=function jlb(){var a;return a=this.a.vc().Kc(),new llb(a)};_.gc=function klb(){return this.a.gc()};var GJ=sfb(Bve,'AbstractMap/2',231);feb(301,1,Ave,llb);_.Nb=function mlb(a){Ztb(this,a)};_.Ob=function nlb(){return this.a.Ob()};_.Pb=function olb(){var a;return a=RD(this.a.Pb(),44),a.md()};_.Qb=function plb(){this.a.Qb()};var FJ=sfb(Bve,'AbstractMap/2/1',301);feb(494,1,{494:1,44:1});_.Fb=function rlb(a){var b;if(!ZD(a,44)){return false}b=RD(a,44);return Fvb(this.d,b.ld())&&Fvb(this.e,b.md())};_.ld=function slb(){return this.d};_.md=function tlb(){return this.e};_.Hb=function ulb(){return Gvb(this.d)^Gvb(this.e)};_.nd=function vlb(a){return qlb(this,a)};_.Ib=function wlb(){return this.d+'='+this.e};var HJ=sfb(Bve,'AbstractMap/AbstractEntry',494);feb(397,494,{494:1,397:1,44:1},xlb);var IJ=sfb(Bve,'AbstractMap/SimpleEntry',397);feb(2082,1,Axe);_.Fb=function ylb(a){var b;if(!ZD(a,44)){return false}b=RD(a,44);return Fvb(this.ld(),b.ld())&&Fvb(this.md(),b.md())};_.Hb=function zlb(){return Gvb(this.ld())^Gvb(this.md())};_.Ib=function Alb(){return this.ld()+'='+this.md()};var JJ=sfb(Bve,Lve,2082);feb(2090,2065,Gve);_.Xc=function Dlb(a){return Vd(this.Ee(a))};_.tc=function Elb(a){return Blb(this,a)};_._b=function Flb(a){return Clb(this,a)};_.vc=function Glb(){return new Plb(this)};_.Tc=function Hlb(){return Klb(this.Ge())};_.Yc=function Ilb(a){return Vd(this.He(a))};_.xc=function Jlb(a){var b;b=a;return Wd(this.Fe(b))};_.$c=function Llb(a){return Vd(this.Ie(a))};_.ec=function Mlb(){return new Ulb(this)};_.Vc=function Nlb(){return Klb(this.Je())};_._c=function Olb(a){return Vd(this.Ke(a))};var OJ=sfb(Bve,'AbstractNavigableMap',2090);feb(629,Eve,Fve,Plb);_.Hc=function Qlb(a){return ZD(a,44)&&Blb(this.b,RD(a,44))};_.Kc=function Rlb(){return this.b.De()};_.Mc=function Slb(a){var b;if(ZD(a,44)){b=RD(a,44);return this.b.Le(b)}return false};_.gc=function Tlb(){return this.b.gc()};var LJ=sfb(Bve,'AbstractNavigableMap/EntrySet',629);feb(1146,Eve,Ive,Ulb);_.Nc=function $lb(){return new $wb(this)};_.$b=function Vlb(){this.a.$b()};_.Hc=function Wlb(a){return Clb(this.a,a)};_.Kc=function Xlb(){var a;a=this.a.vc().b.De();return new _lb(a)};_.Mc=function Ylb(a){if(Clb(this.a,a)){this.a.Bc(a);return true}return false};_.gc=function Zlb(){return this.a.gc()};var NJ=sfb(Bve,'AbstractNavigableMap/NavigableKeySet',1146);feb(1147,1,Ave,_lb);_.Nb=function amb(a){Ztb(this,a)};_.Ob=function bmb(){return Akb(this.a.a)};_.Pb=function cmb(){var a;a=vzb(this.a);return a.ld()};_.Qb=function dmb(){wzb(this.a)};var MJ=sfb(Bve,'AbstractNavigableMap/NavigableKeySet/1',1147);feb(2103,31,Dve);_.Fc=function emb(a){return zFb(lwb(this,a),Bxe),true};_.Gc=function fmb(a){uFb(a);mFb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function gmb(){while(mwb(this)!=null);};var PJ=sfb(Bve,'AbstractQueue',2103);feb(310,31,{4:1,20:1,31:1,16:1},wmb,xmb);_.Fc=function ymb(a){return imb(this,a),true};_.$b=function Amb(){jmb(this)};_.Hc=function Bmb(a){return kmb(new Kmb(this),a)};_.dc=function Cmb(){return nmb(this)};_.Kc=function Dmb(){return new Kmb(this)};_.Mc=function Emb(a){return qmb(new Kmb(this),a)};_.gc=function Fmb(){return this.c-this.b&this.a.length-1};_.Nc=function Gmb(){return new Swb(this,272)};_.Qc=function Hmb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&bD(a,b,null);return a};_.b=0;_.c=0;var TJ=sfb(Bve,'ArrayDeque',310);feb(459,1,Ave,Kmb);_.Nb=function Lmb(a){Ztb(this,a)};_.Ob=function Mmb(){return this.a!=this.b};_.Pb=function Nmb(){return Imb(this)};_.Qb=function Omb(){Jmb(this)};_.a=0;_.b=0;_.c=-1;var SJ=sfb(Bve,'ArrayDeque/IteratorImpl',459);feb(13,56,Cxe,bnb,cnb,dnb);_.bd=function enb(a,b){Qmb(this,a,b)};_.Fc=function fnb(a){return Rmb(this,a)};_.cd=function gnb(a,b){return Smb(this,a,b)};_.Gc=function hnb(a){return Tmb(this,a)};_.$b=function inb(){aFb(this.c,0)};_.Hc=function jnb(a){return Wmb(this,a,0)!=-1};_.Jc=function knb(a){Umb(this,a)};_.Xb=function lnb(a){return Vmb(this,a)};_.dd=function mnb(a){return Wmb(this,a,0)};_.dc=function nnb(){return this.c.length==0};_.Kc=function onb(){return new Anb(this)};_.gd=function pnb(a){return Xmb(this,a)};_.Mc=function qnb(a){return Ymb(this,a)};_.ce=function rnb(a,b){Zmb(this,a,b)};_.hd=function snb(a,b){return $mb(this,a,b)};_.gc=function tnb(){return this.c.length};_.jd=function unb(a){_mb(this,a)};_.Pc=function vnb(){return UEb(this.c)};_.Qc=function wnb(a){return anb(this,a)};var VJ=sfb(Bve,'ArrayList',13);feb(7,1,Ave,Anb);_.Nb=function Bnb(a){Ztb(this,a)};_.Ob=function Cnb(){return xnb(this)};_.Pb=function Dnb(){return ynb(this)};_.Qb=function Enb(){znb(this)};_.a=0;_.b=-1;var UJ=sfb(Bve,'ArrayList/1',7);feb(2112,$wnd.Function,{},iob);_.Me=function job(a,b){return Qfb(a,b)};feb(151,56,Dxe,mob);_.Hc=function nob(a){return St(this,a)!=-1};_.Jc=function oob(a){var b,c,d,e;uFb(a);for(c=this.a,d=0,e=c.length;d0){throw Adb(new agb(Sxe+a+' greater than '+this.e))}return this.f.Te()?bzb(this.c,this.b,this.a,a,b):Ryb(this.c,a,b)};_.zc=function Vzb(a,b){if(!Tyb(this.c,this.f,a,this.b,this.a,this.e,this.d)){throw Adb(new agb(a+' outside the range '+this.b+' to '+this.e))}return Wyb(this.c,a,b)};_.Bc=function Wzb(a){var b;b=a;if(!Tyb(this.c,this.f,b,this.b,this.a,this.e,this.d)){return null}return Xyb(this.c,b)};_.Le=function Xzb(a){return Jzb(this,a.ld())&&Yyb(this.c,a)};_.gc=function Yzb(){var a,b,c;this.f.Te()?this.a?(b=Pyb(this.c,this.b,true)):(b=Pyb(this.c,this.b,false)):(b=Nyb(this.c));if(!(!!b&&Jzb(this,b.d)?b:null)){return 0}a=0;for(c=new yzb(this.c,this.f,this.b,this.a,this.e,this.d);Akb(c.a);c.b=RD(Bkb(c.a),44)){++a}return a};_.ad=function Zzb(a,b){if(this.f.Te()&&this.c.a.Ne(a,this.b)<0){throw Adb(new agb(Sxe+a+Txe+this.b))}return this.f.Ue()?bzb(this.c,a,b,this.e,this.d):czb(this.c,a,b)};_.a=false;_.d=false;var BL=sfb(Bve,'TreeMap/SubMap',631);feb(304,22,Uxe,dAb);_.Te=function eAb(){return false};_.Ue=function fAb(){return false};var $zb,_zb,aAb,bAb;var AL=tfb(Bve,'TreeMap/SubMapType',304,WI,hAb,gAb);feb(1143,304,Uxe,iAb);_.Ue=function jAb(){return true};var xL=tfb(Bve,'TreeMap/SubMapType/1',1143,AL,null,null);feb(1144,304,Uxe,kAb);_.Te=function lAb(){return true};_.Ue=function mAb(){return true};var yL=tfb(Bve,'TreeMap/SubMapType/2',1144,AL,null,null);feb(1145,304,Uxe,nAb);_.Te=function oAb(){return true};var zL=tfb(Bve,'TreeMap/SubMapType/3',1145,AL,null,null);var pAb;feb(157,Eve,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},xAb,yAb,zAb);_.Nc=function GAb(){return new $wb(this)};_.Fc=function AAb(a){return rAb(this,a)};_.$b=function BAb(){this.a.$b()};_.Hc=function CAb(a){return this.a._b(a)};_.Kc=function DAb(){return this.a.ec().Kc()};_.Mc=function EAb(a){return wAb(this,a)};_.gc=function FAb(){return this.a.gc()};var DL=sfb(Bve,'TreeSet',157);feb(1082,1,{},JAb);_.Ve=function KAb(a,b){return HAb(this.a,a,b)};var FL=sfb(Vxe,'BinaryOperator/lambda$0$Type',1082);feb(1083,1,{},LAb);_.Ve=function MAb(a,b){return IAb(this.a,a,b)};var GL=sfb(Vxe,'BinaryOperator/lambda$1$Type',1083);feb(952,1,{},NAb);_.Kb=function OAb(a){return a};var HL=sfb(Vxe,'Function/lambda$0$Type',952);feb(395,1,nwe,PAb);_.Mb=function QAb(a){return !this.a.Mb(a)};var IL=sfb(Vxe,'Predicate/lambda$2$Type',395);feb(581,1,{581:1});var JL=sfb(Wxe,'Handler',581);feb(2107,1,nve);_.xe=function TAb(){return 'DUMMY'};_.Ib=function UAb(){return this.xe()};var RAb;var LL=sfb(Wxe,'Level',2107);feb(1706,2107,nve,VAb);_.xe=function WAb(){return 'INFO'};var KL=sfb(Wxe,'Level/LevelInfo',1706);feb(1843,1,{},$Ab);var XAb;var ML=sfb(Wxe,'LogManager',1843);feb(1896,1,nve,aBb);_.b=null;var NL=sfb(Wxe,'LogRecord',1896);feb(525,1,{525:1},oBb);_.e=false;var bBb=false,cBb=false,dBb=false,eBb=false,fBb=false;var OL=sfb(Wxe,'Logger',525);feb(835,581,{581:1},rBb);var PL=sfb(Wxe,'SimpleConsoleLogHandler',835);feb(108,22,{3:1,34:1,22:1,108:1},yBb);var uBb,vBb,wBb;var QL=tfb(Zxe,'Collector/Characteristics',108,WI,ABb,zBb);var BBb;feb(758,1,{},DBb);var RL=sfb(Zxe,'CollectorImpl',758);feb(1074,1,{},RBb);_.Ve=function SBb(a,b){return Hyb(RD(a,213),RD(b,213))};var SL=sfb(Zxe,'Collectors/10methodref$merge$Type',1074);feb(1075,1,{},TBb);_.Kb=function UBb(a){return Iyb(RD(a,213))};var TL=sfb(Zxe,'Collectors/11methodref$toString$Type',1075);feb(1076,1,{},VBb);_.Kb=function WBb(a){return Geb(),SSb(a)?true:false};var UL=sfb(Zxe,'Collectors/12methodref$test$Type',1076);feb(144,1,{},XBb);_.Yd=function YBb(a,b){RD(a,16).Fc(b)};var VL=sfb(Zxe,'Collectors/20methodref$add$Type',144);feb(146,1,{},ZBb);_.Xe=function $Bb(){return new bnb};var WL=sfb(Zxe,'Collectors/21methodref$ctor$Type',146);feb(359,1,{},_Bb);_.Xe=function aCb(){return new _sb};var XL=sfb(Zxe,'Collectors/23methodref$ctor$Type',359);feb(360,1,{},bCb);_.Yd=function cCb(a,b){Ysb(RD(a,49),b)};var YL=sfb(Zxe,'Collectors/24methodref$add$Type',360);feb(1069,1,{},dCb);_.Ve=function eCb(a,b){return EBb(RD(a,15),RD(b,16))};var ZL=sfb(Zxe,'Collectors/4methodref$addAll$Type',1069);feb(1073,1,{},fCb);_.Yd=function gCb(a,b){Gyb(RD(a,213),RD(b,484))};var $L=sfb(Zxe,'Collectors/9methodref$add$Type',1073);feb(1072,1,{},hCb);_.Xe=function iCb(){return new Jyb(this.a,this.b,this.c)};var _L=sfb(Zxe,'Collectors/lambda$15$Type',1072);feb(1077,1,{},jCb);_.Xe=function kCb(){var a;return a=new gub,dub(a,(Geb(),false),new bnb),dub(a,true,new bnb),a};var aM=sfb(Zxe,'Collectors/lambda$22$Type',1077);feb(1078,1,{},lCb);_.Xe=function mCb(){return cD(WC(jJ,1),rve,1,5,[this.a])};var bM=sfb(Zxe,'Collectors/lambda$25$Type',1078);feb(1079,1,{},nCb);_.Yd=function oCb(a,b){GBb(this.a,SD(a))};var cM=sfb(Zxe,'Collectors/lambda$26$Type',1079);feb(1080,1,{},pCb);_.Ve=function qCb(a,b){return HBb(this.a,SD(a),SD(b))};var dM=sfb(Zxe,'Collectors/lambda$27$Type',1080);feb(1081,1,{},rCb);_.Kb=function sCb(a){return SD(a)[0]};var eM=sfb(Zxe,'Collectors/lambda$28$Type',1081);feb(728,1,{},uCb);_.Ve=function vCb(a,b){return tCb(a,b)};var fM=sfb(Zxe,'Collectors/lambda$4$Type',728);feb(145,1,{},wCb);_.Ve=function xCb(a,b){return JBb(RD(a,16),RD(b,16))};var gM=sfb(Zxe,'Collectors/lambda$42$Type',145);feb(361,1,{},yCb);_.Ve=function zCb(a,b){return KBb(RD(a,49),RD(b,49))};var hM=sfb(Zxe,'Collectors/lambda$50$Type',361);feb(362,1,{},ACb);_.Kb=function BCb(a){return RD(a,49)};var iM=sfb(Zxe,'Collectors/lambda$51$Type',362);feb(1068,1,{},CCb);_.Yd=function DCb(a,b){LBb(this.a,RD(a,85),b)};var jM=sfb(Zxe,'Collectors/lambda$7$Type',1068);feb(1070,1,{},ECb);_.Ve=function FCb(a,b){return NBb(RD(a,85),RD(b,85),new dCb)};var kM=sfb(Zxe,'Collectors/lambda$8$Type',1070);feb(1071,1,{},GCb);_.Kb=function HCb(a){return MBb(this.a,RD(a,85))};var lM=sfb(Zxe,'Collectors/lambda$9$Type',1071);feb(550,1,{});_.$e=function OCb(){ICb(this)};_.d=false;var TM=sfb(Zxe,'TerminatableStream',550);feb(827,550,$xe,WCb);_.$e=function XCb(){ICb(this)};var qM=sfb(Zxe,'DoubleStreamImpl',827);feb(1847,736,Pve,$Cb);_.Re=function aDb(a){return ZCb(this,RD(a,189))};_.a=null;var nM=sfb(Zxe,'DoubleStreamImpl/2',1847);feb(1848,1,Gxe,bDb);_.Pe=function cDb(a){_Cb(this.a,a)};var mM=sfb(Zxe,'DoubleStreamImpl/2/lambda$0$Type',1848);feb(1845,1,Gxe,dDb);_.Pe=function eDb(a){YCb(this.a,a)};var oM=sfb(Zxe,'DoubleStreamImpl/lambda$0$Type',1845);feb(1846,1,Gxe,fDb);_.Pe=function gDb(a){Nrb(this.a,a)};var pM=sfb(Zxe,'DoubleStreamImpl/lambda$2$Type',1846);feb(1397,735,Pve,kDb);_.Re=function lDb(a){return jDb(this,RD(a,202))};_.a=0;_.b=0;_.c=0;var rM=sfb(Zxe,'IntStream/5',1397);feb(806,550,$xe,oDb);_.$e=function pDb(){ICb(this)};_._e=function qDb(){return LCb(this),this.a};var vM=sfb(Zxe,'IntStreamImpl',806);feb(807,550,$xe,rDb);_.$e=function sDb(){ICb(this)};_._e=function tDb(){return LCb(this),Txb(),Sxb};var sM=sfb(Zxe,'IntStreamImpl/Empty',807);feb(1687,1,Rve,uDb);_.Dd=function vDb(a){ktb(this.a,a)};var uM=sfb(Zxe,'IntStreamImpl/lambda$4$Type',1687);var RM=ufb(Zxe,'Stream');feb(26,550,{533:1,687:1,848:1},SDb);_.$e=function TDb(){ICb(this)};var wDb;var QM=sfb(Zxe,'StreamImpl',26);feb(1102,500,Pve,YDb);_.Bd=function ZDb(a){while(WDb(this)){if(this.a.Bd(a)){return true}else{ICb(this.b);this.b=null;this.a=null}}return false};var xM=sfb(Zxe,'StreamImpl/1',1102);feb(1103,1,Qve,$Db);_.Cd=function _Db(a){XDb(this.a,RD(a,848))};var wM=sfb(Zxe,'StreamImpl/1/lambda$0$Type',1103);feb(1104,1,nwe,aEb);_.Mb=function bEb(a){return Ysb(this.a,a)};var yM=sfb(Zxe,'StreamImpl/1methodref$add$Type',1104);feb(1105,500,Pve,cEb);_.Bd=function dEb(a){var b;if(!this.a){b=new bnb;this.b.a.Nb(new eEb(b));yob();_mb(b,this.c);this.a=new Swb(b,16)}return Rwb(this.a,a)};_.a=null;var AM=sfb(Zxe,'StreamImpl/5',1105);feb(1106,1,Qve,eEb);_.Cd=function fEb(a){Rmb(this.a,a)};var zM=sfb(Zxe,'StreamImpl/5/2methodref$add$Type',1106);feb(737,500,Pve,hEb);_.Bd=function iEb(a){this.b=false;while(!this.b&&this.c.Bd(new jEb(this,a)));return this.b};_.b=false;var CM=sfb(Zxe,'StreamImpl/FilterSpliterator',737);feb(1096,1,Qve,jEb);_.Cd=function kEb(a){gEb(this.a,this.b,a)};var BM=sfb(Zxe,'StreamImpl/FilterSpliterator/lambda$0$Type',1096);feb(1091,736,Pve,nEb);_.Re=function oEb(a){return mEb(this,RD(a,189))};var EM=sfb(Zxe,'StreamImpl/MapToDoubleSpliterator',1091);feb(1095,1,Qve,pEb);_.Cd=function qEb(a){lEb(this.a,this.b,a)};var DM=sfb(Zxe,'StreamImpl/MapToDoubleSpliterator/lambda$0$Type',1095);feb(1090,735,Pve,tEb);_.Re=function uEb(a){return sEb(this,RD(a,202))};var GM=sfb(Zxe,'StreamImpl/MapToIntSpliterator',1090);feb(1094,1,Qve,vEb);_.Cd=function wEb(a){rEb(this.a,this.b,a)};var FM=sfb(Zxe,'StreamImpl/MapToIntSpliterator/lambda$0$Type',1094);feb(734,500,Pve,zEb);_.Bd=function AEb(a){return yEb(this,a)};var IM=sfb(Zxe,'StreamImpl/MapToObjSpliterator',734);feb(1093,1,Qve,BEb);_.Cd=function CEb(a){xEb(this.a,this.b,a)};var HM=sfb(Zxe,'StreamImpl/MapToObjSpliterator/lambda$0$Type',1093);feb(1092,500,Pve,DEb);_.Bd=function EEb(a){while(Idb(this.b,0)){if(!this.a.Bd(new FEb)){return false}this.b=Vdb(this.b,1)}return this.a.Bd(a)};_.b=0;var KM=sfb(Zxe,'StreamImpl/SkipSpliterator',1092);feb(1097,1,Qve,FEb);_.Cd=function GEb(a){};var JM=sfb(Zxe,'StreamImpl/SkipSpliterator/lambda$0$Type',1097);feb(626,1,Qve,IEb);_.Cd=function JEb(a){HEb(this,a)};var LM=sfb(Zxe,'StreamImpl/ValueConsumer',626);feb(1098,1,Qve,KEb);_.Cd=function LEb(a){xDb()};var MM=sfb(Zxe,'StreamImpl/lambda$0$Type',1098);feb(1099,1,Qve,MEb);_.Cd=function NEb(a){xDb()};var NM=sfb(Zxe,'StreamImpl/lambda$1$Type',1099);feb(1100,1,{},OEb);_.Ve=function PEb(a,b){return UDb(this.a,a,b)};var OM=sfb(Zxe,'StreamImpl/lambda$4$Type',1100);feb(1101,1,Qve,QEb);_.Cd=function REb(a){VDb(this.b,this.a,a)};var PM=sfb(Zxe,'StreamImpl/lambda$5$Type',1101);feb(1107,1,Qve,SEb);_.Cd=function TEb(a){PCb(this.a,RD(a,380))};var SM=sfb(Zxe,'TerminatableStream/lambda$0$Type',1107);feb(2142,1,{});feb(2014,1,{},gFb);var UM=sfb('javaemul.internal','ConsoleLogger',2014);var iFb=0;feb(2134,1,{});feb(1830,1,Qve,FFb);_.Cd=function GFb(a){RD(a,317)};var VM=sfb(eye,'BowyerWatsonTriangulation/lambda$0$Type',1830);feb(1831,1,Qve,HFb);_.Cd=function IFb(a){ye(this.a,RD(a,317).e)};var WM=sfb(eye,'BowyerWatsonTriangulation/lambda$1$Type',1831);feb(1832,1,Qve,JFb);_.Cd=function KFb(a){RD(a,177)};var XM=sfb(eye,'BowyerWatsonTriangulation/lambda$2$Type',1832);feb(1827,1,fye,NFb);_.Ne=function OFb(a,b){return MFb(this.a,RD(a,177),RD(b,177))};_.Fb=function PFb(a){return this===a};_.Oe=function QFb(){return new Frb(this)};var YM=sfb(eye,'NaiveMinST/lambda$0$Type',1827);feb(449,1,{},SFb);var ZM=sfb(eye,'NodeMicroLayout',449);feb(177,1,{177:1},TFb);_.Fb=function UFb(a){var b;if(ZD(a,177)){b=RD(a,177);return Fvb(this.a,b.a)&&Fvb(this.b,b.b)||Fvb(this.a,b.b)&&Fvb(this.b,b.a)}else{return false}};_.Hb=function VFb(){return Gvb(this.a)+Gvb(this.b)};var $M=sfb(eye,'TEdge',177);feb(317,1,{317:1},XFb);_.Fb=function YFb(a){var b;if(ZD(a,317)){b=RD(a,317);return WFb(this,b.a)&&WFb(this,b.b)&&WFb(this,b.c)}else{return false}};_.Hb=function ZFb(){return Gvb(this.a)+Gvb(this.b)+Gvb(this.c)};var _M=sfb(eye,'TTriangle',317);feb(225,1,{225:1},$Fb);var aN=sfb(eye,'Tree',225);feb(1218,1,{},aGb);var cN=sfb(gye,'Scanline',1218);var bN=ufb(gye,hye);feb(1758,1,{},dGb);var dN=sfb(iye,'CGraph',1758);feb(316,1,{316:1},fGb);_.b=0;_.c=0;_.d=0;_.g=0;_.i=0;_.k=pxe;var fN=sfb(iye,'CGroup',316);feb(830,1,{},jGb);var eN=sfb(iye,'CGroup/CGroupBuilder',830);feb(60,1,{60:1},kGb);_.Ib=function lGb(){var a;if(this.j){return WD(this.j.Kb(this))}return lfb(hN),hN.o+'@'+(a=kFb(this)>>>0,a.toString(16))};_.f=0;_.i=pxe;var hN=sfb(iye,'CNode',60);feb(829,1,{},qGb);var gN=sfb(iye,'CNode/CNodeBuilder',829);var vGb;feb(1590,1,{},xGb);_.ff=function yGb(a,b){return 0};_.gf=function zGb(a,b){return 0};var iN=sfb(iye,kye,1590);feb(1853,1,{},AGb);_.cf=function BGb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=oxe;for(d=new Anb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.kf=function yKb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].kf())}else if(this.g){e=vKb(this,pKb(this,null,true))}else{for(b=(ZJb(),cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.lf=function zKb(){var a,b,c,d,e;if(this.g){a=pKb(this,null,false);for(c=(ZJb(),cD(WC(JN,1),jwe,237,0,[WJb,XJb,YJb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);lKb(this,XJb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var iKb=0,jKb=0;var LN=sfb(Jye,'GridContainerCell',1538);feb(471,22,{3:1,34:1,22:1,471:1},FKb);var BKb,CKb,DKb;var MN=tfb(Jye,'HorizontalLabelAlignment',471,WI,HKb,GKb);var IKb;feb(314,217,{217:1,314:1},TKb,UKb,VKb);_.jf=function WKb(){return PKb(this)};_.kf=function XKb(){return QKb(this)};_.a=0;_.c=false;var NN=sfb(Jye,'LabelCell',314);feb(252,336,{217:1,336:1,252:1},dLb);_.jf=function eLb(){return YKb(this)};_.kf=function fLb(){return ZKb(this)};_.lf=function iLb(){$Kb(this)};_.mf=function jLb(){_Kb(this)};_.b=0;_.c=0;_.d=false;var SN=sfb(Jye,'StripContainerCell',252);feb(1691,1,nwe,kLb);_.Mb=function lLb(a){return gLb(RD(a,217))};var ON=sfb(Jye,'StripContainerCell/lambda$0$Type',1691);feb(1692,1,{},mLb);_.Ye=function nLb(a){return RD(a,217).kf()};var PN=sfb(Jye,'StripContainerCell/lambda$1$Type',1692);feb(1693,1,nwe,oLb);_.Mb=function pLb(a){return hLb(RD(a,217))};var QN=sfb(Jye,'StripContainerCell/lambda$2$Type',1693);feb(1694,1,{},qLb);_.Ye=function rLb(a){return RD(a,217).jf()};var RN=sfb(Jye,'StripContainerCell/lambda$3$Type',1694);feb(472,22,{3:1,34:1,22:1,472:1},wLb);var sLb,tLb,uLb;var TN=tfb(Jye,'VerticalLabelAlignment',472,WI,yLb,xLb);var zLb;feb(800,1,{},CLb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;_.F=false;var WN=sfb(Rye,'NodeContext',800);feb(1536,1,fye,FLb);_.Ne=function GLb(a,b){return ELb(RD(a,64),RD(b,64))};_.Fb=function HLb(a){return this===a};_.Oe=function ILb(){return new Frb(this)};var UN=sfb(Rye,'NodeContext/0methodref$comparePortSides$Type',1536);feb(1537,1,fye,JLb);_.Ne=function KLb(a,b){return DLb(RD(a,117),RD(b,117))};_.Fb=function LLb(a){return this===a};_.Oe=function MLb(){return new Frb(this)};var VN=sfb(Rye,'NodeContext/1methodref$comparePortContexts$Type',1537);feb(164,22,{3:1,34:1,22:1,164:1},kMb);var NLb,OLb,PLb,QLb,RLb,SLb,TLb,ULb,VLb,WLb,XLb,YLb,ZLb,$Lb,_Lb,aMb,bMb,cMb,dMb,eMb,fMb,gMb;var XN=tfb(Rye,'NodeLabelLocation',164,WI,nMb,mMb);var oMb;feb(117,1,{117:1},rMb);_.a=false;var YN=sfb(Rye,'PortContext',117);feb(1541,1,Qve,KMb);_.Cd=function LMb(a){NKb(RD(a,314))};var ZN=sfb(Uye,Vye,1541);feb(1542,1,nwe,MMb);_.Mb=function NMb(a){return !!RD(a,117).c};var $N=sfb(Uye,Wye,1542);feb(1543,1,Qve,OMb);_.Cd=function PMb(a){NKb(RD(a,117).c)};var _N=sfb(Uye,'LabelPlacer/lambda$2$Type',1543);var QMb;feb(1540,1,Qve,YMb);_.Cd=function ZMb(a){RMb();qMb(RD(a,117))};var aO=sfb(Uye,'NodeLabelAndSizeUtilities/lambda$0$Type',1540);feb(801,1,Qve,dNb);_.Cd=function eNb(a){bNb(this.b,this.c,this.a,RD(a,187))};_.a=false;_.c=false;var bO=sfb(Uye,'NodeLabelCellCreator/lambda$0$Type',801);feb(1539,1,Qve,kNb);_.Cd=function lNb(a){jNb(this.a,RD(a,187))};var cO=sfb(Uye,'PortContextCreator/lambda$0$Type',1539);var sNb;feb(1902,1,{},MNb);var eO=sfb(Yye,'GreedyRectangleStripOverlapRemover',1902);feb(1903,1,fye,ONb);_.Ne=function PNb(a,b){return NNb(RD(a,226),RD(b,226))};_.Fb=function QNb(a){return this===a};_.Oe=function RNb(){return new Frb(this)};var dO=sfb(Yye,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1903);feb(1849,1,{},YNb);_.a=5;_.e=0;var kO=sfb(Yye,'RectangleStripOverlapRemover',1849);feb(1850,1,fye,aOb);_.Ne=function bOb(a,b){return ZNb(RD(a,226),RD(b,226))};_.Fb=function cOb(a){return this===a};_.Oe=function dOb(){return new Frb(this)};var fO=sfb(Yye,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1850);feb(1852,1,fye,eOb);_.Ne=function fOb(a,b){return $Nb(RD(a,226),RD(b,226))};_.Fb=function gOb(a){return this===a};_.Oe=function hOb(){return new Frb(this)};var gO=sfb(Yye,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1852);feb(417,22,{3:1,34:1,22:1,417:1},nOb);var iOb,jOb,kOb,lOb;var hO=tfb(Yye,'RectangleStripOverlapRemover/OverlapRemovalDirection',417,WI,pOb,oOb);var qOb;feb(226,1,{226:1},sOb);var iO=sfb(Yye,'RectangleStripOverlapRemover/RectangleNode',226);feb(1851,1,Qve,tOb);_.Cd=function uOb(a){TNb(this.a,RD(a,226))};var jO=sfb(Yye,'RectangleStripOverlapRemover/lambda$1$Type',1851);feb(1323,1,fye,xOb);_.Ne=function yOb(a,b){return wOb(RD(a,176),RD(b,176))};_.Fb=function zOb(a){return this===a};_.Oe=function AOb(){return new Frb(this)};var oO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1323);feb(1326,1,{},BOb);_.Kb=function COb(a){return RD(a,334).a};var lO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1326);feb(1327,1,nwe,DOb);_.Mb=function EOb(a){return RD(a,332).a};var mO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1327);feb(1328,1,nwe,FOb);_.Mb=function GOb(a){return RD(a,332).a};var nO=sfb($ye,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1328);feb(1321,1,fye,IOb);_.Ne=function JOb(a,b){return HOb(RD(a,176),RD(b,176))};_.Fb=function KOb(a){return this===a};_.Oe=function LOb(){return new Frb(this)};var qO=sfb($ye,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1321);feb(1324,1,{},MOb);_.Kb=function NOb(a){return RD(a,334).a};var pO=sfb($ye,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1324);feb(781,1,fye,POb);_.Ne=function QOb(a,b){return OOb(RD(a,176),RD(b,176))};_.Fb=function ROb(a){return this===a};_.Oe=function SOb(){return new Frb(this)};var rO=sfb($ye,'PolyominoCompactor/MinNumOfExtensionsComparator',781);feb(1319,1,fye,UOb);_.Ne=function VOb(a,b){return TOb(RD(a,330),RD(b,330))};_.Fb=function WOb(a){return this===a};_.Oe=function XOb(){return new Frb(this)};var tO=sfb($ye,'PolyominoCompactor/MinPerimeterComparator',1319);feb(1320,1,fye,ZOb);_.Ne=function $Ob(a,b){return YOb(RD(a,330),RD(b,330))};_.Fb=function _Ob(a){return this===a};_.Oe=function aPb(){return new Frb(this)};var sO=sfb($ye,'PolyominoCompactor/MinPerimeterComparatorWithShape',1320);feb(1322,1,fye,cPb);_.Ne=function dPb(a,b){return bPb(RD(a,176),RD(b,176))};_.Fb=function ePb(a){return this===a};_.Oe=function fPb(){return new Frb(this)};var vO=sfb($ye,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1322);feb(1325,1,{},gPb);_.Kb=function hPb(a){return RD(a,334).a};var uO=sfb($ye,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1325);feb(782,1,{},kPb);_.Ve=function lPb(a,b){return jPb(this,RD(a,42),RD(b,176))};var wO=sfb($ye,'SuccessorCombination',782);feb(649,1,{},nPb);_.Ve=function oPb(a,b){var c;return mPb((c=RD(a,42),RD(b,176),c))};var xO=sfb($ye,'SuccessorJitter',649);feb(648,1,{},qPb);_.Ve=function rPb(a,b){var c;return pPb((c=RD(a,42),RD(b,176),c))};var yO=sfb($ye,'SuccessorLineByLine',648);feb(573,1,{},tPb);_.Ve=function uPb(a,b){var c;return sPb((c=RD(a,42),RD(b,176),c))};var zO=sfb($ye,'SuccessorManhattan',573);feb(1344,1,{},wPb);_.Ve=function xPb(a,b){var c;return vPb((c=RD(a,42),RD(b,176),c))};var AO=sfb($ye,'SuccessorMaxNormWindingInMathPosSense',1344);feb(409,1,{},APb);_.Ve=function BPb(a,b){return yPb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var CO=sfb($ye,'SuccessorQuadrantsGeneric',409);feb(1345,1,{},CPb);_.Kb=function DPb(a){return RD(a,334).a};var BO=sfb($ye,'SuccessorQuadrantsGeneric/lambda$0$Type',1345);feb(332,22,{3:1,34:1,22:1,332:1},JPb);_.a=false;var EPb,FPb,GPb,HPb;var DO=tfb(dze,eze,332,WI,LPb,KPb);var MPb;feb(1317,1,{});_.Ib=function UPb(){var a,b,c,d,e,f;c=' ';a=sgb(0);for(e=0;e=0?'b'+a+'['+bUb(this.a)+']':'b['+bUb(this.a)+']'}return 'b_'+kFb(this)};var rP=sfb(Oze,'FBendpoint',250);feb(290,137,{3:1,290:1,96:1,137:1},cUb);_.Ib=function dUb(){return bUb(this)};var sP=sfb(Oze,'FEdge',290);feb(235,137,{3:1,235:1,96:1,137:1},gUb);var tP=sfb(Oze,'FGraph',235);feb(454,309,{3:1,454:1,309:1,96:1,137:1},iUb);_.Ib=function jUb(){return this.b==null||this.b.length==0?'l['+bUb(this.a)+']':'l_'+this.b};var uP=sfb(Oze,'FLabel',454);feb(153,309,{3:1,153:1,309:1,96:1,137:1},lUb);_.Ib=function mUb(){return kUb(this)};_.a=0;var vP=sfb(Oze,'FNode',153);feb(2100,1,{});_.vf=function rUb(a){nUb(this,a)};_.wf=function sUb(){oUb(this)};_.d=0;var xP=sfb(Qze,'AbstractForceModel',2100);feb(641,2100,{641:1},tUb);_.uf=function vUb(a,b){var c,d,e,f,g;qUb(this.f,a,b);e=ojd(ajd(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-ejd(a.e)/2-ejd(b.e)/2);c=fUb(this.e,a,b);c>0?(f=-uUb(d,this.c)*c):(f=yUb(d,this.b)*RD(mQb(a,(yVb(),lVb)),17).a);ijd(e,f/g);return e};_.vf=function wUb(a){nUb(this,a);this.a=RD(mQb(a,(yVb(),aVb)),17).a;this.c=Kfb(UD(mQb(a,rVb)));this.b=Kfb(UD(mQb(a,nVb)))};_.xf=function xUb(a){return a0&&(f-=AUb(d,this.a)*c);ijd(e,f*this.b/g);return e};_.vf=function CUb(a){var b,c,d,e,f,g,h;nUb(this,a);this.b=Kfb(UD(mQb(a,(yVb(),sVb))));this.c=this.b/RD(mQb(a,aVb),17).a;d=a.e.c.length;f=0;e=0;for(h=new Anb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var zP=sfb(Qze,'FruchtermanReingoldModel',642);feb(860,1,Eye,PUb);_.hf=function QUb(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Rze),''),'Force Model'),'Determines the model for force calculation.'),IUb),(kid(),eid)),BP),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Sze),''),'Iterations'),'The number of iterations on the force model.'),sgb(300)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Tze),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Uze),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),Vze),did),VI),xsb(Whd))));zgd(a,Uze,Rze,NUb);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Wze),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),did),VI),xsb(Whd))));zgd(a,Wze,Rze,KUb);zVb((new AVb,a))};var GUb,HUb,IUb,JUb,KUb,LUb,MUb,NUb;var AP=sfb(Xze,'ForceMetaDataProvider',860);feb(432,22,{3:1,34:1,22:1,432:1},UUb);var RUb,SUb;var BP=tfb(Xze,'ForceModelStrategy',432,WI,WUb,VUb);var XUb;feb(Awe,1,Eye,AVb);_.hf=function BVb(a){zVb(a)};var ZUb,$Ub,_Ub,aVb,bVb,cVb,dVb,eVb,fVb,gVb,hVb,iVb,jVb,kVb,lVb,mVb,nVb,oVb,pVb,qVb,rVb,sVb,tVb,uVb,vVb,wVb,xVb;var DP=sfb(Xze,'ForceOptions',Awe);feb(1001,1,{},CVb);_.sf=function DVb(){var a;return a=new TTb,a};_.tf=function EVb(a){};var CP=sfb(Xze,'ForceOptions/ForceFactory',1001);var FVb,GVb,HVb,IVb;feb(861,1,Eye,RVb);_.hf=function SVb(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,vAe),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Geb(),false)),(kid(),cid)),QI),xsb((Yhd(),Vhd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,wAe),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Thd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,xAe),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),MVb),eid),JP),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,yAe),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),Vze),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,zAe),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),sgb(lve)),gid),bJ),xsb(Whd))));eWb((new fWb,a))};var KVb,LVb,MVb,NVb,OVb,PVb;var EP=sfb(Xze,'StressMetaDataProvider',861);feb(1004,1,Eye,fWb);_.hf=function gWb(a){eWb(a)};var TVb,UVb,VVb,WVb,XVb,YVb,ZVb,$Vb,_Vb,aWb,bWb,cWb;var GP=sfb(Xze,'StressOptions',1004);feb(1005,1,{},hWb);_.sf=function iWb(){var a;return a=new kWb,a};_.tf=function jWb(a){};var FP=sfb(Xze,'StressOptions/StressFactory',1005);feb(1110,205,oze,kWb);_.rf=function lWb(a,b){var c,d,e,f,g;b.Ug(BAe,1);Heb(TD(Gxd(a,(dWb(),XVb))))?Heb(TD(Gxd(a,bWb)))||RFb((c=new SFb((lud(),new zud(a))),c)):QTb(new TTb,a,b.eh(1));e=KTb(a);d=CTb(this.a,e);for(g=d.Kc();g.Ob();){f=RD(g.Pb(),235);if(f.e.c.length<=1){continue}uWb(this.b,f);sWb(this.b);Umb(f.d,new mWb)}e=BTb(d);JTb(e);b.Vg()};var IP=sfb(DAe,'StressLayoutProvider',1110);feb(1111,1,Qve,mWb);_.Cd=function nWb(a){hUb(RD(a,454))};var HP=sfb(DAe,'StressLayoutProvider/lambda$0$Type',1111);feb(1002,1,{},vWb);_.c=0;_.e=0;_.g=0;var LP=sfb(DAe,'StressMajorization',1002);feb(391,22,{3:1,34:1,22:1,391:1},BWb);var xWb,yWb,zWb;var JP=tfb(DAe,'StressMajorization/Dimension',391,WI,DWb,CWb);var EWb;feb(1003,1,fye,GWb);_.Ne=function HWb(a,b){return wWb(this.a,RD(a,153),RD(b,153))};_.Fb=function IWb(a){return this===a};_.Oe=function JWb(){return new Frb(this)};var KP=sfb(DAe,'StressMajorization/lambda$0$Type',1003);feb(1192,1,{},RWb);var OP=sfb(FAe,'ElkLayered',1192);feb(1193,1,Qve,UWb);_.Cd=function VWb(a){SWb(this.a,RD(a,36))};var MP=sfb(FAe,'ElkLayered/lambda$0$Type',1193);feb(1194,1,Qve,WWb);_.Cd=function XWb(a){TWb(this.a,RD(a,36))};var NP=sfb(FAe,'ElkLayered/lambda$1$Type',1194);feb(1281,1,{},dXb);var YWb,ZWb,$Wb;var SP=sfb(FAe,'GraphConfigurator',1281);feb(770,1,Qve,fXb);_.Cd=function gXb(a){aXb(this.a,RD(a,10))};var PP=sfb(FAe,'GraphConfigurator/lambda$0$Type',770);feb(771,1,{},hXb);_.Kb=function iXb(a){return _Wb(),new SDb(null,new Swb(RD(a,30).a,16))};var QP=sfb(FAe,'GraphConfigurator/lambda$1$Type',771);feb(772,1,Qve,jXb);_.Cd=function kXb(a){aXb(this.a,RD(a,10))};var RP=sfb(FAe,'GraphConfigurator/lambda$2$Type',772);feb(1109,205,oze,lXb);_.rf=function mXb(a,b){var c;c=c5b(new k5b,a);dE(Gxd(a,(yCc(),IAc)))===dE((Fnd(),Cnd))?LWb(this.a,c,b):MWb(this.a,c,b);b.$g()||J5b(new N5b,c)};var TP=sfb(FAe,'LayeredLayoutProvider',1109);feb(367,22,{3:1,34:1,22:1,367:1},tXb);var nXb,oXb,pXb,qXb,rXb;var UP=tfb(FAe,'LayeredPhases',367,WI,vXb,uXb);var wXb;feb(1717,1,{},EXb);_.i=0;var yXb;var XP=sfb(GAe,'ComponentsToCGraphTransformer',1717);var jYb;feb(1718,1,{},FXb);_.yf=function GXb(a,b){return $wnd.Math.min(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};_.zf=function HXb(a,b){return $wnd.Math.min(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};var VP=sfb(GAe,'ComponentsToCGraphTransformer/1',1718);feb(86,1,{86:1});_.i=0;_.k=true;_.o=pxe;var bQ=sfb(HAe,'CNode',86);feb(470,86,{470:1,86:1},IXb,JXb);_.Ib=function KXb(){return ''};var WP=sfb(GAe,'ComponentsToCGraphTransformer/CRectNode',470);feb(1688,1,{},XXb);var LXb,MXb;var $P=sfb(GAe,'OneDimensionalComponentsCompaction',1688);feb(1689,1,{},$Xb);_.Kb=function _Xb(a){return YXb(RD(a,42))};_.Fb=function aYb(a){return this===a};var YP=sfb(GAe,'OneDimensionalComponentsCompaction/lambda$0$Type',1689);feb(1690,1,{},bYb);_.Kb=function cYb(a){return ZXb(RD(a,42))};_.Fb=function dYb(a){return this===a};var ZP=sfb(GAe,'OneDimensionalComponentsCompaction/lambda$1$Type',1690);feb(1720,1,{},fYb);var _P=sfb(HAe,'CGraph',1720);feb(194,1,{194:1},iYb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=pxe;var aQ=sfb(HAe,'CGroup',194);feb(1719,1,{},lYb);_.yf=function mYb(a,b){return $wnd.Math.max(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};_.zf=function nYb(a,b){return $wnd.Math.max(a.a!=null?Kfb(a.a):a.c.i,b.a!=null?Kfb(b.a):b.c.i)};var cQ=sfb(HAe,kye,1719);feb(1721,1,{},EYb);_.d=false;var oYb;var eQ=sfb(HAe,pye,1721);feb(1722,1,{},FYb);_.Kb=function GYb(a){return pYb(),Geb(),RD(RD(a,42).a,86).d.e!=0?true:false};_.Fb=function HYb(a){return this===a};var dQ=sfb(HAe,qye,1722);feb(833,1,{},KYb);_.a=false;_.b=false;_.c=false;_.d=false;var fQ=sfb(HAe,rye,833);feb(1898,1,{},QYb);var kQ=sfb(IAe,sye,1898);var wQ=ufb(JAe,hye);feb(1899,1,{382:1},UYb);_.bf=function VYb(a){SYb(this,RD(a,476))};var hQ=sfb(IAe,tye,1899);feb(Owe,1,fye,XYb);_.Ne=function YYb(a,b){return WYb(RD(a,86),RD(b,86))};_.Fb=function ZYb(a){return this===a};_.Oe=function $Yb(){return new Frb(this)};var gQ=sfb(IAe,uye,Owe);feb(476,1,{476:1},_Yb);_.a=false;var iQ=sfb(IAe,vye,476);feb(1901,1,fye,aZb);_.Ne=function bZb(a,b){return RYb(RD(a,476),RD(b,476))};_.Fb=function cZb(a){return this===a};_.Oe=function dZb(){return new Frb(this)};var jQ=sfb(IAe,wye,1901);feb(148,1,{148:1},eZb,fZb);_.Fb=function gZb(a){var b;if(a==null){return false}if(mQ!=rb(a)){return false}b=RD(a,148);return Fvb(this.c,b.c)&&Fvb(this.d,b.d)};_.Hb=function hZb(){return Tnb(cD(WC(jJ,1),rve,1,5,[this.c,this.d]))};_.Ib=function iZb(){return '('+this.c+pve+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var mQ=sfb(JAe,'Point',148);feb(416,22,{3:1,34:1,22:1,416:1},qZb);var jZb,kZb,lZb,mZb;var lQ=tfb(JAe,'Point/Quadrant',416,WI,uZb,tZb);var vZb;feb(1708,1,{},EZb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var xZb,yZb,zZb,AZb,BZb;var vQ=sfb(JAe,'RectilinearConvexHull',1708);feb(583,1,{382:1},PZb);_.bf=function QZb(a){OZb(this,RD(a,148))};_.b=0;var MZb;var oQ=sfb(JAe,'RectilinearConvexHull/MaximalElementsEventHandler',583);feb(1710,1,fye,SZb);_.Ne=function TZb(a,b){return RZb(UD(a),UD(b))};_.Fb=function UZb(a){return this===a};_.Oe=function VZb(){return new Frb(this)};var nQ=sfb(JAe,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1710);feb(1709,1,{382:1},XZb);_.bf=function YZb(a){WZb(this,RD(a,148))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var pQ=sfb(JAe,'RectilinearConvexHull/RectangleEventHandler',1709);feb(1711,1,fye,ZZb);_.Ne=function $Zb(a,b){return GZb(RD(a,148),RD(b,148))};_.Fb=function _Zb(a){return this===a};_.Oe=function a$b(){return new Frb(this)};var qQ=sfb(JAe,'RectilinearConvexHull/lambda$0$Type',1711);feb(1712,1,fye,b$b);_.Ne=function c$b(a,b){return HZb(RD(a,148),RD(b,148))};_.Fb=function d$b(a){return this===a};_.Oe=function e$b(){return new Frb(this)};var rQ=sfb(JAe,'RectilinearConvexHull/lambda$1$Type',1712);feb(1713,1,fye,f$b);_.Ne=function g$b(a,b){return IZb(RD(a,148),RD(b,148))};_.Fb=function h$b(a){return this===a};_.Oe=function i$b(){return new Frb(this)};var sQ=sfb(JAe,'RectilinearConvexHull/lambda$2$Type',1713);feb(1714,1,fye,j$b);_.Ne=function k$b(a,b){return JZb(RD(a,148),RD(b,148))};_.Fb=function l$b(a){return this===a};_.Oe=function m$b(){return new Frb(this)};var tQ=sfb(JAe,'RectilinearConvexHull/lambda$3$Type',1714);feb(1715,1,fye,n$b);_.Ne=function o$b(a,b){return KZb(RD(a,148),RD(b,148))};_.Fb=function p$b(a){return this===a};_.Oe=function q$b(){return new Frb(this)};var uQ=sfb(JAe,'RectilinearConvexHull/lambda$4$Type',1715);feb(1716,1,{},s$b);var xQ=sfb(JAe,'Scanline',1716);feb(2104,1,{});var yQ=sfb(KAe,'AbstractGraphPlacer',2104);feb(335,1,{335:1},C$b);_.Ff=function D$b(a){if(this.Gf(a)){Rc(this.b,RD(mQb(a,(Ywc(),ewc)),21),a);return true}else{return false}};_.Gf=function E$b(a){var b,c,d,e;b=RD(mQb(a,(Ywc(),ewc)),21);e=RD(Qc(y$b,b),21);for(d=e.Kc();d.Ob();){c=RD(d.Pb(),21);if(!RD(Qc(this.b,c),15).dc()){return false}}return true};var y$b;var BQ=sfb(KAe,'ComponentGroup',335);feb(779,2104,{},J$b);_.Hf=function K$b(a){var b,c;for(c=new Anb(this.a);c.ac){k=0;l+=h+d;h=0}i=f.c;w$b(f,k+i.a,l+i.b);hjd(i);e=$wnd.Math.max(e,k+j.a);h=$wnd.Math.max(h,j.b);k+=j.a+d}b.f.a=e;b.f.b=l+h};_.Jf=function Y_b(a,b){var c,d,e,f,g;if(dE(mQb(b,(yCc(),Yzc)))===dE((U$b(),T$b))){for(d=a.Kc();d.Ob();){c=RD(d.Pb(),36);g=0;for(f=new Anb(c.a);f.ac&&!RD(mQb(f,(Ywc(),ewc)),21).Hc((qpd(),Yod))||!!i&&RD(mQb(i,(Ywc(),ewc)),21).Hc((qpd(),Xod))||RD(mQb(f,(Ywc(),ewc)),21).Hc((qpd(),ppd))){m=l;n+=h+d;h=0}j=f.c;RD(mQb(f,(Ywc(),ewc)),21).Hc((qpd(),Yod))&&(m=e+d);w$b(f,m+j.a,n+j.b);e=$wnd.Math.max(e,m+k.a);RD(mQb(f,ewc),21).Hc(npd)&&(l=$wnd.Math.max(l,m+k.a+d));hjd(j);h=$wnd.Math.max(h,k.b);m+=k.a+d;i=f}b.f.a=e;b.f.b=n+h};_.Jf=function __b(a,b){};var OQ=sfb(KAe,'ModelOrderRowGraphPlacer',1313);feb(1311,1,fye,b0b);_.Ne=function c0b(a,b){return a0b(RD(a,36),RD(b,36))};_.Fb=function d0b(a){return this===a};_.Oe=function e0b(){return new Frb(this)};var PQ=sfb(KAe,'SimpleRowGraphPlacer/1',1311);var f0b;feb(1280,1,xye,l0b);_.Lb=function m0b(a){var b;return b=RD(mQb(RD(a,249).b,(yCc(),RAc)),75),!!b&&b.b!=0};_.Fb=function n0b(a){return this===a};_.Mb=function o0b(a){var b;return b=RD(mQb(RD(a,249).b,(yCc(),RAc)),75),!!b&&b.b!=0};var RQ=sfb(PAe,'CompoundGraphPostprocessor/1',1280);feb(1279,1,QAe,E0b);_.Kf=function F0b(a,b){y0b(this,RD(a,36),b)};var TQ=sfb(PAe,'CompoundGraphPreprocessor',1279);feb(453,1,{453:1},G0b);_.c=false;var SQ=sfb(PAe,'CompoundGraphPreprocessor/ExternalPort',453);feb(249,1,{249:1},J0b);_.Ib=function K0b(){return ps(this.c)+':'+_0b(this.b)};var VQ=sfb(PAe,'CrossHierarchyEdge',249);feb(777,1,fye,M0b);_.Ne=function N0b(a,b){return L0b(this,RD(a,249),RD(b,249))};_.Fb=function O0b(a){return this===a};_.Oe=function Q0b(){return new Frb(this)};var UQ=sfb(PAe,'CrossHierarchyEdgeComparator',777);feb(305,137,{3:1,305:1,96:1,137:1});_.p=0;var dR=sfb(RAe,'LGraphElement',305);feb(18,305,{3:1,18:1,305:1,96:1,137:1},a1b);_.Ib=function b1b(){return _0b(this)};var WQ=sfb(RAe,'LEdge',18);feb(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},d1b);_.Jc=function e1b(a){xgb(this,a)};_.Kc=function f1b(){return new Anb(this.b)};_.Ib=function g1b(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var eR=sfb(RAe,'LGraph',36);var h1b;feb(666,1,{});_.Lf=function j1b(){return this.e.n};_.of=function k1b(a){return mQb(this.e,a)};_.Mf=function l1b(){return this.e.o};_.Nf=function m1b(){return this.e.p};_.pf=function n1b(a){return nQb(this.e,a)};_.Of=function o1b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.Pf=function p1b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.Qf=function q1b(a){this.e.p=a};var XQ=sfb(RAe,'LGraphAdapters/AbstractLShapeAdapter',666);feb(474,1,{853:1},r1b);_.Rf=function s1b(){var a,b;if(!this.b){this.b=ev(this.a.b.c.length);for(b=new Anb(this.a.b);b.a0&&M2b((BFb(c-1,b.length),b.charCodeAt(c-1)),ZAe)){--c}if(g> ',a),M3b(c));Zhb(Yhb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var D3b,E3b,F3b,G3b,H3b,I3b;var xR=sfb(RAe,'LPort',12);feb(408,1,Vve,T3b);_.Jc=function U3b(a){xgb(this,a)};_.Kc=function V3b(){var a;a=new Anb(this.a.e);return new W3b(a)};var mR=sfb(RAe,'LPort/1',408);feb(1309,1,Ave,W3b);_.Nb=function X3b(a){Ztb(this,a)};_.Pb=function Z3b(){return RD(ynb(this.a),18).c};_.Ob=function Y3b(){return xnb(this.a)};_.Qb=function $3b(){znb(this.a)};var lR=sfb(RAe,'LPort/1/1',1309);feb(369,1,Vve,_3b);_.Jc=function a4b(a){xgb(this,a)};_.Kc=function b4b(){var a;return a=new Anb(this.a.g),new c4b(a)};var oR=sfb(RAe,'LPort/2',369);feb(776,1,Ave,c4b);_.Nb=function d4b(a){Ztb(this,a)};_.Pb=function f4b(){return RD(ynb(this.a),18).d};_.Ob=function e4b(){return xnb(this.a)};_.Qb=function g4b(){znb(this.a)};var nR=sfb(RAe,'LPort/2/1',776);feb(1302,1,Vve,h4b);_.Jc=function i4b(a){xgb(this,a)};_.Kc=function j4b(){return new l4b(this)};var qR=sfb(RAe,'LPort/CombineIter',1302);feb(208,1,Ave,l4b);_.Nb=function m4b(a){Ztb(this,a)};_.Qb=function p4b(){$tb()};_.Ob=function n4b(){return k4b(this)};_.Pb=function o4b(){return xnb(this.a)?ynb(this.a):ynb(this.b)};var pR=sfb(RAe,'LPort/CombineIter/1',208);feb(1303,1,xye,r4b);_.Lb=function s4b(a){return q4b(a)};_.Fb=function t4b(a){return this===a};_.Mb=function u4b(a){return J3b(),RD(a,12).g.c.length!=0};var rR=sfb(RAe,'LPort/lambda$0$Type',1303);feb(1304,1,xye,w4b);_.Lb=function x4b(a){return v4b(a)};_.Fb=function y4b(a){return this===a};_.Mb=function z4b(a){return J3b(),RD(a,12).e.c.length!=0};var sR=sfb(RAe,'LPort/lambda$1$Type',1304);feb(1305,1,xye,A4b);_.Lb=function B4b(a){return J3b(),RD(a,12).j==(qpd(),Yod)};_.Fb=function C4b(a){return this===a};_.Mb=function D4b(a){return J3b(),RD(a,12).j==(qpd(),Yod)};var tR=sfb(RAe,'LPort/lambda$2$Type',1305);feb(1306,1,xye,E4b);_.Lb=function F4b(a){return J3b(),RD(a,12).j==(qpd(),Xod)};_.Fb=function G4b(a){return this===a};_.Mb=function H4b(a){return J3b(),RD(a,12).j==(qpd(),Xod)};var uR=sfb(RAe,'LPort/lambda$3$Type',1306);feb(1307,1,xye,I4b);_.Lb=function J4b(a){return J3b(),RD(a,12).j==(qpd(),npd)};_.Fb=function K4b(a){return this===a};_.Mb=function L4b(a){return J3b(),RD(a,12).j==(qpd(),npd)};var vR=sfb(RAe,'LPort/lambda$4$Type',1307);feb(1308,1,xye,M4b);_.Lb=function N4b(a){return J3b(),RD(a,12).j==(qpd(),ppd)};_.Fb=function O4b(a){return this===a};_.Mb=function P4b(a){return J3b(),RD(a,12).j==(qpd(),ppd)};var wR=sfb(RAe,'LPort/lambda$5$Type',1308);feb(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},R4b);_.Jc=function S4b(a){xgb(this,a)};_.Kc=function T4b(){return new Anb(this.a)};_.Ib=function U4b(){return 'L_'+Wmb(this.b.b,this,0)+Fe(this.a)};var zR=sfb(RAe,'Layer',30);feb(1330,1,{},k5b);var JR=sfb(cBe,dBe,1330);feb(1334,1,{},o5b);_.Kb=function p5b(a){return AGd(RD(a,84))};var AR=sfb(cBe,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1334);feb(1337,1,{},q5b);_.Kb=function r5b(a){return AGd(RD(a,84))};var BR=sfb(cBe,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1337);feb(1331,1,Qve,s5b);_.Cd=function t5b(a){$4b(this.a,RD(a,123))};var CR=sfb(cBe,Nze,1331);feb(1332,1,Qve,u5b);_.Cd=function v5b(a){$4b(this.a,RD(a,123))};var DR=sfb(cBe,eBe,1332);feb(1333,1,{},w5b);_.Kb=function x5b(a){return new SDb(null,new Swb(mzd(RD(a,74)),16))};var ER=sfb(cBe,fBe,1333);feb(1335,1,nwe,y5b);_.Mb=function z5b(a){return l5b(this.a,RD(a,27))};var FR=sfb(cBe,gBe,1335);feb(1336,1,{},A5b);_.Kb=function B5b(a){return new SDb(null,new Swb(lzd(RD(a,74)),16))};var GR=sfb(cBe,'ElkGraphImporter/lambda$5$Type',1336);feb(1338,1,nwe,C5b);_.Mb=function D5b(a){return m5b(this.a,RD(a,27))};var HR=sfb(cBe,'ElkGraphImporter/lambda$7$Type',1338);feb(1339,1,nwe,E5b);_.Mb=function F5b(a){return n5b(RD(a,74))};var IR=sfb(cBe,'ElkGraphImporter/lambda$8$Type',1339);feb(1297,1,{},N5b);var G5b;var OR=sfb(cBe,'ElkGraphLayoutTransferrer',1297);feb(1298,1,nwe,Q5b);_.Mb=function R5b(a){return O5b(this.a,RD(a,18))};var KR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$0$Type',1298);feb(1299,1,Qve,S5b);_.Cd=function T5b(a){H5b();Rmb(this.a,RD(a,18))};var LR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$1$Type',1299);feb(1300,1,nwe,U5b);_.Mb=function V5b(a){return P5b(this.a,RD(a,18))};var MR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$2$Type',1300);feb(1301,1,Qve,W5b);_.Cd=function X5b(a){H5b();Rmb(this.a,RD(a,18))};var NR=sfb(cBe,'ElkGraphLayoutTransferrer/lambda$3$Type',1301);feb(819,1,{},e6b);var PR=sfb(hBe,'BiLinkedHashMultiMap',819);feb(1550,1,QAe,h6b);_.Kf=function i6b(a,b){f6b(RD(a,36),b)};var SR=sfb(hBe,'CommentNodeMarginCalculator',1550);feb(1551,1,{},j6b);_.Kb=function k6b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var QR=sfb(hBe,'CommentNodeMarginCalculator/lambda$0$Type',1551);feb(1552,1,Qve,l6b);_.Cd=function m6b(a){g6b(RD(a,10))};var RR=sfb(hBe,'CommentNodeMarginCalculator/lambda$1$Type',1552);feb(1553,1,QAe,q6b);_.Kf=function r6b(a,b){o6b(RD(a,36),b)};var TR=sfb(hBe,'CommentPostprocessor',1553);feb(1554,1,QAe,v6b);_.Kf=function w6b(a,b){s6b(RD(a,36),b)};var UR=sfb(hBe,'CommentPreprocessor',1554);feb(1555,1,QAe,y6b);_.Kf=function z6b(a,b){x6b(RD(a,36),b)};var VR=sfb(hBe,'ConstraintsPostprocessor',1555);feb(1556,1,QAe,G6b);_.Kf=function H6b(a,b){E6b(RD(a,36),b)};var WR=sfb(hBe,'EdgeAndLayerConstraintEdgeReverser',1556);feb(1557,1,QAe,K6b);_.Kf=function M6b(a,b){I6b(RD(a,36),b)};var $R=sfb(hBe,'EndLabelPostprocessor',1557);feb(1558,1,{},N6b);_.Kb=function O6b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var XR=sfb(hBe,'EndLabelPostprocessor/lambda$0$Type',1558);feb(1559,1,nwe,P6b);_.Mb=function Q6b(a){return L6b(RD(a,10))};var YR=sfb(hBe,'EndLabelPostprocessor/lambda$1$Type',1559);feb(1560,1,Qve,R6b);_.Cd=function S6b(a){J6b(RD(a,10))};var ZR=sfb(hBe,'EndLabelPostprocessor/lambda$2$Type',1560);feb(1561,1,QAe,b7b);_.Kf=function e7b(a,b){Z6b(RD(a,36),b)};var fS=sfb(hBe,'EndLabelPreprocessor',1561);feb(1562,1,{},f7b);_.Kb=function g7b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var _R=sfb(hBe,'EndLabelPreprocessor/lambda$0$Type',1562);feb(1563,1,Qve,h7b);_.Cd=function i7b(a){V6b(this.a,this.b,this.c,RD(a,10))};_.a=0;_.b=0;_.c=false;var aS=sfb(hBe,'EndLabelPreprocessor/lambda$1$Type',1563);feb(1564,1,nwe,j7b);_.Mb=function k7b(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Nmd))};var bS=sfb(hBe,'EndLabelPreprocessor/lambda$2$Type',1564);feb(1565,1,Qve,l7b);_.Cd=function m7b(a){Mub(this.a,RD(a,72))};var cS=sfb(hBe,'EndLabelPreprocessor/lambda$3$Type',1565);feb(1566,1,nwe,n7b);_.Mb=function o7b(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Mmd))};var dS=sfb(hBe,'EndLabelPreprocessor/lambda$4$Type',1566);feb(1567,1,Qve,p7b);_.Cd=function q7b(a){Mub(this.a,RD(a,72))};var eS=sfb(hBe,'EndLabelPreprocessor/lambda$5$Type',1567);feb(1615,1,QAe,z7b);_.Kf=function A7b(a,b){w7b(RD(a,36),b)};var r7b;var nS=sfb(hBe,'EndLabelSorter',1615);feb(1616,1,fye,C7b);_.Ne=function D7b(a,b){return B7b(RD(a,466),RD(b,466))};_.Fb=function E7b(a){return this===a};_.Oe=function F7b(){return new Frb(this)};var gS=sfb(hBe,'EndLabelSorter/1',1616);feb(466,1,{466:1},G7b);var hS=sfb(hBe,'EndLabelSorter/LabelGroup',466);feb(1617,1,{},H7b);_.Kb=function I7b(a){return s7b(),new SDb(null,new Swb(RD(a,30).a,16))};var iS=sfb(hBe,'EndLabelSorter/lambda$0$Type',1617);feb(1618,1,nwe,J7b);_.Mb=function K7b(a){return s7b(),RD(a,10).k==(r3b(),p3b)};var jS=sfb(hBe,'EndLabelSorter/lambda$1$Type',1618);feb(1619,1,Qve,L7b);_.Cd=function M7b(a){x7b(RD(a,10))};var kS=sfb(hBe,'EndLabelSorter/lambda$2$Type',1619);feb(1620,1,nwe,N7b);_.Mb=function O7b(a){return s7b(),dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Mmd))};var lS=sfb(hBe,'EndLabelSorter/lambda$3$Type',1620);feb(1621,1,nwe,P7b);_.Mb=function Q7b(a){return s7b(),dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Nmd))};var mS=sfb(hBe,'EndLabelSorter/lambda$4$Type',1621);feb(1568,1,QAe,a8b);_.Kf=function b8b(a,b){$7b(this,RD(a,36))};_.b=0;_.c=0;var uS=sfb(hBe,'FinalSplineBendpointsCalculator',1568);feb(1569,1,{},c8b);_.Kb=function d8b(a){return new SDb(null,new Swb(RD(a,30).a,16))};var oS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$0$Type',1569);feb(1570,1,{},e8b);_.Kb=function f8b(a){return new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var pS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$1$Type',1570);feb(1571,1,nwe,g8b);_.Mb=function h8b(a){return !W0b(RD(a,18))};var qS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$2$Type',1571);feb(1572,1,nwe,i8b);_.Mb=function j8b(a){return nQb(RD(a,18),(Ywc(),Twc))};var rS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$3$Type',1572);feb(1573,1,Qve,k8b);_.Cd=function l8b(a){T7b(this.a,RD(a,131))};var sS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$4$Type',1573);feb(1574,1,Qve,m8b);_.Cd=function n8b(a){Eob(RD(a,18).a)};var tS=sfb(hBe,'FinalSplineBendpointsCalculator/lambda$5$Type',1574);feb(803,1,QAe,L8b);_.Kf=function M8b(a,b){C8b(this,RD(a,36),b)};var wS=sfb(hBe,'GraphTransformer',803);feb(517,22,{3:1,34:1,22:1,517:1},Q8b);var N8b,O8b;var vS=tfb(hBe,'GraphTransformer/Mode',517,WI,S8b,R8b);var T8b;feb(1575,1,QAe,Z8b);_.Kf=function $8b(a,b){W8b(RD(a,36),b)};var xS=sfb(hBe,'HierarchicalNodeResizingProcessor',1575);feb(1576,1,QAe,f9b);_.Kf=function g9b(a,b){b9b(RD(a,36),b)};var zS=sfb(hBe,'HierarchicalPortConstraintProcessor',1576);feb(1577,1,fye,i9b);_.Ne=function j9b(a,b){return h9b(RD(a,10),RD(b,10))};_.Fb=function k9b(a){return this===a};_.Oe=function l9b(){return new Frb(this)};var yS=sfb(hBe,'HierarchicalPortConstraintProcessor/NodeComparator',1577);feb(1578,1,QAe,o9b);_.Kf=function p9b(a,b){m9b(RD(a,36),b)};var AS=sfb(hBe,'HierarchicalPortDummySizeProcessor',1578);feb(1579,1,QAe,C9b);_.Kf=function D9b(a,b){v9b(this,RD(a,36),b)};_.a=0;var DS=sfb(hBe,'HierarchicalPortOrthogonalEdgeRouter',1579);feb(1580,1,fye,F9b);_.Ne=function G9b(a,b){return E9b(RD(a,10),RD(b,10))};_.Fb=function H9b(a){return this===a};_.Oe=function I9b(){return new Frb(this)};var BS=sfb(hBe,'HierarchicalPortOrthogonalEdgeRouter/1',1580);feb(1581,1,fye,K9b);_.Ne=function L9b(a,b){return J9b(RD(a,10),RD(b,10))};_.Fb=function M9b(a){return this===a};_.Oe=function N9b(){return new Frb(this)};var CS=sfb(hBe,'HierarchicalPortOrthogonalEdgeRouter/2',1581);feb(1582,1,QAe,Q9b);_.Kf=function R9b(a,b){P9b(RD(a,36),b)};var ES=sfb(hBe,'HierarchicalPortPositionProcessor',1582);feb(1583,1,QAe,$9b);_.Kf=function _9b(a,b){Z9b(this,RD(a,36))};_.a=0;_.c=0;var S9b,T9b;var IS=sfb(hBe,'HighDegreeNodeLayeringProcessor',1583);feb(580,1,{580:1},aac);_.b=-1;_.d=-1;var FS=sfb(hBe,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',580);feb(1584,1,{},bac);_.Kb=function cac(a){return U9b(),Z2b(RD(a,10))};_.Fb=function dac(a){return this===a};var GS=sfb(hBe,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1584);feb(1585,1,{},eac);_.Kb=function fac(a){return U9b(),a3b(RD(a,10))};_.Fb=function gac(a){return this===a};var HS=sfb(hBe,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1585);feb(1591,1,QAe,mac);_.Kf=function nac(a,b){lac(this,RD(a,36),b)};var NS=sfb(hBe,'HyperedgeDummyMerger',1591);feb(804,1,{},oac);_.a=false;_.b=false;_.c=false;var JS=sfb(hBe,'HyperedgeDummyMerger/MergeState',804);feb(1592,1,{},pac);_.Kb=function qac(a){return new SDb(null,new Swb(RD(a,30).a,16))};var KS=sfb(hBe,'HyperedgeDummyMerger/lambda$0$Type',1592);feb(1593,1,{},rac);_.Kb=function sac(a){return new SDb(null,new Swb(RD(a,10).j,16))};var LS=sfb(hBe,'HyperedgeDummyMerger/lambda$1$Type',1593);feb(1594,1,Qve,tac);_.Cd=function uac(a){RD(a,12).p=-1};var MS=sfb(hBe,'HyperedgeDummyMerger/lambda$2$Type',1594);feb(1595,1,QAe,xac);_.Kf=function yac(a,b){wac(RD(a,36),b)};var OS=sfb(hBe,'HypernodesProcessor',1595);feb(1596,1,QAe,Aac);_.Kf=function Bac(a,b){zac(RD(a,36),b)};var PS=sfb(hBe,'InLayerConstraintProcessor',1596);feb(1597,1,QAe,Dac);_.Kf=function Eac(a,b){Cac(RD(a,36),b)};var QS=sfb(hBe,'InnermostNodeMarginCalculator',1597);feb(1598,1,QAe,Iac);_.Kf=function Nac(a,b){Hac(this,RD(a,36))};_.a=pxe;_.b=pxe;_.c=oxe;_.d=oxe;var XS=sfb(hBe,'InteractiveExternalPortPositioner',1598);feb(1599,1,{},Oac);_.Kb=function Pac(a){return RD(a,18).d.i};_.Fb=function Qac(a){return this===a};var RS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$0$Type',1599);feb(1600,1,{},Rac);_.Kb=function Sac(a){return Jac(this.a,UD(a))};_.Fb=function Tac(a){return this===a};var SS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$1$Type',1600);feb(1601,1,{},Uac);_.Kb=function Vac(a){return RD(a,18).c.i};_.Fb=function Wac(a){return this===a};var TS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$2$Type',1601);feb(1602,1,{},Xac);_.Kb=function Yac(a){return Kac(this.a,UD(a))};_.Fb=function Zac(a){return this===a};var US=sfb(hBe,'InteractiveExternalPortPositioner/lambda$3$Type',1602);feb(1603,1,{},$ac);_.Kb=function _ac(a){return Lac(this.a,UD(a))};_.Fb=function abc(a){return this===a};var VS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$4$Type',1603);feb(1604,1,{},bbc);_.Kb=function cbc(a){return Mac(this.a,UD(a))};_.Fb=function dbc(a){return this===a};var WS=sfb(hBe,'InteractiveExternalPortPositioner/lambda$5$Type',1604);feb(81,22,{3:1,34:1,22:1,81:1,196:1},icc);_.dg=function jcc(){switch(this.g){case 15:return new Hrc;case 22:return new bsc;case 47:return new ksc;case 28:case 35:return new Ldc;case 32:return new h6b;case 42:return new q6b;case 1:return new v6b;case 41:return new y6b;case 56:return new L8b((P8b(),O8b));case 0:return new L8b((P8b(),N8b));case 2:return new G6b;case 54:return new K6b;case 33:return new b7b;case 51:return new a8b;case 55:return new Z8b;case 13:return new f9b;case 38:return new o9b;case 44:return new C9b;case 40:return new Q9b;case 9:return new $9b;case 49:return new Yjc;case 37:return new mac;case 43:return new xac;case 27:return new Aac;case 30:return new Dac;case 3:return new Iac;case 18:return new scc;case 29:return new ycc;case 5:return new Lcc;case 50:return new Ucc;case 34:return new pdc;case 36:return new Zdc;case 52:return new z7b;case 11:return new fec;case 7:return new pec;case 39:return new Dec;case 45:return new Gec;case 16:return new Kec;case 10:return new _ec;case 48:return new Bfc;case 21:return new Ifc;case 23:return new FKc((RKc(),PKc));case 8:return new Rfc;case 12:return new Zfc;case 4:return new cgc;case 19:return new xgc;case 17:return new Vgc;case 53:return new Ygc;case 6:return new Nhc;case 25:return new ahc;case 46:return new rhc;case 31:return new Yhc;case 14:return new jic;case 26:return new Ssc;case 20:return new yic;case 24:return new FKc((RKc(),QKc));default:throw Adb(new agb(lBe+(this.f!=null?this.f:''+this.g)));}};var ebc,fbc,gbc,hbc,ibc,jbc,kbc,lbc,mbc,nbc,obc,pbc,qbc,rbc,sbc,tbc,ubc,vbc,wbc,xbc,ybc,zbc,Abc,Bbc,Cbc,Dbc,Ebc,Fbc,Gbc,Hbc,Ibc,Jbc,Kbc,Lbc,Mbc,Nbc,Obc,Pbc,Qbc,Rbc,Sbc,Tbc,Ubc,Vbc,Wbc,Xbc,Ybc,Zbc,$bc,_bc,acc,bcc,ccc,dcc,ecc,fcc,gcc;var YS=tfb(hBe,mBe,81,WI,lcc,kcc);var mcc;feb(1605,1,QAe,scc);_.Kf=function tcc(a,b){qcc(RD(a,36),b)};var ZS=sfb(hBe,'InvertedPortProcessor',1605);feb(1606,1,QAe,ycc);_.Kf=function zcc(a,b){xcc(RD(a,36),b)};var bT=sfb(hBe,'LabelAndNodeSizeProcessor',1606);feb(1607,1,nwe,Acc);_.Mb=function Bcc(a){return RD(a,10).k==(r3b(),p3b)};var $S=sfb(hBe,'LabelAndNodeSizeProcessor/lambda$0$Type',1607);feb(1608,1,nwe,Ccc);_.Mb=function Dcc(a){return RD(a,10).k==(r3b(),m3b)};var _S=sfb(hBe,'LabelAndNodeSizeProcessor/lambda$1$Type',1608);feb(1609,1,Qve,Ecc);_.Cd=function Fcc(a){vcc(this.b,this.a,this.c,RD(a,10))};_.a=false;_.c=false;var aT=sfb(hBe,'LabelAndNodeSizeProcessor/lambda$2$Type',1609);feb(1610,1,QAe,Lcc);_.Kf=function Mcc(a,b){Jcc(RD(a,36),b)};var Gcc;var dT=sfb(hBe,'LabelDummyInserter',1610);feb(1611,1,xye,Ncc);_.Lb=function Occ(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Lmd))};_.Fb=function Pcc(a){return this===a};_.Mb=function Qcc(a){return dE(mQb(RD(a,72),(yCc(),wAc)))===dE((Omd(),Lmd))};var cT=sfb(hBe,'LabelDummyInserter/1',1611);feb(1612,1,QAe,Ucc);_.Kf=function Vcc(a,b){Tcc(RD(a,36),b)};var fT=sfb(hBe,'LabelDummyRemover',1612);feb(1613,1,nwe,Wcc);_.Mb=function Xcc(a){return Heb(TD(mQb(RD(a,72),(yCc(),vAc))))};var eT=sfb(hBe,'LabelDummyRemover/lambda$0$Type',1613);feb(1378,1,QAe,pdc);_.Kf=function tdc(a,b){ldc(this,RD(a,36),b)};_.a=null;var Ycc;var mT=sfb(hBe,'LabelDummySwitcher',1378);feb(293,1,{293:1},xdc);_.c=0;_.d=null;_.f=0;var gT=sfb(hBe,'LabelDummySwitcher/LabelDummyInfo',293);feb(1379,1,{},ydc);_.Kb=function zdc(a){return Zcc(),new SDb(null,new Swb(RD(a,30).a,16))};var hT=sfb(hBe,'LabelDummySwitcher/lambda$0$Type',1379);feb(1380,1,nwe,Adc);_.Mb=function Bdc(a){return Zcc(),RD(a,10).k==(r3b(),n3b)};var iT=sfb(hBe,'LabelDummySwitcher/lambda$1$Type',1380);feb(1381,1,{},Cdc);_.Kb=function Ddc(a){return qdc(this.a,RD(a,10))};var jT=sfb(hBe,'LabelDummySwitcher/lambda$2$Type',1381);feb(1382,1,Qve,Edc);_.Cd=function Fdc(a){rdc(this.a,RD(a,293))};var kT=sfb(hBe,'LabelDummySwitcher/lambda$3$Type',1382);feb(1383,1,fye,Gdc);_.Ne=function Hdc(a,b){return sdc(RD(a,293),RD(b,293))};_.Fb=function Idc(a){return this===a};_.Oe=function Jdc(){return new Frb(this)};var lT=sfb(hBe,'LabelDummySwitcher/lambda$4$Type',1383);feb(802,1,QAe,Ldc);_.Kf=function Mdc(a,b){Kdc(RD(a,36),b)};var nT=sfb(hBe,'LabelManagementProcessor',802);feb(1614,1,QAe,Zdc);_.Kf=function $dc(a,b){Tdc(RD(a,36),b)};var oT=sfb(hBe,'LabelSideSelector',1614);feb(1622,1,QAe,fec);_.Kf=function gec(a,b){bec(RD(a,36),b)};var pT=sfb(hBe,'LayerConstraintPostprocessor',1622);feb(1623,1,QAe,pec);_.Kf=function qec(a,b){nec(RD(a,36),b)};var hec;var rT=sfb(hBe,'LayerConstraintPreprocessor',1623);feb(371,22,{3:1,34:1,22:1,371:1},xec);var rec,sec,tec,uec;var qT=tfb(hBe,'LayerConstraintPreprocessor/HiddenNodeConnections',371,WI,zec,yec);var Aec;feb(1624,1,QAe,Dec);_.Kf=function Eec(a,b){Cec(RD(a,36),b)};var sT=sfb(hBe,'LayerSizeAndGraphHeightCalculator',1624);feb(1625,1,QAe,Gec);_.Kf=function Iec(a,b){Fec(RD(a,36),b)};var tT=sfb(hBe,'LongEdgeJoiner',1625);feb(1626,1,QAe,Kec);_.Kf=function Mec(a,b){Jec(RD(a,36),b)};var uT=sfb(hBe,'LongEdgeSplitter',1626);feb(1627,1,QAe,_ec);_.Kf=function cfc(a,b){Vec(this,RD(a,36),b)};_.e=0;_.f=0;_.j=0;_.k=0;_.n=0;_.o=0;var Pec,Qec;var AT=sfb(hBe,'NodePromotion',1627);feb(1628,1,fye,efc);_.Ne=function ffc(a,b){return dfc(RD(a,10),RD(b,10))};_.Fb=function gfc(a){return this===a};_.Oe=function hfc(){return new Frb(this)};var vT=sfb(hBe,'NodePromotion/1',1628);feb(1629,1,fye,jfc);_.Ne=function kfc(a,b){return ifc(RD(a,10),RD(b,10))};_.Fb=function lfc(a){return this===a};_.Oe=function mfc(){return new Frb(this)};var wT=sfb(hBe,'NodePromotion/2',1629);feb(1630,1,{},nfc);_.Kb=function ofc(a){return RD(a,42),Rec(),Geb(),true};_.Fb=function pfc(a){return this===a};var xT=sfb(hBe,'NodePromotion/lambda$0$Type',1630);feb(1631,1,{},qfc);_.Kb=function rfc(a){return afc(this.a,RD(a,42))};_.Fb=function sfc(a){return this===a};_.a=0;var yT=sfb(hBe,'NodePromotion/lambda$1$Type',1631);feb(1632,1,{},tfc);_.Kb=function ufc(a){return bfc(this.a,RD(a,42))};_.Fb=function vfc(a){return this===a};_.a=0;var zT=sfb(hBe,'NodePromotion/lambda$2$Type',1632);feb(1633,1,QAe,Bfc);_.Kf=function Cfc(a,b){wfc(RD(a,36),b)};var BT=sfb(hBe,'NorthSouthPortPostprocessor',1633);feb(1634,1,QAe,Ifc);_.Kf=function Kfc(a,b){Gfc(RD(a,36),b)};var DT=sfb(hBe,'NorthSouthPortPreprocessor',1634);feb(1635,1,fye,Lfc);_.Ne=function Mfc(a,b){return Jfc(RD(a,12),RD(b,12))};_.Fb=function Nfc(a){return this===a};_.Oe=function Ofc(){return new Frb(this)};var CT=sfb(hBe,'NorthSouthPortPreprocessor/lambda$0$Type',1635);feb(1636,1,QAe,Rfc);_.Kf=function Tfc(a,b){Qfc(RD(a,36),b)};var GT=sfb(hBe,'PartitionMidprocessor',1636);feb(1637,1,nwe,Ufc);_.Mb=function Vfc(a){return nQb(RD(a,10),(yCc(),tBc))};var ET=sfb(hBe,'PartitionMidprocessor/lambda$0$Type',1637);feb(1638,1,Qve,Wfc);_.Cd=function Xfc(a){Sfc(this.a,RD(a,10))};var FT=sfb(hBe,'PartitionMidprocessor/lambda$1$Type',1638);feb(1639,1,QAe,Zfc);_.Kf=function $fc(a,b){Yfc(RD(a,36),b)};var HT=sfb(hBe,'PartitionPostprocessor',1639);feb(1640,1,QAe,cgc);_.Kf=function dgc(a,b){agc(RD(a,36),b)};var MT=sfb(hBe,'PartitionPreprocessor',1640);feb(1641,1,nwe,egc);_.Mb=function fgc(a){return nQb(RD(a,10),(yCc(),tBc))};var IT=sfb(hBe,'PartitionPreprocessor/lambda$0$Type',1641);feb(1642,1,{},ggc);_.Kb=function hgc(a){return new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var JT=sfb(hBe,'PartitionPreprocessor/lambda$1$Type',1642);feb(1643,1,nwe,igc);_.Mb=function jgc(a){return _fc(RD(a,18))};var KT=sfb(hBe,'PartitionPreprocessor/lambda$2$Type',1643);feb(1644,1,Qve,kgc);_.Cd=function lgc(a){bgc(RD(a,18))};var LT=sfb(hBe,'PartitionPreprocessor/lambda$3$Type',1644);feb(1645,1,QAe,xgc);_.Kf=function Bgc(a,b){ugc(RD(a,36),b)};var mgc,ngc,ogc,pgc,qgc,rgc;var ST=sfb(hBe,'PortListSorter',1645);feb(1648,1,fye,Dgc);_.Ne=function Egc(a,b){return ygc(RD(a,12),RD(b,12))};_.Fb=function Fgc(a){return this===a};_.Oe=function Ggc(){return new Frb(this)};var NT=sfb(hBe,'PortListSorter/lambda$0$Type',1648);feb(1650,1,fye,Hgc);_.Ne=function Igc(a,b){return zgc(RD(a,12),RD(b,12))};_.Fb=function Jgc(a){return this===a};_.Oe=function Kgc(){return new Frb(this)};var OT=sfb(hBe,'PortListSorter/lambda$1$Type',1650);feb(1646,1,{},Lgc);_.Kb=function Mgc(a){return sgc(),RD(a,12).e};var PT=sfb(hBe,'PortListSorter/lambda$2$Type',1646);feb(1647,1,{},Ngc);_.Kb=function Ogc(a){return sgc(),RD(a,12).g};var QT=sfb(hBe,'PortListSorter/lambda$3$Type',1647);feb(1649,1,fye,Pgc);_.Ne=function Qgc(a,b){return Agc(RD(a,12),RD(b,12))};_.Fb=function Rgc(a){return this===a};_.Oe=function Sgc(){return new Frb(this)};var RT=sfb(hBe,'PortListSorter/lambda$4$Type',1649);feb(1651,1,QAe,Vgc);_.Kf=function Wgc(a,b){Tgc(RD(a,36),b)};var TT=sfb(hBe,'PortSideProcessor',1651);feb(1652,1,QAe,Ygc);_.Kf=function Zgc(a,b){Xgc(RD(a,36),b)};var UT=sfb(hBe,'ReversedEdgeRestorer',1652);feb(1657,1,QAe,ahc);_.Kf=function bhc(a,b){$gc(this,RD(a,36),b)};var _T=sfb(hBe,'SelfLoopPortRestorer',1657);feb(1658,1,{},chc);_.Kb=function dhc(a){return new SDb(null,new Swb(RD(a,30).a,16))};var VT=sfb(hBe,'SelfLoopPortRestorer/lambda$0$Type',1658);feb(1659,1,nwe,ehc);_.Mb=function fhc(a){return RD(a,10).k==(r3b(),p3b)};var WT=sfb(hBe,'SelfLoopPortRestorer/lambda$1$Type',1659);feb(1660,1,nwe,ghc);_.Mb=function hhc(a){return nQb(RD(a,10),(Ywc(),Pwc))};var XT=sfb(hBe,'SelfLoopPortRestorer/lambda$2$Type',1660);feb(1661,1,{},ihc);_.Kb=function jhc(a){return RD(mQb(RD(a,10),(Ywc(),Pwc)),337)};var YT=sfb(hBe,'SelfLoopPortRestorer/lambda$3$Type',1661);feb(1662,1,Qve,khc);_.Cd=function lhc(a){_gc(this.a,RD(a,337))};var ZT=sfb(hBe,'SelfLoopPortRestorer/lambda$4$Type',1662);feb(805,1,Qve,mhc);_.Cd=function nhc(a){Rmc(RD(a,105))};var $T=sfb(hBe,'SelfLoopPortRestorer/lambda$5$Type',805);feb(1663,1,QAe,rhc);_.Kf=function thc(a,b){ohc(RD(a,36),b)};var iU=sfb(hBe,'SelfLoopPostProcessor',1663);feb(1664,1,{},uhc);_.Kb=function vhc(a){return new SDb(null,new Swb(RD(a,30).a,16))};var aU=sfb(hBe,'SelfLoopPostProcessor/lambda$0$Type',1664);feb(1665,1,nwe,whc);_.Mb=function xhc(a){return RD(a,10).k==(r3b(),p3b)};var bU=sfb(hBe,'SelfLoopPostProcessor/lambda$1$Type',1665);feb(1666,1,nwe,yhc);_.Mb=function zhc(a){return nQb(RD(a,10),(Ywc(),Pwc))};var cU=sfb(hBe,'SelfLoopPostProcessor/lambda$2$Type',1666);feb(1667,1,Qve,Ahc);_.Cd=function Bhc(a){phc(RD(a,10))};var dU=sfb(hBe,'SelfLoopPostProcessor/lambda$3$Type',1667);feb(1668,1,{},Chc);_.Kb=function Dhc(a){return new SDb(null,new Swb(RD(a,105).f,1))};var eU=sfb(hBe,'SelfLoopPostProcessor/lambda$4$Type',1668);feb(1669,1,Qve,Ehc);_.Cd=function Fhc(a){qhc(this.a,RD(a,340))};var fU=sfb(hBe,'SelfLoopPostProcessor/lambda$5$Type',1669);feb(1670,1,nwe,Ghc);_.Mb=function Hhc(a){return !!RD(a,105).i};var gU=sfb(hBe,'SelfLoopPostProcessor/lambda$6$Type',1670);feb(1671,1,Qve,Ihc);_.Cd=function Jhc(a){shc(this.a,RD(a,105))};var hU=sfb(hBe,'SelfLoopPostProcessor/lambda$7$Type',1671);feb(1653,1,QAe,Nhc);_.Kf=function Ohc(a,b){Mhc(RD(a,36),b)};var mU=sfb(hBe,'SelfLoopPreProcessor',1653);feb(1654,1,{},Phc);_.Kb=function Qhc(a){return new SDb(null,new Swb(RD(a,105).f,1))};var jU=sfb(hBe,'SelfLoopPreProcessor/lambda$0$Type',1654);feb(1655,1,{},Rhc);_.Kb=function Shc(a){return RD(a,340).a};var kU=sfb(hBe,'SelfLoopPreProcessor/lambda$1$Type',1655);feb(1656,1,Qve,Thc);_.Cd=function Uhc(a){Lhc(RD(a,18))};var lU=sfb(hBe,'SelfLoopPreProcessor/lambda$2$Type',1656);feb(1672,1,QAe,Yhc);_.Kf=function Zhc(a,b){Whc(this,RD(a,36),b)};var sU=sfb(hBe,'SelfLoopRouter',1672);feb(1673,1,{},$hc);_.Kb=function _hc(a){return new SDb(null,new Swb(RD(a,30).a,16))};var nU=sfb(hBe,'SelfLoopRouter/lambda$0$Type',1673);feb(1674,1,nwe,aic);_.Mb=function bic(a){return RD(a,10).k==(r3b(),p3b)};var oU=sfb(hBe,'SelfLoopRouter/lambda$1$Type',1674);feb(1675,1,nwe,cic);_.Mb=function dic(a){return nQb(RD(a,10),(Ywc(),Pwc))};var pU=sfb(hBe,'SelfLoopRouter/lambda$2$Type',1675);feb(1676,1,{},eic);_.Kb=function fic(a){return RD(mQb(RD(a,10),(Ywc(),Pwc)),337)};var qU=sfb(hBe,'SelfLoopRouter/lambda$3$Type',1676);feb(1677,1,Qve,gic);_.Cd=function hic(a){Vhc(this.a,this.b,RD(a,337))};var rU=sfb(hBe,'SelfLoopRouter/lambda$4$Type',1677);feb(1678,1,QAe,jic);_.Kf=function mic(a,b){iic(RD(a,36),b)};var xU=sfb(hBe,'SemiInteractiveCrossMinProcessor',1678);feb(1679,1,nwe,nic);_.Mb=function oic(a){return RD(a,10).k==(r3b(),p3b)};var tU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1679);feb(1680,1,nwe,pic);_.Mb=function qic(a){return lQb(RD(a,10))._b((yCc(),IBc))};var uU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1680);feb(1681,1,fye,ric);_.Ne=function sic(a,b){return kic(RD(a,10),RD(b,10))};_.Fb=function tic(a){return this===a};_.Oe=function uic(){return new Frb(this)};var vU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1681);feb(1682,1,{},vic);_.Ve=function wic(a,b){return lic(RD(a,10),RD(b,10))};var wU=sfb(hBe,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1682);feb(1684,1,QAe,yic);_.Kf=function Cic(a,b){xic(RD(a,36),b)};var AU=sfb(hBe,'SortByInputModelProcessor',1684);feb(1685,1,nwe,Dic);_.Mb=function Eic(a){return RD(a,12).g.c.length!=0};var yU=sfb(hBe,'SortByInputModelProcessor/lambda$0$Type',1685);feb(1686,1,Qve,Fic);_.Cd=function Gic(a){Aic(this.a,RD(a,12))};var zU=sfb(hBe,'SortByInputModelProcessor/lambda$1$Type',1686);feb(1759,817,{},Pic);_.df=function Qic(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new bnb;FDb(CDb(new SDb(null,new Swb(this.c.a.b,16)),new Rjc),new Tjc(this,b));eHb(this,new Zic);Umb(b,new bjc);b.c.length=0;FDb(CDb(new SDb(null,new Swb(this.c.a.b,16)),new djc),new fjc(b));eHb(this,new jjc);Umb(b,new njc);b.c.length=0;c=Wvb(TCb(HDb(new SDb(null,new Swb(this.c.a.b,16)),new pjc(this))),new rjc);FDb(new SDb(null,new Swb(this.c.a.a,16)),new vjc(c,b));eHb(this,new zjc);Umb(b,new Djc);b.c.length=0;break;case 3:d=new bnb;eHb(this,new Ric);e=Wvb(TCb(HDb(new SDb(null,new Swb(this.c.a.b,16)),new Vic(this))),new tjc);FDb(CDb(new SDb(null,new Swb(this.c.a.b,16)),new Fjc),new Hjc(e,d));eHb(this,new Ljc);Umb(d,new Pjc);d.c.length=0;break;default:throw Adb(new Ied);}};_.b=0;var ZU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation',1759);feb(1760,1,xye,Ric);_.Lb=function Sic(a){return ZD(RD(a,60).g,154)};_.Fb=function Tic(a){return this===a};_.Mb=function Uic(a){return ZD(RD(a,60).g,154)};var BU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1760);feb(1761,1,{},Vic);_.Ye=function Wic(a){return Jic(this.a,RD(a,60))};var CU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1761);feb(1769,1,owe,Xic);_.de=function Yic(){Iic(this.a,this.b,-1)};_.b=0;var DU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1769);feb(1771,1,xye,Zic);_.Lb=function $ic(a){return ZD(RD(a,60).g,154)};_.Fb=function _ic(a){return this===a};_.Mb=function ajc(a){return ZD(RD(a,60).g,154)};var EU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1771);feb(1772,1,Qve,bjc);_.Cd=function cjc(a){RD(a,380).de()};var FU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1772);feb(1773,1,nwe,djc);_.Mb=function ejc(a){return ZD(RD(a,60).g,10)};var GU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1773);feb(1775,1,Qve,fjc);_.Cd=function gjc(a){Kic(this.a,RD(a,60))};var HU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1775);feb(1774,1,owe,hjc);_.de=function ijc(){Iic(this.b,this.a,-1)};_.a=0;var IU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1774);feb(1776,1,xye,jjc);_.Lb=function kjc(a){return ZD(RD(a,60).g,10)};_.Fb=function ljc(a){return this===a};_.Mb=function mjc(a){return ZD(RD(a,60).g,10)};var JU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1776);feb(1777,1,Qve,njc);_.Cd=function ojc(a){RD(a,380).de()};var KU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1777);feb(1778,1,{},pjc);_.Ye=function qjc(a){return Lic(this.a,RD(a,60))};var LU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1778);feb(1779,1,{},rjc);_.We=function sjc(){return 0};var MU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1779);feb(1762,1,{},tjc);_.We=function ujc(){return 0};var NU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1762);feb(1781,1,Qve,vjc);_.Cd=function wjc(a){Mic(this.a,this.b,RD(a,316))};_.a=0;var OU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1781);feb(1780,1,owe,xjc);_.de=function yjc(){Hic(this.a,this.b,-1)};_.b=0;var PU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1780);feb(1782,1,xye,zjc);_.Lb=function Ajc(a){return RD(a,60),true};_.Fb=function Bjc(a){return this===a};_.Mb=function Cjc(a){return RD(a,60),true};var QU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1782);feb(1783,1,Qve,Djc);_.Cd=function Ejc(a){RD(a,380).de()};var RU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1783);feb(1763,1,nwe,Fjc);_.Mb=function Gjc(a){return ZD(RD(a,60).g,10)};var SU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1763);feb(1765,1,Qve,Hjc);_.Cd=function Ijc(a){Nic(this.a,this.b,RD(a,60))};_.a=0;var TU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1765);feb(1764,1,owe,Jjc);_.de=function Kjc(){Iic(this.b,this.a,-1)};_.a=0;var UU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1764);feb(1766,1,xye,Ljc);_.Lb=function Mjc(a){return RD(a,60),true};_.Fb=function Njc(a){return this===a};_.Mb=function Ojc(a){return RD(a,60),true};var VU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1766);feb(1767,1,Qve,Pjc);_.Cd=function Qjc(a){RD(a,380).de()};var WU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1767);feb(1768,1,nwe,Rjc);_.Mb=function Sjc(a){return ZD(RD(a,60).g,154)};var XU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1768);feb(1770,1,Qve,Tjc);_.Cd=function Ujc(a){Oic(this.a,this.b,RD(a,60))};var YU=sfb(rBe,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1770);feb(1586,1,QAe,Yjc);_.Kf=function bkc(a,b){Xjc(this,RD(a,36),b)};var Vjc;var bV=sfb(rBe,'HorizontalGraphCompactor',1586);feb(1587,1,{},ckc);_.ff=function dkc(a,b){var c,d,e;if(_jc(a,b)){return 0}c=Zjc(a);d=Zjc(b);if(!!c&&c.k==(r3b(),m3b)||!!d&&d.k==(r3b(),m3b)){return 0}e=RD(mQb(this.a.a,(Ywc(),Qwc)),312);return ZEc(e,c?c.k:(r3b(),o3b),d?d.k:(r3b(),o3b))};_.gf=function ekc(a,b){var c,d,e;if(_jc(a,b)){return 1}c=Zjc(a);d=Zjc(b);e=RD(mQb(this.a.a,(Ywc(),Qwc)),312);return aFc(e,c?c.k:(r3b(),o3b),d?d.k:(r3b(),o3b))};var $U=sfb(rBe,'HorizontalGraphCompactor/1',1587);feb(1588,1,{},fkc);_.ef=function gkc(a,b){return Wjc(),a.a.i==0};var _U=sfb(rBe,'HorizontalGraphCompactor/lambda$0$Type',1588);feb(1589,1,{},hkc);_.ef=function ikc(a,b){return akc(this.a,a,b)};var aV=sfb(rBe,'HorizontalGraphCompactor/lambda$1$Type',1589);feb(1730,1,{},Ckc);var jkc,kkc;var BV=sfb(rBe,'LGraphToCGraphTransformer',1730);feb(1738,1,nwe,Kkc);_.Mb=function Lkc(a){return a!=null};var cV=sfb(rBe,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1738);feb(1731,1,{},Mkc);_.Kb=function Nkc(a){return lkc(),jeb(mQb(RD(RD(a,60).g,10),(Ywc(),Awc)))};var dV=sfb(rBe,'LGraphToCGraphTransformer/lambda$0$Type',1731);feb(1732,1,{},Okc);_.Kb=function Pkc(a){return lkc(),Mlc(RD(RD(a,60).g,154))};var eV=sfb(rBe,'LGraphToCGraphTransformer/lambda$1$Type',1732);feb(1741,1,nwe,Qkc);_.Mb=function Rkc(a){return lkc(),ZD(RD(a,60).g,10)};var fV=sfb(rBe,'LGraphToCGraphTransformer/lambda$10$Type',1741);feb(1742,1,Qve,Skc);_.Cd=function Tkc(a){Dkc(RD(a,60))};var gV=sfb(rBe,'LGraphToCGraphTransformer/lambda$11$Type',1742);feb(1743,1,nwe,Ukc);_.Mb=function Vkc(a){return lkc(),ZD(RD(a,60).g,154)};var hV=sfb(rBe,'LGraphToCGraphTransformer/lambda$12$Type',1743);feb(1747,1,Qve,Wkc);_.Cd=function Xkc(a){Ekc(RD(a,60))};var iV=sfb(rBe,'LGraphToCGraphTransformer/lambda$13$Type',1747);feb(1744,1,Qve,Ykc);_.Cd=function Zkc(a){Fkc(this.a,RD(a,8))};_.a=0;var jV=sfb(rBe,'LGraphToCGraphTransformer/lambda$14$Type',1744);feb(1745,1,Qve,$kc);_.Cd=function _kc(a){Gkc(this.a,RD(a,116))};_.a=0;var kV=sfb(rBe,'LGraphToCGraphTransformer/lambda$15$Type',1745);feb(1746,1,Qve,alc);_.Cd=function blc(a){Hkc(this.a,RD(a,8))};_.a=0;var lV=sfb(rBe,'LGraphToCGraphTransformer/lambda$16$Type',1746);feb(1748,1,{},clc);_.Kb=function dlc(a){return lkc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var mV=sfb(rBe,'LGraphToCGraphTransformer/lambda$17$Type',1748);feb(1749,1,nwe,elc);_.Mb=function flc(a){return lkc(),W0b(RD(a,18))};var nV=sfb(rBe,'LGraphToCGraphTransformer/lambda$18$Type',1749);feb(1750,1,Qve,glc);_.Cd=function hlc(a){ukc(this.a,RD(a,18))};var oV=sfb(rBe,'LGraphToCGraphTransformer/lambda$19$Type',1750);feb(1734,1,Qve,ilc);_.Cd=function jlc(a){vkc(this.a,RD(a,154))};var pV=sfb(rBe,'LGraphToCGraphTransformer/lambda$2$Type',1734);feb(1751,1,{},klc);_.Kb=function llc(a){return lkc(),new SDb(null,new Swb(RD(a,30).a,16))};var qV=sfb(rBe,'LGraphToCGraphTransformer/lambda$20$Type',1751);feb(1752,1,{},mlc);_.Kb=function nlc(a){return lkc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var rV=sfb(rBe,'LGraphToCGraphTransformer/lambda$21$Type',1752);feb(1753,1,{},olc);_.Kb=function plc(a){return lkc(),RD(mQb(RD(a,18),(Ywc(),Twc)),15)};var sV=sfb(rBe,'LGraphToCGraphTransformer/lambda$22$Type',1753);feb(1754,1,nwe,qlc);_.Mb=function rlc(a){return Ikc(RD(a,15))};var tV=sfb(rBe,'LGraphToCGraphTransformer/lambda$23$Type',1754);feb(1755,1,Qve,slc);_.Cd=function tlc(a){nkc(this.a,RD(a,15))};var uV=sfb(rBe,'LGraphToCGraphTransformer/lambda$24$Type',1755);feb(1733,1,Qve,ulc);_.Cd=function vlc(a){wkc(this.a,this.b,RD(a,154))};var vV=sfb(rBe,'LGraphToCGraphTransformer/lambda$3$Type',1733);feb(1735,1,{},wlc);_.Kb=function xlc(a){return lkc(),new SDb(null,new Swb(RD(a,30).a,16))};var wV=sfb(rBe,'LGraphToCGraphTransformer/lambda$4$Type',1735);feb(1736,1,{},ylc);_.Kb=function zlc(a){return lkc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var xV=sfb(rBe,'LGraphToCGraphTransformer/lambda$5$Type',1736);feb(1737,1,{},Alc);_.Kb=function Blc(a){return lkc(),RD(mQb(RD(a,18),(Ywc(),Twc)),15)};var yV=sfb(rBe,'LGraphToCGraphTransformer/lambda$6$Type',1737);feb(1739,1,Qve,Clc);_.Cd=function Dlc(a){Jkc(this.a,RD(a,15))};var zV=sfb(rBe,'LGraphToCGraphTransformer/lambda$8$Type',1739);feb(1740,1,Qve,Elc);_.Cd=function Flc(a){xkc(this.a,this.b,RD(a,154))};var AV=sfb(rBe,'LGraphToCGraphTransformer/lambda$9$Type',1740);feb(1729,1,{},Jlc);_.cf=function Klc(a){var b,c,d,e,f;this.a=a;this.d=new BIb;this.c=$C(DN,rve,125,this.a.a.a.c.length,0,1);this.b=0;for(c=new Anb(this.a.a.a);c.a=p){Rmb(f,sgb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.pg=function Psc(){return false};var XW=sfb(zBe,'MSDCutIndexHeuristic',816);feb(1683,1,QAe,Ssc);_.Kf=function Tsc(a,b){Rsc(RD(a,36),b)};var YW=sfb(zBe,'SingleEdgeGraphWrapper',1683);feb(232,22,{3:1,34:1,22:1,232:1},ctc);var Xsc,Ysc,Zsc,$sc,_sc,atc;var ZW=tfb(ABe,'CenterEdgeLabelPlacementStrategy',232,WI,etc,dtc);var ftc;feb(431,22,{3:1,34:1,22:1,431:1},ktc);var htc,itc;var $W=tfb(ABe,'ConstraintCalculationStrategy',431,WI,mtc,ltc);var ntc;feb(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},utc);_.dg=function wtc(){return ttc(this)};_.qg=function vtc(){return ttc(this)};var ptc,qtc,rtc;var _W=tfb(ABe,'CrossingMinimizationStrategy',322,WI,ytc,xtc);var ztc;feb(351,22,{3:1,34:1,22:1,351:1},Ftc);var Btc,Ctc,Dtc;var aX=tfb(ABe,'CuttingStrategy',351,WI,Htc,Gtc);var Itc;feb(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},Rtc);_.dg=function Ttc(){return Qtc(this)};_.qg=function Stc(){return Qtc(this)};var Ktc,Ltc,Mtc,Ntc,Otc;var bX=tfb(ABe,'CycleBreakingStrategy',348,WI,Vtc,Utc);var Wtc;feb(428,22,{3:1,34:1,22:1,428:1},_tc);var Ytc,Ztc;var cX=tfb(ABe,'DirectionCongruency',428,WI,buc,auc);var cuc;feb(460,22,{3:1,34:1,22:1,460:1},iuc);var euc,fuc,guc;var dX=tfb(ABe,'EdgeConstraint',460,WI,kuc,juc);var luc;feb(283,22,{3:1,34:1,22:1,283:1},vuc);var nuc,ouc,puc,quc,ruc,suc;var eX=tfb(ABe,'EdgeLabelSideSelection',283,WI,xuc,wuc);var yuc;feb(488,22,{3:1,34:1,22:1,488:1},Duc);var Auc,Buc;var fX=tfb(ABe,'EdgeStraighteningStrategy',488,WI,Fuc,Euc);var Guc;feb(281,22,{3:1,34:1,22:1,281:1},Puc);var Iuc,Juc,Kuc,Luc,Muc,Nuc;var gX=tfb(ABe,'FixedAlignment',281,WI,Ruc,Quc);var Suc;feb(282,22,{3:1,34:1,22:1,282:1},_uc);var Uuc,Vuc,Wuc,Xuc,Yuc,Zuc;var hX=tfb(ABe,'GraphCompactionStrategy',282,WI,bvc,avc);var cvc;feb(259,22,{3:1,34:1,22:1,259:1},pvc);var evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc;var iX=tfb(ABe,'GraphProperties',259,WI,rvc,qvc);var svc;feb(299,22,{3:1,34:1,22:1,299:1},yvc);var uvc,vvc,wvc;var jX=tfb(ABe,'GreedySwitchType',299,WI,Avc,zvc);var Bvc;feb(311,22,{3:1,34:1,22:1,311:1},Hvc);var Dvc,Evc,Fvc;var kX=tfb(ABe,'InLayerConstraint',311,WI,Jvc,Ivc);var Kvc;feb(429,22,{3:1,34:1,22:1,429:1},Pvc);var Mvc,Nvc;var lX=tfb(ABe,'InteractiveReferencePoint',429,WI,Rvc,Qvc);var Svc;var Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc,jwc,kwc,lwc,mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc;feb(171,22,{3:1,34:1,22:1,171:1},dxc);var Zwc,$wc,_wc,axc,bxc;var mX=tfb(ABe,'LayerConstraint',171,WI,fxc,exc);var gxc;feb(859,1,Eye,Pzc);_.hf=function Qzc(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,HBe),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),Uxc),(kid(),eid)),cX),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,IBe),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Geb(),false)),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,JBe),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),pyc),eid),lX),xsb(Whd))));zgd(a,JBe,RBe,ryc);zgd(a,JBe,_Be,qyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,KBe),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,LBe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),cid),QI),xsb(Whd))));Egd(a,new Ahd(Nhd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MBe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),cid),QI),xsb(Xhd)),cD(WC(qJ,1),Nve,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,NBe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),azc),eid),xX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,OBe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),sgb(7)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,PBe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,QBe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,RBe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),Sxc),eid),bX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SBe),bDe),'Node Layering Strategy'),'Strategy for node layering.'),Gyc),eid),rX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TBe),bDe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),wyc),eid),mX),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,UBe),bDe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VBe),bDe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),sgb(-1)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WBe),cDe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),sgb(4)),gid),bJ),xsb(Whd))));zgd(a,WBe,SBe,zyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XBe),cDe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),sgb(2)),gid),bJ),xsb(Whd))));zgd(a,XBe,SBe,Byc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YBe),dDe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),Eyc),eid),vX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZBe),dDe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),sgb(0)),gid),bJ),xsb(Whd))));zgd(a,ZBe,YBe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$Be),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),sgb(lve)),gid),bJ),xsb(Whd))));zgd(a,$Be,SBe,tyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_Be),eDe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),Qxc),eid),_W),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aCe),eDe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,bCe),eDe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),did),VI),xsb(Whd))));zgd(a,bCe,fDe,Ixc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,cCe),eDe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),cid),QI),xsb(Whd))));zgd(a,cCe,_Be,Oxc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,dCe),eDe),'In Layer Predecessor of'),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),iid),qJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,eCe),eDe),'In Layer Successor of'),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),iid),qJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fCe),eDe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gCe),eDe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),sgb(-1)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,hCe),gDe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),sgb(40)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,iCe),gDe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),Fxc),eid),jX),xsb(Whd))));zgd(a,iCe,_Be,Gxc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,jCe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),Bxc),eid),jX),xsb(Whd))));zgd(a,jCe,_Be,Cxc);zgd(a,jCe,fDe,Dxc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,kCe),hDe),'Node Placement Strategy'),'Strategy for node placement.'),$yc),eid),uX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,lCe),hDe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),cid),QI),xsb(Whd))));zgd(a,lCe,kCe,Qyc);zgd(a,lCe,kCe,Ryc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,mCe),iDe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),Kyc),eid),fX),xsb(Whd))));zgd(a,mCe,kCe,Lyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,nCe),iDe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),Nyc),eid),gX),xsb(Whd))));zgd(a,nCe,kCe,Oyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,oCe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),did),VI),xsb(Whd))));zgd(a,oCe,kCe,Tyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,pCe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),eid),tX),xsb(Vhd))));zgd(a,pCe,kCe,Yyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,qCe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Wyc),eid),tX),xsb(Whd))));zgd(a,qCe,kCe,Xyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,rCe),jDe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),ayc),eid),zX),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,sCe),jDe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),cyc),eid),AX),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,tCe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),eyc),eid),CX),xsb(Whd))));zgd(a,tCe,kDe,fyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,uCe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),did),VI),xsb(Whd))));zgd(a,uCe,kDe,hyc);zgd(a,uCe,tCe,iyc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,vCe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),did),VI),xsb(Whd))));zgd(a,vCe,kDe,$xc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,wCe),lDe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,xCe),lDe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,yCe),lDe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,zCe),lDe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ACe),mDe),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,BCe),mDe),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,CCe),mDe),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),sgb(0)),gid),bJ),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,DCe),nDe),qze),'Tries to further compact components (disconnected sub-graphs).'),false),cid),QI),xsb(Whd))));zgd(a,DCe,cAe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ECe),oDe),'Post Compaction Strategy'),pDe),nxc),eid),hX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,FCe),oDe),'Post Compaction Constraint Calculation'),pDe),lxc),eid),$W),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,GCe),qDe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,HCe),qDe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),sgb(16)),gid),bJ),xsb(Whd))));zgd(a,HCe,GCe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ICe),qDe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),sgb(5)),gid),bJ),xsb(Whd))));zgd(a,ICe,GCe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,JCe),rDe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),Gzc),eid),EX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,KCe),rDe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),did),VI),xsb(Whd))));zgd(a,KCe,JCe,lzc);zgd(a,KCe,JCe,mzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,LCe),rDe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),did),VI),xsb(Whd))));zgd(a,LCe,JCe,ozc);zgd(a,LCe,JCe,pzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MCe),sDe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),wzc),eid),aX),xsb(Whd))));zgd(a,MCe,JCe,xzc);zgd(a,MCe,JCe,yzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,NCe),sDe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),hid),QK),xsb(Whd))));zgd(a,NCe,MCe,rzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,OCe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),tzc),gid),bJ),xsb(Whd))));zgd(a,OCe,MCe,uzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,PCe),tDe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),Lzc),eid),DX),xsb(Whd))));zgd(a,PCe,JCe,Mzc);zgd(a,PCe,JCe,Nzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,QCe),tDe),'Valid Indices for Wrapping'),null),hid),QK),xsb(Whd))));zgd(a,QCe,JCe,Izc);zgd(a,QCe,JCe,Jzc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,RCe),uDe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),cid),QI),xsb(Whd))));zgd(a,RCe,JCe,Czc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SCe),uDe),'Distance Penalty When Improving Cuts'),null),2),did),VI),xsb(Whd))));zgd(a,SCe,JCe,Azc);zgd(a,SCe,RCe,true);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TCe),uDe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),cid),QI),xsb(Whd))));zgd(a,TCe,JCe,Ezc);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,UCe),vDe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),Yxc),eid),eX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VCe),vDe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),Wxc),eid),ZW),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WCe),wDe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),xxc),eid),wX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XCe),wDe),'Consider Port Order'),'If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YCe),wDe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZCe),wDe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),pxc),eid),CQ),xsb(Whd))));zgd(a,ZCe,cAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$Ce),wDe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),txc),eid),sX),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_Ce),wDe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),did),VI),xsb(Whd))));zgd(a,_Ce,WCe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aDe),wDe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),did),VI),xsb(Whd))));zgd(a,aDe,WCe,null);zCc((new ACc,a))};var ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc,Nyc,Oyc,Pyc,Qyc,Ryc,Syc,Tyc,Uyc,Vyc,Wyc,Xyc,Yyc,Zyc,$yc,_yc,azc,bzc,czc,dzc,ezc,fzc,gzc,hzc,izc,jzc,kzc,lzc,mzc,nzc,ozc,pzc,qzc,rzc,szc,tzc,uzc,vzc,wzc,xzc,yzc,zzc,Azc,Bzc,Czc,Dzc,Ezc,Fzc,Gzc,Hzc,Izc,Jzc,Kzc,Lzc,Mzc,Nzc;var nX=sfb(ABe,'LayeredMetaDataProvider',859);feb(998,1,Eye,ACc);_.hf=function BCc(a){zCc(a)};var Rzc,Szc,Tzc,Uzc,Vzc,Wzc,Xzc,Yzc,Zzc,$zc,_zc,aAc,bAc,cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc,kAc,lAc,mAc,nAc,oAc,pAc,qAc,rAc,sAc,tAc,uAc,vAc,wAc,xAc,yAc,zAc,AAc,BAc,CAc,DAc,EAc,FAc,GAc,HAc,IAc,JAc,KAc,LAc,MAc,NAc,OAc,PAc,QAc,RAc,SAc,TAc,UAc,VAc,WAc,XAc,YAc,ZAc,$Ac,_Ac,aBc,bBc,cBc,dBc,eBc,fBc,gBc,hBc,iBc,jBc,kBc,lBc,mBc,nBc,oBc,pBc,qBc,rBc,sBc,tBc,uBc,vBc,wBc,xBc,yBc,zBc,ABc,BBc,CBc,DBc,EBc,FBc,GBc,HBc,IBc,JBc,KBc,LBc,MBc,NBc,OBc,PBc,QBc,RBc,SBc,TBc,UBc,VBc,WBc,XBc,YBc,ZBc,$Bc,_Bc,aCc,bCc,cCc,dCc,eCc,fCc,gCc,hCc,iCc,jCc,kCc,lCc,mCc,nCc,oCc,pCc,qCc,rCc,sCc,tCc,uCc,vCc,wCc,xCc;var pX=sfb(ABe,'LayeredOptions',998);feb(999,1,{},CCc);_.sf=function DCc(){var a;return a=new lXb,a};_.tf=function ECc(a){};var oX=sfb(ABe,'LayeredOptions/LayeredFactory',999);feb(1391,1,{});_.a=0;var FCc;var b4=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder',1391);feb(792,1391,{},RCc);var OCc,PCc;var qX=sfb(ABe,'LayeredSpacings/LayeredSpacingsBuilder',792);feb(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},bDc);_.dg=function dDc(){return aDc(this)};_.qg=function cDc(){return aDc(this)};var SCc,TCc,UCc,VCc,WCc,XCc,YCc,ZCc,$Cc;var rX=tfb(ABe,'LayeringStrategy',265,WI,fDc,eDc);var gDc;feb(390,22,{3:1,34:1,22:1,390:1},nDc);var iDc,jDc,kDc;var sX=tfb(ABe,'LongEdgeOrderingStrategy',390,WI,pDc,oDc);var qDc;feb(203,22,{3:1,34:1,22:1,203:1},yDc);var sDc,tDc,uDc,vDc;var tX=tfb(ABe,'NodeFlexibility',203,WI,BDc,ADc);var CDc;feb(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},LDc);_.dg=function NDc(){return KDc(this)};_.qg=function MDc(){return KDc(this)};var EDc,FDc,GDc,HDc,IDc;var uX=tfb(ABe,'NodePlacementStrategy',323,WI,PDc,ODc);var QDc;feb(243,22,{3:1,34:1,22:1,243:1},bEc);var SDc,TDc,UDc,VDc,WDc,XDc,YDc,ZDc,$Dc,_Dc;var vX=tfb(ABe,'NodePromotionStrategy',243,WI,dEc,cEc);var eEc;feb(284,22,{3:1,34:1,22:1,284:1},lEc);var gEc,hEc,iEc,jEc;var wX=tfb(ABe,'OrderingStrategy',284,WI,nEc,mEc);var oEc;feb(430,22,{3:1,34:1,22:1,430:1},tEc);var qEc,rEc;var xX=tfb(ABe,'PortSortingStrategy',430,WI,vEc,uEc);var wEc;feb(463,22,{3:1,34:1,22:1,463:1},CEc);var yEc,zEc,AEc;var yX=tfb(ABe,'PortType',463,WI,EEc,DEc);var FEc;feb(387,22,{3:1,34:1,22:1,387:1},LEc);var HEc,IEc,JEc;var zX=tfb(ABe,'SelfLoopDistributionStrategy',387,WI,NEc,MEc);var OEc;feb(349,22,{3:1,34:1,22:1,349:1},UEc);var QEc,REc,SEc;var AX=tfb(ABe,'SelfLoopOrderingStrategy',349,WI,WEc,VEc);var XEc;feb(312,1,{312:1},gFc);var BX=sfb(ABe,'Spacings',312);feb(350,22,{3:1,34:1,22:1,350:1},mFc);var iFc,jFc,kFc;var CX=tfb(ABe,'SplineRoutingMode',350,WI,oFc,nFc);var pFc;feb(352,22,{3:1,34:1,22:1,352:1},vFc);var rFc,sFc,tFc;var DX=tfb(ABe,'ValidifyStrategy',352,WI,xFc,wFc);var yFc;feb(388,22,{3:1,34:1,22:1,388:1},EFc);var AFc,BFc,CFc;var EX=tfb(ABe,'WrappingStrategy',388,WI,GFc,FFc);var HFc;feb(1398,1,nEe,NFc);_.rg=function OFc(a){return RD(a,36),JFc};_.Kf=function PFc(a,b){MFc(this,RD(a,36),b)};var JFc;var FX=sfb(oEe,'DepthFirstCycleBreaker',1398);feb(793,1,nEe,UFc);_.rg=function WFc(a){return RD(a,36),QFc};_.Kf=function XFc(a,b){SFc(this,RD(a,36),b)};_.sg=function VFc(a){return RD(Vmb(a,Jwb(this.d,a.c.length)),10)};var QFc;var GX=sfb(oEe,'GreedyCycleBreaker',793);feb(1401,793,nEe,YFc);_.sg=function ZFc(a){var b,c,d,e;e=null;b=lve;for(d=new Anb(a);d.a1){Heb(TD(mQb(Y2b((tFb(0,a.c.length),RD(a.c[0],10))),(yCc(),eAc))))?wLc(a,this.d,RD(this,669)):(yob(),_mb(a,this.d));nJc(this.e,a)}};_.lg=function bJc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=SIc(c,a.length)){f=a[b-(c?1:-1)];sIc(this.f,f,c?(BEc(),zEc):(BEc(),yEc))}e=a[b][0];k=!d||e.k==(r3b(),m3b);j=dv(a[b]);this.vg(j,k,false,c);g=0;for(i=new Anb(j);i.a');a0?(pMc(this.a,a[b-1],a[b]),undefined):!c&&b1){Heb(TD(mQb(Y2b((tFb(0,a.c.length),RD(a.c[0],10))),(yCc(),eAc))))?wLc(a,this.d,this):(yob(),_mb(a,this.d));Heb(TD(mQb(Y2b((tFb(0,a.c.length),RD(a.c[0],10))),eAc)))||nJc(this.e,a)}};var wY=sfb(sEe,'ModelOrderBarycenterHeuristic',669);feb(1866,1,fye,yLc);_.Ne=function zLc(a,b){return tLc(this.a,RD(a,10),RD(b,10))};_.Fb=function ALc(a){return this===a};_.Oe=function BLc(){return new Frb(this)};var vY=sfb(sEe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1866);feb(1423,1,nEe,FLc);_.rg=function GLc(a){var b;return RD(a,36),b=vfd(CLc),pfd(b,(sXb(),pXb),(hcc(),Ybc)),b};_.Kf=function HLc(a,b){ELc((RD(a,36),b))};var CLc;var xY=sfb(sEe,'NoCrossingMinimizer',1423);feb(809,413,qEe,ILc);_.tg=function JLc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new Anb(a.j);k.a1&&(e.j==(qpd(),Xod)?(this.b[a]=true):e.j==ppd&&a>0&&(this.b[a-1]=true))};_.f=0;var AY=sfb(tBe,'AllCrossingsCounter',1861);feb(595,1,{},_Lc);_.b=0;_.d=0;var BY=sfb(tBe,'BinaryIndexedTree',595);feb(532,1,{},DMc);var bMc,cMc;var LY=sfb(tBe,'CrossingsCounter',532);feb(1950,1,fye,HMc);_.Ne=function IMc(a,b){return wMc(this.a,RD(a,12),RD(b,12))};_.Fb=function JMc(a){return this===a};_.Oe=function KMc(){return new Frb(this)};var CY=sfb(tBe,'CrossingsCounter/lambda$0$Type',1950);feb(1951,1,fye,LMc);_.Ne=function MMc(a,b){return xMc(this.a,RD(a,12),RD(b,12))};_.Fb=function NMc(a){return this===a};_.Oe=function OMc(){return new Frb(this)};var DY=sfb(tBe,'CrossingsCounter/lambda$1$Type',1951);feb(1952,1,fye,PMc);_.Ne=function QMc(a,b){return yMc(this.a,RD(a,12),RD(b,12))};_.Fb=function RMc(a){return this===a};_.Oe=function SMc(){return new Frb(this)};var EY=sfb(tBe,'CrossingsCounter/lambda$2$Type',1952);feb(1953,1,fye,TMc);_.Ne=function UMc(a,b){return zMc(this.a,RD(a,12),RD(b,12))};_.Fb=function VMc(a){return this===a};_.Oe=function WMc(){return new Frb(this)};var FY=sfb(tBe,'CrossingsCounter/lambda$3$Type',1953);feb(1954,1,Qve,XMc);_.Cd=function YMc(a){EMc(this.a,RD(a,12))};var GY=sfb(tBe,'CrossingsCounter/lambda$4$Type',1954);feb(1955,1,nwe,ZMc);_.Mb=function $Mc(a){return FMc(this.a,RD(a,12))};var HY=sfb(tBe,'CrossingsCounter/lambda$5$Type',1955);feb(1956,1,Qve,aNc);_.Cd=function bNc(a){_Mc(this,a)};var IY=sfb(tBe,'CrossingsCounter/lambda$6$Type',1956);feb(1957,1,Qve,cNc);_.Cd=function dNc(a){var b;dMc();hmb(this.b,(b=this.a,RD(a,12),b))};var JY=sfb(tBe,'CrossingsCounter/lambda$7$Type',1957);feb(839,1,xye,eNc);_.Lb=function fNc(a){return dMc(),nQb(RD(a,12),(Ywc(),Iwc))};_.Fb=function gNc(a){return this===a};_.Mb=function hNc(a){return dMc(),nQb(RD(a,12),(Ywc(),Iwc))};var KY=sfb(tBe,'CrossingsCounter/lambda$8$Type',839);feb(1949,1,{},jNc);var PY=sfb(tBe,'HyperedgeCrossingsCounter',1949);feb(478,1,{34:1,478:1},lNc);_.Fd=function mNc(a){return kNc(this,RD(a,478))};_.b=0;_.c=0;_.e=0;_.f=0;var OY=sfb(tBe,'HyperedgeCrossingsCounter/Hyperedge',478);feb(374,1,{34:1,374:1},oNc);_.Fd=function pNc(a){return nNc(this,RD(a,374))};_.b=0;_.c=0;var NY=sfb(tBe,'HyperedgeCrossingsCounter/HyperedgeCorner',374);feb(531,22,{3:1,34:1,22:1,531:1},tNc);var qNc,rNc;var MY=tfb(tBe,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',531,WI,vNc,uNc);var wNc;feb(1425,1,nEe,DNc);_.rg=function ENc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?zNc:null};_.Kf=function FNc(a,b){CNc(this,RD(a,36),b)};var zNc;var RY=sfb(tEe,'InteractiveNodePlacer',1425);feb(1426,1,nEe,TNc);_.rg=function UNc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?GNc:null};_.Kf=function VNc(a,b){RNc(this,RD(a,36),b)};var GNc,HNc,INc;var TY=sfb(tEe,'LinearSegmentsNodePlacer',1426);feb(261,1,{34:1,261:1},ZNc);_.Fd=function $Nc(a){return WNc(this,RD(a,261))};_.Fb=function _Nc(a){var b;if(ZD(a,261)){b=RD(a,261);return this.b==b.b}return false};_.Hb=function aOc(){return this.b};_.Ib=function bOc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var SY=sfb(tEe,'LinearSegmentsNodePlacer/LinearSegment',261);feb(1428,1,nEe,yOc);_.rg=function zOc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?cOc:null};_.Kf=function HOc(a,b){uOc(this,RD(a,36),b)};_.b=0;_.g=0;var cOc;var DZ=sfb(tEe,'NetworkSimplexPlacer',1428);feb(1447,1,fye,IOc);_.Ne=function JOc(a,b){return hgb(RD(a,17).a,RD(b,17).a)};_.Fb=function KOc(a){return this===a};_.Oe=function LOc(){return new Frb(this)};var UY=sfb(tEe,'NetworkSimplexPlacer/0methodref$compare$Type',1447);feb(1449,1,fye,MOc);_.Ne=function NOc(a,b){return hgb(RD(a,17).a,RD(b,17).a)};_.Fb=function OOc(a){return this===a};_.Oe=function POc(){return new Frb(this)};var VY=sfb(tEe,'NetworkSimplexPlacer/1methodref$compare$Type',1449);feb(655,1,{655:1},QOc);var WY=sfb(tEe,'NetworkSimplexPlacer/EdgeRep',655);feb(412,1,{412:1},ROc);_.b=false;var XY=sfb(tEe,'NetworkSimplexPlacer/NodeRep',412);feb(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},VOc);var aZ=sfb(tEe,'NetworkSimplexPlacer/Path',515);feb(1429,1,{},WOc);_.Kb=function XOc(a){return RD(a,18).d.i.k};var YY=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$0$Type',1429);feb(1430,1,nwe,YOc);_.Mb=function ZOc(a){return RD(a,273)==(r3b(),o3b)};var ZY=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$1$Type',1430);feb(1431,1,{},$Oc);_.Kb=function _Oc(a){return RD(a,18).d.i};var $Y=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$2$Type',1431);feb(1432,1,nwe,aPc);_.Mb=function bPc(a){return EPc(zDc(RD(a,10)))};var _Y=sfb(tEe,'NetworkSimplexPlacer/Path/lambda$3$Type',1432);feb(1433,1,nwe,cPc);_.Mb=function dPc(a){return DOc(RD(a,12))};var bZ=sfb(tEe,'NetworkSimplexPlacer/lambda$0$Type',1433);feb(1434,1,Qve,ePc);_.Cd=function fPc(a){jOc(this.a,this.b,RD(a,12))};var cZ=sfb(tEe,'NetworkSimplexPlacer/lambda$1$Type',1434);feb(1443,1,Qve,gPc);_.Cd=function hPc(a){kOc(this.a,RD(a,18))};var dZ=sfb(tEe,'NetworkSimplexPlacer/lambda$10$Type',1443);feb(1444,1,{},iPc);_.Kb=function jPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var eZ=sfb(tEe,'NetworkSimplexPlacer/lambda$11$Type',1444);feb(1445,1,Qve,kPc);_.Cd=function lPc(a){lOc(this.a,RD(a,10))};var fZ=sfb(tEe,'NetworkSimplexPlacer/lambda$12$Type',1445);feb(1446,1,{},mPc);_.Kb=function nPc(a){return dOc(),sgb(RD(a,125).e)};var gZ=sfb(tEe,'NetworkSimplexPlacer/lambda$13$Type',1446);feb(1448,1,{},oPc);_.Kb=function pPc(a){return dOc(),sgb(RD(a,125).e)};var hZ=sfb(tEe,'NetworkSimplexPlacer/lambda$15$Type',1448);feb(1450,1,nwe,qPc);_.Mb=function rPc(a){return dOc(),RD(a,412).c.k==(r3b(),p3b)};var iZ=sfb(tEe,'NetworkSimplexPlacer/lambda$17$Type',1450);feb(1451,1,nwe,sPc);_.Mb=function tPc(a){return dOc(),RD(a,412).c.j.c.length>1};var jZ=sfb(tEe,'NetworkSimplexPlacer/lambda$18$Type',1451);feb(1452,1,Qve,uPc);_.Cd=function vPc(a){EOc(this.c,this.b,this.d,this.a,RD(a,412))};_.c=0;_.d=0;var kZ=sfb(tEe,'NetworkSimplexPlacer/lambda$19$Type',1452);feb(1435,1,{},wPc);_.Kb=function xPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var lZ=sfb(tEe,'NetworkSimplexPlacer/lambda$2$Type',1435);feb(1453,1,Qve,yPc);_.Cd=function zPc(a){FOc(this.a,RD(a,12))};_.a=0;var mZ=sfb(tEe,'NetworkSimplexPlacer/lambda$20$Type',1453);feb(1454,1,{},APc);_.Kb=function BPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var nZ=sfb(tEe,'NetworkSimplexPlacer/lambda$21$Type',1454);feb(1455,1,Qve,CPc);_.Cd=function DPc(a){mOc(this.a,RD(a,10))};var oZ=sfb(tEe,'NetworkSimplexPlacer/lambda$22$Type',1455);feb(1456,1,nwe,FPc);_.Mb=function GPc(a){return EPc(a)};var pZ=sfb(tEe,'NetworkSimplexPlacer/lambda$23$Type',1456);feb(1457,1,{},HPc);_.Kb=function IPc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var qZ=sfb(tEe,'NetworkSimplexPlacer/lambda$24$Type',1457);feb(1458,1,nwe,JPc);_.Mb=function KPc(a){return nOc(this.a,RD(a,10))};var rZ=sfb(tEe,'NetworkSimplexPlacer/lambda$25$Type',1458);feb(1459,1,Qve,LPc);_.Cd=function MPc(a){oOc(this.a,this.b,RD(a,10))};var sZ=sfb(tEe,'NetworkSimplexPlacer/lambda$26$Type',1459);feb(1460,1,nwe,NPc);_.Mb=function OPc(a){return dOc(),!W0b(RD(a,18))};var tZ=sfb(tEe,'NetworkSimplexPlacer/lambda$27$Type',1460);feb(1461,1,nwe,PPc);_.Mb=function QPc(a){return dOc(),!W0b(RD(a,18))};var uZ=sfb(tEe,'NetworkSimplexPlacer/lambda$28$Type',1461);feb(1462,1,{},RPc);_.Ve=function SPc(a,b){return pOc(this.a,RD(a,30),RD(b,30))};var vZ=sfb(tEe,'NetworkSimplexPlacer/lambda$29$Type',1462);feb(1436,1,{},TPc);_.Kb=function UPc(a){return dOc(),new SDb(null,new Twb(new is(Mr(a3b(RD(a,10)).a.Kc(),new ir))))};var wZ=sfb(tEe,'NetworkSimplexPlacer/lambda$3$Type',1436);feb(1437,1,nwe,VPc);_.Mb=function WPc(a){return dOc(),COc(RD(a,18))};var xZ=sfb(tEe,'NetworkSimplexPlacer/lambda$4$Type',1437);feb(1438,1,Qve,XPc);_.Cd=function YPc(a){vOc(this.a,RD(a,18))};var yZ=sfb(tEe,'NetworkSimplexPlacer/lambda$5$Type',1438);feb(1439,1,{},ZPc);_.Kb=function $Pc(a){return dOc(),new SDb(null,new Swb(RD(a,30).a,16))};var zZ=sfb(tEe,'NetworkSimplexPlacer/lambda$6$Type',1439);feb(1440,1,nwe,_Pc);_.Mb=function aQc(a){return dOc(),RD(a,10).k==(r3b(),p3b)};var AZ=sfb(tEe,'NetworkSimplexPlacer/lambda$7$Type',1440);feb(1441,1,{},bQc);_.Kb=function cQc(a){return dOc(),new SDb(null,new Twb(new is(Mr(W2b(RD(a,10)).a.Kc(),new ir))))};var BZ=sfb(tEe,'NetworkSimplexPlacer/lambda$8$Type',1441);feb(1442,1,nwe,dQc);_.Mb=function eQc(a){return dOc(),V0b(RD(a,18))};var CZ=sfb(tEe,'NetworkSimplexPlacer/lambda$9$Type',1442);feb(1424,1,nEe,iQc);_.rg=function jQc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?fQc:null};_.Kf=function kQc(a,b){hQc(RD(a,36),b)};var fQc;var EZ=sfb(tEe,'SimpleNodePlacer',1424);feb(185,1,{185:1},sQc);_.Ib=function tQc(){var a;a='';this.c==(wQc(),vQc)?(a+=Oye):this.c==uQc&&(a+=Nye);this.o==(EQc(),CQc)?(a+=Zye):this.o==DQc?(a+='UP'):(a+='BALANCED');return a};var HZ=sfb(wEe,'BKAlignedLayout',185);feb(523,22,{3:1,34:1,22:1,523:1},xQc);var uQc,vQc;var FZ=tfb(wEe,'BKAlignedLayout/HDirection',523,WI,zQc,yQc);var AQc;feb(522,22,{3:1,34:1,22:1,522:1},FQc);var CQc,DQc;var GZ=tfb(wEe,'BKAlignedLayout/VDirection',522,WI,HQc,GQc);var IQc;feb(1699,1,{},MQc);var IZ=sfb(wEe,'BKAligner',1699);feb(1702,1,{},RQc);var LZ=sfb(wEe,'BKCompactor',1702);feb(663,1,{663:1},SQc);_.a=0;var JZ=sfb(wEe,'BKCompactor/ClassEdge',663);feb(467,1,{467:1},UQc);_.a=null;_.b=0;var KZ=sfb(wEe,'BKCompactor/ClassNode',467);feb(1427,1,nEe,aRc);_.rg=function eRc(a){return RD(mQb(RD(a,36),(Ywc(),kwc)),21).Hc((ovc(),hvc))?VQc:null};_.Kf=function fRc(a,b){_Qc(this,RD(a,36),b)};_.d=false;var VQc;var MZ=sfb(wEe,'BKNodePlacer',1427);feb(1700,1,{},hRc);_.d=0;var OZ=sfb(wEe,'NeighborhoodInformation',1700);feb(1701,1,fye,mRc);_.Ne=function nRc(a,b){return lRc(this,RD(a,42),RD(b,42))};_.Fb=function oRc(a){return this===a};_.Oe=function pRc(){return new Frb(this)};var NZ=sfb(wEe,'NeighborhoodInformation/NeighborComparator',1701);feb(823,1,{});var SZ=sfb(wEe,'ThresholdStrategy',823);feb(1825,823,{},uRc);_.wg=function vRc(a,b,c){return this.a.o==(EQc(),DQc)?oxe:pxe};_.xg=function wRc(){};var PZ=sfb(wEe,'ThresholdStrategy/NullThresholdStrategy',1825);feb(587,1,{587:1},xRc);_.c=false;_.d=false;var QZ=sfb(wEe,'ThresholdStrategy/Postprocessable',587);feb(1826,823,{},BRc);_.wg=function CRc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(wQc(),vQc)){e&&(f=yRc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=yRc(this,c,false))}else{e&&(f=yRc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=yRc(this,c,false))}return f};_.xg=function DRc(){var a,b,c,d,e;while(this.d.b!=0){e=RD(Tub(this.d),587);d=zRc(this,e);if(!d.a){continue}a=d.a;c=Heb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!W0b(a)&&a.c.i.c==a.d.i.c){continue}b=ARc(this,e);b||Eyb(this.e,e)}while(this.e.a.c.length!=0){ARc(this,RD(Dyb(this.e),587))}};var RZ=sfb(wEe,'ThresholdStrategy/SimpleThresholdStrategy',1826);feb(645,1,{645:1,188:1,196:1},HRc);_.dg=function JRc(){return GRc(this)};_.qg=function IRc(){return GRc(this)};var ERc;var TZ=sfb(xEe,'EdgeRouterFactory',645);feb(1485,1,nEe,WRc);_.rg=function XRc(a){return URc(RD(a,36))};_.Kf=function YRc(a,b){VRc(RD(a,36),b)};var LRc,MRc,NRc,ORc,PRc,QRc,RRc,SRc;var UZ=sfb(xEe,'OrthogonalEdgeRouter',1485);feb(1478,1,nEe,lSc);_.rg=function mSc(a){return gSc(RD(a,36))};_.Kf=function nSc(a,b){iSc(this,RD(a,36),b)};var ZRc,$Rc,_Rc,aSc,bSc,cSc;var WZ=sfb(xEe,'PolylineEdgeRouter',1478);feb(1479,1,xye,pSc);_.Lb=function qSc(a){return oSc(RD(a,10))};_.Fb=function rSc(a){return this===a};_.Mb=function sSc(a){return oSc(RD(a,10))};var VZ=sfb(xEe,'PolylineEdgeRouter/1',1479);feb(1872,1,nwe,xSc);_.Mb=function ySc(a){return RD(a,132).c==(fTc(),dTc)};var XZ=sfb(yEe,'HyperEdgeCycleDetector/lambda$0$Type',1872);feb(1873,1,{},zSc);_.Ze=function ASc(a){return RD(a,132).d};var YZ=sfb(yEe,'HyperEdgeCycleDetector/lambda$1$Type',1873);feb(1874,1,nwe,BSc);_.Mb=function CSc(a){return RD(a,132).c==(fTc(),dTc)};var ZZ=sfb(yEe,'HyperEdgeCycleDetector/lambda$2$Type',1874);feb(1875,1,{},DSc);_.Ze=function ESc(a){return RD(a,132).d};var $Z=sfb(yEe,'HyperEdgeCycleDetector/lambda$3$Type',1875);feb(1876,1,{},FSc);_.Ze=function GSc(a){return RD(a,132).d};var _Z=sfb(yEe,'HyperEdgeCycleDetector/lambda$4$Type',1876);feb(1877,1,{},HSc);_.Ze=function ISc(a){return RD(a,132).d};var a$=sfb(yEe,'HyperEdgeCycleDetector/lambda$5$Type',1877);feb(118,1,{34:1,118:1},USc);_.Fd=function VSc(a){return KSc(this,RD(a,118))};_.Fb=function WSc(a){var b;if(ZD(a,118)){b=RD(a,118);return this.g==b.g}return false};_.Hb=function XSc(){return this.g};_.Ib=function ZSc(){var a,b,c,d;a=new dib('{');d=new Anb(this.n);while(d.a'+this.b+' ('+os(this.c)+')'};_.d=0;var c$=sfb(yEe,'HyperEdgeSegmentDependency',132);feb(528,22,{3:1,34:1,22:1,528:1},gTc);var dTc,eTc;var b$=tfb(yEe,'HyperEdgeSegmentDependency/DependencyType',528,WI,iTc,hTc);var jTc;feb(1878,1,{},xTc);var k$=sfb(yEe,'HyperEdgeSegmentSplitter',1878);feb(1879,1,{},ATc);_.a=0;_.b=0;var d$=sfb(yEe,'HyperEdgeSegmentSplitter/AreaRating',1879);feb(339,1,{339:1},BTc);_.a=0;_.b=0;_.c=0;var e$=sfb(yEe,'HyperEdgeSegmentSplitter/FreeArea',339);feb(1880,1,fye,CTc);_.Ne=function DTc(a,b){return zTc(RD(a,118),RD(b,118))};_.Fb=function ETc(a){return this===a};_.Oe=function FTc(){return new Frb(this)};var f$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$0$Type',1880);feb(1881,1,Qve,GTc);_.Cd=function HTc(a){rTc(this.a,this.d,this.c,this.b,RD(a,118))};_.b=0;var g$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$1$Type',1881);feb(1882,1,{},ITc);_.Kb=function JTc(a){return new SDb(null,new Swb(RD(a,118).e,16))};var h$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$2$Type',1882);feb(1883,1,{},KTc);_.Kb=function LTc(a){return new SDb(null,new Swb(RD(a,118).j,16))};var i$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$3$Type',1883);feb(1884,1,{},MTc);_.Ye=function NTc(a){return Kfb(UD(a))};var j$=sfb(yEe,'HyperEdgeSegmentSplitter/lambda$4$Type',1884);feb(664,1,{},TTc);_.a=0;_.b=0;_.c=0;var o$=sfb(yEe,'OrthogonalRoutingGenerator',664);feb(1703,1,{},XTc);_.Kb=function YTc(a){return new SDb(null,new Swb(RD(a,118).e,16))};var m$=sfb(yEe,'OrthogonalRoutingGenerator/lambda$0$Type',1703);feb(1704,1,{},ZTc);_.Kb=function $Tc(a){return new SDb(null,new Swb(RD(a,118).j,16))};var n$=sfb(yEe,'OrthogonalRoutingGenerator/lambda$1$Type',1704);feb(670,1,{});var p$=sfb(zEe,'BaseRoutingDirectionStrategy',670);feb(1870,670,{},cUc);_.yg=function dUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new Anb(a.n);j.aVze){f=k;e=a;d=new rjd(l,f);Mub(g.a,d);_Tc(this,g,e,d,false);m=a.r;if(m){n=Kfb(UD(ju(m.e,0)));d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false);f=b+m.o*c;e=m;d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false)}d=new rjd(p,f);Mub(g.a,d);_Tc(this,g,e,d,false)}}}}};_.zg=function eUc(a){return a.i.n.a+a.n.a+a.a.a};_.Ag=function fUc(){return qpd(),npd};_.Bg=function gUc(){return qpd(),Yod};var q$=sfb(zEe,'NorthToSouthRoutingStrategy',1870);feb(1871,670,{},hUc);_.yg=function iUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new Anb(a.n);j.aVze){f=k;e=a;d=new rjd(l,f);Mub(g.a,d);_Tc(this,g,e,d,false);m=a.r;if(m){n=Kfb(UD(ju(m.e,0)));d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false);f=b-m.o*c;e=m;d=new rjd(n,f);Mub(g.a,d);_Tc(this,g,e,d,false)}d=new rjd(p,f);Mub(g.a,d);_Tc(this,g,e,d,false)}}}}};_.zg=function jUc(a){return a.i.n.a+a.n.a+a.a.a};_.Ag=function kUc(){return qpd(),Yod};_.Bg=function lUc(){return qpd(),npd};var r$=sfb(zEe,'SouthToNorthRoutingStrategy',1871);feb(1869,670,{},mUc);_.yg=function nUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new Anb(a.n);j.aVze){f=k;e=a;d=new rjd(f,l);Mub(g.a,d);_Tc(this,g,e,d,true);m=a.r;if(m){n=Kfb(UD(ju(m.e,0)));d=new rjd(f,n);Mub(g.a,d);_Tc(this,g,e,d,true);f=b+m.o*c;e=m;d=new rjd(f,n);Mub(g.a,d);_Tc(this,g,e,d,true)}d=new rjd(f,p);Mub(g.a,d);_Tc(this,g,e,d,true)}}}}};_.zg=function oUc(a){return a.i.n.b+a.n.b+a.a.b};_.Ag=function pUc(){return qpd(),Xod};_.Bg=function qUc(){return qpd(),ppd};var s$=sfb(zEe,'WestToEastRoutingStrategy',1869);feb(828,1,{},wUc);_.Ib=function xUc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var u$=sfb(BEe,'NubSpline',828);feb(418,1,{418:1},AUc,BUc);var t$=sfb(BEe,'NubSpline/PolarCP',418);feb(1480,1,nEe,VUc);_.rg=function XUc(a){return QUc(RD(a,36))};_.Kf=function YUc(a,b){UUc(this,RD(a,36),b)};var CUc,DUc,EUc,FUc,GUc;var B$=sfb(BEe,'SplineEdgeRouter',1480);feb(274,1,{274:1},_Uc);_.Ib=function aVc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var v$=sfb(BEe,'SplineEdgeRouter/Dependency',274);feb(465,22,{3:1,34:1,22:1,465:1},eVc);var bVc,cVc;var w$=tfb(BEe,'SplineEdgeRouter/SideToProcess',465,WI,gVc,fVc);var hVc;feb(1481,1,nwe,jVc);_.Mb=function kVc(a){return HUc(),!RD(a,131).o};var x$=sfb(BEe,'SplineEdgeRouter/lambda$0$Type',1481);feb(1482,1,{},lVc);_.Ze=function mVc(a){return HUc(),RD(a,131).v+1};var y$=sfb(BEe,'SplineEdgeRouter/lambda$1$Type',1482);feb(1483,1,Qve,nVc);_.Cd=function oVc(a){SUc(this.a,this.b,RD(a,42))};var z$=sfb(BEe,'SplineEdgeRouter/lambda$2$Type',1483);feb(1484,1,Qve,pVc);_.Cd=function qVc(a){TUc(this.a,this.b,RD(a,42))};var A$=sfb(BEe,'SplineEdgeRouter/lambda$3$Type',1484);feb(131,1,{34:1,131:1},wVc,xVc);_.Fd=function yVc(a){return uVc(this,RD(a,131))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var D$=sfb(BEe,'SplineSegment',131);feb(468,1,{468:1},zVc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var C$=sfb(BEe,'SplineSegment/EdgeInformation',468);feb(1198,1,{},IVc);var F$=sfb(GEe,Lze,1198);feb(1199,1,fye,KVc);_.Ne=function LVc(a,b){return JVc(RD(a,121),RD(b,121))};_.Fb=function MVc(a){return this===a};_.Oe=function NVc(){return new Frb(this)};var E$=sfb(GEe,Mze,1199);feb(1197,1,{},TVc);var G$=sfb(GEe,'MrTree',1197);feb(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},$Vc);_.dg=function aWc(){return ZVc(this)};_.qg=function _Vc(){return ZVc(this)};var UVc,VVc,WVc,XVc;var H$=tfb(GEe,'TreeLayoutPhases',405,WI,cWc,bWc);var dWc;feb(1112,205,oze,fWc);_.rf=function gWc(a,b){var c,d,e,f,g,h,i,j;Heb(TD(Gxd(a,(h_c(),S$c))))||RFb((c=new SFb((lud(),new zud(a))),c));g=b.eh(HEe);g.Ug('build tGraph',1);h=(i=new YWc,kQb(i,a),pQb(i,(q$c(),h$c),a),j=new Tsb,QVc(a,i,j),PVc(a,i,j),i);g.Vg();g=b.eh(HEe);g.Ug('Split graph',1);f=HVc(this.a,h);g.Vg();for(e=new Anb(f);e.a'+aXc(this.c):'e_'+tb(this)};var U$=sfb(JEe,'TEdge',65);feb(121,137,{3:1,121:1,96:1,137:1},YWc);_.Ib=function ZWc(){var a,b,c,d,e;e=null;for(d=Sub(this.b,0);d.b!=d.d.c;){c=RD(evb(d),40);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Sub(this.a,0);b.b!=b.d.c;){a=RD(evb(b),65);e+=(!!a.b&&!!a.c?aXc(a.b)+'->'+aXc(a.c):'e_'+tb(a))+'\n'}return e};var W$=sfb(JEe,'TGraph',121);feb(643,508,{3:1,508:1,643:1,96:1,137:1});var $$=sfb(JEe,'TShape',643);feb(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},bXc);_.Ib=function cXc(){return aXc(this)};var Z$=sfb(JEe,'TNode',40);feb(236,1,Vve,dXc);_.Jc=function eXc(a){xgb(this,a)};_.Kc=function fXc(){var a;return a=Sub(this.a.d,0),new gXc(a)};var Y$=sfb(JEe,'TNode/2',236);feb(329,1,Ave,gXc);_.Nb=function hXc(a){Ztb(this,a)};_.Pb=function jXc(){return RD(evb(this.a),65).c};_.Ob=function iXc(){return dvb(this.a)};_.Qb=function kXc(){gvb(this.a)};var X$=sfb(JEe,'TNode/2/1',329);feb(1923,1,QAe,qXc);_.Kf=function DXc(a,b){oXc(this,RD(a,121),b)};var m_=sfb(LEe,'CompactionProcessor',1923);feb(1924,1,fye,EXc);_.Ne=function FXc(a,b){return rXc(this.a,RD(a,40),RD(b,40))};_.Fb=function GXc(a){return this===a};_.Oe=function HXc(){return new Frb(this)};var _$=sfb(LEe,'CompactionProcessor/lambda$0$Type',1924);feb(1925,1,nwe,IXc);_.Mb=function JXc(a){return sXc(this.b,this.a,RD(a,42))};_.a=0;_.b=0;var a_=sfb(LEe,'CompactionProcessor/lambda$1$Type',1925);feb(1934,1,fye,KXc);_.Ne=function LXc(a,b){return tXc(RD(a,40),RD(b,40))};_.Fb=function MXc(a){return this===a};_.Oe=function NXc(){return new Frb(this)};var b_=sfb(LEe,'CompactionProcessor/lambda$10$Type',1934);feb(1935,1,fye,OXc);_.Ne=function PXc(a,b){return uXc(RD(a,40),RD(b,40))};_.Fb=function QXc(a){return this===a};_.Oe=function RXc(){return new Frb(this)};var c_=sfb(LEe,'CompactionProcessor/lambda$11$Type',1935);feb(1936,1,fye,SXc);_.Ne=function TXc(a,b){return vXc(RD(a,40),RD(b,40))};_.Fb=function UXc(a){return this===a};_.Oe=function VXc(){return new Frb(this)};var d_=sfb(LEe,'CompactionProcessor/lambda$12$Type',1936);feb(1926,1,nwe,WXc);_.Mb=function XXc(a){return wXc(this.a,RD(a,42))};_.a=0;var e_=sfb(LEe,'CompactionProcessor/lambda$2$Type',1926);feb(1927,1,nwe,YXc);_.Mb=function ZXc(a){return xXc(this.a,RD(a,42))};_.a=0;var f_=sfb(LEe,'CompactionProcessor/lambda$3$Type',1927);feb(1928,1,nwe,$Xc);_.Mb=function _Xc(a){return RD(a,40).c.indexOf(IEe)==-1};var g_=sfb(LEe,'CompactionProcessor/lambda$4$Type',1928);feb(1929,1,{},aYc);_.Kb=function bYc(a){return yXc(this.a,RD(a,40))};_.a=0;var h_=sfb(LEe,'CompactionProcessor/lambda$5$Type',1929);feb(1930,1,{},cYc);_.Kb=function dYc(a){return zXc(this.a,RD(a,40))};_.a=0;var i_=sfb(LEe,'CompactionProcessor/lambda$6$Type',1930);feb(1931,1,fye,eYc);_.Ne=function fYc(a,b){return AXc(this.a,RD(a,240),RD(b,240))};_.Fb=function gYc(a){return this===a};_.Oe=function hYc(){return new Frb(this)};var j_=sfb(LEe,'CompactionProcessor/lambda$7$Type',1931);feb(1932,1,fye,iYc);_.Ne=function jYc(a,b){return BXc(this.a,RD(a,40),RD(b,40))};_.Fb=function kYc(a){return this===a};_.Oe=function lYc(){return new Frb(this)};var k_=sfb(LEe,'CompactionProcessor/lambda$8$Type',1932);feb(1933,1,fye,mYc);_.Ne=function nYc(a,b){return CXc(RD(a,40),RD(b,40))};_.Fb=function oYc(a){return this===a};_.Oe=function pYc(){return new Frb(this)};var l_=sfb(LEe,'CompactionProcessor/lambda$9$Type',1933);feb(1921,1,QAe,rYc);_.Kf=function sYc(a,b){qYc(RD(a,121),b)};var n_=sfb(LEe,'DirectionProcessor',1921);feb(1913,1,QAe,vYc);_.Kf=function xYc(a,b){uYc(this,RD(a,121),b)};var o_=sfb(LEe,'FanProcessor',1913);feb(1937,1,QAe,zYc);_.Kf=function CYc(a,b){yYc(RD(a,121),b)};var t_=sfb(LEe,'GraphBoundsProcessor',1937);feb(1938,1,{},DYc);_.Ye=function EYc(a){return RD(a,40).e.a};var p_=sfb(LEe,'GraphBoundsProcessor/lambda$0$Type',1938);feb(1939,1,{},FYc);_.Ye=function GYc(a){return RD(a,40).e.b};var q_=sfb(LEe,'GraphBoundsProcessor/lambda$1$Type',1939);feb(1940,1,{},HYc);_.Ye=function IYc(a){return AYc(RD(a,40))};var r_=sfb(LEe,'GraphBoundsProcessor/lambda$2$Type',1940);feb(1941,1,{},JYc);_.Ye=function KYc(a){return BYc(RD(a,40))};var s_=sfb(LEe,'GraphBoundsProcessor/lambda$3$Type',1941);feb(262,22,{3:1,34:1,22:1,262:1,196:1},XYc);_.dg=function YYc(){switch(this.g){case 0:return new DZc;case 1:return new vYc;case 2:return new nZc;case 3:return new tZc;case 4:return new gZc;case 8:return new cZc;case 5:return new rYc;case 6:return new AZc;case 7:return new qXc;case 9:return new zYc;case 10:return new GZc;default:throw Adb(new agb(lBe+(this.f!=null?this.f:''+this.g)));}};var LYc,MYc,NYc,OYc,PYc,QYc,RYc,SYc,TYc,UYc,VYc;var u_=tfb(LEe,mBe,262,WI,$Yc,ZYc);var _Yc;feb(1920,1,QAe,cZc);_.Kf=function dZc(a,b){bZc(RD(a,121),b)};var v_=sfb(LEe,'LevelCoordinatesProcessor',1920);feb(1918,1,QAe,gZc);_.Kf=function hZc(a,b){eZc(this,RD(a,121),b)};_.a=0;var x_=sfb(LEe,'LevelHeightProcessor',1918);feb(1919,1,Vve,iZc);_.Jc=function jZc(a){xgb(this,a)};_.Kc=function kZc(){return yob(),Qob(),Pob};var w_=sfb(LEe,'LevelHeightProcessor/1',1919);feb(1914,1,QAe,nZc);_.Kf=function oZc(a,b){lZc(this,RD(a,121),b)};var z_=sfb(LEe,'LevelProcessor',1914);feb(1915,1,nwe,pZc);_.Mb=function qZc(a){return Heb(TD(mQb(RD(a,40),(q$c(),n$c))))};var y_=sfb(LEe,'LevelProcessor/lambda$0$Type',1915);feb(1916,1,QAe,tZc);_.Kf=function uZc(a,b){rZc(this,RD(a,121),b)};_.a=0;var B_=sfb(LEe,'NeighborsProcessor',1916);feb(1917,1,Vve,vZc);_.Jc=function wZc(a){xgb(this,a)};_.Kc=function xZc(){return yob(),Qob(),Pob};var A_=sfb(LEe,'NeighborsProcessor/1',1917);feb(1922,1,QAe,AZc);_.Kf=function BZc(a,b){yZc(this,RD(a,121),b)};_.a=0;var C_=sfb(LEe,'NodePositionProcessor',1922);feb(1912,1,QAe,DZc);_.Kf=function EZc(a,b){CZc(this,RD(a,121),b)};var D_=sfb(LEe,'RootProcessor',1912);feb(1942,1,QAe,GZc);_.Kf=function HZc(a,b){FZc(RD(a,121),b)};var E_=sfb(LEe,'Untreeifyer',1942);feb(392,22,{3:1,34:1,22:1,392:1},MZc);var IZc,JZc,KZc;var F_=tfb(PEe,'EdgeRoutingMode',392,WI,OZc,NZc);var PZc;var RZc,SZc,TZc,UZc,VZc,WZc,XZc,YZc,ZZc,$Zc,_Zc,a$c,b$c,c$c,d$c,e$c,f$c,g$c,h$c,i$c,j$c,k$c,l$c,m$c,n$c,o$c,p$c;feb(862,1,Eye,C$c);_.hf=function D$c(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,REe),''),YEe),'Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level'),(Geb(),false)),(kid(),cid)),QI),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SEe),''),'Edge End Texture Length'),'Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing.'),7),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TEe),''),'Tree Level'),'The index for the tree level the node is in'),sgb(0)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,UEe),''),YEe),'When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint'),sgb(-1)),gid),bJ),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VEe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),A$c),eid),J_),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WEe),''),'Edge Routing Mode'),'Chooses an Edge Routing algorithm.'),u$c),eid),F_),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XEe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),x$c),eid),K_),xsb(Whd))));i_c((new j_c,a))};var r$c,s$c,t$c,u$c,v$c,w$c,x$c,y$c,z$c,A$c;var G_=sfb(PEe,'MrTreeMetaDataProvider',862);feb(1006,1,Eye,j_c);_.hf=function k_c(a){i_c(a)};var E$c,F$c,G$c,H$c,I$c,J$c,K$c,L$c,M$c,N$c,O$c,P$c,Q$c,R$c,S$c,T$c,U$c,V$c,W$c,X$c,Y$c,Z$c,$$c,_$c,a_c,b_c,c_c,d_c,e_c,f_c,g_c;var I_=sfb(PEe,'MrTreeOptions',1006);feb(1007,1,{},l_c);_.sf=function m_c(){var a;return a=new fWc,a};_.tf=function n_c(a){};var H_=sfb(PEe,'MrTreeOptions/MrtreeFactory',1007);feb(353,22,{3:1,34:1,22:1,353:1},t_c);var o_c,p_c,q_c,r_c;var J_=tfb(PEe,'OrderWeighting',353,WI,v_c,u_c);var w_c;feb(433,22,{3:1,34:1,22:1,433:1},B_c);var y_c,z_c;var K_=tfb(PEe,'TreeifyingOrder',433,WI,D_c,C_c);var E_c;feb(1486,1,nEe,N_c);_.rg=function O_c(a){return RD(a,121),G_c};_.Kf=function P_c(a,b){M_c(this,RD(a,121),b)};var G_c;var L_=sfb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1486);feb(1487,1,nEe,V_c);_.rg=function W_c(a){return RD(a,121),Q_c};_.Kf=function $_c(a,b){U_c(this,RD(a,121),b)};var Q_c;var T_=sfb(aFe,'NodeOrderer',1487);feb(1494,1,{},a0c);_.td=function b0c(a){return __c(a)};var M_=sfb(aFe,'NodeOrderer/0methodref$lambda$6$Type',1494);feb(1488,1,nwe,c0c);_.Mb=function d0c(a){return R_c(),Heb(TD(mQb(RD(a,40),(q$c(),n$c))))};var N_=sfb(aFe,'NodeOrderer/lambda$0$Type',1488);feb(1489,1,nwe,e0c);_.Mb=function f0c(a){return R_c(),RD(mQb(RD(a,40),(h_c(),W$c)),17).a<0};var O_=sfb(aFe,'NodeOrderer/lambda$1$Type',1489);feb(1490,1,nwe,g0c);_.Mb=function h0c(a){return X_c(this.a,RD(a,40))};var P_=sfb(aFe,'NodeOrderer/lambda$2$Type',1490);feb(1491,1,nwe,i0c);_.Mb=function j0c(a){return Y_c(this.a,RD(a,40))};var Q_=sfb(aFe,'NodeOrderer/lambda$3$Type',1491);feb(1492,1,fye,k0c);_.Ne=function l0c(a,b){return Z_c(RD(a,40),RD(b,40))};_.Fb=function m0c(a){return this===a};_.Oe=function n0c(){return new Frb(this)};var R_=sfb(aFe,'NodeOrderer/lambda$4$Type',1492);feb(1493,1,nwe,o0c);_.Mb=function p0c(a){return R_c(),RD(mQb(RD(a,40),(q$c(),XZc)),17).a!=0};var S_=sfb(aFe,'NodeOrderer/lambda$5$Type',1493);feb(1495,1,nEe,x0c);_.rg=function y0c(a){return RD(a,121),q0c};_.Kf=function z0c(a,b){v0c(this,RD(a,121),b)};_.b=0;var q0c;var U_=sfb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1495);feb(1496,1,nEe,J0c);_.rg=function K0c(a){return RD(a,121),A0c};_.Kf=function Y0c(a,b){I0c(RD(a,121),b)};var A0c;var o0=sfb(bFe,'EdgeRouter',1496);feb(1498,1,fye,Z0c);_.Ne=function $0c(a,b){return hgb(RD(a,17).a,RD(b,17).a)};_.Fb=function _0c(a){return this===a};_.Oe=function a1c(){return new Frb(this)};var V_=sfb(bFe,'EdgeRouter/0methodref$compare$Type',1498);feb(1503,1,{},b1c);_.Ye=function c1c(a){return Kfb(UD(a))};var W_=sfb(bFe,'EdgeRouter/1methodref$doubleValue$Type',1503);feb(1505,1,fye,d1c);_.Ne=function e1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function f1c(a){return this===a};_.Oe=function g1c(){return new Frb(this)};var X_=sfb(bFe,'EdgeRouter/2methodref$compare$Type',1505);feb(1507,1,fye,h1c);_.Ne=function i1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function j1c(a){return this===a};_.Oe=function k1c(){return new Frb(this)};var Y_=sfb(bFe,'EdgeRouter/3methodref$compare$Type',1507);feb(1509,1,{},l1c);_.Ye=function m1c(a){return Kfb(UD(a))};var Z_=sfb(bFe,'EdgeRouter/4methodref$doubleValue$Type',1509);feb(1511,1,fye,n1c);_.Ne=function o1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function p1c(a){return this===a};_.Oe=function q1c(){return new Frb(this)};var $_=sfb(bFe,'EdgeRouter/5methodref$compare$Type',1511);feb(1513,1,fye,r1c);_.Ne=function s1c(a,b){return Qfb(Kfb(UD(a)),Kfb(UD(b)))};_.Fb=function t1c(a){return this===a};_.Oe=function u1c(){return new Frb(this)};var __=sfb(bFe,'EdgeRouter/6methodref$compare$Type',1513);feb(1497,1,{},v1c);_.Kb=function w1c(a){return B0c(),RD(mQb(RD(a,40),(h_c(),f_c)),17)};var a0=sfb(bFe,'EdgeRouter/lambda$0$Type',1497);feb(1508,1,{},x1c);_.Kb=function y1c(a){return L0c(RD(a,40))};var b0=sfb(bFe,'EdgeRouter/lambda$11$Type',1508);feb(1510,1,{},z1c);_.Kb=function A1c(a){return M0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var c0=sfb(bFe,'EdgeRouter/lambda$13$Type',1510);feb(1512,1,{},B1c);_.Kb=function C1c(a){return N0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var d0=sfb(bFe,'EdgeRouter/lambda$15$Type',1512);feb(1514,1,fye,D1c);_.Ne=function E1c(a,b){return O0c(RD(a,65),RD(b,65))};_.Fb=function F1c(a){return this===a};_.Oe=function G1c(){return new Frb(this)};var e0=sfb(bFe,'EdgeRouter/lambda$17$Type',1514);feb(1515,1,fye,H1c);_.Ne=function I1c(a,b){return P0c(RD(a,65),RD(b,65))};_.Fb=function J1c(a){return this===a};_.Oe=function K1c(){return new Frb(this)};var f0=sfb(bFe,'EdgeRouter/lambda$18$Type',1515);feb(1516,1,fye,L1c);_.Ne=function M1c(a,b){return Q0c(RD(a,65),RD(b,65))};_.Fb=function N1c(a){return this===a};_.Oe=function O1c(){return new Frb(this)};var g0=sfb(bFe,'EdgeRouter/lambda$19$Type',1516);feb(1499,1,nwe,P1c);_.Mb=function Q1c(a){return R0c(this.a,RD(a,40))};_.a=0;var h0=sfb(bFe,'EdgeRouter/lambda$2$Type',1499);feb(1517,1,fye,R1c);_.Ne=function S1c(a,b){return S0c(RD(a,65),RD(b,65))};_.Fb=function T1c(a){return this===a};_.Oe=function U1c(){return new Frb(this)};var i0=sfb(bFe,'EdgeRouter/lambda$20$Type',1517);feb(1500,1,fye,V1c);_.Ne=function W1c(a,b){return T0c(RD(a,40),RD(b,40))};_.Fb=function X1c(a){return this===a};_.Oe=function Y1c(){return new Frb(this)};var j0=sfb(bFe,'EdgeRouter/lambda$3$Type',1500);feb(1501,1,fye,Z1c);_.Ne=function $1c(a,b){return U0c(RD(a,40),RD(b,40))};_.Fb=function _1c(a){return this===a};_.Oe=function a2c(){return new Frb(this)};var k0=sfb(bFe,'EdgeRouter/lambda$4$Type',1501);feb(1502,1,{},b2c);_.Kb=function c2c(a){return V0c(RD(a,40))};var l0=sfb(bFe,'EdgeRouter/lambda$5$Type',1502);feb(1504,1,{},d2c);_.Kb=function e2c(a){return W0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var m0=sfb(bFe,'EdgeRouter/lambda$7$Type',1504);feb(1506,1,{},f2c);_.Kb=function g2c(a){return X0c(this.b,this.a,RD(a,40))};_.a=0;_.b=0;var n0=sfb(bFe,'EdgeRouter/lambda$9$Type',1506);feb(675,1,{675:1},i2c);_.e=0;_.f=false;_.g=false;var r0=sfb(bFe,'MultiLevelEdgeNodeNodeGap',675);feb(1943,1,fye,l2c);_.Ne=function m2c(a,b){return j2c(RD(a,240),RD(b,240))};_.Fb=function n2c(a){return this===a};_.Oe=function o2c(){return new Frb(this)};var p0=sfb(bFe,'MultiLevelEdgeNodeNodeGap/lambda$0$Type',1943);feb(1944,1,fye,p2c);_.Ne=function q2c(a,b){return k2c(RD(a,240),RD(b,240))};_.Fb=function r2c(a){return this===a};_.Oe=function s2c(){return new Frb(this)};var q0=sfb(bFe,'MultiLevelEdgeNodeNodeGap/lambda$1$Type',1944);var t2c;feb(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},z2c);_.dg=function B2c(){return y2c(this)};_.qg=function A2c(){return y2c(this)};var v2c,w2c;var s0=tfb(cFe,'RadialLayoutPhases',501,WI,D2c,C2c);var E2c;feb(1113,205,oze,H2c);_.rf=function I2c(a,b){var c,d,e,f,g,h;c=G2c(this,a);b.Ug('Radial layout',c.c.length);Heb(TD(Gxd(a,($4c(),N4c))))||RFb((d=new SFb((lud(),new zud(a))),d));h=K2c(a);Ixd(a,(u2c(),t2c),h);if(!h){throw Adb(new agb('The given graph is not a tree!'))}e=Kfb(UD(Gxd(a,S4c)));e==0&&(e=J2c(a));Ixd(a,S4c,e);for(g=new Anb(G2c(this,a));g.a=3){v=RD(QHd(t,0),27);w=RD(QHd(t,1),27);f=0;while(f+2=v.f+w.f+k||w.f>=u.f+v.f+k){B=true;break}else{++f}}}else{B=true}if(!B){m=t.i;for(h=new dMd(t);h.e!=h.i.gc();){g=RD(bMd(h),27);Ixd(g,(umd(),Rld),sgb(m));--m}crd(a,new Oqd);b.Vg();return}c=(Sed(this.a),Ved(this.a,(f6c(),c6c),RD(Gxd(a,V7c),188)),Ved(this.a,d6c,RD(Gxd(a,M7c),188)),Ved(this.a,e6c,RD(Gxd(a,S7c),188)),Ped(this.a,(D=new ufd,pfd(D,c6c,(z6c(),y6c)),pfd(D,d6c,x6c),Heb(TD(Gxd(a,B7c)))&&pfd(D,c6c,w6c),D)),Qed(this.a,a));j=1/c.c.length;A=0;for(o=new Anb(c);o.a0&&vjd((BFb(c-1,b.length),b.charCodeAt(c-1)),ZAe)){--c}if(e>=c){throw Adb(new agb('The given string does not contain any numbers.'))}f=vhb((AFb(e,c,b.length),b.substr(e,c-e)),',|;|\r|\n');if(f.length!=2){throw Adb(new agb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Neb(Dhb(f[0]));this.b=Neb(Dhb(f[1]))}catch(a){a=zdb(a);if(ZD(a,130)){d=a;throw Adb(new agb($Ae+d))}else throw Adb(a)}};_.Ib=function yjd(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var l3=sfb(_Ae,'KVector',8);feb(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},Ejd,Fjd,Gjd);_.Pc=function Jjd(){return Djd(this)};_.cg=function Hjd(b){var c,d,e,f,g,h;e=vhb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Xub(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Neb(e[d])):(h=Neb(e[d]));g>0&&g%2!=0&&Mub(this,new rjd(f,h));++g}++d}}catch(a){a=zdb(a);if(ZD(a,130)){c=a;throw Adb(new agb('The given string does not match the expected format for vectors.'+c))}else throw Adb(a)}};_.Ib=function Kjd(){var a,b,c;a=new dib('(');b=Sub(this,0);while(b.b!=b.d.c){c=RD(evb(b),8);Zhb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var k3=sfb(_Ae,'KVectorChain',75);feb(255,22,{3:1,34:1,22:1,255:1},Sjd);var Ljd,Mjd,Njd,Ojd,Pjd,Qjd;var n3=tfb(JGe,'Alignment',255,WI,Ujd,Tjd);var Vjd;feb(991,1,Eye,jkd);_.hf=function kkd(a){ikd(a)};var Xjd,Yjd,Zjd,$jd,_jd,akd,bkd,ckd,dkd,ekd,fkd,gkd;var p3=sfb(JGe,'BoxLayouterOptions',991);feb(992,1,{},lkd);_.sf=function mkd(){var a;return a=new jrd,a};_.tf=function nkd(a){};var o3=sfb(JGe,'BoxLayouterOptions/BoxFactory',992);feb(298,22,{3:1,34:1,22:1,298:1},vkd);var okd,pkd,qkd,rkd,skd,tkd;var q3=tfb(JGe,'ContentAlignment',298,WI,xkd,wkd);var ykd;feb(699,1,Eye,vmd);_.hf=function wmd(a){Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,OGe),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(kid(),iid)),qJ),xsb((Yhd(),Whd)))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,PGe),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),hid),D2),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MDe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),Ckd),eid),n3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,Dze),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,QGe),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),hid),k3),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YDe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),Lkd),fid),q3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,LDe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Geb(),false)),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,PDe),''),eze),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),Okd),eid),s3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,kDe),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),Tkd),eid),u3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,MGe),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fDe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),Ykd),eid),y3),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Eze),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),uld),hid),i3),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,dAe),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,iEe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gAe),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,eAe),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),Ild),eid),C3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,fEe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),hid),l3),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Xhd,Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,$ze),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),gid),bJ),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Thd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,bAe),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,cAe),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZDe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),dld),hid),k3),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aEe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,bEe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,RGe),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),hid),g3),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gEe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),fld),hid),h3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,JDe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),cid),QI),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Thd,Xhd,Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SGe),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),did),VI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,TGe),''),'Child Area Width'),'The width of the area occupied by the laid out children of a node.'),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,UGe),''),'Child Area Height'),'The height of the area occupied by the laid out children of a node.'),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,mAe),''),yGe),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),false),cid),QI),xsb(Whd))));zgd(a,mAe,qAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,VGe),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,WGe),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),sgb(100)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,XGe),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,YGe),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),sgb(4000)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ZGe),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),sgb(400)),gid),bJ),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$Ge),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_Ge),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aHe),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,bHe),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,NGe),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),Gkd),eid),R3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,xDe),lDe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,yDe),lDe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Bze),lDe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,zDe),lDe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,aAe),lDe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ADe),lDe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,BDe),lDe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,EDe),lDe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,CDe),lDe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,DDe),lDe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,_ze),lDe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,FDe),lDe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),did),VI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,GDe),lDe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,HDe),lDe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),hid),l4),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Thd,Xhd,Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,hEe),lDe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),imd),hid),h3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,eEe),hHe),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),gid),bJ),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));zgd(a,eEe,dEe,yld);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,dEe),hHe),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),wld),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,QDe),iHe),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),hld),hid),i3),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,kAe),iHe),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),jld),fid),A3),ysb(Vhd,cD(WC(d3,1),jwe,170,0,[Uhd])))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,TDe),jHe),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),Ald),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,UDe),jHe),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,VDe),jHe),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,WDe),jHe),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,XDe),jHe),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),eid),B3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,jAe),kHe),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),lld),fid),H3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,iAe),kHe),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),qld),fid),I3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,CAe),kHe),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),old),hid),l3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,hAe),kHe),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),cid),QI),xsb(Whd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,$De),vDe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),Rkd),eid),t3),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fAe),vDe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),cid),QI),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,cHe),'font'),'Font Name'),'Font name used for a label.'),iid),qJ),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,dHe),'font'),'Font Size'),'Font size used for a label.'),gid),bJ),xsb(Uhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,cEe),lHe),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),hid),l3),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,_De),lHe),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),gid),bJ),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,KDe),lHe),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),Pld),eid),E3),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Khd(Ohd(Lhd(Mhd(new Shd,IDe),lHe),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),did),VI),xsb(Xhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,lAe),mHe),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),Mld),fid),D3),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,RDe),mHe),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,SDe),mHe),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,nAe),nHe),'Topdown Scale Factor'),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),did),VI),xsb(Whd))));zgd(a,nAe,qAe,rmd);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,eHe),nHe),'Topdown Size Approximator'),'The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size.'),null),eid),M3),xsb(Vhd))));zgd(a,eHe,qAe,tmd);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,oAe),nHe),'Topdown Hierarchical Node Width'),'The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself.'),150),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));zgd(a,oAe,qAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,pAe),nHe),'Topdown Hierarchical Node Aspect Ratio'),'The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself.'),1.414),did),VI),ysb(Whd,cD(WC(d3,1),jwe,170,0,[Vhd])))));zgd(a,pAe,qAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,qAe),nHe),'Topdown Node Type'),'The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes.'),null),eid),J3),xsb(Vhd))));zgd(a,qAe,hAe,null);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,fHe),nHe),'Topdown Scale Cap'),'Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes.'),1),did),VI),xsb(Whd))));zgd(a,fHe,qAe,pmd);Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,NDe),oHe),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),cid),QI),xsb(Vhd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,ODe),oHe),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),cid),QI),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,Cze),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),did),VI),xsb(Thd))));Egd(a,new Ahd(Qhd(Phd(Rhd(Jhd(Khd(Ohd(Lhd(Mhd(new Shd,gHe),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),Vkd),eid),v3),xsb(Thd))));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,sxe),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,Zze),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,$Ee),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));Dgd(a,new fgd(mgd(ogd(ngd(new pgd,CFe),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));wnd((new xnd,a));ikd((new jkd,a));Gpd((new Hpd,a))};var Akd,Bkd,Ckd,Dkd,Ekd,Fkd,Gkd,Hkd,Ikd,Jkd,Kkd,Lkd,Mkd,Nkd,Okd,Pkd,Qkd,Rkd,Skd,Tkd,Ukd,Vkd,Wkd,Xkd,Ykd,Zkd,$kd,_kd,ald,bld,cld,dld,eld,fld,gld,hld,ild,jld,kld,lld,mld,nld,old,pld,qld,rld,sld,tld,uld,vld,wld,xld,yld,zld,Ald,Bld,Cld,Dld,Eld,Fld,Gld,Hld,Ild,Jld,Kld,Lld,Mld,Nld,Old,Pld,Qld,Rld,Sld,Tld,Uld,Vld,Wld,Xld,Yld,Zld,$ld,_ld,amd,bmd,cmd,dmd,emd,fmd,gmd,hmd,imd,jmd,kmd,lmd,mmd,nmd,omd,pmd,qmd,rmd,smd,tmd;var r3=sfb(JGe,'CoreOptions',699);feb(88,22,{3:1,34:1,22:1,88:1},Gmd);var xmd,ymd,zmd,Amd,Bmd;var s3=tfb(JGe,eze,88,WI,Imd,Hmd);var Jmd;feb(278,22,{3:1,34:1,22:1,278:1},Pmd);var Lmd,Mmd,Nmd;var t3=tfb(JGe,'EdgeLabelPlacement',278,WI,Rmd,Qmd);var Smd;feb(223,22,{3:1,34:1,22:1,223:1},Zmd);var Umd,Vmd,Wmd,Xmd;var u3=tfb(JGe,'EdgeRouting',223,WI,_md,$md);var and;feb(321,22,{3:1,34:1,22:1,321:1},jnd);var cnd,dnd,end,fnd,gnd,hnd;var v3=tfb(JGe,'EdgeType',321,WI,lnd,knd);var mnd;feb(989,1,Eye,xnd);_.hf=function ynd(a){wnd(a)};var ond,pnd,qnd,rnd,snd,tnd,und;var x3=sfb(JGe,'FixedLayouterOptions',989);feb(990,1,{},znd);_.sf=function And(){var a;return a=new btd,a};_.tf=function Bnd(a){};var w3=sfb(JGe,'FixedLayouterOptions/FixedFactory',990);feb(346,22,{3:1,34:1,22:1,346:1},Gnd);var Cnd,Dnd,End;var y3=tfb(JGe,'HierarchyHandling',346,WI,Ind,Hnd);var Jnd;feb(291,22,{3:1,34:1,22:1,291:1},Rnd);var Lnd,Mnd,Nnd,Ond;var z3=tfb(JGe,'LabelSide',291,WI,Tnd,Snd);var Und;feb(95,22,{3:1,34:1,22:1,95:1},eod);var Wnd,Xnd,Ynd,Znd,$nd,_nd,aod,bod,cod;var A3=tfb(JGe,'NodeLabelPlacement',95,WI,hod,god);var iod;feb(256,22,{3:1,34:1,22:1,256:1},qod);var kod,lod,mod,nod,ood;var B3=tfb(JGe,'PortAlignment',256,WI,sod,rod);var tod;feb(101,22,{3:1,34:1,22:1,101:1},Eod);var vod,wod,xod,yod,zod,Aod;var C3=tfb(JGe,'PortConstraints',101,WI,God,Fod);var Hod;feb(279,22,{3:1,34:1,22:1,279:1},Qod);var Jod,Kod,Lod,Mod,Nod,Ood;var D3=tfb(JGe,'PortLabelPlacement',279,WI,Uod,Tod);var Vod;feb(64,22,{3:1,34:1,22:1,64:1},upd);var Xod,Yod,Zod,$od,_od,apd,bpd,cpd,dpd,epd,fpd,gpd,hpd,ipd,jpd,kpd,lpd,mpd,npd,opd,ppd;var E3=tfb(JGe,'PortSide',64,WI,xpd,wpd);var ypd;feb(993,1,Eye,Hpd);_.hf=function Ipd(a){Gpd(a)};var Apd,Bpd,Cpd,Dpd,Epd;var G3=sfb(JGe,'RandomLayouterOptions',993);feb(994,1,{},Jpd);_.sf=function Kpd(){var a;return a=new eud,a};_.tf=function Lpd(a){};var F3=sfb(JGe,'RandomLayouterOptions/RandomFactory',994);feb(386,22,{3:1,34:1,22:1,386:1},Rpd);var Mpd,Npd,Opd,Ppd;var H3=tfb(JGe,'SizeConstraint',386,WI,Tpd,Spd);var Upd;feb(264,22,{3:1,34:1,22:1,264:1},eqd);var Wpd,Xpd,Ypd,Zpd,$pd,_pd,aqd,bqd,cqd;var I3=tfb(JGe,'SizeOptions',264,WI,gqd,fqd);var hqd;feb(280,22,{3:1,34:1,22:1,280:1},nqd);var jqd,kqd,lqd;var J3=tfb(JGe,'TopdownNodeTypes',280,WI,pqd,oqd);var qqd;feb(347,22,rHe);var sqd,tqd;var M3=tfb(JGe,'TopdownSizeApproximator',347,WI,xqd,wqd);feb(987,347,rHe,zqd);_.Tg=function Aqd(a){return yqd(a)};var K3=tfb(JGe,'TopdownSizeApproximator/1',987,M3,null,null);feb(988,347,rHe,Bqd);_.Tg=function Cqd(b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c=RD(Gxd(b,(umd(),Tld)),143);A=(bvd(),o=new ACd,o);zxd(A,b);B=new Tsb;for(g=new dMd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));g.e!=g.i.gc();){e=RD(bMd(g),27);t=(n=new ACd,n);yCd(t,A);zxd(t,e);D=yqd(e);zyd(t,$wnd.Math.max(e.g,D.a),$wnd.Math.max(e.f,D.b));rtb(B.f,e,t)}for(f=new dMd((!b.a&&(b.a=new C5d(J4,b,10,11)),b.a));f.e!=f.i.gc();){e=RD(bMd(f),27);for(l=new dMd((!e.e&&(e.e=new Yie(G4,e,7,4)),e.e));l.e!=l.i.gc();){k=RD(bMd(l),74);v=RD(Wd(qtb(B.f,e)),27);w=RD(Wjb(B,QHd((!k.c&&(k.c=new Yie(E4,k,5,8)),k.c),0)),27);u=(m=new rzd,m);WGd((!u.b&&(u.b=new Yie(E4,u,4,7)),u.b),v);WGd((!u.c&&(u.c=new Yie(E4,u,5,8)),u.c),w);pzd(u,vCd(v));zxd(u,k)}}q=RD(ltd(c.f),205);try{q.rf(A,new ztd);mtd(c.f,q)}catch(a){a=zdb(a);if(ZD(a,103)){p=a;throw Adb(p)}else throw Adb(a)}Hxd(A,Ikd)||Hxd(A,Hkd)||psd(A);j=Kfb(UD(Gxd(A,Ikd)));i=Kfb(UD(Gxd(A,Hkd)));h=j/i;d=Kfb(UD(Gxd(A,lmd)))*$wnd.Math.sqrt((!A.a&&(A.a=new C5d(J4,A,10,11)),A.a).i);C=RD(Gxd(A,tld),107);s=C.b+C.c+1;r=C.d+C.a+1;return new rjd($wnd.Math.max(s,d),$wnd.Math.max(r,d/h))};var L3=tfb(JGe,'TopdownSizeApproximator/2',988,M3,null,null);var Dqd;feb(344,1,{871:1},Oqd);_.Ug=function Pqd(a,b){return Fqd(this,a,b)};_.Vg=function Qqd(){Hqd(this)};_.Wg=function Rqd(){return this.q};_.Xg=function Sqd(){return !this.f?null:Hob(this.f)};_.Yg=function Tqd(){return Hob(this.a)};_.Zg=function Uqd(){return this.p};_.$g=function Vqd(){return false};_._g=function Wqd(){return this.n};_.ah=function Xqd(){return this.p!=null&&!this.b};_.bh=function Yqd(a){var b;if(this.n){b=a;Rmb(this.f,b)}};_.dh=function Zqd(a,b){var c,d;this.n&&!!a&&Jqd(this,(c=new Zje,d=Rje(c,a),Yje(c),d),(ttd(),qtd))};_.eh=function $qd(a){var b;if(this.b){return null}else{b=Gqd(this,this.g);Mub(this.a,b);b.i=this;this.d=a;return b}};_.fh=function _qd(a){a>0&&!this.b&&Iqd(this,a)};_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var O3=sfb(jEe,'BasicProgressMonitor',344);feb(717,205,oze,jrd);_.rf=function nrd(a,b){crd(a,b)};var V3=sfb(jEe,'BoxLayoutProvider',717);feb(983,1,fye,prd);_.Ne=function qrd(a,b){return ord(this,RD(a,27),RD(b,27))};_.Fb=function rrd(a){return this===a};_.Oe=function srd(){return new Frb(this)};_.a=false;var P3=sfb(jEe,'BoxLayoutProvider/1',983);feb(163,1,{163:1},zrd,Ard);_.Ib=function Brd(){return this.c?zCd(this.c):Fe(this.b)};var Q3=sfb(jEe,'BoxLayoutProvider/Group',163);feb(320,22,{3:1,34:1,22:1,320:1},Hrd);var Crd,Drd,Erd,Frd;var R3=tfb(jEe,'BoxLayoutProvider/PackingMode',320,WI,Jrd,Ird);var Krd;feb(984,1,fye,Mrd);_.Ne=function Nrd(a,b){return krd(RD(a,163),RD(b,163))};_.Fb=function Ord(a){return this===a};_.Oe=function Prd(){return new Frb(this)};var S3=sfb(jEe,'BoxLayoutProvider/lambda$0$Type',984);feb(985,1,fye,Qrd);_.Ne=function Rrd(a,b){return lrd(RD(a,163),RD(b,163))};_.Fb=function Srd(a){return this===a};_.Oe=function Trd(){return new Frb(this)};var T3=sfb(jEe,'BoxLayoutProvider/lambda$1$Type',985);feb(986,1,fye,Urd);_.Ne=function Vrd(a,b){return mrd(RD(a,163),RD(b,163))};_.Fb=function Wrd(a){return this===a};_.Oe=function Xrd(){return new Frb(this)};var U3=sfb(jEe,'BoxLayoutProvider/lambda$2$Type',986);feb(1384,1,{845:1},Yrd);_.Mg=function Zrd(a,b){return GCc(),!ZD(b,167)||ued((hed(),ged,RD(a,167)),b)};var W3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1384);feb(1385,1,Qve,$rd);_.Cd=function _rd(a){JCc(this.a,RD(a,149))};var X3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1385);feb(1386,1,Qve,asd);_.Cd=function bsd(a){RD(a,96);GCc()};var Y3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1386);feb(1390,1,Qve,csd);_.Cd=function dsd(a){KCc(this.a,RD(a,96))};var Z3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1390);feb(1388,1,nwe,esd);_.Mb=function fsd(a){return LCc(this.a,this.b,RD(a,149))};var $3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1388);feb(1387,1,nwe,gsd);_.Mb=function hsd(a){return NCc(this.a,this.b,RD(a,845))};var _3=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1387);feb(1389,1,Qve,isd);_.Cd=function jsd(a){MCc(this.a,this.b,RD(a,149))};var a4=sfb(jEe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1389);feb(947,1,{},Lsd);_.Kb=function Msd(a){return Ksd(a)};_.Fb=function Nsd(a){return this===a};var c4=sfb(jEe,'ElkUtil/lambda$0$Type',947);feb(948,1,Qve,Osd);_.Cd=function Psd(a){ysd(this.a,this.b,RD(a,74))};_.a=0;_.b=0;var d4=sfb(jEe,'ElkUtil/lambda$1$Type',948);feb(949,1,Qve,Qsd);_.Cd=function Rsd(a){zsd(this.a,this.b,RD(a,166))};_.a=0;_.b=0;var e4=sfb(jEe,'ElkUtil/lambda$2$Type',949);feb(950,1,Qve,Ssd);_.Cd=function Tsd(a){Asd(this.a,this.b,RD(a,135))};_.a=0;_.b=0;var f4=sfb(jEe,'ElkUtil/lambda$3$Type',950);feb(951,1,Qve,Usd);_.Cd=function Vsd(a){Bsd(this.a,RD(a,377))};var g4=sfb(jEe,'ElkUtil/lambda$4$Type',951);feb(325,1,{34:1,325:1},Xsd);_.Fd=function Ysd(a){return Wsd(this,RD(a,242))};_.Fb=function Zsd(a){var b;if(ZD(a,325)){b=RD(a,325);return this.a==b.a}return false};_.Hb=function $sd(){return eE(this.a)};_.Ib=function _sd(){return this.a+' (exclusive)'};_.a=0;var h4=sfb(jEe,'ExclusiveBounds/ExclusiveLowerBound',325);feb(1119,205,oze,btd);_.rf=function ctd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;b.Ug('Fixed Layout',1);f=RD(Gxd(a,(umd(),Skd)),223);l=0;m=0;for(s=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));s.e!=s.i.gc();){q=RD(bMd(s),27);B=RD(Gxd(q,(vnd(),und)),8);if(B){Byd(q,B.a,B.b);if(RD(Gxd(q,pnd),181).Hc((Qpd(),Mpd))){n=RD(Gxd(q,rnd),8);n.a>0&&n.b>0&&Esd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new dMd((!q.n&&(q.n=new C5d(I4,q,1,7)),q.n));j.e!=j.i.gc();){h=RD(bMd(j),135);B=RD(Gxd(h,und),8);!!B&&Byd(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new dMd((!q.c&&(q.c=new C5d(K4,q,9,9)),q.c));v.e!=v.i.gc();){u=RD(bMd(v),123);B=RD(Gxd(u,und),8);!!B&&Byd(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new dMd((!u.n&&(u.n=new C5d(I4,u,1,7)),u.n));i.e!=i.i.gc();){h=RD(bMd(i),135);B=RD(Gxd(h,und),8);!!B&&Byd(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new is(Mr(zGd(q).a.Kc(),new ir));gs(e);){c=RD(hs(e),74);k=atd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new is(Mr(yGd(q).a.Kc(),new ir));gs(d);){c=RD(hs(d),74);if(vCd(JGd(c))!=a){k=atd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Ymd(),Umd)){for(r=new dMd((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a));r.e!=r.i.gc();){q=RD(bMd(r),27);for(d=new is(Mr(zGd(q).a.Kc(),new ir));gs(d);){c=RD(hs(d),74);g=tsd(c);g.b==0?Ixd(c,cld,null):Ixd(c,cld,g)}}}if(!Heb(TD(Gxd(a,(vnd(),qnd))))){t=RD(Gxd(a,snd),107);p=l+t.b+t.c;o=m+t.d+t.a;Esd(a,p,o,true,true)}b.Vg()};var i4=sfb(jEe,'FixedLayoutProvider',1119);feb(385,137,{3:1,423:1,385:1,96:1,137:1},dtd,etd);_.cg=function htd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=vhb(b,';,;');for(g=j,h=0,i=g.length;h>16&Bwe|b^d<<16};_.Kc=function Ttd(){return new Vtd(this)};_.Ib=function Utd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+jeb(this.b)+')':this.b==null?'pair('+jeb(this.a)+',null)':'pair('+jeb(this.a)+','+jeb(this.b)+')'};var r4=sfb(jEe,'Pair',42);feb(995,1,Ave,Vtd);_.Nb=function Wtd(a){Ztb(this,a)};_.Ob=function Xtd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Ytd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw Adb(new Dvb)};_.Qb=function Ztd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw Adb(new cgb)};_.b=false;_.c=false;var q4=sfb(jEe,'Pair/1',995);feb(455,1,{455:1},$td);_.Fb=function _td(a){return Fvb(this.a,RD(a,455).a)&&Fvb(this.c,RD(a,455).c)&&Fvb(this.d,RD(a,455).d)&&Fvb(this.b,RD(a,455).b)};_.Hb=function aud(){return Tnb(cD(WC(jJ,1),rve,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function bud(){return '('+this.a+pve+this.c+pve+this.d+pve+this.b+')'};var s4=sfb(jEe,'Quadruple',455);feb(1108,205,oze,eud);_.rf=function fud(a,b){var c,d,e,f,g;b.Ug('Random Layout',1);if((!a.a&&(a.a=new C5d(J4,a,10,11)),a.a).i==0){b.Vg();return}f=RD(Gxd(a,(Fpd(),Dpd)),17);!!f&&f.a!=0?(e=new Pwb(f.a)):(e=new Owb);c=Mfb(UD(Gxd(a,Apd)));g=Mfb(UD(Gxd(a,Epd)));d=RD(Gxd(a,Bpd),107);dud(a,e,c,g,d);b.Vg()};var t4=sfb(jEe,'RandomLayoutProvider',1108);feb(240,1,{240:1},gud);_.Fb=function hud(a){return Fvb(this.a,RD(a,240).a)&&Fvb(this.b,RD(a,240).b)&&Fvb(this.c,RD(a,240).c)};_.Hb=function iud(){return Tnb(cD(WC(jJ,1),rve,1,5,[this.a,this.b,this.c]))};_.Ib=function jud(){return '('+this.a+pve+this.b+pve+this.c+')'};var u4=sfb(jEe,'Triple',240);var kud;feb(562,1,{});_.Lf=function oud(){return new rjd(this.f.i,this.f.j)};_.of=function pud(a){if(hGd(a,(umd(),Gld))){return Gxd(this.f,mud)}return Gxd(this.f,a)};_.Mf=function qud(){return new rjd(this.f.g,this.f.f)};_.Nf=function rud(){return this.g};_.pf=function sud(a){return Hxd(this.f,a)};_.Of=function tud(a){Dyd(this.f,a.a);Eyd(this.f,a.b)};_.Pf=function uud(a){Cyd(this.f,a.a);Ayd(this.f,a.b)};_.Qf=function vud(a){this.g=a};_.g=0;var mud;var v4=sfb(uHe,'ElkGraphAdapters/AbstractElkGraphElementAdapter',562);feb(563,1,{853:1},wud);_.Rf=function xud(){var a,b;if(!this.b){this.b=fv(iyd(this.a).i);for(b=new dMd(iyd(this.a));b.e!=b.i.gc();){a=RD(bMd(b),135);Rmb(this.b,new Bud(a))}}return this.b};_.b=null;var w4=sfb(uHe,'ElkGraphAdapters/ElkEdgeAdapter',563);feb(289,562,{},zud);_.Sf=function Aud(){return yud(this)};_.a=null;var x4=sfb(uHe,'ElkGraphAdapters/ElkGraphAdapter',289);feb(640,562,{187:1},Bud);var y4=sfb(uHe,'ElkGraphAdapters/ElkLabelAdapter',640);feb(639,562,{695:1},Fud);_.Rf=function Iud(){return Cud(this)};_.Vf=function Jud(){var a;return a=RD(Gxd(this.f,(umd(),eld)),140),!a&&(a=new P2b),a};_.Xf=function Lud(){return Dud(this)};_.Zf=function Nud(a){var b;b=new S2b(a);Ixd(this.f,(umd(),eld),b)};_.$f=function Oud(a){Ixd(this.f,(umd(),tld),new B3b(a))};_.Tf=function Gud(){return this.d};_.Uf=function Hud(){var a,b;if(!this.a){this.a=new bnb;for(b=new is(Mr(yGd(RD(this.f,27)).a.Kc(),new ir));gs(b);){a=RD(hs(b),74);Rmb(this.a,new wud(a))}}return this.a};_.Wf=function Kud(){var a,b;if(!this.c){this.c=new bnb;for(b=new is(Mr(zGd(RD(this.f,27)).a.Kc(),new ir));gs(b);){a=RD(hs(b),74);Rmb(this.c,new wud(a))}}return this.c};_.Yf=function Mud(){return tCd(RD(this.f,27)).i!=0||Heb(TD(RD(this.f,27).of((umd(),$kd))))};_._f=function Pud(){Eud(this,(lud(),kud))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var z4=sfb(uHe,'ElkGraphAdapters/ElkNodeAdapter',639);feb(1284,562,{852:1},Rud);_.Rf=function Tud(){return Qud(this)};_.Uf=function Sud(){var a,b;if(!this.a){this.a=ev(RD(this.f,123).hh().i);for(b=new dMd(RD(this.f,123).hh());b.e!=b.i.gc();){a=RD(bMd(b),74);Rmb(this.a,new wud(a))}}return this.a};_.Wf=function Uud(){var a,b;if(!this.c){this.c=ev(RD(this.f,123).ih().i);for(b=new dMd(RD(this.f,123).ih());b.e!=b.i.gc();){a=RD(bMd(b),74);Rmb(this.c,new wud(a))}}return this.c};_.ag=function Vud(){return RD(RD(this.f,123).of((umd(),Old)),64)};_.bg=function Wud(){var a,b,c,d,e,f,g,h;d=MCd(RD(this.f,123));for(c=new dMd(RD(this.f,123).ih());c.e!=c.i.gc();){a=RD(bMd(c),74);for(h=new dMd((!a.c&&(a.c=new Yie(E4,a,5,8)),a.c));h.e!=h.i.gc();){g=RD(bMd(h),84);if(NGd(AGd(g),d)){return true}else if(AGd(g)==d&&Heb(TD(Gxd(a,(umd(),_kd))))){return true}}}for(b=new dMd(RD(this.f,123).hh());b.e!=b.i.gc();){a=RD(bMd(b),74);for(f=new dMd((!a.b&&(a.b=new Yie(E4,a,4,7)),a.b));f.e!=f.i.gc();){e=RD(bMd(f),84);if(NGd(AGd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var A4=sfb(uHe,'ElkGraphAdapters/ElkPortAdapter',1284);feb(1285,1,fye,Yud);_.Ne=function Zud(a,b){return Xud(RD(a,123),RD(b,123))};_.Fb=function $ud(a){return this===a};_.Oe=function _ud(){return new Frb(this)};var B4=sfb(uHe,'ElkGraphAdapters/PortComparator',1285);var r7=ufb(vHe,'EObject');var C4=ufb(wHe,xHe);var D4=ufb(wHe,yHe);var H4=ufb(wHe,zHe);var L4=ufb(wHe,'ElkShape');var E4=ufb(wHe,AHe);var G4=ufb(wHe,BHe);var F4=ufb(wHe,CHe);var p7=ufb(vHe,DHe);var n7=ufb(vHe,'EFactory');var avd;var q7=ufb(vHe,EHe);var t7=ufb(vHe,'EPackage');var cvd;var evd,fvd,gvd,hvd,ivd,jvd,kvd,lvd,mvd,nvd,ovd;var I4=ufb(wHe,FHe);var J4=ufb(wHe,GHe);var K4=ufb(wHe,HHe);feb(93,1,IHe);_.th=function rvd(){this.uh();return null};_.uh=function svd(){return null};_.vh=function tvd(){return this.uh(),false};_.wh=function uvd(){return false};_.xh=function vvd(a){qvd(this,a)};var g6=sfb(JHe,'BasicNotifierImpl',93);feb(99,93,RHe);_.Yh=function Dwd(){return Mvd(this)};_.yh=function bwd(a,b){return a};_.zh=function cwd(){throw Adb(new jib)};_.Ah=function dwd(a){var b;return b=Z5d(RD(vYd(this.Dh(),this.Fh()),19)),this.Ph().Th(this,b.n,b.f,a)};_.Bh=function ewd(a,b){throw Adb(new jib)};_.Ch=function fwd(a,b,c){return xvd(this,a,b,c)};_.Dh=function gwd(){var a;if(this.zh()){a=this.zh().Nk();if(a){return a}}return this.ii()};_.Eh=function hwd(){return yvd(this)};_.Fh=function iwd(){throw Adb(new jib)};_.Gh=function kwd(){var a,b;b=this.$h().Ok();!b&&this.zh().Tk(b=(N2d(),a=P$d(rYd(this.Dh())),a==null?M2d:new Q2d(this,a)));return b};_.Hh=function mwd(a,b){return a};_.Ih=function nwd(a){var b;b=a.pk();return !b?BYd(this.Dh(),a):a.Lj()};_.Jh=function owd(){var a;a=this.zh();return !a?null:a.Qk()};_.Kh=function pwd(){return !this.zh()?null:this.zh().Nk()};_.Lh=function qwd(a,b,c){return Dvd(this,a,b,c)};_.Mh=function rwd(a){return Evd(this,a)};_.Nh=function swd(a,b){return Fvd(this,a,b)};_.Oh=function twd(){var a;a=this.zh();return !!a&&a.Rk()};_.Ph=function uwd(){throw Adb(new jib)};_.Qh=function vwd(){return Hvd(this)};_.Rh=function wwd(a,b,c,d){return Ivd(this,a,b,d)};_.Sh=function xwd(a,b,c){var d;return d=RD(vYd(this.Dh(),b),69),d.wk().zk(this,this.hi(),b-this.ji(),a,c)};_.Th=function ywd(a,b,c,d){return Jvd(this,a,b,d)};_.Uh=function zwd(a,b,c){var d;return d=RD(vYd(this.Dh(),b),69),d.wk().Ak(this,this.hi(),b-this.ji(),a,c)};_.Vh=function Awd(){return !!this.zh()&&!!this.zh().Pk()};_.Wh=function Bwd(a){return Kvd(this,a)};_.Xh=function Cwd(a){return Lvd(this,a)};_.Zh=function Ewd(a){return Pvd(this,a)};_.$h=function Fwd(){throw Adb(new jib)};_._h=function Gwd(){return !this.zh()?null:this.zh().Pk()};_.ai=function Hwd(){return Hvd(this)};_.bi=function Iwd(a,b){Wvd(this,a,b)};_.ci=function Jwd(a){this.$h().Sk(a)};_.di=function Kwd(a){this.$h().Vk(a)};_.ei=function Lwd(a){this.$h().Uk(a)};_.fi=function Mwd(a,b){var c,d,e,f;f=this.Jh();if(!!f&&!!a){b=rLd(f.El(),this,b);f.Il(this)}d=this.Ph();if(d){if((jwd(this,this.Ph(),this.Fh()).Bb&txe)!=0){e=d.Qh();!!e&&(!a?e.Hl(this):!f&&e.Il(this))}else{b=(c=this.Fh(),c>=0?this.Ah(b):this.Ph().Th(this,-1-c,null,b));b=this.Ch(null,-1,b)}}this.di(a);return b};_.gi=function Nwd(a){var b,c,d,e,f,g,h,i;c=this.Dh();f=BYd(c,a);b=this.ji();if(f>=b){return RD(a,69).wk().Dk(this,this.hi(),f-b)}else if(f<=-1){g=Eee((lke(),jke),c,a);if(g){nke();RD(g,69).xk()||(g=zfe(Qee(jke,g)));e=(d=this.Ih(g),RD(d>=0?this.Lh(d,true,true):Qvd(this,g,true),160));i=g.Ik();if(i>1||i==-1){return RD(RD(e,220).Sl(a,false),79)}}else{throw Adb(new agb(KHe+a.xe()+NHe))}}else if(a.Jk()){return d=this.Ih(a),RD(d>=0?this.Lh(d,false,true):Qvd(this,a,false),79)}h=new NTd(this,a);return h};_.hi=function Owd(){return Yvd(this)};_.ii=function Pwd(){return (lTd(),kTd).S};_.ji=function Qwd(){return AYd(this.ii())};_.ki=function Rwd(a){$vd(this,a)};_.Ib=function Swd(){return awd(this)};var G7=sfb(SHe,'BasicEObjectImpl',99);var ZSd;feb(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1});_.li=function _wd(a){var b;b=Vwd(this);return b[a]};_.mi=function axd(a,b){var c;c=Vwd(this);bD(c,a,b)};_.ni=function bxd(a){var b;b=Vwd(this);bD(b,a,null)};_.th=function cxd(){return RD(Ywd(this,4),129)};_.uh=function dxd(){throw Adb(new jib)};_.vh=function exd(){return (this.Db&4)!=0};_.zh=function fxd(){throw Adb(new jib)};_.oi=function gxd(a){$wd(this,2,a)};_.Bh=function hxd(a,b){this.Db=b<<16|this.Db&255;this.oi(a)};_.Dh=function ixd(){return Uwd(this)};_.Fh=function jxd(){return this.Db>>16};_.Gh=function kxd(){var a,b;return N2d(),b=P$d(rYd((a=RD(Ywd(this,16),29),!a?this.ii():a))),b==null?(null,M2d):new Q2d(this,b)};_.wh=function lxd(){return (this.Db&1)==0};_.Jh=function mxd(){return RD(Ywd(this,128),2034)};_.Kh=function nxd(){return RD(Ywd(this,16),29)};_.Oh=function oxd(){return (this.Db&32)!=0};_.Ph=function pxd(){return RD(Ywd(this,2),54)};_.Vh=function qxd(){return (this.Db&64)!=0};_.$h=function rxd(){throw Adb(new jib)};_._h=function sxd(){return RD(Ywd(this,64),288)};_.ci=function txd(a){$wd(this,16,a)};_.di=function uxd(a){$wd(this,128,a)};_.ei=function vxd(a){$wd(this,64,a)};_.hi=function wxd(){return Wwd(this)};_.Db=0;var xab=sfb(SHe,'MinimalEObjectImpl',119);feb(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.oi=function xxd(a){this.Cb=a};_.Ph=function yxd(){return this.Cb};var wab=sfb(SHe,'MinimalEObjectImpl/Container',120);feb(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function Jxd(a,b,c){return Axd(this,a,b,c)};_.Uh=function Kxd(a,b,c){return Bxd(this,a,b,c)};_.Wh=function Lxd(a){return Cxd(this,a)};_.bi=function Mxd(a,b){Dxd(this,a,b)};_.ii=function Nxd(){return pvd(),ovd};_.ki=function Oxd(a){Exd(this,a)};_.nf=function Pxd(){return Fxd(this)};_.gh=function Qxd(){return !this.o&&(this.o=new DVd((pvd(),mvd),X4,this,0)),this.o};_.of=function Rxd(a){return Gxd(this,a)};_.pf=function Sxd(a){return Hxd(this,a)};_.qf=function Txd(a,b){return Ixd(this,a,b)};var M4=sfb(THe,'EMapPropertyHolderImpl',2083);feb(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Xxd);_.Lh=function Yxd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return Dvd(this,a,b,c)};_.Wh=function Zxd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return Kvd(this,a)};_.bi=function $xd(a,b){switch(a){case 0:Vxd(this,Kfb(UD(b)));return;case 1:Wxd(this,Kfb(UD(b)));return;}Wvd(this,a,b)};_.ii=function _xd(){return pvd(),evd};_.ki=function ayd(a){switch(a){case 0:Vxd(this,0);return;case 1:Wxd(this,0);return;}$vd(this,a)};_.Ib=function byd(){var a;if((this.Db&64)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (x: ';Khb(a,this.a);a.a+=', y: ';Khb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var N4=sfb(THe,'ElkBendPointImpl',572);feb(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function lyd(a,b,c){return cyd(this,a,b,c)};_.Sh=function myd(a,b,c){return dyd(this,a,b,c)};_.Uh=function nyd(a,b,c){return eyd(this,a,b,c)};_.Wh=function oyd(a){return fyd(this,a)};_.bi=function pyd(a,b){gyd(this,a,b)};_.ii=function qyd(){return pvd(),ivd};_.ki=function ryd(a){hyd(this,a)};_.jh=function syd(){return this.k};_.kh=function tyd(){return iyd(this)};_.Ib=function uyd(){return kyd(this)};_.k=null;var R4=sfb(THe,'ElkGraphElementImpl',739);feb(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function Gyd(a,b,c){return vyd(this,a,b,c)};_.Wh=function Hyd(a){return wyd(this,a)};_.bi=function Iyd(a,b){xyd(this,a,b)};_.ii=function Jyd(){return pvd(),nvd};_.ki=function Kyd(a){yyd(this,a)};_.lh=function Lyd(){return this.f};_.mh=function Myd(){return this.g};_.nh=function Nyd(){return this.i};_.oh=function Oyd(){return this.j};_.ph=function Pyd(a,b){zyd(this,a,b)};_.qh=function Qyd(a,b){Byd(this,a,b)};_.rh=function Ryd(a){Dyd(this,a)};_.sh=function Syd(a){Eyd(this,a)};_.Ib=function Tyd(){return Fyd(this)};_.f=0;_.g=0;_.i=0;_.j=0;var Y4=sfb(THe,'ElkShapeImpl',740);feb(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});_.Lh=function _yd(a,b,c){return Uyd(this,a,b,c)};_.Sh=function azd(a,b,c){return Vyd(this,a,b,c)};_.Uh=function bzd(a,b,c){return Wyd(this,a,b,c)};_.Wh=function czd(a){return Xyd(this,a)};_.bi=function dzd(a,b){Yyd(this,a,b)};_.ii=function ezd(){return pvd(),fvd};_.ki=function fzd(a){Zyd(this,a)};_.hh=function gzd(){return !this.d&&(this.d=new Yie(G4,this,8,5)),this.d};_.ih=function hzd(){return !this.e&&(this.e=new Yie(G4,this,7,4)),this.e};var O4=sfb(THe,'ElkConnectableShapeImpl',741);feb(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},rzd);_.Ah=function szd(a){return jzd(this,a)};_.Lh=function tzd(a,b,c){switch(a){case 3:return kzd(this);case 4:return !this.b&&(this.b=new Yie(E4,this,4,7)),this.b;case 5:return !this.c&&(this.c=new Yie(E4,this,5,8)),this.c;case 6:return !this.a&&(this.a=new C5d(F4,this,6,6)),this.a;case 7:return Geb(),!this.b&&(this.b=new Yie(E4,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i<=1)?false:true;case 8:return Geb(),nzd(this)?true:false;case 9:return Geb(),ozd(this)?true:false;case 10:return Geb(),!this.b&&(this.b=new Yie(E4,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i!=0)?true:false;}return cyd(this,a,b,c)};_.Sh=function uzd(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?jzd(this,c):this.Cb.Th(this,-1-d,null,c)));return izd(this,RD(a,27),c);case 4:return !this.b&&(this.b=new Yie(E4,this,4,7)),qLd(this.b,a,c);case 5:return !this.c&&(this.c=new Yie(E4,this,5,8)),qLd(this.c,a,c);case 6:return !this.a&&(this.a=new C5d(F4,this,6,6)),qLd(this.a,a,c);}return dyd(this,a,b,c)};_.Uh=function vzd(a,b,c){switch(b){case 3:return izd(this,null,c);case 4:return !this.b&&(this.b=new Yie(E4,this,4,7)),rLd(this.b,a,c);case 5:return !this.c&&(this.c=new Yie(E4,this,5,8)),rLd(this.c,a,c);case 6:return !this.a&&(this.a=new C5d(F4,this,6,6)),rLd(this.a,a,c);}return eyd(this,a,b,c)};_.Wh=function wzd(a){switch(a){case 3:return !!kzd(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new Yie(E4,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i<=1));case 8:return nzd(this);case 9:return ozd(this);case 10:return !this.b&&(this.b=new Yie(E4,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Yie(E4,this,5,8)),this.c.i!=0);}return fyd(this,a)};_.bi=function xzd(a,b){switch(a){case 3:pzd(this,RD(b,27));return;case 4:!this.b&&(this.b=new Yie(E4,this,4,7));sLd(this.b);!this.b&&(this.b=new Yie(E4,this,4,7));YGd(this.b,RD(b,16));return;case 5:!this.c&&(this.c=new Yie(E4,this,5,8));sLd(this.c);!this.c&&(this.c=new Yie(E4,this,5,8));YGd(this.c,RD(b,16));return;case 6:!this.a&&(this.a=new C5d(F4,this,6,6));sLd(this.a);!this.a&&(this.a=new C5d(F4,this,6,6));YGd(this.a,RD(b,16));return;}gyd(this,a,b)};_.ii=function yzd(){return pvd(),gvd};_.ki=function zzd(a){switch(a){case 3:pzd(this,null);return;case 4:!this.b&&(this.b=new Yie(E4,this,4,7));sLd(this.b);return;case 5:!this.c&&(this.c=new Yie(E4,this,5,8));sLd(this.c);return;case 6:!this.a&&(this.a=new C5d(F4,this,6,6));sLd(this.a);return;}hyd(this,a)};_.Ib=function Azd(){return qzd(this)};var P4=sfb(THe,'ElkEdgeImpl',326);feb(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Rzd);_.Ah=function Szd(a){return Czd(this,a)};_.Lh=function Tzd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new XZd(D4,this,5)),this.a;case 6:return Fzd(this);case 7:if(b)return Ezd(this);return this.i;case 8:if(b)return Dzd(this);return this.f;case 9:return !this.g&&(this.g=new Yie(F4,this,9,10)),this.g;case 10:return !this.e&&(this.e=new Yie(F4,this,10,9)),this.e;case 11:return this.d;}return Axd(this,a,b,c)};_.Sh=function Uzd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Czd(this,c):this.Cb.Th(this,-1-e,null,c)));return Bzd(this,RD(a,74),c);case 9:return !this.g&&(this.g=new Yie(F4,this,9,10)),qLd(this.g,a,c);case 10:return !this.e&&(this.e=new Yie(F4,this,10,9)),qLd(this.e,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(pvd(),hvd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((pvd(),hvd)),a,c)};_.Uh=function Vzd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new XZd(D4,this,5)),rLd(this.a,a,c);case 6:return Bzd(this,null,c);case 9:return !this.g&&(this.g=new Yie(F4,this,9,10)),rLd(this.g,a,c);case 10:return !this.e&&(this.e=new Yie(F4,this,10,9)),rLd(this.e,a,c);}return Bxd(this,a,b,c)};_.Wh=function Wzd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!Fzd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return Cxd(this,a)};_.bi=function Xzd(a,b){switch(a){case 1:Ozd(this,Kfb(UD(b)));return;case 2:Pzd(this,Kfb(UD(b)));return;case 3:Hzd(this,Kfb(UD(b)));return;case 4:Izd(this,Kfb(UD(b)));return;case 5:!this.a&&(this.a=new XZd(D4,this,5));sLd(this.a);!this.a&&(this.a=new XZd(D4,this,5));YGd(this.a,RD(b,16));return;case 6:Mzd(this,RD(b,74));return;case 7:Lzd(this,RD(b,84));return;case 8:Kzd(this,RD(b,84));return;case 9:!this.g&&(this.g=new Yie(F4,this,9,10));sLd(this.g);!this.g&&(this.g=new Yie(F4,this,9,10));YGd(this.g,RD(b,16));return;case 10:!this.e&&(this.e=new Yie(F4,this,10,9));sLd(this.e);!this.e&&(this.e=new Yie(F4,this,10,9));YGd(this.e,RD(b,16));return;case 11:Jzd(this,WD(b));return;}Dxd(this,a,b)};_.ii=function Yzd(){return pvd(),hvd};_.ki=function Zzd(a){switch(a){case 1:Ozd(this,0);return;case 2:Pzd(this,0);return;case 3:Hzd(this,0);return;case 4:Izd(this,0);return;case 5:!this.a&&(this.a=new XZd(D4,this,5));sLd(this.a);return;case 6:Mzd(this,null);return;case 7:Lzd(this,null);return;case 8:Kzd(this,null);return;case 9:!this.g&&(this.g=new Yie(F4,this,9,10));sLd(this.g);return;case 10:!this.e&&(this.e=new Yie(F4,this,10,9));sLd(this.e);return;case 11:Jzd(this,null);return;}Exd(this,a)};_.Ib=function $zd(){return Qzd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var Q4=sfb(THe,'ElkEdgeSectionImpl',452);feb(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1});_.Lh=function cAd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Sh=function dAd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c)}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().zk(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Uh=function eAd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c)}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function fAd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.Zh=function gAd(a){return _zd(this,a)};_.bi=function hAd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.di=function iAd(a){$wd(this,128,a)};_.ii=function jAd(){return JTd(),xTd};_.ki=function kAd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.pi=function lAd(){this.Bb|=1};_.qi=function mAd(a){return bAd(this,a)};_.Bb=0;var k8=sfb(SHe,'EModelElementImpl',158);feb(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},yAd);_.ri=function zAd(a,b){return tAd(this,a,b)};_.si=function AAd(a){var b,c,d,e,f;if(this.a!=BXd(a)||(a.Bb&256)!=0){throw Adb(new agb(ZHe+a.zb+WHe))}for(d=zYd(a);tYd(d.a).i!=0;){c=RD(N_d(d,0,(b=RD(QHd(tYd(d.a),0),89),f=b.c,ZD(f,90)?RD(f,29):(JTd(),zTd))),29);if(DXd(c)){e=BXd(c).wi().si(c);RD(e,54).ci(a);return e}d=zYd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new LUd(a):new zUd(a)};_.ti=function BAd(a,b){return uAd(this,a,b)};_.Lh=function CAd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.a;}return zvd(this,a-AYd((JTd(),uTd)),vYd((d=RD(Ywd(this,16),29),!d?uTd:d),a),b,c)};_.Sh=function DAd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 1:!!this.a&&(c=RD(this.a,54).Th(this,4,t7,c));return rAd(this,RD(a,241),c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),uTd):d),b),69),e.wk().zk(this,Wwd(this),b-AYd((JTd(),uTd)),a,c)};_.Uh=function EAd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 1:return rAd(this,null,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),uTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),uTd)),a,c)};_.Wh=function FAd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return Avd(this,a-AYd((JTd(),uTd)),vYd((b=RD(Ywd(this,16),29),!b?uTd:b),a))};_.bi=function GAd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:wAd(this,RD(b,241));return;}Bvd(this,a-AYd((JTd(),uTd)),vYd((c=RD(Ywd(this,16),29),!c?uTd:c),a),b)};_.ii=function HAd(){return JTd(),uTd};_.ki=function IAd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:wAd(this,null);return;}Cvd(this,a-AYd((JTd(),uTd)),vYd((b=RD(Ywd(this,16),29),!b?uTd:b),a))};var nAd,oAd,pAd;var i8=sfb(SHe,'EFactoryImpl',720);feb(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},KAd);_.ri=function LAd(a,b){switch(a.hk()){case 12:return RD(b,149).Pg();case 13:return jeb(b);default:throw Adb(new agb(VHe+a.xe()+WHe));}};_.si=function MAd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=BXd(a),b?fZd(b.vi(),a):-1)),a.G){case 4:return f=new hCd,f;case 6:return g=new ACd,g;case 7:return h=new PCd,h;case 8:return d=new rzd,d;case 9:return c=new Xxd,c;case 10:return e=new Rzd,e;case 11:return i=new _Cd,i;default:throw Adb(new agb(ZHe+a.zb+WHe));}};_.ti=function NAd(a,b){switch(a.hk()){case 13:case 12:return null;default:throw Adb(new agb(VHe+a.xe()+WHe));}};var S4=sfb(THe,'ElkGraphFactoryImpl',1037);feb(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1});_.Gh=function RAd(){var a,b;b=(a=RD(Ywd(this,16),29),P$d(rYd(!a?this.ii():a)));return b==null?(N2d(),N2d(),M2d):new e3d(this,b)};_.Lh=function SAd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.xe();}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Wh=function TAd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function UAd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:this.ui(WD(b));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function VAd(){return JTd(),yTd};_.ki=function WAd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:this.ui(null);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.xe=function XAd(){return this.zb};_.ui=function YAd(a){PAd(this,a)};_.Ib=function ZAd(){return QAd(this)};_.zb=null;var o8=sfb(SHe,'ENamedElementImpl',448);feb(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},EBd);_.Ah=function GBd(a){return qBd(this,a)};_.Lh=function HBd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new J5d(this,i7,this)),this.rb;case 6:return !this.vb&&(this.vb=new G5d(t7,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?RD(this.Cb,241):null;return gBd(this);}return zvd(this,a-AYd((JTd(),CTd)),vYd((d=RD(Ywd(this,16),29),!d?CTd:d),a),b,c)};_.Sh=function IBd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 4:!!this.sb&&(c=RD(this.sb,54).Th(this,1,n7,c));return hBd(this,RD(a,480),c);case 5:return !this.rb&&(this.rb=new J5d(this,i7,this)),qLd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new G5d(t7,this,6,7)),qLd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qBd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,7,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),CTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),CTd)),a,c)};_.Uh=function JBd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 4:return hBd(this,null,c);case 5:return !this.rb&&(this.rb=new J5d(this,i7,this)),rLd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new G5d(t7,this,6,7)),rLd(this.vb,a,c);case 7:return xvd(this,null,7,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),CTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),CTd)),a,c)};_.Wh=function KBd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!gBd(this);}return Avd(this,a-AYd((JTd(),CTd)),vYd((b=RD(Ywd(this,16),29),!b?CTd:b),a))};_.Zh=function LBd(a){var b;b=sBd(this,a);return b?b:_zd(this,a)};_.bi=function MBd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:DBd(this,WD(b));return;case 3:CBd(this,WD(b));return;case 4:BBd(this,RD(b,480));return;case 5:!this.rb&&(this.rb=new J5d(this,i7,this));sLd(this.rb);!this.rb&&(this.rb=new J5d(this,i7,this));YGd(this.rb,RD(b,16));return;case 6:!this.vb&&(this.vb=new G5d(t7,this,6,7));sLd(this.vb);!this.vb&&(this.vb=new G5d(t7,this,6,7));YGd(this.vb,RD(b,16));return;}Bvd(this,a-AYd((JTd(),CTd)),vYd((c=RD(Ywd(this,16),29),!c?CTd:c),a),b)};_.ei=function NBd(a){var b,c;if(!!a&&!!this.rb){for(c=new dMd(this.rb);c.e!=c.i.gc();){b=bMd(c);ZD(b,364)&&(RD(b,364).w=null)}}$wd(this,64,a)};_.ii=function OBd(){return JTd(),CTd};_.ki=function PBd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:DBd(this,null);return;case 3:CBd(this,null);return;case 4:BBd(this,null);return;case 5:!this.rb&&(this.rb=new J5d(this,i7,this));sLd(this.rb);return;case 6:!this.vb&&(this.vb=new G5d(t7,this,6,7));sLd(this.vb);return;}Cvd(this,a-AYd((JTd(),CTd)),vYd((b=RD(Ywd(this,16),29),!b?CTd:b),a))};_.pi=function QBd(){rBd(this)};_.vi=function RBd(){return !this.rb&&(this.rb=new J5d(this,i7,this)),this.rb};_.wi=function SBd(){return this.sb};_.xi=function TBd(){return this.ub};_.yi=function UBd(){return this.xb};_.zi=function VBd(){return this.yb};_.Ai=function WBd(a){this.ub=a};_.Ib=function XBd(){var a;if((this.Db&64)!=0)return QAd(this);a=new Shb(QAd(this));a.a+=' (nsURI: ';Nhb(a,this.yb);a.a+=', nsPrefix: ';Nhb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var $Ad;var y8=sfb(SHe,'EPackageImpl',184);feb(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},_Bd);_.q=false;_.r=false;var YBd=false;var T4=sfb(THe,'ElkGraphPackageImpl',569);feb(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},hCd);_.Ah=function iCd(a){return cCd(this,a)};_.Lh=function jCd(a,b,c){switch(a){case 7:return dCd(this);case 8:return this.a;}return vyd(this,a,b,c)};_.Sh=function kCd(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?cCd(this,c):this.Cb.Th(this,-1-d,null,c)));return bCd(this,RD(a,167),c);}return dyd(this,a,b,c)};_.Uh=function lCd(a,b,c){if(b==7){return bCd(this,null,c)}return eyd(this,a,b,c)};_.Wh=function mCd(a){switch(a){case 7:return !!dCd(this);case 8:return !lhb('',this.a);}return wyd(this,a)};_.bi=function nCd(a,b){switch(a){case 7:eCd(this,RD(b,167));return;case 8:fCd(this,WD(b));return;}xyd(this,a,b)};_.ii=function oCd(){return pvd(),jvd};_.ki=function pCd(a){switch(a){case 7:eCd(this,null);return;case 8:fCd(this,'');return;}yyd(this,a)};_.Ib=function qCd(){return gCd(this)};_.a='';var U4=sfb(THe,'ElkLabelImpl',366);feb(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},ACd);_.Ah=function BCd(a){return sCd(this,a)};_.Lh=function CCd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new C5d(K4,this,9,9)),this.c;case 10:return !this.a&&(this.a=new C5d(J4,this,10,11)),this.a;case 11:return vCd(this);case 12:return !this.b&&(this.b=new C5d(G4,this,12,3)),this.b;case 13:return Geb(),!this.a&&(this.a=new C5d(J4,this,10,11)),this.a.i>0?true:false;}return Uyd(this,a,b,c)};_.Sh=function DCd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new C5d(K4,this,9,9)),qLd(this.c,a,c);case 10:return !this.a&&(this.a=new C5d(J4,this,10,11)),qLd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?sCd(this,c):this.Cb.Th(this,-1-d,null,c)));return rCd(this,RD(a,27),c);case 12:return !this.b&&(this.b=new C5d(G4,this,12,3)),qLd(this.b,a,c);}return Vyd(this,a,b,c)};_.Uh=function ECd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new C5d(K4,this,9,9)),rLd(this.c,a,c);case 10:return !this.a&&(this.a=new C5d(J4,this,10,11)),rLd(this.a,a,c);case 11:return rCd(this,null,c);case 12:return !this.b&&(this.b=new C5d(G4,this,12,3)),rLd(this.b,a,c);}return Wyd(this,a,b,c)};_.Wh=function FCd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!vCd(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new C5d(J4,this,10,11)),this.a.i>0;}return Xyd(this,a)};_.bi=function GCd(a,b){switch(a){case 9:!this.c&&(this.c=new C5d(K4,this,9,9));sLd(this.c);!this.c&&(this.c=new C5d(K4,this,9,9));YGd(this.c,RD(b,16));return;case 10:!this.a&&(this.a=new C5d(J4,this,10,11));sLd(this.a);!this.a&&(this.a=new C5d(J4,this,10,11));YGd(this.a,RD(b,16));return;case 11:yCd(this,RD(b,27));return;case 12:!this.b&&(this.b=new C5d(G4,this,12,3));sLd(this.b);!this.b&&(this.b=new C5d(G4,this,12,3));YGd(this.b,RD(b,16));return;}Yyd(this,a,b)};_.ii=function HCd(){return pvd(),kvd};_.ki=function ICd(a){switch(a){case 9:!this.c&&(this.c=new C5d(K4,this,9,9));sLd(this.c);return;case 10:!this.a&&(this.a=new C5d(J4,this,10,11));sLd(this.a);return;case 11:yCd(this,null);return;case 12:!this.b&&(this.b=new C5d(G4,this,12,3));sLd(this.b);return;}Zyd(this,a)};_.Ib=function JCd(){return zCd(this)};var V4=sfb(THe,'ElkNodeImpl',207);feb(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},PCd);_.Ah=function QCd(a){return LCd(this,a)};_.Lh=function RCd(a,b,c){if(a==9){return MCd(this)}return Uyd(this,a,b,c)};_.Sh=function SCd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?LCd(this,c):this.Cb.Th(this,-1-d,null,c)));return KCd(this,RD(a,27),c);}return Vyd(this,a,b,c)};_.Uh=function TCd(a,b,c){if(b==9){return KCd(this,null,c)}return Wyd(this,a,b,c)};_.Wh=function UCd(a){if(a==9){return !!MCd(this)}return Xyd(this,a)};_.bi=function VCd(a,b){switch(a){case 9:NCd(this,RD(b,27));return;}Yyd(this,a,b)};_.ii=function WCd(){return pvd(),lvd};_.ki=function XCd(a){switch(a){case 9:NCd(this,null);return;}Zyd(this,a)};_.Ib=function YCd(){return OCd(this)};var W4=sfb(THe,'ElkPortImpl',193);var O6=ufb(sIe,'BasicEMap/Entry');feb(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},_Cd);_.Fb=function fDd(a){return this===a};_.ld=function hDd(){return this.b};_.Hb=function jDd(){return kFb(this)};_.Di=function lDd(a){ZCd(this,RD(a,149))};_.Lh=function aDd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return Dvd(this,a,b,c)};_.Wh=function bDd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return Kvd(this,a)};_.bi=function cDd(a,b){switch(a){case 0:ZCd(this,RD(b,149));return;case 1:$Cd(this,b);return;}Wvd(this,a,b)};_.ii=function dDd(){return pvd(),mvd};_.ki=function eDd(a){switch(a){case 0:ZCd(this,null);return;case 1:$Cd(this,null);return;}$vd(this,a)};_.Bi=function gDd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.md=function iDd(){return this.c};_.Ci=function kDd(a){this.a=a};_.nd=function mDd(a){var b;b=this.c;$Cd(this,a);return b};_.Ib=function nDd(){var a;if((this.Db&64)!=0)return awd(this);a=new bib;Zhb(Zhb(Zhb(a,this.b?this.b.Pg():vve),SAe),Ghb(this.c));return a.a};_.a=-1;_.c=null;var X4=sfb(THe,'ElkPropertyToValueMapEntryImpl',1122);feb(996,1,{},BDd);var Z4=sfb(vIe,'JsonAdapter',996);feb(216,63,swe,CDd);var $4=sfb(vIe,'JsonImportException',216);feb(868,1,{},IEd);var O5=sfb(vIe,'JsonImporter',868);feb(903,1,{},JEd);var _4=sfb(vIe,'JsonImporter/lambda$0$Type',903);feb(904,1,{},KEd);var a5=sfb(vIe,'JsonImporter/lambda$1$Type',904);feb(912,1,{},LEd);var b5=sfb(vIe,'JsonImporter/lambda$10$Type',912);feb(914,1,{},MEd);var c5=sfb(vIe,'JsonImporter/lambda$11$Type',914);feb(915,1,{},NEd);var d5=sfb(vIe,'JsonImporter/lambda$12$Type',915);feb(921,1,{},OEd);var e5=sfb(vIe,'JsonImporter/lambda$13$Type',921);feb(920,1,{},PEd);var f5=sfb(vIe,'JsonImporter/lambda$14$Type',920);feb(916,1,{},QEd);var g5=sfb(vIe,'JsonImporter/lambda$15$Type',916);feb(917,1,{},REd);var h5=sfb(vIe,'JsonImporter/lambda$16$Type',917);feb(918,1,{},SEd);var i5=sfb(vIe,'JsonImporter/lambda$17$Type',918);feb(919,1,{},TEd);var j5=sfb(vIe,'JsonImporter/lambda$18$Type',919);feb(924,1,{},UEd);var k5=sfb(vIe,'JsonImporter/lambda$19$Type',924);feb(905,1,{},VEd);var l5=sfb(vIe,'JsonImporter/lambda$2$Type',905);feb(922,1,{},WEd);var m5=sfb(vIe,'JsonImporter/lambda$20$Type',922);feb(923,1,{},XEd);var n5=sfb(vIe,'JsonImporter/lambda$21$Type',923);feb(927,1,{},YEd);var o5=sfb(vIe,'JsonImporter/lambda$22$Type',927);feb(925,1,{},ZEd);var p5=sfb(vIe,'JsonImporter/lambda$23$Type',925);feb(926,1,{},$Ed);var q5=sfb(vIe,'JsonImporter/lambda$24$Type',926);feb(929,1,{},_Ed);var r5=sfb(vIe,'JsonImporter/lambda$25$Type',929);feb(928,1,{},aFd);var s5=sfb(vIe,'JsonImporter/lambda$26$Type',928);feb(930,1,Qve,bFd);_.Cd=function cFd(a){_Dd(this.b,this.a,WD(a))};var t5=sfb(vIe,'JsonImporter/lambda$27$Type',930);feb(931,1,Qve,dFd);_.Cd=function eFd(a){aEd(this.b,this.a,WD(a))};var u5=sfb(vIe,'JsonImporter/lambda$28$Type',931);feb(932,1,{},fFd);var v5=sfb(vIe,'JsonImporter/lambda$29$Type',932);feb(908,1,{},gFd);var w5=sfb(vIe,'JsonImporter/lambda$3$Type',908);feb(933,1,{},hFd);var x5=sfb(vIe,'JsonImporter/lambda$30$Type',933);feb(934,1,{},iFd);var y5=sfb(vIe,'JsonImporter/lambda$31$Type',934);feb(935,1,{},jFd);var z5=sfb(vIe,'JsonImporter/lambda$32$Type',935);feb(936,1,{},kFd);var A5=sfb(vIe,'JsonImporter/lambda$33$Type',936);feb(937,1,{},lFd);var B5=sfb(vIe,'JsonImporter/lambda$34$Type',937);feb(870,1,{},nFd);var C5=sfb(vIe,'JsonImporter/lambda$35$Type',870);feb(941,1,{},pFd);var D5=sfb(vIe,'JsonImporter/lambda$36$Type',941);feb(938,1,Qve,qFd);_.Cd=function rFd(a){jEd(this.a,RD(a,377))};var E5=sfb(vIe,'JsonImporter/lambda$37$Type',938);feb(939,1,Qve,sFd);_.Cd=function tFd(a){kEd(this.a,this.b,RD(a,166))};var F5=sfb(vIe,'JsonImporter/lambda$38$Type',939);feb(940,1,Qve,uFd);_.Cd=function vFd(a){lEd(this.a,this.b,RD(a,166))};var G5=sfb(vIe,'JsonImporter/lambda$39$Type',940);feb(906,1,{},wFd);var H5=sfb(vIe,'JsonImporter/lambda$4$Type',906);feb(942,1,Qve,xFd);_.Cd=function yFd(a){mEd(this.a,RD(a,8))};var I5=sfb(vIe,'JsonImporter/lambda$40$Type',942);feb(907,1,{},zFd);var J5=sfb(vIe,'JsonImporter/lambda$5$Type',907);feb(911,1,{},AFd);var K5=sfb(vIe,'JsonImporter/lambda$6$Type',911);feb(909,1,{},BFd);var L5=sfb(vIe,'JsonImporter/lambda$7$Type',909);feb(910,1,{},CFd);var M5=sfb(vIe,'JsonImporter/lambda$8$Type',910);feb(913,1,{},DFd);var N5=sfb(vIe,'JsonImporter/lambda$9$Type',913);feb(961,1,Qve,MFd);_.Cd=function NFd(a){oDd(this.a,new OC(WD(a)))};var P5=sfb(vIe,'JsonMetaDataConverter/lambda$0$Type',961);feb(962,1,Qve,OFd);_.Cd=function PFd(a){IFd(this.a,RD(a,245))};var Q5=sfb(vIe,'JsonMetaDataConverter/lambda$1$Type',962);feb(963,1,Qve,QFd);_.Cd=function RFd(a){JFd(this.a,RD(a,143))};var R5=sfb(vIe,'JsonMetaDataConverter/lambda$2$Type',963);feb(964,1,Qve,SFd);_.Cd=function TFd(a){KFd(this.a,RD(a,170))};var S5=sfb(vIe,'JsonMetaDataConverter/lambda$3$Type',964);feb(245,22,{3:1,34:1,22:1,245:1},bGd);var UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd;var T5=tfb(jze,'GraphFeature',245,WI,dGd,cGd);var eGd;feb(11,1,{34:1,149:1},jGd,kGd,lGd,mGd);_.Fd=function nGd(a){return gGd(this,RD(a,149))};_.Fb=function oGd(a){return hGd(this,a)};_.Sg=function pGd(){return iGd(this)};_.Pg=function qGd(){return this.b};_.Hb=function rGd(){return ohb(this.b)};_.Ib=function sGd(){return this.b};var Y5=sfb(jze,'Property',11);feb(671,1,fye,uGd);_.Ne=function vGd(a,b){return tGd(this,RD(a,96),RD(b,96))};_.Fb=function wGd(a){return this===a};_.Oe=function xGd(){return new Frb(this)};var X5=sfb(jze,'PropertyHolderComparator',671);feb(709,1,Ave,QGd);_.Nb=function RGd(a){Ztb(this,a)};_.Pb=function TGd(){return PGd(this)};_.Qb=function UGd(){$tb()};_.Ob=function SGd(){return !!this.a};var Z5=sfb(KIe,'ElkGraphUtil/AncestorIterator',709);var Y6=ufb(sIe,'EList');feb(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1});_.bd=function hHd(a,b){VGd(this,a,b)};_.Fc=function iHd(a){return WGd(this,a)};_.cd=function jHd(a,b){return XGd(this,a,b)};_.Gc=function kHd(a){return YGd(this,a)};_.Ii=function lHd(){return new yMd(this)};_.Ji=function mHd(){return new BMd(this)};_.Ki=function nHd(a){return ZGd(this,a)};_.Li=function oHd(){return true};_.Mi=function pHd(a,b){};_.Ni=function qHd(){};_.Oi=function rHd(a,b){$Gd(this,a,b)};_.Pi=function sHd(a,b,c){};_.Qi=function tHd(a,b){};_.Ri=function uHd(a,b,c){};_.Fb=function vHd(a){return _Gd(this,a)};_.Hb=function wHd(){return cHd(this)};_.Si=function xHd(){return false};_.Kc=function yHd(){return new dMd(this)};_.ed=function zHd(){return new mMd(this)};_.fd=function AHd(a){var b;b=this.gc();if(a<0||a>b)throw Adb(new aMd(a,b));return new nMd(this,a)};_.Ui=function BHd(a,b){this.Ti(a,this.dd(b))};_.Mc=function CHd(a){return dHd(this,a)};_.Wi=function DHd(a,b){return b};_.hd=function EHd(a,b){return eHd(this,a,b)};_.Ib=function FHd(){return fHd(this)};_.Yi=function GHd(){return true};_.Zi=function HHd(a,b){return gHd(this,b)};var u6=sfb(sIe,'AbstractEList',70);feb(66,70,PIe,YHd,ZHd,$Hd);_.Ei=function _Hd(a,b){return IHd(this,a,b)};_.Fi=function aId(a){return JHd(this,a)};_.Gi=function bId(a,b){KHd(this,a,b)};_.Hi=function cId(a){LHd(this,a)};_.$i=function dId(a){return NHd(this,a)};_.$b=function eId(){OHd(this)};_.Hc=function fId(a){return PHd(this,a)};_.Xb=function gId(a){return QHd(this,a)};_._i=function hId(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.gd(b);return true}else{return false}};_.Xi=function LJd(a,b){return this.Dj(a,this.Zi(a,b))};_.gc=function MJd(){return this.Ej()};_.Pc=function NJd(){return this.Fj()};_.Qc=function OJd(a){return this.Gj(a)};_.Ib=function PJd(){return this.Hj()};var R6=sfb(sIe,'DelegatingEList',2093);feb(2094,2093,FJe);_.Ei=function XJd(a,b){return QJd(this,a,b)};_.Fi=function YJd(a){return this.Ei(this.Ej(),a)};_.Gi=function ZJd(a,b){RJd(this,a,b)};_.Hi=function $Jd(a){SJd(this,a)};_.Li=function _Jd(){return !this.Mj()};_.$b=function aKd(){VJd(this)};_.Ij=function bKd(a,b,c,d,e){return new aLd(this,a,b,c,d,e)};_.Jj=function cKd(a){qvd(this.jj(),a)};_.Kj=function dKd(){return null};_.Lj=function eKd(){return -1};_.jj=function fKd(){return null};_.Mj=function gKd(){return false};_.Nj=function hKd(a,b){return b};_.Oj=function iKd(a,b){return b};_.Pj=function jKd(){return false};_.Qj=function kKd(){return !this.Aj()};_.Ti=function lKd(a,b){var c,d;if(this.Pj()){d=this.Qj();c=bJd(this,a,b);this.Jj(this.Ij(7,sgb(b),c,a,d));return c}else{return bJd(this,a,b)}};_.gd=function mKd(a){var b,c,d,e;if(this.Pj()){c=null;d=this.Qj();b=this.Ij(4,e=cJd(this,a),null,a,d);if(this.Mj()&&!!e){c=this.Oj(e,c);if(!c){this.Jj(b)}else{c.nj(b);c.oj()}}else{if(!c){this.Jj(b)}else{c.nj(b);c.oj()}}return e}else{e=cJd(this,a);if(this.Mj()&&!!e){c=this.Oj(e,null);!!c&&c.oj()}return e}};_.Xi=function nKd(a,b){return WJd(this,a,b)};var i6=sfb(JHe,'DelegatingNotifyingListImpl',2094);feb(152,1,GJe);_.nj=function PKd(a){return oKd(this,a)};_.oj=function QKd(){pKd(this)};_.gj=function RKd(){return this.d};_.Kj=function SKd(){return null};_.Rj=function TKd(){return null};_.hj=function UKd(a){return -1};_.ij=function VKd(){return yKd(this)};_.jj=function WKd(){return null};_.kj=function XKd(){return HKd(this)};_.lj=function YKd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.Sj=function ZKd(){return false};_.mj=function $Kd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.gj();switch(e){case 1:case 2:{f=a.jj();if(dE(f)===dE(this.jj())&&this.hj(null)==a.hj(null)){this.g=a.ij();a.gj()==1&&(this.d=1);return true}}}}case 4:{e=a.gj();switch(e){case 4:{f=a.jj();if(dE(f)===dE(this.jj())&&this.hj(null)==a.hj(null)){j=JKd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.lj();this.d=6;l=new ZHd(2);if(i<=g){WGd(l,this.n);WGd(l,a.kj());this.g=cD(WC(kE,1),Pwe,28,15,[this.o=i,g+1])}else{WGd(l,a.kj());WGd(l,this.n);this.g=cD(WC(kE,1),Pwe,28,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.gj();switch(e){case 4:{f=a.jj();if(dE(f)===dE(this.jj())&&this.hj(null)==a.hj(null)){j=JKd(this);g=a.lj();k=RD(this.g,53);d=$C(kE,Pwe,28,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Lhb(d,this.d);break}}IKd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Lhb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Mhb(d,this.jj());d.a+=', feature: ';Mhb(d,this.Kj());d.a+=', oldValue: ';Mhb(d,HKd(this));d.a+=', newValue: ';if(this.d==6&&ZD(this.g,53)){c=RD(this.g,53);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new btb(this);this.a=this.j}return Zsb(this.b,a)}else{return PHd(this,a)}};_.Yi=function _Ld(){return true};_.a=0;var o6=sfb(sIe,'AbstractEList/1',966);feb(302,77,lxe,aMd);var p6=sfb(sIe,'AbstractEList/BasicIndexOutOfBoundsException',302);feb(37,1,Ave,dMd);_.Nb=function gMd(a){Ztb(this,a)};_.Xj=function eMd(){if(this.i.j!=this.f){throw Adb(new Jrb)}};_.Yj=function fMd(){return bMd(this)};_.Ob=function hMd(){return this.e!=this.i.gc()};_.Pb=function iMd(){return this.Yj()};_.Qb=function jMd(){cMd(this)};_.e=0;_.f=0;_.g=-1;var q6=sfb(sIe,'AbstractEList/EIterator',37);feb(286,37,Jve,mMd,nMd);_.Qb=function vMd(){cMd(this)};_.Rb=function oMd(a){kMd(this,a)};_.Zj=function pMd(){var b;try{b=this.d.Xb(--this.e);this.Xj();this.g=this.e;return b}catch(a){a=zdb(a);if(ZD(a,77)){this.Xj();throw Adb(new Dvb)}else throw Adb(a)}};_.$j=function qMd(a){lMd(this,a)};_.Sb=function rMd(){return this.e!=0};_.Tb=function sMd(){return this.e};_.Ub=function tMd(){return this.Zj()};_.Vb=function uMd(){return this.e-1};_.Wb=function wMd(a){this.$j(a)};var r6=sfb(sIe,'AbstractEList/EListIterator',286);feb(355,37,Ave,yMd);_.Yj=function zMd(){return xMd(this)};_.Qb=function AMd(){throw Adb(new jib)};var s6=sfb(sIe,'AbstractEList/NonResolvingEIterator',355);feb(398,286,Jve,BMd,CMd);_.Rb=function DMd(a){throw Adb(new jib)};_.Yj=function EMd(){var b;try{b=this.c.Vi(this.e);this.Xj();this.g=this.e++;return b}catch(a){a=zdb(a);if(ZD(a,77)){this.Xj();throw Adb(new Dvb)}else throw Adb(a)}};_.Zj=function FMd(){var b;try{b=this.c.Vi(--this.e);this.Xj();this.g=this.e;return b}catch(a){a=zdb(a);if(ZD(a,77)){this.Xj();throw Adb(new Dvb)}else throw Adb(a)}};_.Qb=function GMd(){throw Adb(new jib)};_.Wb=function HMd(a){throw Adb(new jib)};var t6=sfb(sIe,'AbstractEList/NonResolvingEListIterator',398);feb(2080,70,JJe);_.Ei=function PMd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=RD(Ywd(this.a,4),129);k=j==null?0:j.length;m=k+e;d=NMd(this,m);l=k-a;l>0&&hib(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw Adb(new aMd(a,c));return new wNd(this,a)};_.$b=function WMd(){var a,b;++this.j;a=RD(Ywd(this.a,4),129);b=a==null?0:a.length;Bde(this,null);$Gd(this,b,a)};_.Hc=function XMd(a){var b,c,d,e,f;b=RD(Ywd(this.a,4),129);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw Adb(new aMd(a,c));return b[a]};_.dd=function ZMd(a){var b,c,d;b=RD(Ywd(this.a,4),129);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw Adb(new aMd(a,c));return new oNd(this,a)};_.Ti=function cNd(a,b){var c,d,e;c=MMd(this);e=c==null?0:c.length;if(a>=e)throw Adb(new veb(MIe+a+NIe+e));if(b>=e)throw Adb(new veb(OIe+b+NIe+e));d=c[b];if(a!=b){a0&&hib(a,0,b,0,c);return b};_.Qc=function iNd(a){var b,c,d;b=RD(Ywd(this.a,4),129);d=b==null?0:b.length;if(d>0){if(a.lengthd&&bD(a,d,null);return a};var JMd;var A6=sfb(sIe,'ArrayDelegatingEList',2080);feb(1051,37,Ave,jNd);_.Xj=function kNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};_.Qb=function lNd(){cMd(this);this.a=RD(Ywd(this.b.a,4),129)};var w6=sfb(sIe,'ArrayDelegatingEList/EIterator',1051);feb(722,286,Jve,nNd,oNd);_.Xj=function pNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};_.$j=function qNd(a){lMd(this,a);this.a=RD(Ywd(this.b.a,4),129)};_.Qb=function rNd(){cMd(this);this.a=RD(Ywd(this.b.a,4),129)};var x6=sfb(sIe,'ArrayDelegatingEList/EListIterator',722);feb(1052,355,Ave,sNd);_.Xj=function tNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};var y6=sfb(sIe,'ArrayDelegatingEList/NonResolvingEIterator',1052);feb(723,398,Jve,vNd,wNd);_.Xj=function xNd(){if(this.b.j!=this.f||dE(RD(Ywd(this.b.a,4),129))!==dE(this.a)){throw Adb(new Jrb)}};var z6=sfb(sIe,'ArrayDelegatingEList/NonResolvingEListIterator',723);feb(615,302,lxe,yNd);var B6=sfb(sIe,'BasicEList/BasicIndexOutOfBoundsException',615);feb(710,66,PIe,zNd);_.bd=function ANd(a,b){throw Adb(new jib)};_.Fc=function BNd(a){throw Adb(new jib)};_.cd=function CNd(a,b){throw Adb(new jib)};_.Gc=function DNd(a){throw Adb(new jib)};_.$b=function ENd(){throw Adb(new jib)};_._i=function FNd(a){throw Adb(new jib)};_.Kc=function GNd(){return this.Ii()};_.ed=function HNd(){return this.Ji()};_.fd=function INd(a){return this.Ki(a)};_.Ti=function JNd(a,b){throw Adb(new jib)};_.Ui=function KNd(a,b){throw Adb(new jib)};_.gd=function LNd(a){throw Adb(new jib)};_.Mc=function MNd(a){throw Adb(new jib)};_.hd=function NNd(a,b){throw Adb(new jib)};var C6=sfb(sIe,'BasicEList/UnmodifiableEList',710);feb(721,1,{3:1,20:1,16:1,15:1,61:1,597:1});_.bd=function mOd(a,b){ONd(this,a,RD(b,44))};_.Fc=function nOd(a){return PNd(this,RD(a,44))};_.Jc=function vOd(a){xgb(this,a)};_.Xb=function wOd(a){return RD(QHd(this.c,a),136)};_.Ti=function FOd(a,b){return RD(this.c.Ti(a,b),44)};_.Ui=function GOd(a,b){eOd(this,a,RD(b,44))};_.Lc=function JOd(){return new SDb(null,new Swb(this,16))};_.gd=function KOd(a){return RD(this.c.gd(a),44)};_.hd=function MOd(a,b){return kOd(this,a,RD(b,44))};_.jd=function OOd(a){tvb(this,a)};_.Nc=function POd(){return new Swb(this,16)};_.Oc=function QOd(){return new SDb(null,new Swb(this,16))};_.cd=function oOd(a,b){return this.c.cd(a,b)};_.Gc=function pOd(a){return this.c.Gc(a)};_.$b=function qOd(){this.c.$b()};_.Hc=function rOd(a){return this.c.Hc(a)};_.Ic=function sOd(a){return Be(this.c,a)};_._j=function tOd(){var a,b,c;if(this.d==null){this.d=$C(D6,KJe,66,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=RD(b.Yj(),136);UNd(this,a)}this.e=c}};_.Fb=function uOd(a){return ZNd(this,a)};_.Hb=function xOd(){return cHd(this.c)};_.dd=function yOd(a){return this.c.dd(a)};_.ak=function zOd(){this.c=new YOd(this)};_.dc=function AOd(){return this.f==0};_.Kc=function BOd(){return this.c.Kc()};_.ed=function COd(){return this.c.ed()};_.fd=function DOd(a){return this.c.fd(a)};_.bk=function EOd(){return dOd(this)};_.ck=function HOd(a,b,c){return new ZPd(a,b,c)};_.dk=function IOd(){return new cPd};_.Mc=function LOd(a){return hOd(this,a)};_.gc=function NOd(){return this.f};_.kd=function ROd(a,b){return new Rkb(this.c,a,b)};_.Pc=function SOd(){return this.c.Pc()};_.Qc=function TOd(a){return this.c.Qc(a)};_.Ib=function UOd(){return fHd(this.c)};_.e=0;_.f=0;var Q6=sfb(sIe,'BasicEMap',721);feb(1046,66,PIe,YOd);_.Mi=function ZOd(a,b){VOd(this,RD(b,136))};_.Pi=function _Od(a,b,c){var d;++(d=this,RD(b,136),d).a.e};_.Qi=function aPd(a,b){WOd(this,RD(b,136))};_.Ri=function bPd(a,b,c){XOd(this,RD(b,136),RD(c,136))};_.Oi=function $Od(a,b){TNd(this.a)};var E6=sfb(sIe,'BasicEMap/1',1046);feb(1047,66,PIe,cPd);_.aj=function dPd(a){return $C(N6,LJe,621,a,0,1)};var F6=sfb(sIe,'BasicEMap/2',1047);feb(1048,Eve,Fve,ePd);_.$b=function fPd(){this.a.c.$b()};_.Hc=function gPd(a){return QNd(this.a,a)};_.Kc=function hPd(){return this.a.f==0?(jQd(),iQd.a):new DPd(this.a)};_.Mc=function iPd(a){var b;b=this.a.f;jOd(this.a,a);return this.a.f!=b};_.gc=function jPd(){return this.a.f};var G6=sfb(sIe,'BasicEMap/3',1048);feb(1049,31,Dve,kPd);_.$b=function lPd(){this.a.c.$b()};_.Hc=function mPd(a){return RNd(this.a,a)};_.Kc=function nPd(){return this.a.f==0?(jQd(),iQd.a):new FPd(this.a)};_.gc=function oPd(){return this.a.f};var H6=sfb(sIe,'BasicEMap/4',1049);feb(1050,Eve,Fve,qPd);_.$b=function rPd(){this.a.c.$b()};_.Hc=function sPd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&ZD(a,44)){this.a._j();i=RD(a,44);h=i.ld();e=h==null?0:tb(h);f=bOd(this.a,e);b=this.a.d[f];if(b){c=RD(b.g,379);j=b.i;for(g=0;g'+this.c};_.a=0;var N6=sfb(sIe,'BasicEMap/EntryImpl',621);feb(546,1,{},hQd);var P6=sfb(sIe,'BasicEMap/View',546);var iQd;feb(783,1,{});_.Fb=function xQd(a){return Rt((yob(),vob),a)};_.Hb=function yQd(){return Cob((yob(),vob))};_.Ib=function zQd(){return Fe((yob(),vob))};var V6=sfb(sIe,'ECollections/BasicEmptyUnmodifiableEList',783);feb(1348,1,Jve,AQd);_.Nb=function CQd(a){Ztb(this,a)};_.Rb=function BQd(a){throw Adb(new jib)};_.Ob=function DQd(){return false};_.Sb=function EQd(){return false};_.Pb=function FQd(){throw Adb(new Dvb)};_.Tb=function GQd(){return 0};_.Ub=function HQd(){throw Adb(new Dvb)};_.Vb=function IQd(){return -1};_.Qb=function JQd(){throw Adb(new jib)};_.Wb=function KQd(a){throw Adb(new jib)};var U6=sfb(sIe,'ECollections/BasicEmptyUnmodifiableEList/1',1348);feb(1346,783,{20:1,16:1,15:1,61:1},LQd);_.bd=function MQd(a,b){mQd()};_.Fc=function NQd(a){return nQd()};_.cd=function OQd(a,b){return oQd()};_.Gc=function PQd(a){return pQd()};_.$b=function QQd(){qQd()};_.Hc=function RQd(a){return false};_.Ic=function SQd(a){return false};_.Jc=function TQd(a){xgb(this,a)};_.Xb=function UQd(a){return Iob((yob(),vob,a)),null};_.dd=function VQd(a){return -1};_.dc=function WQd(){return true};_.Kc=function XQd(){return this.a};_.ed=function YQd(){return this.a};_.fd=function ZQd(a){return this.a};_.Ti=function $Qd(a,b){return rQd()};_.Ui=function _Qd(a,b){sQd()};_.Lc=function aRd(){return new SDb(null,new Swb(this,16))};_.gd=function bRd(a){return tQd()};_.Mc=function cRd(a){return uQd()};_.hd=function dRd(a,b){return vQd()};_.gc=function eRd(){return 0};_.jd=function fRd(a){tvb(this,a)};_.Nc=function gRd(){return new Swb(this,16)};_.Oc=function hRd(){return new SDb(null,new Swb(this,16))};_.kd=function iRd(a,b){return yob(),new Rkb(vob,a,b)};_.Pc=function jRd(){return De((yob(),vob))};_.Qc=function kRd(a){return yob(),Ee(vob,a)};var W6=sfb(sIe,'ECollections/EmptyUnmodifiableEList',1346);feb(1347,783,{20:1,16:1,15:1,61:1,597:1},lRd);_.bd=function mRd(a,b){mQd()};_.Fc=function nRd(a){return nQd()};_.cd=function oRd(a,b){return oQd()};_.Gc=function pRd(a){return pQd()};_.$b=function qRd(){qQd()};_.Hc=function rRd(a){return false};_.Ic=function sRd(a){return false};_.Jc=function tRd(a){xgb(this,a)};_.Xb=function uRd(a){return Iob((yob(),vob,a)),null};_.dd=function vRd(a){return -1};_.dc=function wRd(){return true};_.Kc=function xRd(){return this.a};_.ed=function yRd(){return this.a};_.fd=function zRd(a){return this.a};_.Ti=function BRd(a,b){return rQd()};_.Ui=function CRd(a,b){sQd()};_.Lc=function DRd(){return new SDb(null,new Swb(this,16))};_.gd=function ERd(a){return tQd()};_.Mc=function FRd(a){return uQd()};_.hd=function GRd(a,b){return vQd()};_.gc=function HRd(){return 0};_.jd=function IRd(a){tvb(this,a)};_.Nc=function JRd(){return new Swb(this,16)};_.Oc=function KRd(){return new SDb(null,new Swb(this,16))};_.kd=function LRd(a,b){return yob(),new Rkb(vob,a,b)};_.Pc=function MRd(){return De((yob(),vob))};_.Qc=function NRd(a){return yob(),Ee(vob,a)};_.bk=function ARd(){return yob(),yob(),wob};var X6=sfb(sIe,'ECollections/EmptyUnmodifiableEMap',1347);var Z6=ufb(sIe,'Enumerator');var ORd;feb(288,1,{288:1},lSd);_.Fb=function pSd(a){var b;if(this===a)return true;if(!ZD(a,288))return false;b=RD(a,288);return this.f==b.f&&rSd(this.i,b.i)&&qSd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&qSd(this.d,b.d)&&qSd(this.g,b.g)&&qSd(this.e,b.e)&&iSd(this,b)};_.Hb=function uSd(){return this.f};_.Ib=function CSd(){return jSd(this)};_.f=0;var SRd=0,TRd=0,URd=0,VRd=0,WRd=0,XRd=0,YRd=0,ZRd=0,$Rd=0,_Rd,aSd=0,bSd=0,cSd=0,dSd=0,eSd,fSd;var c7=sfb(sIe,'URI',288);feb(1121,45,Hxe,MSd);_.zc=function NSd(a,b){return RD($jb(this,WD(a),RD(b,288)),288)};var b7=sfb(sIe,'URI/URICache',1121);feb(506,66,PIe,OSd,PSd);_.Si=function QSd(){return true};var d7=sfb(sIe,'UniqueEList',506);feb(590,63,swe,RSd);var e7=sfb(sIe,'WrappedException',590);var f7=ufb(vHe,OJe);var A7=ufb(vHe,PJe);var y7=ufb(vHe,QJe);var g7=ufb(vHe,RJe);var i7=ufb(vHe,SJe);var h7=ufb(vHe,'EClass');var k7=ufb(vHe,'EDataType');var SSd;feb(1233,45,Hxe,VSd);_.xc=function WSd(a){return bE(a)?Xjb(this,a):Wd(qtb(this.f,a))};var j7=sfb(vHe,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1233);var m7=ufb(vHe,'EEnum');var l7=ufb(vHe,TJe);var o7=ufb(vHe,UJe);var s7=ufb(vHe,VJe);var XSd;var u7=ufb(vHe,WJe);var v7=ufb(vHe,XJe);feb(1042,1,{},_Sd);_.Ib=function aTd(){return 'NIL'};var w7=sfb(vHe,'EStructuralFeature/Internal/DynamicValueHolder/1',1042);var bTd;feb(1041,45,Hxe,eTd);_.xc=function fTd(a){return bE(a)?Xjb(this,a):Wd(qtb(this.f,a))};var x7=sfb(vHe,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1041);var z7=ufb(vHe,YJe);var B7=ufb(vHe,'EValidator/PatternMatcher');var gTd;var iTd;var kTd;var mTd,nTd,oTd,pTd,qTd,rTd,sTd,tTd,uTd,vTd,wTd,xTd,yTd,zTd,ATd,BTd,CTd,DTd,ETd,FTd,GTd,HTd,ITd;var Jbb=ufb(ZJe,'FeatureMap/Entry');feb(545,1,{76:1},KTd);_.Lk=function LTd(){return this.a};_.md=function MTd(){return this.b};var C7=sfb(SHe,'BasicEObjectImpl/1',545);feb(1040,1,$Je,NTd);_.Fk=function OTd(a){return Fvd(this.a,this.b,a)};_.Qj=function PTd(){return Lvd(this.a,this.b)};_.Wb=function QTd(a){Xvd(this.a,this.b,a)};_.Gk=function RTd(){_vd(this.a,this.b)};var D7=sfb(SHe,'BasicEObjectImpl/4',1040);feb(2081,1,{114:1});_.Mk=function UTd(a){this.e=a==0?STd:$C(jJ,rve,1,a,5,1)};_.li=function VTd(a){return this.e[a]};_.mi=function WTd(a,b){this.e[a]=b};_.ni=function XTd(a){this.e[a]=null};_.Nk=function YTd(){return this.c};_.Ok=function ZTd(){throw Adb(new jib)};_.Pk=function $Td(){throw Adb(new jib)};_.Qk=function _Td(){return this.d};_.Rk=function aUd(){return this.e!=null};_.Sk=function bUd(a){this.c=a};_.Tk=function cUd(a){throw Adb(new jib)};_.Uk=function dUd(a){throw Adb(new jib)};_.Vk=function eUd(a){this.d=a};var STd;var E7=sfb(SHe,'BasicEObjectImpl/EPropertiesHolderBaseImpl',2081);feb(192,2081,{114:1},fUd);_.Ok=function gUd(){return this.a};_.Pk=function hUd(){return this.b};_.Tk=function iUd(a){this.a=a};_.Uk=function jUd(a){this.b=a};var F7=sfb(SHe,'BasicEObjectImpl/EPropertiesHolderImpl',192);feb(516,99,RHe,kUd);_.uh=function lUd(){return this.f};_.zh=function mUd(){return this.k};_.Bh=function nUd(a,b){this.g=a;this.i=b};_.Dh=function oUd(){return (this.j&2)==0?this.ii():this.$h().Nk()};_.Fh=function pUd(){return this.i};_.wh=function qUd(){return (this.j&1)!=0};_.Ph=function rUd(){return this.g};_.Vh=function sUd(){return (this.j&4)!=0};_.$h=function tUd(){return !this.k&&(this.k=new fUd),this.k};_.ci=function uUd(a){this.$h().Sk(a);a?(this.j|=2):(this.j&=-3)};_.ei=function vUd(a){this.$h().Uk(a);a?(this.j|=4):(this.j&=-5)};_.ii=function wUd(){return (lTd(),kTd).S};_.i=0;_.j=1;var q8=sfb(SHe,'EObjectImpl',516);feb(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},zUd);_.li=function AUd(a){return this.e[a]};_.mi=function BUd(a,b){this.e[a]=b};_.ni=function CUd(a){this.e[a]=null};_.Dh=function DUd(){return this.d};_.Ih=function EUd(a){return BYd(this.d,a)};_.Kh=function FUd(){return this.d};_.Oh=function GUd(){return this.e!=null};_.$h=function HUd(){!this.k&&(this.k=new VUd);return this.k};_.ci=function IUd(a){this.d=a};_.hi=function JUd(){var a;if(this.e==null){a=AYd(this.d);this.e=a==0?xUd:$C(jJ,rve,1,a,5,1)}return this};_.ji=function KUd(){return 0};var xUd;var J7=sfb(SHe,'DynamicEObjectImpl',798);feb(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},LUd);_.Fb=function NUd(a){return this===a};_.Hb=function RUd(){return kFb(this)};_.ci=function MUd(a){this.d=a;this.b=wYd(a,'key');this.c=wYd(a,aIe)};_.Bi=function OUd(){var a;if(this.a==-1){a=Gvd(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.ld=function PUd(){return Gvd(this,this.b)};_.md=function QUd(){return Gvd(this,this.c)};_.Ci=function SUd(a){this.a=a};_.Di=function TUd(a){Xvd(this,this.b,a)};_.nd=function UUd(a){var b;b=Gvd(this,this.c);Xvd(this,this.c,a);return b};_.a=0;var H7=sfb(SHe,'DynamicEObjectImpl/BasicEMapEntry',1522);feb(1523,1,{114:1},VUd);_.Mk=function WUd(a){throw Adb(new jib)};_.li=function XUd(a){throw Adb(new jib)};_.mi=function YUd(a,b){throw Adb(new jib)};_.ni=function ZUd(a){throw Adb(new jib)};_.Nk=function $Ud(){throw Adb(new jib)};_.Ok=function _Ud(){return this.a};_.Pk=function aVd(){return this.b};_.Qk=function bVd(){return this.c};_.Rk=function cVd(){throw Adb(new jib)};_.Sk=function dVd(a){throw Adb(new jib)};_.Tk=function eVd(a){this.a=a};_.Uk=function fVd(a){this.b=a};_.Vk=function gVd(a){this.c=a};var I7=sfb(SHe,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1523);feb(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},pVd);_.Ah=function qVd(a){return iVd(this,a)};_.Lh=function rVd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new SVd((JTd(),FTd),C8,this)),this.b):(!this.b&&(this.b=new SVd((JTd(),FTd),C8,this)),dOd(this.b));case 3:return kVd(this);case 4:return !this.a&&(this.a=new XZd(r7,this,4)),this.a;case 5:return !this.c&&(this.c=new zie(r7,this,5)),this.c;}return zvd(this,a-AYd((JTd(),mTd)),vYd((d=RD(Ywd(this,16),29),!d?mTd:d),a),b,c)};_.Sh=function sVd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?iVd(this,c):this.Cb.Th(this,-1-e,null,c)));return hVd(this,RD(a,155),c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),mTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),mTd)),a,c)};_.Uh=function tVd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 2:return !this.b&&(this.b=new SVd((JTd(),FTd),C8,this)),BVd(this.b,a,c);case 3:return hVd(this,null,c);case 4:return !this.a&&(this.a=new XZd(r7,this,4)),rLd(this.a,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),mTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),mTd)),a,c)};_.Wh=function uVd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!kVd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return Avd(this,a-AYd((JTd(),mTd)),vYd((b=RD(Ywd(this,16),29),!b?mTd:b),a))};_.bi=function vVd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:mVd(this,WD(b));return;case 2:!this.b&&(this.b=new SVd((JTd(),FTd),C8,this));CVd(this.b,b);return;case 3:lVd(this,RD(b,155));return;case 4:!this.a&&(this.a=new XZd(r7,this,4));sLd(this.a);!this.a&&(this.a=new XZd(r7,this,4));YGd(this.a,RD(b,16));return;case 5:!this.c&&(this.c=new zie(r7,this,5));sLd(this.c);!this.c&&(this.c=new zie(r7,this,5));YGd(this.c,RD(b,16));return;}Bvd(this,a-AYd((JTd(),mTd)),vYd((c=RD(Ywd(this,16),29),!c?mTd:c),a),b)};_.ii=function wVd(){return JTd(),mTd};_.ki=function xVd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:nVd(this,null);return;case 2:!this.b&&(this.b=new SVd((JTd(),FTd),C8,this));this.b.c.$b();return;case 3:lVd(this,null);return;case 4:!this.a&&(this.a=new XZd(r7,this,4));sLd(this.a);return;case 5:!this.c&&(this.c=new zie(r7,this,5));sLd(this.c);return;}Cvd(this,a-AYd((JTd(),mTd)),vYd((b=RD(Ywd(this,16),29),!b?mTd:b),a))};_.Ib=function yVd(){return oVd(this)};_.d=null;var L7=sfb(SHe,'EAnnotationImpl',519);feb(141,721,_Je,DVd);_.Gi=function EVd(a,b){zVd(this,a,RD(b,44))};_.Wk=function FVd(a,b){return AVd(this,RD(a,44),b)};_.$i=function GVd(a){return RD(RD(this.c,71).$i(a),136)};_.Ii=function HVd(){return RD(this.c,71).Ii()};_.Ji=function IVd(){return RD(this.c,71).Ji()};_.Ki=function JVd(a){return RD(this.c,71).Ki(a)};_.Xk=function KVd(a,b){return BVd(this,a,b)};_.Fk=function LVd(a){return RD(this.c,79).Fk(a)};_.ak=function MVd(){};_.Qj=function NVd(){return RD(this.c,79).Qj()};_.ck=function OVd(a,b,c){var d;d=RD(BXd(this.b).wi().si(this.b),136);d.Ci(a);d.Di(b);d.nd(c);return d};_.dk=function PVd(){return new uje(this)};_.Wb=function QVd(a){CVd(this,a)};_.Gk=function RVd(){RD(this.c,79).Gk()};var Dbb=sfb(ZJe,'EcoreEMap',141);feb(165,141,_Je,SVd);_._j=function TVd(){var a,b,c,d,e,f;if(this.d==null){f=$C(D6,KJe,66,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=RD(c.Yj(),136);d=b.Bi();e=(d&lve)%f.length;a=f[e];!a&&(a=f[e]=new uje(this));a.Fc(b)}this.d=f}};var K7=sfb(SHe,'EAnnotationImpl/1',165);feb(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1});_.Lh=function eWd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),this.Jk()?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Uh=function fWd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function gWd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function hWd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:this.ui(WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:this.Zk(RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function iWd(){return JTd(),HTd};_.ki=function jWd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:this.ui(null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:this.Zk(1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.pi=function kWd(){WVd(this);this.Bb|=1};_.Hk=function lWd(){return WVd(this)};_.Ik=function mWd(){return this.t};_.Jk=function nWd(){var a;return a=this.t,a>1||a==-1};_.Si=function oWd(){return (this.Bb&512)!=0};_.Yk=function pWd(a,b){return ZVd(this,a,b)};_.Zk=function qWd(a){bWd(this,a)};_.Ib=function rWd(){return cWd(this)};_.s=0;_.t=1;var A9=sfb(SHe,'ETypedElementImpl',292);feb(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1});_.Ah=function IWd(a){return sWd(this,a)};_.Lh=function JWd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),this.Jk()?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return Geb(),(this.Bb&gwe)!=0?true:false;case 11:return Geb(),(this.Bb&cKe)!=0?true:false;case 12:return Geb(),(this.Bb&qxe)!=0?true:false;case 13:return this.j;case 14:return tWd(this);case 15:return Geb(),(this.Bb&bKe)!=0?true:false;case 16:return Geb(),(this.Bb&Ove)!=0?true:false;case 17:return uWd(this);}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Sh=function KWd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?sWd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,17,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),f.wk().zk(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Uh=function LWd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);case 17:return xvd(this,null,17,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function MWd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return (this.Bb&gwe)==0;case 11:return (this.Bb&cKe)!=0;case 12:return (this.Bb&qxe)!=0;case 13:return this.j!=null;case 14:return tWd(this)!=null;case 15:return (this.Bb&bKe)!=0;case 16:return (this.Bb&Ove)!=0;case 17:return !!uWd(this);}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function NWd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:CWd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:this.Zk(RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 10:xWd(this,Heb(TD(b)));return;case 11:FWd(this,Heb(TD(b)));return;case 12:DWd(this,Heb(TD(b)));return;case 13:yWd(this,WD(b));return;case 15:EWd(this,Heb(TD(b)));return;case 16:AWd(this,Heb(TD(b)));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function OWd(){return JTd(),GTd};_.ki=function PWd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),4);PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:this.Zk(1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 10:xWd(this,true);return;case 11:FWd(this,false);return;case 12:DWd(this,false);return;case 13:this.i=null;zWd(this,null);return;case 15:EWd(this,false);return;case 16:AWd(this,false);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.pi=function QWd(){Afe(Qee((lke(),jke),this));WVd(this);this.Bb|=1};_.pk=function RWd(){return this.f};_.ik=function SWd(){return tWd(this)};_.qk=function TWd(){return uWd(this)};_.uk=function UWd(){return null};_.$k=function VWd(){return this.k};_.Lj=function WWd(){return this.n};_.vk=function XWd(){return vWd(this)};_.wk=function YWd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=uWd(this);(c.i==null&&rYd(c),c.i).length;d=this.uk();!!d&&AYd(uWd(d));e=WVd(this);g=e.kk();a=!g?null:(g.i&1)!=0?g==xdb?QI:g==kE?bJ:g==jE?ZI:g==iE?VI:g==lE?eJ:g==wdb?lJ:g==gE?RI:SI:g;b=tWd(this);h=e.ik();Mje(this);(this.Bb&Ove)!=0&&(!!(f=Tee((lke(),jke),c))&&f!=this||!!(f=zfe(Qee(jke,this))))?(this.p=new Z6d(this,f)):this.Jk()?this.al()?!d?(this.Bb&bKe)!=0?!a?this.bl()?(this.p=new i7d(42,this)):(this.p=new i7d(0,this)):a==UK?(this.p=new g7d(50,O6,this)):this.bl()?(this.p=new g7d(43,a,this)):(this.p=new g7d(1,a,this)):!a?this.bl()?(this.p=new i7d(44,this)):(this.p=new i7d(2,this)):a==UK?(this.p=new g7d(41,O6,this)):this.bl()?(this.p=new g7d(45,a,this)):(this.p=new g7d(3,a,this)):(this.Bb&bKe)!=0?!a?this.bl()?(this.p=new j7d(46,this,d)):(this.p=new j7d(4,this,d)):this.bl()?(this.p=new h7d(47,a,this,d)):(this.p=new h7d(5,a,this,d)):!a?this.bl()?(this.p=new j7d(48,this,d)):(this.p=new j7d(6,this,d)):this.bl()?(this.p=new h7d(49,a,this,d)):(this.p=new h7d(7,a,this,d)):ZD(e,156)?a==Jbb?(this.p=new i7d(40,this)):(this.Bb&512)!=0?(this.Bb&bKe)!=0?!a?(this.p=new i7d(8,this)):(this.p=new g7d(9,a,this)):!a?(this.p=new i7d(10,this)):(this.p=new g7d(11,a,this)):(this.Bb&bKe)!=0?!a?(this.p=new i7d(12,this)):(this.p=new g7d(13,a,this)):!a?(this.p=new i7d(14,this)):(this.p=new g7d(15,a,this)):!d?this.bl()?(this.Bb&bKe)!=0?!a?(this.p=new i7d(16,this)):(this.p=new g7d(17,a,this)):!a?(this.p=new i7d(18,this)):(this.p=new g7d(19,a,this)):(this.Bb&bKe)!=0?!a?(this.p=new i7d(20,this)):(this.p=new g7d(21,a,this)):!a?(this.p=new i7d(22,this)):(this.p=new g7d(23,a,this)):(i=d.t,i>1||i==-1?this.bl()?(this.Bb&bKe)!=0?!a?(this.p=new j7d(24,this,d)):(this.p=new h7d(25,a,this,d)):!a?(this.p=new j7d(26,this,d)):(this.p=new h7d(27,a,this,d)):(this.Bb&bKe)!=0?!a?(this.p=new j7d(28,this,d)):(this.p=new h7d(29,a,this,d)):!a?(this.p=new j7d(30,this,d)):(this.p=new h7d(31,a,this,d)):this.bl()?(this.Bb&bKe)!=0?!a?(this.p=new j7d(32,this,d)):(this.p=new h7d(33,a,this,d)):!a?(this.p=new j7d(34,this,d)):(this.p=new h7d(35,a,this,d)):(this.Bb&bKe)!=0?!a?(this.p=new j7d(36,this,d)):(this.p=new h7d(37,a,this,d)):!a?(this.p=new j7d(38,this,d)):(this.p=new h7d(39,a,this,d))):this._k()?this.bl()?(this.p=new K7d(RD(e,29),this,d)):(this.p=new C7d(RD(e,29),this,d)):ZD(e,156)?a==Jbb?(this.p=new i7d(40,this)):(this.Bb&bKe)!=0?!a?(this.p=new J8d(RD(e,156),b,h,this)):(this.p=new L8d(b,h,this,(a8d(),g==kE?Y7d:g==xdb?T7d:g==lE?Z7d:g==jE?X7d:g==iE?W7d:g==wdb?_7d:g==gE?U7d:g==hE?V7d:$7d))):!a?(this.p=new C8d(RD(e,156),b,h,this)):(this.p=new E8d(b,h,this,(a8d(),g==kE?Y7d:g==xdb?T7d:g==lE?Z7d:g==jE?X7d:g==iE?W7d:g==wdb?_7d:g==gE?U7d:g==hE?V7d:$7d))):this.al()?!d?(this.Bb&bKe)!=0?this.bl()?(this.p=new d9d(RD(e,29),this)):(this.p=new b9d(RD(e,29),this)):this.bl()?(this.p=new _8d(RD(e,29),this)):(this.p=new Z8d(RD(e,29),this)):(this.Bb&bKe)!=0?this.bl()?(this.p=new l9d(RD(e,29),this,d)):(this.p=new j9d(RD(e,29),this,d)):this.bl()?(this.p=new h9d(RD(e,29),this,d)):(this.p=new f9d(RD(e,29),this,d)):this.bl()?!d?(this.Bb&bKe)!=0?(this.p=new p9d(RD(e,29),this)):(this.p=new n9d(RD(e,29),this)):(this.Bb&bKe)!=0?(this.p=new t9d(RD(e,29),this,d)):(this.p=new r9d(RD(e,29),this,d)):!d?(this.Bb&bKe)!=0?(this.p=new v9d(RD(e,29),this)):(this.p=new N8d(RD(e,29),this)):(this.Bb&bKe)!=0?(this.p=new z9d(RD(e,29),this,d)):(this.p=new x9d(RD(e,29),this,d))}return this.p};_.rk=function ZWd(){return (this.Bb&gwe)!=0};_._k=function $Wd(){return false};_.al=function _Wd(){return false};_.sk=function aXd(){return (this.Bb&Ove)!=0};_.xk=function bXd(){return wWd(this)};_.bl=function cXd(){return false};_.tk=function dXd(){return (this.Bb&bKe)!=0};_.cl=function eXd(a){this.k=a};_.ui=function fXd(a){CWd(this,a)};_.Ib=function gXd(){return GWd(this)};_.e=false;_.n=0;var s9=sfb(SHe,'EStructuralFeatureImpl',462);feb(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},mXd);_.Lh=function nXd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),jXd(this)?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return Geb(),(this.Bb&gwe)!=0?true:false;case 11:return Geb(),(this.Bb&cKe)!=0?true:false;case 12:return Geb(),(this.Bb&qxe)!=0?true:false;case 13:return this.j;case 14:return tWd(this);case 15:return Geb(),(this.Bb&bKe)!=0?true:false;case 16:return Geb(),(this.Bb&Ove)!=0?true:false;case 17:return uWd(this);case 18:return Geb(),(this.Bb&QHe)!=0?true:false;case 19:if(b)return iXd(this);return hXd(this);}return zvd(this,a-AYd((JTd(),nTd)),vYd((d=RD(Ywd(this,16),29),!d?nTd:d),a),b,c)};_.Wh=function oXd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return jXd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return (this.Bb&gwe)==0;case 11:return (this.Bb&cKe)!=0;case 12:return (this.Bb&qxe)!=0;case 13:return this.j!=null;case 14:return tWd(this)!=null;case 15:return (this.Bb&bKe)!=0;case 16:return (this.Bb&Ove)!=0;case 17:return !!uWd(this);case 18:return (this.Bb&QHe)!=0;case 19:return !!hXd(this);}return Avd(this,a-AYd((JTd(),nTd)),vYd((b=RD(Ywd(this,16),29),!b?nTd:b),a))};_.bi=function pXd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:CWd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:lXd(this,RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 10:xWd(this,Heb(TD(b)));return;case 11:FWd(this,Heb(TD(b)));return;case 12:DWd(this,Heb(TD(b)));return;case 13:yWd(this,WD(b));return;case 15:EWd(this,Heb(TD(b)));return;case 16:AWd(this,Heb(TD(b)));return;case 18:kXd(this,Heb(TD(b)));return;}Bvd(this,a-AYd((JTd(),nTd)),vYd((c=RD(Ywd(this,16),29),!c?nTd:c),a),b)};_.ii=function qXd(){return JTd(),nTd};_.ki=function rXd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),4);PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:this.b=0;bWd(this,1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 10:xWd(this,true);return;case 11:FWd(this,false);return;case 12:DWd(this,false);return;case 13:this.i=null;zWd(this,null);return;case 15:EWd(this,false);return;case 16:AWd(this,false);return;case 18:kXd(this,false);return;}Cvd(this,a-AYd((JTd(),nTd)),vYd((b=RD(Ywd(this,16),29),!b?nTd:b),a))};_.pi=function sXd(){iXd(this);Afe(Qee((lke(),jke),this));WVd(this);this.Bb|=1};_.Jk=function tXd(){return jXd(this)};_.Yk=function uXd(a,b){this.b=0;this.a=null;return ZVd(this,a,b)};_.Zk=function vXd(a){lXd(this,a)};_.Ib=function wXd(){var a;if((this.Db&64)!=0)return GWd(this);a=new Shb(GWd(this));a.a+=' (iD: ';Ohb(a,(this.Bb&QHe)!=0);a.a+=')';return a.a};_.b=0;var M7=sfb(SHe,'EAttributeImpl',331);feb(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1});_.dl=function NXd(a){return a.Dh()==this};_.Ah=function OXd(a){return AXd(this,a)};_.Bh=function PXd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_.Lh=function QXd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return DXd(this);case 4:return this.ik();case 5:return this.F;case 6:if(b)return BXd(this);return xXd(this);case 7:return !this.A&&(this.A=new iie(z7,this,7)),this.A;}return zvd(this,a-AYd(this.ii()),vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),a),b,c)};_.Sh=function RXd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?AXd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,6,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),f.wk().zk(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Uh=function SXd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 6:return xvd(this,null,6,c);case 7:return !this.A&&(this.A=new iie(z7,this,7)),rLd(this.A,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?this.ii():d),b),69),e.wk().Ak(this,Wwd(this),b-AYd(this.ii()),a,c)};_.Wh=function TXd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!DXd(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!xXd(this);case 7:return !!this.A&&this.A.i!=0;}return Avd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.bi=function UXd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:LXd(this,WD(b));return;case 2:IXd(this,WD(b));return;case 5:KXd(this,WD(b));return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);!this.A&&(this.A=new iie(z7,this,7));YGd(this.A,RD(b,16));return;}Bvd(this,a-AYd(this.ii()),vYd((c=RD(Ywd(this,16),29),!c?this.ii():c),a),b)};_.ii=function VXd(){return JTd(),pTd};_.ki=function WXd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,184)&&(RD(this.Cb,184).tb=null);PAd(this,null);return;case 2:yXd(this,null);zXd(this,this.D);return;case 5:KXd(this,null);return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);return;}Cvd(this,a-AYd(this.ii()),vYd((b=RD(Ywd(this,16),29),!b?this.ii():b),a))};_.hk=function XXd(){var a;return this.G==-1&&(this.G=(a=BXd(this),a?fZd(a.vi(),this):-1)),this.G};_.ik=function YXd(){return null};_.jk=function ZXd(){return BXd(this)};_.el=function $Xd(){return this.v};_.kk=function _Xd(){return DXd(this)};_.lk=function aYd(){return this.D!=null?this.D:this.B};_.mk=function bYd(){return this.F};_.fk=function cYd(a){return FXd(this,a)};_.fl=function dYd(a){this.v=a};_.gl=function eYd(a){GXd(this,a)};_.hl=function fYd(a){this.C=a};_.ui=function gYd(a){LXd(this,a)};_.Ib=function hYd(){return MXd(this)};_.C=null;_.D=null;_.G=-1;var c8=sfb(SHe,'EClassifierImpl',364);feb(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},HYd);_.dl=function IYd(a){return DYd(this,a.Dh())};_.Lh=function JYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return DXd(this);case 4:return null;case 5:return this.F;case 6:if(b)return BXd(this);return xXd(this);case 7:return !this.A&&(this.A=new iie(z7,this,7)),this.A;case 8:return Geb(),(this.Bb&256)!=0?true:false;case 9:return Geb(),(this.Bb&512)!=0?true:false;case 10:return zYd(this);case 11:return !this.q&&(this.q=new C5d(s7,this,11,10)),this.q;case 12:return mYd(this);case 13:return qYd(this);case 14:return qYd(this),this.r;case 15:return mYd(this),this.k;case 16:return nYd(this);case 17:return pYd(this);case 18:return rYd(this);case 19:return sYd(this);case 20:return mYd(this),this.o;case 21:return !this.s&&(this.s=new C5d(y7,this,21,17)),this.s;case 22:return tYd(this);case 23:return oYd(this);}return zvd(this,a-AYd((JTd(),oTd)),vYd((d=RD(Ywd(this,16),29),!d?oTd:d),a),b,c)};_.Sh=function KYd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?AXd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,6,c);case 11:return !this.q&&(this.q=new C5d(s7,this,11,10)),qLd(this.q,a,c);case 21:return !this.s&&(this.s=new C5d(y7,this,21,17)),qLd(this.s,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),oTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),oTd)),a,c)};_.Uh=function LYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 6:return xvd(this,null,6,c);case 7:return !this.A&&(this.A=new iie(z7,this,7)),rLd(this.A,a,c);case 11:return !this.q&&(this.q=new C5d(s7,this,11,10)),rLd(this.q,a,c);case 21:return !this.s&&(this.s=new C5d(y7,this,21,17)),rLd(this.s,a,c);case 22:return rLd(tYd(this),a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),oTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),oTd)),a,c)};_.Wh=function MYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!DXd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!xXd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&tYd(this.u.a).i!=0&&!(!!this.n&&d$d(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return mYd(this).i!=0;case 13:return qYd(this).i!=0;case 14:return qYd(this),this.r.i!=0;case 15:return mYd(this),this.k.i!=0;case 16:return nYd(this).i!=0;case 17:return pYd(this).i!=0;case 18:return rYd(this).i!=0;case 19:return sYd(this).i!=0;case 20:return mYd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&d$d(this.n);case 23:return oYd(this).i!=0;}return Avd(this,a-AYd((JTd(),oTd)),vYd((b=RD(Ywd(this,16),29),!b?oTd:b),a))};_.Zh=function NYd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:wYd(this,a);return b?b:_zd(this,a)};_.bi=function OYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:LXd(this,WD(b));return;case 2:IXd(this,WD(b));return;case 5:KXd(this,WD(b));return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);!this.A&&(this.A=new iie(z7,this,7));YGd(this.A,RD(b,16));return;case 8:EYd(this,Heb(TD(b)));return;case 9:FYd(this,Heb(TD(b)));return;case 10:VJd(zYd(this));YGd(zYd(this),RD(b,16));return;case 11:!this.q&&(this.q=new C5d(s7,this,11,10));sLd(this.q);!this.q&&(this.q=new C5d(s7,this,11,10));YGd(this.q,RD(b,16));return;case 21:!this.s&&(this.s=new C5d(y7,this,21,17));sLd(this.s);!this.s&&(this.s=new C5d(y7,this,21,17));YGd(this.s,RD(b,16));return;case 22:sLd(tYd(this));YGd(tYd(this),RD(b,16));return;}Bvd(this,a-AYd((JTd(),oTd)),vYd((c=RD(Ywd(this,16),29),!c?oTd:c),a),b)};_.ii=function PYd(){return JTd(),oTd};_.ki=function QYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,184)&&(RD(this.Cb,184).tb=null);PAd(this,null);return;case 2:yXd(this,null);zXd(this,this.D);return;case 5:KXd(this,null);return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);return;case 8:EYd(this,false);return;case 9:FYd(this,false);return;case 10:!!this.u&&VJd(this.u);return;case 11:!this.q&&(this.q=new C5d(s7,this,11,10));sLd(this.q);return;case 21:!this.s&&(this.s=new C5d(y7,this,21,17));sLd(this.s);return;case 22:!!this.n&&sLd(this.n);return;}Cvd(this,a-AYd((JTd(),oTd)),vYd((b=RD(Ywd(this,16),29),!b?oTd:b),a))};_.pi=function RYd(){var a,b;mYd(this);qYd(this);nYd(this);pYd(this);rYd(this);sYd(this);oYd(this);OHd(q$d(yYd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){QHd(this,b)}}return XHd(this,a)};_.Gk=function NZd(){sLd(this)};_.Zi=function OZd(a,b){return jZd(this,a,b)};var ybb=sfb(ZJe,'EcoreEList',632);feb(505,632,oKe,PZd);_.Li=function QZd(){return false};_.Lj=function RZd(){return this.c};_.Mj=function SZd(){return false};_.ol=function TZd(){return true};_.Si=function UZd(){return true};_.Wi=function VZd(a,b){return b};_.Yi=function WZd(){return false};_.c=0;var ibb=sfb(ZJe,'EObjectEList',505);feb(83,505,oKe,XZd);_.Mj=function YZd(){return true};_.ml=function ZZd(){return false};_.al=function $Zd(){return true};var cbb=sfb(ZJe,'EObjectContainmentEList',83);feb(555,83,oKe,_Zd);_.Ni=function a$d(){this.b=true};_.Qj=function b$d(){return this.b};_.Gk=function c$d(){var a;sLd(this);if(Mvd(this.e)){a=this.b;this.b=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var bbb=sfb(ZJe,'EObjectContainmentEList/Unsettable',555);feb(1161,555,oKe,h$d);_.Ti=function l$d(a,b){var c,d;return c=RD(uLd(this,a,b),89),Mvd(this.e)&&eZd(this,new c4d(this.a,7,(JTd(),qTd),sgb(b),(d=c.c,ZD(d,90)?RD(d,29):zTd),a)),c};_.Uj=function m$d(a,b){return e$d(this,RD(a,89),b)};_.Vj=function n$d(a,b){return f$d(this,RD(a,89),b)};_.Wj=function o$d(a,b,c){return g$d(this,RD(a,89),RD(b,89),c)};_.Ij=function i$d(a,b,c,d,e){switch(a){case 3:{return dZd(this,a,b,c,d,this.i>1)}case 5:{return dZd(this,a,b,c,d,this.i-RD(c,15).gc()>0)}default:{return new P3d(this.e,a,this.c,b,c,d,true)}}};_.Tj=function j$d(){return true};_.Qj=function k$d(){return d$d(this)};_.Gk=function p$d(){sLd(this)};var S7=sfb(SHe,'EClassImpl/1',1161);feb(1175,1174,EJe);_.dj=function t$d(a){var b,c,d,e,f,g,h;c=a.gj();if(c!=8){d=s$d(a);if(d==0){switch(c){case 1:case 9:{h=a.kj();if(h!=null){b=yYd(RD(h,482));!b.c&&(b.c=new X9d);dHd(b.c,a.jj())}g=a.ij();if(g!=null){e=RD(g,482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);WGd(b.c,RD(a.jj(),29))}}break}case 3:{g=a.ij();if(g!=null){e=RD(g,482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);WGd(b.c,RD(a.jj(),29))}}break}case 5:{g=a.ij();if(g!=null){for(f=RD(g,16).Kc();f.Ob();){e=RD(f.Pb(),482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);WGd(b.c,RD(a.jj(),29))}}}break}case 4:{h=a.kj();if(h!=null){e=RD(h,482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);dHd(b.c,a.jj())}}break}case 6:{h=a.kj();if(h!=null){for(f=RD(h,16).Kc();f.Ob();){e=RD(f.Pb(),482);if((e.Bb&1)==0){b=yYd(e);!b.c&&(b.c=new X9d);dHd(b.c,a.jj())}}}break}}}this.ql(d)}};_.ql=function u$d(a){r$d(this,a)};_.b=63;var u9=sfb(SHe,'ESuperAdapter',1175);feb(1176,1175,EJe,w$d);_.ql=function x$d(a){v$d(this,a)};var N7=sfb(SHe,'EClassImpl/10',1176);feb(1165,710,oKe);_.Ei=function y$d(a,b){return IHd(this,a,b)};_.Fi=function z$d(a){return JHd(this,a)};_.Gi=function A$d(a,b){KHd(this,a,b)};_.Hi=function B$d(a){LHd(this,a)};_.$i=function D$d(a){return NHd(this,a)};_.Xi=function L$d(a,b){return UHd(this,a,b)};_.Wk=function C$d(a,b){throw Adb(new jib)};_.Ii=function E$d(){return new yMd(this)};_.Ji=function F$d(){return new BMd(this)};_.Ki=function G$d(a){return ZGd(this,a)};_.Xk=function H$d(a,b){throw Adb(new jib)};_.Fk=function I$d(a){return this};_.Qj=function J$d(){return this.i!=0};_.Wb=function K$d(a){throw Adb(new jib)};_.Gk=function M$d(){throw Adb(new jib)};var xbb=sfb(ZJe,'EcoreEList/UnmodifiableEList',1165);feb(328,1165,oKe,N$d);_.Yi=function O$d(){return false};var wbb=sfb(ZJe,'EcoreEList/UnmodifiableEList/FastCompare',328);feb(1168,328,oKe,R$d);_.dd=function S$d(a){var b,c,d;if(ZD(a,179)){b=RD(a,179);c=b.Lj();if(c!=-1){for(d=this.i;c4){if(this.fk(a)){if(this.al()){d=RD(a,54);c=d.Eh();h=c==this.b&&(this.ml()?d.yh(d.Fh(),RD(vYd(Uwd(this.b),this.Lj()).Hk(),29).kk())==Z5d(RD(vYd(Uwd(this.b),this.Lj()),19)).n:-1-d.Fh()==this.Lj());if(this.nl()&&!h&&!c&&!!d.Jh()){for(e=0;e1||d==-1)}else{return false}};_.ml=function a0d(){var a,b,c;b=vYd(Uwd(this.b),this.Lj());if(ZD(b,102)){a=RD(b,19);c=Z5d(a);return !!c}else{return false}};_.nl=function b0d(){var a,b;b=vYd(Uwd(this.b),this.Lj());if(ZD(b,102)){a=RD(b,19);return (a.Bb&txe)!=0}else{return false}};_.dd=function c0d(a){var b,c,d,e;d=this.zj(a);if(d>=0)return d;if(this.ol()){for(c=0,e=this.Ej();c=0;--a){N_d(this,a,this.xj(a))}}return this.Fj()};_.Qc=function o0d(a){var b;if(this.nl()){for(b=this.Ej()-1;b>=0;--b){N_d(this,b,this.xj(b))}}return this.Gj(a)};_.Gk=function p0d(){VJd(this)};_.Zi=function q0d(a,b){return P_d(this,a,b)};var Pab=sfb(ZJe,'DelegatingEcoreEList',756);feb(1171,756,tKe,w0d);_.qj=function z0d(a,b){r0d(this,a,RD(b,29))};_.rj=function A0d(a){s0d(this,RD(a,29))};_.xj=function G0d(a){var b,c;return b=RD(QHd(tYd(this.a),a),89),c=b.c,ZD(c,90)?RD(c,29):(JTd(),zTd)};_.Cj=function L0d(a){var b,c;return b=RD(vLd(tYd(this.a),a),89),c=b.c,ZD(c,90)?RD(c,29):(JTd(),zTd)};_.Dj=function M0d(a,b){return u0d(this,a,RD(b,29))};_.Li=function x0d(){return false};_.Ij=function y0d(a,b,c,d,e){return null};_.sj=function B0d(){return new c1d(this)};_.tj=function C0d(){sLd(tYd(this.a))};_.uj=function D0d(a){return t0d(this,a)};_.vj=function E0d(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!t0d(this,b)){return false}}return true};_.wj=function F0d(a){var b,c,d;if(ZD(a,15)){d=RD(a,15);if(d.gc()==tYd(this.a).i){for(b=d.Kc(),c=new dMd(this);b.Ob();){if(dE(b.Pb())!==dE(bMd(c))){return false}}return true}}return false};_.yj=function H0d(){var a,b,c,d,e;c=1;for(b=new dMd(tYd(this.a));b.e!=b.i.gc();){a=RD(bMd(b),89);d=(e=a.c,ZD(e,90)?RD(e,29):(JTd(),zTd));c=31*c+(!d?0:kFb(d))}return c};_.zj=function I0d(a){var b,c,d,e;d=0;for(c=new dMd(tYd(this.a));c.e!=c.i.gc();){b=RD(bMd(c),89);if(dE(a)===dE((e=b.c,ZD(e,90)?RD(e,29):(JTd(),zTd)))){return d}++d}return -1};_.Aj=function J0d(){return tYd(this.a).i==0};_.Bj=function K0d(){return null};_.Ej=function N0d(){return tYd(this.a).i};_.Fj=function O0d(){var a,b,c,d,e,f;f=tYd(this.a).i;e=$C(jJ,rve,1,f,5,1);c=0;for(b=new dMd(tYd(this.a));b.e!=b.i.gc();){a=RD(bMd(b),89);e[c++]=(d=a.c,ZD(d,90)?RD(d,29):(JTd(),zTd))}return e};_.Gj=function P0d(a){var b,c,d,e,f,g,h;h=tYd(this.a).i;if(a.lengthh&&bD(a,h,null);d=0;for(c=new dMd(tYd(this.a));c.e!=c.i.gc();){b=RD(bMd(c),89);f=(g=b.c,ZD(g,90)?RD(g,29):(JTd(),zTd));bD(a,d++,f)}return a};_.Hj=function Q0d(){var a,b,c,d,e;e=new Qhb;e.a+='[';a=tYd(this.a);for(b=0,d=tYd(this.a).i;b>16,e>=0?AXd(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,6,c);case 9:return !this.a&&(this.a=new C5d(l7,this,9,5)),qLd(this.a,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),sTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),sTd)),a,c)};_.Uh=function D1d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 6:return xvd(this,null,6,c);case 7:return !this.A&&(this.A=new iie(z7,this,7)),rLd(this.A,a,c);case 9:return !this.a&&(this.a=new C5d(l7,this,9,5)),rLd(this.a,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),sTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),sTd)),a,c)};_.Wh=function E1d(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!DXd(this);case 4:return !!y1d(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!xXd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return Avd(this,a-AYd((JTd(),sTd)),vYd((b=RD(Ywd(this,16),29),!b?sTd:b),a))};_.bi=function F1d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:LXd(this,WD(b));return;case 2:IXd(this,WD(b));return;case 5:KXd(this,WD(b));return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);!this.A&&(this.A=new iie(z7,this,7));YGd(this.A,RD(b,16));return;case 8:j1d(this,Heb(TD(b)));return;case 9:!this.a&&(this.a=new C5d(l7,this,9,5));sLd(this.a);!this.a&&(this.a=new C5d(l7,this,9,5));YGd(this.a,RD(b,16));return;}Bvd(this,a-AYd((JTd(),sTd)),vYd((c=RD(Ywd(this,16),29),!c?sTd:c),a),b)};_.ii=function G1d(){return JTd(),sTd};_.ki=function H1d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,184)&&(RD(this.Cb,184).tb=null);PAd(this,null);return;case 2:yXd(this,null);zXd(this,this.D);return;case 5:KXd(this,null);return;case 7:!this.A&&(this.A=new iie(z7,this,7));sLd(this.A);return;case 8:j1d(this,true);return;case 9:!this.a&&(this.a=new C5d(l7,this,9,5));sLd(this.a);return;}Cvd(this,a-AYd((JTd(),sTd)),vYd((b=RD(Ywd(this,16),29),!b?sTd:b),a))};_.pi=function I1d(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?RD(this.Cb,685):null;}return zvd(this,a-AYd((JTd(),tTd)),vYd((d=RD(Ywd(this,16),29),!d?tTd:d),a),b,c)};_.Sh=function U1d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?M1d(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,5,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),tTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),tTd)),a,c)};_.Uh=function V1d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 5:return xvd(this,null,5,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),tTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),tTd)),a,c)};_.Wh=function W1d(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?RD(this.Cb,685):null);}return Avd(this,a-AYd((JTd(),tTd)),vYd((b=RD(Ywd(this,16),29),!b?tTd:b),a))};_.bi=function X1d(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:Q1d(this,RD(b,17).a);return;case 3:O1d(this,RD(b,2039));return;case 4:P1d(this,WD(b));return;}Bvd(this,a-AYd((JTd(),tTd)),vYd((c=RD(Ywd(this,16),29),!c?tTd:c),a),b)};_.ii=function Y1d(){return JTd(),tTd};_.ki=function Z1d(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:Q1d(this,0);return;case 3:O1d(this,null);return;case 4:P1d(this,null);return;}Cvd(this,a-AYd((JTd(),tTd)),vYd((b=RD(Ywd(this,16),29),!b?tTd:b),a))};_.Ib=function _1d(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var f8=sfb(SHe,'EEnumLiteralImpl',582);var h8=ufb(SHe,'EFactoryImpl/InternalEDateTimeFormat');feb(499,1,{2114:1},c2d);var g8=sfb(SHe,'EFactoryImpl/1ClientInternalEDateTimeFormat',499);feb(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},s2d);_.Ch=function t2d(a,b,c){var d;c=xvd(this,a,b,c);if(!!this.e&&ZD(a,179)){d=k2d(this,this.e);d!=this.c&&(c=o2d(this,d,c))}return c};_.Lh=function u2d(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new XZd(o7,this,1)),this.d;case 2:if(b)return i2d(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return h2d(this);return this.a;}return zvd(this,a-AYd((JTd(),vTd)),vYd((d=RD(Ywd(this,16),29),!d?vTd:d),a),b,c)};_.Uh=function v2d(a,b,c){var d,e;switch(b){case 0:return g2d(this,null,c);case 1:return !this.d&&(this.d=new XZd(o7,this,1)),rLd(this.d,a,c);case 3:return e2d(this,null,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),vTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),vTd)),a,c)};_.Wh=function w2d(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return Avd(this,a-AYd((JTd(),vTd)),vYd((b=RD(Ywd(this,16),29),!b?vTd:b),a))};_.bi=function x2d(a,b){var c;switch(a){case 0:q2d(this,RD(b,89));return;case 1:!this.d&&(this.d=new XZd(o7,this,1));sLd(this.d);!this.d&&(this.d=new XZd(o7,this,1));YGd(this.d,RD(b,16));return;case 3:n2d(this,RD(b,89));return;case 4:p2d(this,RD(b,850));return;case 5:l2d(this,RD(b,142));return;}Bvd(this,a-AYd((JTd(),vTd)),vYd((c=RD(Ywd(this,16),29),!c?vTd:c),a),b)};_.ii=function y2d(){return JTd(),vTd};_.ki=function z2d(a){var b;switch(a){case 0:q2d(this,null);return;case 1:!this.d&&(this.d=new XZd(o7,this,1));sLd(this.d);return;case 3:n2d(this,null);return;case 4:p2d(this,null);return;case 5:l2d(this,null);return;}Cvd(this,a-AYd((JTd(),vTd)),vYd((b=RD(Ywd(this,16),29),!b?vTd:b),a))};_.Ib=function A2d(){var a;a=new dib(awd(this));a.a+=' (expression: ';r2d(this,a);a.a+=')';return a.a};var d2d;var j8=sfb(SHe,'EGenericTypeImpl',248);feb(2067,2062,uKe);_.Gi=function C2d(a,b){B2d(this,a,b)};_.Wk=function D2d(a,b){B2d(this,this.gc(),a);return b};_.$i=function E2d(a){return ju(this.pj(),a)};_.Ii=function F2d(){return this.Ji()};_.pj=function G2d(){return new mee(this)};_.Ji=function H2d(){return this.Ki(0)};_.Ki=function I2d(a){return this.pj().fd(a)};_.Xk=function J2d(a,b){ze(this,a,true);return b};_.Ti=function K2d(a,b){var c,d;d=ku(this,b);c=this.fd(a);c.Rb(d);return d};_.Ui=function L2d(a,b){var c;ze(this,b,true);c=this.fd(a);c.Rb(b)};var Gab=sfb(ZJe,'AbstractSequentialInternalEList',2067);feb(496,2067,uKe,Q2d);_.$i=function R2d(a){return ju(this.pj(),a)};_.Ii=function S2d(){if(this.b==null){return j3d(),j3d(),i3d}return this.sl()};_.pj=function T2d(){return new Whe(this.a,this.b)};_.Ji=function U2d(){if(this.b==null){return j3d(),j3d(),i3d}return this.sl()};_.Ki=function V2d(a){var b,c;if(this.b==null){if(a<0||a>1){throw Adb(new veb(HJe+a+', size=0'))}return j3d(),j3d(),i3d}c=this.sl();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.pk()!=C4||b.Lj()!=0)&&(!this.vl()||this.b.Xh(b))){f=this.b.Nh(b,this.ul());this.f=(nke(),RD(b,69).xk());if(this.f||b.Jk()){if(this.ul()){d=RD(f,15);this.k=d}else{d=RD(f,71);this.k=this.j=d}if(ZD(this.k,59)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.fd(this.k.gc()):this.j.Ki(this.k.gc())}if(!this.p?n3d(this):o3d(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.$i(--this.n):this.p.Ub();if(this.f){a=RD(e,76);a.Lk();c=a.md();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.$i(--this.n):this.p.Ub();if(this.f){a=RD(e,76);a.Lk();c=a.md();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function v3d(){return k3d(this)};_.Tb=function w3d(){return this.a};_.Ub=function x3d(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw Adb(new Dvb)}};_.Vb=function y3d(){return this.a-1};_.Qb=function z3d(){throw Adb(new jib)};_.ul=function A3d(){return false};_.Wb=function B3d(a){throw Adb(new jib)};_.vl=function C3d(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var i3d;var Uab=sfb(ZJe,'EContentsEList/FeatureIteratorImpl',287);feb(711,287,vKe,D3d);_.ul=function E3d(){return true};var Vab=sfb(ZJe,'EContentsEList/ResolvingFeatureIteratorImpl',711);feb(1178,711,vKe,F3d);_.vl=function G3d(){return false};var l8=sfb(SHe,'ENamedElementImpl/1/1',1178);feb(1179,287,vKe,H3d);_.vl=function I3d(){return false};var m8=sfb(SHe,'ENamedElementImpl/1/2',1179);feb(39,152,GJe,L3d,M3d,N3d,O3d,P3d,Q3d,R3d,S3d,T3d,U3d,V3d,W3d,X3d,Y3d,Z3d,$3d,_3d,a4d,b4d,c4d,d4d,e4d,f4d,g4d,h4d);_.Kj=function i4d(){return K3d(this)};_.Rj=function j4d(){var a;a=K3d(this);if(a){return a.ik()}return null};_.hj=function k4d(a){this.b==-1&&!!this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk()));return this.c.yh(this.b,a)};_.jj=function l4d(){return this.c};_.Sj=function m4d(){var a;a=K3d(this);if(a){return a.tk()}return false};_.b=-1;var p8=sfb(SHe,'ENotificationImpl',39);feb(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},q4d);_.Ah=function r4d(a){return n4d(this,a)};_.Lh=function s4d(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),f=this.t,f>1||f==-1?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?RD(this.Cb,29):null;case 11:return !this.d&&(this.d=new iie(z7,this,11)),this.d;case 12:return !this.c&&(this.c=new C5d(u7,this,12,10)),this.c;case 13:return !this.a&&(this.a=new F4d(this,this)),this.a;case 14:return o4d(this);}return zvd(this,a-AYd((JTd(),ATd)),vYd((d=RD(Ywd(this,16),29),!d?ATd:d),a),b,c)};_.Sh=function t4d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?n4d(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,10,c);case 12:return !this.c&&(this.c=new C5d(u7,this,12,10)),qLd(this.c,a,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),ATd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),ATd)),a,c)};_.Uh=function u4d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);case 10:return xvd(this,null,10,c);case 11:return !this.d&&(this.d=new iie(z7,this,11)),rLd(this.d,a,c);case 12:return !this.c&&(this.c=new C5d(u7,this,12,10)),rLd(this.c,a,c);case 14:return rLd(o4d(this),a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),ATd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),ATd)),a,c)};_.Wh=function v4d(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return !!(this.Db>>16==10?RD(this.Cb,29):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&o4d(this.a.a).i!=0&&!(!!this.b&&o5d(this.b));case 14:return !!this.b&&o5d(this.b);}return Avd(this,a-AYd((JTd(),ATd)),vYd((b=RD(Ywd(this,16),29),!b?ATd:b),a))};_.bi=function w4d(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:bWd(this,RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 11:!this.d&&(this.d=new iie(z7,this,11));sLd(this.d);!this.d&&(this.d=new iie(z7,this,11));YGd(this.d,RD(b,16));return;case 12:!this.c&&(this.c=new C5d(u7,this,12,10));sLd(this.c);!this.c&&(this.c=new C5d(u7,this,12,10));YGd(this.c,RD(b,16));return;case 13:!this.a&&(this.a=new F4d(this,this));VJd(this.a);!this.a&&(this.a=new F4d(this,this));YGd(this.a,RD(b,16));return;case 14:sLd(o4d(this));YGd(o4d(this),RD(b,16));return;}Bvd(this,a-AYd((JTd(),ATd)),vYd((c=RD(Ywd(this,16),29),!c?ATd:c),a),b)};_.ii=function x4d(){return JTd(),ATd};_.ki=function y4d(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:bWd(this,1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 11:!this.d&&(this.d=new iie(z7,this,11));sLd(this.d);return;case 12:!this.c&&(this.c=new C5d(u7,this,12,10));sLd(this.c);return;case 13:!!this.a&&VJd(this.a);return;case 14:!!this.b&&sLd(this.b);return;}Cvd(this,a-AYd((JTd(),ATd)),vYd((b=RD(Ywd(this,16),29),!b?ATd:b),a))};_.pi=function z4d(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&bD(a,h,null);d=0;for(c=new dMd(o4d(this.a));c.e!=c.i.gc();){b=RD(bMd(c),89);f=(g=b.c,g?g:(JTd(),wTd));bD(a,d++,f)}return a};_.Hj=function Z4d(){var a,b,c,d,e;e=new Qhb;e.a+='[';a=o4d(this.a);for(b=0,d=o4d(this.a).i;b1)}case 5:{return dZd(this,a,b,c,d,this.i-RD(c,15).gc()>0)}default:{return new P3d(this.e,a,this.c,b,c,d,true)}}};_.Tj=function u5d(){return true};_.Qj=function v5d(){return o5d(this)};_.Gk=function A5d(){sLd(this)};var t8=sfb(SHe,'EOperationImpl/2',1377);feb(507,1,{2037:1,507:1},B5d);var v8=sfb(SHe,'EPackageImpl/1',507);feb(14,83,oKe,C5d);_.il=function D5d(){return this.d};_.jl=function E5d(){return this.b};_.ml=function F5d(){return true};_.b=0;var gbb=sfb(ZJe,'EObjectContainmentWithInverseEList',14);feb(365,14,oKe,G5d);_.nl=function H5d(){return true};_.Wi=function I5d(a,b){return gZd(this,a,RD(b,58))};var dbb=sfb(ZJe,'EObjectContainmentWithInverseEList/Resolving',365);feb(308,365,oKe,J5d);_.Ni=function K5d(){this.a.tb=null};var w8=sfb(SHe,'EPackageImpl/2',308);feb(1278,1,{},L5d);var x8=sfb(SHe,'EPackageImpl/3',1278);feb(733,45,Hxe,O5d);_._b=function P5d(a){return bE(a)?Yjb(this,a):!!qtb(this.f,a)};var z8=sfb(SHe,'EPackageRegistryImpl',733);feb(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},R5d);_.Ah=function S5d(a){return Q5d(this,a)};_.Lh=function T5d(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),f=this.t,f>1||f==-1?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?RD(this.Cb,62):null;}return zvd(this,a-AYd((JTd(),DTd)),vYd((d=RD(Ywd(this,16),29),!d?DTd:d),a),b,c)};_.Sh=function U5d(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),qLd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Q5d(this,c):this.Cb.Th(this,-1-e,null,c)));return xvd(this,a,10,c);}return f=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),DTd):d),b),69),f.wk().zk(this,Wwd(this),b-AYd((JTd(),DTd)),a,c)};_.Uh=function V5d(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 9:return VVd(this,c);case 10:return xvd(this,null,10,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),DTd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),DTd)),a,c)};_.Wh=function W5d(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return !!(this.Db>>16==10?RD(this.Cb,62):null);}return Avd(this,a-AYd((JTd(),DTd)),vYd((b=RD(Ywd(this,16),29),!b?DTd:b),a))};_.ii=function X5d(){return JTd(),DTd};var A8=sfb(SHe,'EParameterImpl',518);feb(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},d6d);_.Lh=function e6d(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Geb(),(this.Bb&256)!=0?true:false;case 3:return Geb(),(this.Bb&512)!=0?true:false;case 4:return sgb(this.s);case 5:return sgb(this.t);case 6:return Geb(),g=this.t,g>1||g==-1?true:false;case 7:return Geb(),e=this.s,e>=1?true:false;case 8:if(b)return WVd(this);return this.r;case 9:return this.q;case 10:return Geb(),(this.Bb&gwe)!=0?true:false;case 11:return Geb(),(this.Bb&cKe)!=0?true:false;case 12:return Geb(),(this.Bb&qxe)!=0?true:false;case 13:return this.j;case 14:return tWd(this);case 15:return Geb(),(this.Bb&bKe)!=0?true:false;case 16:return Geb(),(this.Bb&Ove)!=0?true:false;case 17:return uWd(this);case 18:return Geb(),(this.Bb&QHe)!=0?true:false;case 19:return Geb(),f=Z5d(this),!!f&&(f.Bb&QHe)!=0?true:false;case 20:return Geb(),(this.Bb&txe)!=0?true:false;case 21:if(b)return Z5d(this);return this.b;case 22:if(b)return $5d(this);return Y5d(this);case 23:return !this.a&&(this.a=new zie(g7,this,23)),this.a;}return zvd(this,a-AYd((JTd(),ETd)),vYd((d=RD(Ywd(this,16),29),!d?ETd:d),a),b,c)};_.Wh=function f6d(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&j2d(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&j2d(this.q).i==0);case 10:return (this.Bb&gwe)==0;case 11:return (this.Bb&cKe)!=0;case 12:return (this.Bb&qxe)!=0;case 13:return this.j!=null;case 14:return tWd(this)!=null;case 15:return (this.Bb&bKe)!=0;case 16:return (this.Bb&Ove)!=0;case 17:return !!uWd(this);case 18:return (this.Bb&QHe)!=0;case 19:return d=Z5d(this),!!d&&(d.Bb&QHe)!=0;case 20:return (this.Bb&txe)==0;case 21:return !!this.b;case 22:return !!Y5d(this);case 23:return !!this.a&&this.a.i!=0;}return Avd(this,a-AYd((JTd(),ETd)),vYd((b=RD(Ywd(this,16),29),!b?ETd:b),a))};_.bi=function g6d(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:CWd(this,WD(b));return;case 2:_Vd(this,Heb(TD(b)));return;case 3:aWd(this,Heb(TD(b)));return;case 4:$Vd(this,RD(b,17).a);return;case 5:bWd(this,RD(b,17).a);return;case 8:YVd(this,RD(b,142));return;case 9:d=XVd(this,RD(b,89),null);!!d&&d.oj();return;case 10:xWd(this,Heb(TD(b)));return;case 11:FWd(this,Heb(TD(b)));return;case 12:DWd(this,Heb(TD(b)));return;case 13:yWd(this,WD(b));return;case 15:EWd(this,Heb(TD(b)));return;case 16:AWd(this,Heb(TD(b)));return;case 18:_5d(this,Heb(TD(b)));return;case 20:c6d(this,Heb(TD(b)));return;case 21:b6d(this,RD(b,19));return;case 23:!this.a&&(this.a=new zie(g7,this,23));sLd(this.a);!this.a&&(this.a=new zie(g7,this,23));YGd(this.a,RD(b,16));return;}Bvd(this,a-AYd((JTd(),ETd)),vYd((c=RD(Ywd(this,16),29),!c?ETd:c),a),b)};_.ii=function h6d(){return JTd(),ETd};_.ki=function i6d(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),4);PAd(this,null);return;case 2:_Vd(this,true);return;case 3:aWd(this,true);return;case 4:$Vd(this,0);return;case 5:bWd(this,1);return;case 8:YVd(this,null);return;case 9:c=XVd(this,null,null);!!c&&c.oj();return;case 10:xWd(this,true);return;case 11:FWd(this,false);return;case 12:DWd(this,false);return;case 13:this.i=null;zWd(this,null);return;case 15:EWd(this,false);return;case 16:AWd(this,false);return;case 18:a6d(this,false);ZD(this.Cb,90)&&v$d(yYd(RD(this.Cb,90)),2);return;case 20:c6d(this,true);return;case 21:b6d(this,null);return;case 23:!this.a&&(this.a=new zie(g7,this,23));sLd(this.a);return;}Cvd(this,a-AYd((JTd(),ETd)),vYd((b=RD(Ywd(this,16),29),!b?ETd:b),a))};_.pi=function j6d(){$5d(this);Afe(Qee((lke(),jke),this));WVd(this);this.Bb|=1};_.uk=function k6d(){return Z5d(this)};_._k=function l6d(){var a;return a=Z5d(this),!!a&&(a.Bb&QHe)!=0};_.al=function m6d(){return (this.Bb&QHe)!=0};_.bl=function n6d(){return (this.Bb&txe)!=0};_.Yk=function o6d(a,b){this.c=null;return ZVd(this,a,b)};_.Ib=function p6d(){var a;if((this.Db&64)!=0)return GWd(this);a=new Shb(GWd(this));a.a+=' (containment: ';Ohb(a,(this.Bb&QHe)!=0);a.a+=', resolveProxies: ';Ohb(a,(this.Bb&txe)!=0);a.a+=')';return a.a};var B8=sfb(SHe,'EReferenceImpl',102);feb(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},v6d);_.Fb=function B6d(a){return this===a};_.ld=function D6d(){return this.b};_.md=function E6d(){return this.c};_.Hb=function F6d(){return kFb(this)};_.Di=function H6d(a){q6d(this,WD(a))};_.nd=function I6d(a){return u6d(this,WD(a))};_.Lh=function w6d(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return zvd(this,a-AYd((JTd(),FTd)),vYd((d=RD(Ywd(this,16),29),!d?FTd:d),a),b,c)};_.Wh=function x6d(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return Avd(this,a-AYd((JTd(),FTd)),vYd((b=RD(Ywd(this,16),29),!b?FTd:b),a))};_.bi=function y6d(a,b){var c;switch(a){case 0:r6d(this,WD(b));return;case 1:t6d(this,WD(b));return;}Bvd(this,a-AYd((JTd(),FTd)),vYd((c=RD(Ywd(this,16),29),!c?FTd:c),a),b)};_.ii=function z6d(){return JTd(),FTd};_.ki=function A6d(a){var b;switch(a){case 0:s6d(this,null);return;case 1:t6d(this,null);return;}Cvd(this,a-AYd((JTd(),FTd)),vYd((b=RD(Ywd(this,16),29),!b?FTd:b),a))};_.Bi=function C6d(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:ohb(a)}return this.a};_.Ci=function G6d(a){this.a=a};_.Ib=function J6d(){var a;if((this.Db&64)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (key: ';Nhb(a,this.b);a.a+=', value: ';Nhb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var C8=sfb(SHe,'EStringToStringMapEntryImpl',561);var Ibb=ufb(ZJe,'FeatureMap/Entry/Internal');feb(576,1,wKe);_.xl=function M6d(a){return this.yl(RD(a,54))};_.yl=function N6d(a){return this.xl(a)};_.Fb=function O6d(a){var b,c;if(this===a){return true}else if(ZD(a,76)){b=RD(a,76);if(b.Lk()==this.c){c=this.md();return c==null?b.md()==null:pb(c,b.md())}else{return false}}else{return false}};_.Lk=function P6d(){return this.c};_.Hb=function Q6d(){var a;a=this.md();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function R6d(){var a,b;a=this.c;b=BXd(a.qk()).yi();a.xe();return (b!=null&&b.length!=0?b+':'+a.xe():a.xe())+'='+this.md()};var D8=sfb(SHe,'EStructuralFeatureImpl/BasicFeatureMapEntry',576);feb(791,576,wKe,U6d);_.yl=function V6d(a){return new U6d(this.c,a)};_.md=function W6d(){return this.a};_.zl=function X6d(a,b,c){return S6d(this,a,this.a,b,c)};_.Al=function Y6d(a,b,c){return T6d(this,a,this.a,b,c)};var E8=sfb(SHe,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',791);feb(1350,1,{},Z6d);_.yk=function $6d(a,b,c,d,e){var f;f=RD(Evd(a,this.b),220);return f.Yl(this.a).Fk(d)};_.zk=function _6d(a,b,c,d,e){var f;f=RD(Evd(a,this.b),220);return f.Pl(this.a,d,e)};_.Ak=function a7d(a,b,c,d,e){var f;f=RD(Evd(a,this.b),220);return f.Ql(this.a,d,e)};_.Bk=function b7d(a,b,c){var d;d=RD(Evd(a,this.b),220);return d.Yl(this.a).Qj()};_.Ck=function c7d(a,b,c,d){var e;e=RD(Evd(a,this.b),220);e.Yl(this.a).Wb(d)};_.Dk=function d7d(a,b,c){return RD(Evd(a,this.b),220).Yl(this.a)};_.Ek=function e7d(a,b,c){var d;d=RD(Evd(a,this.b),220);d.Yl(this.a).Gk()};var F8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1350);feb(91,1,{},g7d,h7d,i7d,j7d);_.yk=function k7d(a,b,c,d,e){var f;f=b.li(c);f==null&&b.mi(c,f=f7d(this,a));if(!e){switch(this.e){case 50:case 41:return RD(f,597).bk();case 40:return RD(f,220).Vl();}}return f};_.zk=function l7d(a,b,c,d,e){var f,g;g=b.li(c);g==null&&b.mi(c,g=f7d(this,a));f=RD(g,71).Wk(d,e);return f};_.Ak=function m7d(a,b,c,d,e){var f;f=b.li(c);f!=null&&(e=RD(f,71).Xk(d,e));return e};_.Bk=function n7d(a,b,c){var d;d=b.li(c);return d!=null&&RD(d,79).Qj()};_.Ck=function o7d(a,b,c,d){var e;e=RD(b.li(c),79);!e&&b.mi(c,e=f7d(this,a));e.Wb(d)};_.Dk=function p7d(a,b,c){var d,e;e=b.li(c);e==null&&b.mi(c,e=f7d(this,a));if(ZD(e,79)){return RD(e,79)}else{d=RD(b.li(c),15);return new I9d(d)}};_.Ek=function q7d(a,b,c){var d;d=RD(b.li(c),79);!d&&b.mi(c,d=f7d(this,a));d.Gk()};_.b=0;_.e=0;var G8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateMany',91);feb(512,1,{});_.zk=function u7d(a,b,c,d,e){throw Adb(new jib)};_.Ak=function v7d(a,b,c,d,e){throw Adb(new jib)};_.Dk=function w7d(a,b,c){return new x7d(this,a,b,c)};var r7d;var n9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingle',512);feb(1367,1,$Je,x7d);_.Fk=function y7d(a){return this.a.yk(this.c,this.d,this.b,a,true)};_.Qj=function z7d(){return this.a.Bk(this.c,this.d,this.b)};_.Wb=function A7d(a){this.a.Ck(this.c,this.d,this.b,a)};_.Gk=function B7d(){this.a.Ek(this.c,this.d,this.b)};_.b=0;var H8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1367);feb(784,512,{},C7d);_.yk=function D7d(a,b,c,d,e){return jwd(a,a.Ph(),a.Fh())==this.b?this.bl()&&d?yvd(a):a.Ph():null};_.zk=function E7d(a,b,c,d,e){var f,g;!!a.Ph()&&(e=(f=a.Fh(),f>=0?a.Ah(e):a.Ph().Th(a,-1-f,null,e)));g=BYd(a.Dh(),this.e);return a.Ch(d,g,e)};_.Ak=function F7d(a,b,c,d,e){var f;f=BYd(a.Dh(),this.e);return a.Ch(null,f,e)};_.Bk=function G7d(a,b,c){var d;d=BYd(a.Dh(),this.e);return !!a.Ph()&&a.Fh()==d};_.Ck=function H7d(a,b,c,d){var e,f,g,h,i;if(d!=null&&!FXd(this.a,d)){throw Adb(new Ifb(xKe+(ZD(d,58)?GYd(RD(d,58).Dh()):ofb(rb(d)))+yKe+this.a+"'"))}e=a.Ph();g=BYd(a.Dh(),this.e);if(dE(d)!==dE(e)||a.Fh()!=g&&d!=null){if(Oje(a,RD(d,58)))throw Adb(new agb(UHe+a.Ib()));i=null;!!e&&(i=(f=a.Fh(),f>=0?a.Ah(i):a.Ph().Th(a,-1-f,null,i)));h=RD(d,54);!!h&&(i=h.Rh(a,BYd(h.Dh(),this.b),null,i));i=a.Ch(h,g,i);!!i&&i.oj()}else{a.vh()&&a.wh()&&qvd(a,new N3d(a,1,g,d,d))}};_.Ek=function I7d(a,b,c){var d,e,f,g;d=a.Ph();if(d){g=(e=a.Fh(),e>=0?a.Ah(null):a.Ph().Th(a,-1-e,null,null));f=BYd(a.Dh(),this.e);g=a.Ch(null,f,g);!!g&&g.oj()}else{a.vh()&&a.wh()&&qvd(a,new b4d(a,1,this.e,null,null))}};_.bl=function J7d(){return false};var J8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',784);feb(1351,784,{},K7d);_.bl=function L7d(){return true};var I8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1351);feb(574,512,{});_.yk=function O7d(a,b,c,d,e){var f;return f=b.li(c),f==null?this.b:dE(f)===dE(r7d)?null:f};_.Bk=function P7d(a,b,c){var d;d=b.li(c);return d!=null&&(dE(d)===dE(r7d)||!pb(d,this.b))};_.Ck=function Q7d(a,b,c,d){var e,f;if(a.vh()&&a.wh()){e=(f=b.li(c),f==null?this.b:dE(f)===dE(r7d)?null:f);if(d==null){if(this.c!=null){b.mi(c,null);d=this.b}else this.b!=null?b.mi(c,r7d):b.mi(c,null)}else{this.Bl(d);b.mi(c,d)}qvd(a,this.d.Cl(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.mi(c,null):this.b!=null?b.mi(c,r7d):b.mi(c,null)}else{this.Bl(d);b.mi(c,d)}}};_.Ek=function R7d(a,b,c){var d,e;if(a.vh()&&a.wh()){d=(e=b.li(c),e==null?this.b:dE(e)===dE(r7d)?null:e);b.ni(c);qvd(a,this.d.Cl(a,1,this.e,d,this.b))}else{b.ni(c)}};_.Bl=function S7d(a){throw Adb(new Hfb)};var Y8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',574);feb(zKe,1,{},b8d);_.Cl=function c8d(a,b,c,d,e){return new b4d(a,b,c,d,e)};_.Dl=function d8d(a,b,c,d,e,f){return new d4d(a,b,c,d,e,f)};var T7d,U7d,V7d,W7d,X7d,Y7d,Z7d,$7d,_7d;var S8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',zKe);feb(1368,zKe,{},e8d);_.Cl=function f8d(a,b,c,d,e){return new g4d(a,b,c,Heb(TD(d)),Heb(TD(e)))};_.Dl=function g8d(a,b,c,d,e,f){return new h4d(a,b,c,Heb(TD(d)),Heb(TD(e)),f)};var K8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1368);feb(1369,zKe,{},h8d);_.Cl=function i8d(a,b,c,d,e){return new R3d(a,b,c,RD(d,222).a,RD(e,222).a)};_.Dl=function j8d(a,b,c,d,e,f){return new S3d(a,b,c,RD(d,222).a,RD(e,222).a,f)};var L8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1369);feb(1370,zKe,{},k8d);_.Cl=function l8d(a,b,c,d,e){return new T3d(a,b,c,RD(d,180).a,RD(e,180).a)};_.Dl=function m8d(a,b,c,d,e,f){return new U3d(a,b,c,RD(d,180).a,RD(e,180).a,f)};var M8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1370);feb(1371,zKe,{},n8d);_.Cl=function o8d(a,b,c,d,e){return new V3d(a,b,c,Kfb(UD(d)),Kfb(UD(e)))};_.Dl=function p8d(a,b,c,d,e,f){return new W3d(a,b,c,Kfb(UD(d)),Kfb(UD(e)),f)};var N8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1371);feb(1372,zKe,{},q8d);_.Cl=function r8d(a,b,c,d,e){return new X3d(a,b,c,RD(d,161).a,RD(e,161).a)};_.Dl=function s8d(a,b,c,d,e,f){return new Y3d(a,b,c,RD(d,161).a,RD(e,161).a,f)};var O8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1372);feb(1373,zKe,{},t8d);_.Cl=function u8d(a,b,c,d,e){return new Z3d(a,b,c,RD(d,17).a,RD(e,17).a)};_.Dl=function v8d(a,b,c,d,e,f){return new $3d(a,b,c,RD(d,17).a,RD(e,17).a,f)};var P8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1373);feb(1374,zKe,{},w8d);_.Cl=function x8d(a,b,c,d,e){return new _3d(a,b,c,RD(d,168).a,RD(e,168).a)};_.Dl=function y8d(a,b,c,d,e,f){return new a4d(a,b,c,RD(d,168).a,RD(e,168).a,f)};var Q8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1374);feb(1375,zKe,{},z8d);_.Cl=function A8d(a,b,c,d,e){return new e4d(a,b,c,RD(d,191).a,RD(e,191).a)};_.Dl=function B8d(a,b,c,d,e,f){return new f4d(a,b,c,RD(d,191).a,RD(e,191).a,f)};var R8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1375);feb(1353,574,{},C8d);_.Bl=function D8d(a){if(!this.a.fk(a)){throw Adb(new Ifb(xKe+rb(a)+yKe+this.a+"'"))}};var T8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1353);feb(1354,574,{},E8d);_.Bl=function F8d(a){};var U8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1354);feb(785,574,{});_.Bk=function G8d(a,b,c){var d;d=b.li(c);return d!=null};_.Ck=function H8d(a,b,c,d){var e,f;if(a.vh()&&a.wh()){e=true;f=b.li(c);if(f==null){e=false;f=this.b}else dE(f)===dE(r7d)&&(f=null);if(d==null){if(this.c!=null){b.mi(c,null);d=this.b}else{b.mi(c,r7d)}}else{this.Bl(d);b.mi(c,d)}qvd(a,this.d.Dl(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.mi(c,null):b.mi(c,r7d)}else{this.Bl(d);b.mi(c,d)}}};_.Ek=function I8d(a,b,c){var d,e;if(a.vh()&&a.wh()){d=true;e=b.li(c);if(e==null){d=false;e=this.b}else dE(e)===dE(r7d)&&(e=null);b.ni(c);qvd(a,this.d.Dl(a,2,this.e,e,this.b,d))}else{b.ni(c)}};var X8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',785);feb(1355,785,{},J8d);_.Bl=function K8d(a){if(!this.a.fk(a)){throw Adb(new Ifb(xKe+rb(a)+yKe+this.a+"'"))}};var V8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1355);feb(1356,785,{},L8d);_.Bl=function M8d(a){};var W8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1356);feb(410,512,{},N8d);_.yk=function P8d(a,b,c,d,e){var f,g,h,i,j;j=b.li(c);if(this.tk()&&dE(j)===dE(r7d)){return null}else if(this.bl()&&d&&j!=null){h=RD(j,54);if(h.Vh()){i=Vvd(a,h);if(h!=i){if(!FXd(this.a,i)){throw Adb(new Ifb(xKe+rb(i)+yKe+this.a+"'"))}b.mi(c,j=i);if(this.al()){f=RD(i,54);g=h.Th(a,!this.b?-1-BYd(a.Dh(),this.e):BYd(h.Dh(),this.b),null,null);!f.Ph()&&(g=f.Rh(a,!this.b?-1-BYd(a.Dh(),this.e):BYd(f.Dh(),this.b),null,g));!!g&&g.oj()}a.vh()&&a.wh()&&qvd(a,new b4d(a,9,this.e,h,i))}}return j}else{return j}};_.zk=function Q8d(a,b,c,d,e){var f,g;g=b.li(c);dE(g)===dE(r7d)&&(g=null);b.mi(c,d);if(this.Mj()){if(dE(g)!==dE(d)&&g!=null){f=RD(g,54);e=f.Th(a,BYd(f.Dh(),this.b),null,e)}}else this.al()&&g!=null&&(e=RD(g,54).Th(a,-1-BYd(a.Dh(),this.e),null,e));if(a.vh()&&a.wh()){!e&&(e=new gLd(4));e.nj(new b4d(a,1,this.e,g,d))}return e};_.Ak=function R8d(a,b,c,d,e){var f;f=b.li(c);dE(f)===dE(r7d)&&(f=null);b.ni(c);if(a.vh()&&a.wh()){!e&&(e=new gLd(4));this.tk()?e.nj(new b4d(a,2,this.e,f,null)):e.nj(new b4d(a,1,this.e,f,null))}return e};_.Bk=function S8d(a,b,c){var d;d=b.li(c);return d!=null};_.Ck=function T8d(a,b,c,d){var e,f,g,h,i;if(d!=null&&!FXd(this.a,d)){throw Adb(new Ifb(xKe+(ZD(d,58)?GYd(RD(d,58).Dh()):ofb(rb(d)))+yKe+this.a+"'"))}i=b.li(c);h=i!=null;this.tk()&&dE(i)===dE(r7d)&&(i=null);g=null;if(this.Mj()){if(dE(i)!==dE(d)){if(i!=null){e=RD(i,54);g=e.Th(a,BYd(e.Dh(),this.b),null,g)}if(d!=null){e=RD(d,54);g=e.Rh(a,BYd(e.Dh(),this.b),null,g)}}}else if(this.al()){if(dE(i)!==dE(d)){i!=null&&(g=RD(i,54).Th(a,-1-BYd(a.Dh(),this.e),null,g));d!=null&&(g=RD(d,54).Rh(a,-1-BYd(a.Dh(),this.e),null,g))}}d==null&&this.tk()?b.mi(c,r7d):b.mi(c,d);if(a.vh()&&a.wh()){f=new d4d(a,1,this.e,i,d,this.tk()&&!h);if(!g){qvd(a,f)}else{g.nj(f);g.oj()}}else !!g&&g.oj()};_.Ek=function U8d(a,b,c){var d,e,f,g,h;h=b.li(c);g=h!=null;this.tk()&&dE(h)===dE(r7d)&&(h=null);f=null;if(h!=null){if(this.Mj()){d=RD(h,54);f=d.Th(a,BYd(d.Dh(),this.b),null,f)}else this.al()&&(f=RD(h,54).Th(a,-1-BYd(a.Dh(),this.e),null,f))}b.ni(c);if(a.vh()&&a.wh()){e=new d4d(a,this.tk()?2:1,this.e,h,null,g);if(!f){qvd(a,e)}else{f.nj(e);f.oj()}}else !!f&&f.oj()};_.Mj=function V8d(){return false};_.al=function W8d(){return false};_.bl=function X8d(){return false};_.tk=function Y8d(){return false};var m9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',410);feb(575,410,{},Z8d);_.al=function $8d(){return true};var e9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',575);feb(1359,575,{},_8d);_.bl=function a9d(){return true};var Z8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1359);feb(787,575,{},b9d);_.tk=function c9d(){return true};var _8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',787);feb(1361,787,{},d9d);_.bl=function e9d(){return true};var $8=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1361);feb(650,575,{},f9d);_.Mj=function g9d(){return true};var d9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',650);feb(1360,650,{},h9d);_.bl=function i9d(){return true};var a9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1360);feb(788,650,{},j9d);_.tk=function k9d(){return true};var c9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',788);feb(1362,788,{},l9d);_.bl=function m9d(){return true};var b9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1362);feb(651,410,{},n9d);_.bl=function o9d(){return true};var i9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',651);feb(1363,651,{},p9d);_.tk=function q9d(){return true};var f9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1363);feb(789,651,{},r9d);_.Mj=function s9d(){return true};var h9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',789);feb(1364,789,{},t9d);_.tk=function u9d(){return true};var g9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1364);feb(1357,410,{},v9d);_.tk=function w9d(){return true};var j9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1357);feb(786,410,{},x9d);_.Mj=function y9d(){return true};var l9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',786);feb(1358,786,{},z9d);_.tk=function A9d(){return true};var k9=sfb(SHe,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1358);feb(790,576,wKe,D9d);_.yl=function E9d(a){return new D9d(this.a,this.c,a)};_.md=function F9d(){return this.b};_.zl=function G9d(a,b,c){return B9d(this,a,this.b,c)};_.Al=function H9d(a,b,c){return C9d(this,a,this.b,c)};var o9=sfb(SHe,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',790);feb(1365,1,$Je,I9d);_.Fk=function J9d(a){return this.a};_.Qj=function K9d(){return ZD(this.a,97)?RD(this.a,97).Qj():!this.a.dc()};_.Wb=function L9d(a){this.a.$b();this.a.Gc(RD(a,15))};_.Gk=function M9d(){ZD(this.a,97)?RD(this.a,97).Gk():this.a.$b()};var p9=sfb(SHe,'EStructuralFeatureImpl/SettingMany',1365);feb(1366,576,wKe,N9d);_.xl=function O9d(a){return new S9d((nme(),mme),this.b.ri(this.a,a))};_.md=function P9d(){return null};_.zl=function Q9d(a,b,c){return c};_.Al=function R9d(a,b,c){return c};var q9=sfb(SHe,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1366);feb(652,576,wKe,S9d);_.xl=function T9d(a){return new S9d(this.c,a)};_.md=function U9d(){return this.a};_.zl=function V9d(a,b,c){return c};_.Al=function W9d(a,b,c){return c};var r9=sfb(SHe,'EStructuralFeatureImpl/SimpleFeatureMapEntry',652);feb(403,506,PIe,X9d);_.aj=function Y9d(a){return $C(h7,rve,29,a,0,1)};_.Yi=function Z9d(){return false};var t9=sfb(SHe,'ESuperAdapter/1',403);feb(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},_9d);_.Lh=function aae(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new iae(this,o7,this)),this.a;}return zvd(this,a-AYd((JTd(),ITd)),vYd((d=RD(Ywd(this,16),29),!d?ITd:d),a),b,c)};_.Uh=function bae(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new C5d(f7,this,0,3)),rLd(this.Ab,a,c);case 2:return !this.a&&(this.a=new iae(this,o7,this)),rLd(this.a,a,c);}return e=RD(vYd((d=RD(Ywd(this,16),29),!d?(JTd(),ITd):d),b),69),e.wk().Ak(this,Wwd(this),b-AYd((JTd(),ITd)),a,c)};_.Wh=function cae(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return Avd(this,a-AYd((JTd(),ITd)),vYd((b=RD(Ywd(this,16),29),!b?ITd:b),a))};_.bi=function dae(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);!this.Ab&&(this.Ab=new C5d(f7,this,0,3));YGd(this.Ab,RD(b,16));return;case 1:PAd(this,WD(b));return;case 2:!this.a&&(this.a=new iae(this,o7,this));sLd(this.a);!this.a&&(this.a=new iae(this,o7,this));YGd(this.a,RD(b,16));return;}Bvd(this,a-AYd((JTd(),ITd)),vYd((c=RD(Ywd(this,16),29),!c?ITd:c),a),b)};_.ii=function eae(){return JTd(),ITd};_.ki=function fae(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new C5d(f7,this,0,3));sLd(this.Ab);return;case 1:PAd(this,null);return;case 2:!this.a&&(this.a=new iae(this,o7,this));sLd(this.a);return;}Cvd(this,a-AYd((JTd(),ITd)),vYd((b=RD(Ywd(this,16),29),!b?ITd:b),a))};var z9=sfb(SHe,'ETypeParameterImpl',457);feb(458,83,oKe,iae);_.Nj=function jae(a,b){return gae(this,RD(a,89),b)};_.Oj=function kae(a,b){return hae(this,RD(a,89),b)};var v9=sfb(SHe,'ETypeParameterImpl/1',458);feb(647,45,Hxe,lae);_.ec=function mae(){return new pae(this)};var y9=sfb(SHe,'ETypeParameterImpl/2',647);feb(570,Eve,Fve,pae);_.Fc=function qae(a){return nae(this,RD(a,89))};_.Gc=function rae(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=RD(c.Pb(),89);Zjb(this.a,b,'')==null&&(d=true)}return d};_.$b=function sae(){akb(this.a)};_.Hc=function tae(a){return Ujb(this.a,a)};_.Kc=function uae(){var a;return a=new vkb((new mkb(this.a)).a),new xae(a)};_.Mc=function vae(a){return oae(this,a)};_.gc=function wae(){return bkb(this.a)};var x9=sfb(SHe,'ETypeParameterImpl/2/1',570);feb(571,1,Ave,xae);_.Nb=function yae(a){Ztb(this,a)};_.Pb=function Aae(){return RD(tkb(this.a).ld(),89)};_.Ob=function zae(){return this.a.b};_.Qb=function Bae(){ukb(this.a)};var w9=sfb(SHe,'ETypeParameterImpl/2/1/1',571);feb(1329,45,Hxe,Cae);_._b=function Dae(a){return bE(a)?Yjb(this,a):!!qtb(this.f,a)};_.xc=function Eae(a){var b,c;b=bE(a)?Xjb(this,a):Wd(qtb(this.f,a));if(ZD(b,851)){c=RD(b,851);b=c.Kk();Zjb(this,RD(a,241),b);return b}else return b!=null?b:a==null?(Gie(),Fie):null};var B9=sfb(SHe,'EValidatorRegistryImpl',1329);feb(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},Mae);_.ri=function Nae(a,b){switch(a.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:jeb(b);case 25:return Gae(b);case 27:return Hae(b);case 28:return Iae(b);case 29:return b==null?null:a2d(nAd[0],RD(b,206));case 41:return b==null?'':nfb(RD(b,297));case 42:return jeb(b);case 50:return WD(b);default:throw Adb(new agb(VHe+a.xe()+WHe));}};_.si=function Oae(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=BXd(a),m?fZd(m.vi(),a):-1)),a.G){case 0:return c=new mXd,c;case 1:return b=new pVd,b;case 2:return d=new HYd,d;case 4:return e=new k1d,e;case 5:return f=new A1d,f;case 6:return g=new R1d,g;case 7:return h=new yAd,h;case 10:return j=new kUd,j;case 11:return k=new q4d,k;case 12:return l=new EBd,l;case 13:return n=new R5d,n;case 14:return o=new d6d,o;case 17:return p=new v6d,p;case 18:return i=new s2d,i;case 19:return q=new _9d,q;default:throw Adb(new agb(ZHe+a.zb+WHe));}};_.ti=function Pae(a,b){switch(a.hk()){case 20:return b==null?null:new Bib(b);case 21:return b==null?null:new ejb(b);case 23:case 22:return b==null?null:Fae(b);case 26:case 24:return b==null?null:$eb(Oeb(b,-128,127)<<24>>24);case 25:return vAd(b);case 27:return Jae(b);case 28:return Kae(b);case 29:return Lae(b);case 32:case 31:return b==null?null:Neb(b);case 38:case 37:return b==null?null:new Ufb(b);case 40:case 39:return b==null?null:sgb(Oeb(b,qwe,lve));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Hgb(Peb(b));case 49:case 48:return b==null?null:bhb(Oeb(b,BKe,32767)<<16>>16);case 50:return b;default:throw Adb(new agb(VHe+a.xe()+WHe));}};var C9=sfb(SHe,'EcoreFactoryImpl',1349);feb(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},$ae);_.gb=false;_.hb=false;var Rae,Sae=false;var tab=sfb(SHe,'EcorePackageImpl',560);feb(1234,1,{851:1},cbe);_.Kk=function dbe(){return fke(),eke};var N9=sfb(SHe,'EcorePackageImpl/1',1234);feb(1243,1,OKe,ebe);_.fk=function fbe(a){return ZD(a,155)};_.gk=function gbe(a){return $C(p7,rve,155,a,0,1)};var D9=sfb(SHe,'EcorePackageImpl/10',1243);feb(1244,1,OKe,hbe);_.fk=function ibe(a){return ZD(a,197)};_.gk=function jbe(a){return $C(q7,rve,197,a,0,1)};var E9=sfb(SHe,'EcorePackageImpl/11',1244);feb(1245,1,OKe,kbe);_.fk=function lbe(a){return ZD(a,58)};_.gk=function mbe(a){return $C(r7,rve,58,a,0,1)};var F9=sfb(SHe,'EcorePackageImpl/12',1245);feb(1246,1,OKe,nbe);_.fk=function obe(a){return ZD(a,411)};_.gk=function pbe(a){return $C(s7,mKe,62,a,0,1)};var G9=sfb(SHe,'EcorePackageImpl/13',1246);feb(1247,1,OKe,qbe);_.fk=function rbe(a){return ZD(a,241)};_.gk=function sbe(a){return $C(t7,rve,241,a,0,1)};var H9=sfb(SHe,'EcorePackageImpl/14',1247);feb(1248,1,OKe,tbe);_.fk=function ube(a){return ZD(a,518)};_.gk=function vbe(a){return $C(u7,rve,2116,a,0,1)};var I9=sfb(SHe,'EcorePackageImpl/15',1248);feb(1249,1,OKe,wbe);_.fk=function xbe(a){return ZD(a,102)};_.gk=function ybe(a){return $C(v7,lKe,19,a,0,1)};var J9=sfb(SHe,'EcorePackageImpl/16',1249);feb(1250,1,OKe,zbe);_.fk=function Abe(a){return ZD(a,179)};_.gk=function Bbe(a){return $C(y7,lKe,179,a,0,1)};var K9=sfb(SHe,'EcorePackageImpl/17',1250);feb(1251,1,OKe,Cbe);_.fk=function Dbe(a){return ZD(a,481)};_.gk=function Ebe(a){return $C(A7,rve,481,a,0,1)};var L9=sfb(SHe,'EcorePackageImpl/18',1251);feb(1252,1,OKe,Fbe);_.fk=function Gbe(a){return ZD(a,561)};_.gk=function Hbe(a){return $C(C8,LJe,561,a,0,1)};var M9=sfb(SHe,'EcorePackageImpl/19',1252);feb(1235,1,OKe,Ibe);_.fk=function Jbe(a){return ZD(a,331)};_.gk=function Kbe(a){return $C(g7,lKe,35,a,0,1)};var Y9=sfb(SHe,'EcorePackageImpl/2',1235);feb(1253,1,OKe,Lbe);_.fk=function Mbe(a){return ZD(a,248)};_.gk=function Nbe(a){return $C(o7,sKe,89,a,0,1)};var O9=sfb(SHe,'EcorePackageImpl/20',1253);feb(1254,1,OKe,Obe);_.fk=function Pbe(a){return ZD(a,457)};_.gk=function Qbe(a){return $C(z7,rve,850,a,0,1)};var P9=sfb(SHe,'EcorePackageImpl/21',1254);feb(1255,1,OKe,Rbe);_.fk=function Sbe(a){return $D(a)};_.gk=function Tbe(a){return $C(QI,Nve,485,a,8,1)};var Q9=sfb(SHe,'EcorePackageImpl/22',1255);feb(1256,1,OKe,Ube);_.fk=function Vbe(a){return ZD(a,195)};_.gk=function Wbe(a){return $C(gE,Nve,195,a,0,2)};var R9=sfb(SHe,'EcorePackageImpl/23',1256);feb(1257,1,OKe,Xbe);_.fk=function Ybe(a){return ZD(a,222)};_.gk=function Zbe(a){return $C(RI,Nve,222,a,0,1)};var S9=sfb(SHe,'EcorePackageImpl/24',1257);feb(1258,1,OKe,$be);_.fk=function _be(a){return ZD(a,180)};_.gk=function ace(a){return $C(SI,Nve,180,a,0,1)};var T9=sfb(SHe,'EcorePackageImpl/25',1258);feb(1259,1,OKe,bce);_.fk=function cce(a){return ZD(a,206)};_.gk=function dce(a){return $C(qK,Nve,206,a,0,1)};var U9=sfb(SHe,'EcorePackageImpl/26',1259);feb(1260,1,OKe,ece);_.fk=function fce(a){return false};_.gk=function gce(a){return $C(T6,rve,2215,a,0,1)};var V9=sfb(SHe,'EcorePackageImpl/27',1260);feb(1261,1,OKe,hce);_.fk=function ice(a){return _D(a)};_.gk=function jce(a){return $C(VI,Nve,345,a,7,1)};var W9=sfb(SHe,'EcorePackageImpl/28',1261);feb(1262,1,OKe,kce);_.fk=function lce(a){return ZD(a,61)};_.gk=function mce(a){return $C(Y6,Ize,61,a,0,1)};var X9=sfb(SHe,'EcorePackageImpl/29',1262);feb(1236,1,OKe,nce);_.fk=function oce(a){return ZD(a,519)};_.gk=function pce(a){return $C(f7,{3:1,4:1,5:1,2033:1},598,a,0,1)};var hab=sfb(SHe,'EcorePackageImpl/3',1236);feb(1263,1,OKe,qce);_.fk=function rce(a){return ZD(a,582)};_.gk=function sce(a){return $C(Z6,rve,2039,a,0,1)};var Z9=sfb(SHe,'EcorePackageImpl/30',1263);feb(1264,1,OKe,tce);_.fk=function uce(a){return ZD(a,160)};_.gk=function vce(a){return $C(Tbb,Ize,160,a,0,1)};var $9=sfb(SHe,'EcorePackageImpl/31',1264);feb(1265,1,OKe,wce);_.fk=function xce(a){return ZD(a,76)};_.gk=function yce(a){return $C(Jbb,PKe,76,a,0,1)};var _9=sfb(SHe,'EcorePackageImpl/32',1265);feb(1266,1,OKe,zce);_.fk=function Ace(a){return ZD(a,161)};_.gk=function Bce(a){return $C(ZI,Nve,161,a,0,1)};var aab=sfb(SHe,'EcorePackageImpl/33',1266);feb(1267,1,OKe,Cce);_.fk=function Dce(a){return ZD(a,17)};_.gk=function Ece(a){return $C(bJ,Nve,17,a,0,1)};var bab=sfb(SHe,'EcorePackageImpl/34',1267);feb(1268,1,OKe,Fce);_.fk=function Gce(a){return ZD(a,297)};_.gk=function Hce(a){return $C(UI,rve,297,a,0,1)};var cab=sfb(SHe,'EcorePackageImpl/35',1268);feb(1269,1,OKe,Ice);_.fk=function Jce(a){return ZD(a,168)};_.gk=function Kce(a){return $C(eJ,Nve,168,a,0,1)};var dab=sfb(SHe,'EcorePackageImpl/36',1269);feb(1270,1,OKe,Lce);_.fk=function Mce(a){return ZD(a,85)};_.gk=function Nce(a){return $C(VK,rve,85,a,0,1)};var eab=sfb(SHe,'EcorePackageImpl/37',1270);feb(1271,1,OKe,Oce);_.fk=function Pce(a){return ZD(a,599)};_.gk=function Qce(a){return $C(Aab,rve,599,a,0,1)};var fab=sfb(SHe,'EcorePackageImpl/38',1271);feb(1272,1,OKe,Rce);_.fk=function Sce(a){return false};_.gk=function Tce(a){return $C(zab,rve,2216,a,0,1)};var gab=sfb(SHe,'EcorePackageImpl/39',1272);feb(1237,1,OKe,Uce);_.fk=function Vce(a){return ZD(a,90)};_.gk=function Wce(a){return $C(h7,rve,29,a,0,1)};var nab=sfb(SHe,'EcorePackageImpl/4',1237);feb(1273,1,OKe,Xce);_.fk=function Yce(a){return ZD(a,191)};_.gk=function Zce(a){return $C(lJ,Nve,191,a,0,1)};var iab=sfb(SHe,'EcorePackageImpl/40',1273);feb(1274,1,OKe,$ce);_.fk=function _ce(a){return bE(a)};_.gk=function ade(a){return $C(qJ,Nve,2,a,6,1)};var jab=sfb(SHe,'EcorePackageImpl/41',1274);feb(1275,1,OKe,bde);_.fk=function cde(a){return ZD(a,596)};_.gk=function dde(a){return $C(a7,rve,596,a,0,1)};var kab=sfb(SHe,'EcorePackageImpl/42',1275);feb(1276,1,OKe,ede);_.fk=function fde(a){return false};_.gk=function gde(a){return $C($6,Nve,2217,a,0,1)};var lab=sfb(SHe,'EcorePackageImpl/43',1276);feb(1277,1,OKe,hde);_.fk=function ide(a){return ZD(a,44)};_.gk=function jde(a){return $C(UK,Zve,44,a,0,1)};var mab=sfb(SHe,'EcorePackageImpl/44',1277);feb(1238,1,OKe,kde);_.fk=function lde(a){return ZD(a,142)};_.gk=function mde(a){return $C(i7,rve,142,a,0,1)};var oab=sfb(SHe,'EcorePackageImpl/5',1238);feb(1239,1,OKe,nde);_.fk=function ode(a){return ZD(a,156)};_.gk=function pde(a){return $C(k7,rve,156,a,0,1)};var pab=sfb(SHe,'EcorePackageImpl/6',1239);feb(1240,1,OKe,qde);_.fk=function rde(a){return ZD(a,469)};_.gk=function sde(a){return $C(m7,rve,685,a,0,1)};var qab=sfb(SHe,'EcorePackageImpl/7',1240);feb(1241,1,OKe,tde);_.fk=function ude(a){return ZD(a,582)};_.gk=function vde(a){return $C(l7,rve,694,a,0,1)};var rab=sfb(SHe,'EcorePackageImpl/8',1241);feb(1242,1,OKe,wde);_.fk=function xde(a){return ZD(a,480)};_.gk=function yde(a){return $C(n7,rve,480,a,0,1)};var sab=sfb(SHe,'EcorePackageImpl/9',1242);feb(1038,2080,JJe,Cde);_.Mi=function Dde(a,b){zde(this,RD(b,424))};_.Qi=function Ede(a,b){Ade(this,a,RD(b,424))};var vab=sfb(SHe,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1038);feb(1039,152,GJe,Fde);_.jj=function Gde(){return this.a.a};var uab=sfb(SHe,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1039);feb(1067,1066,{},Ide);var yab=sfb('org.eclipse.emf.ecore.plugin','EcorePlugin',1067);var Aab=ufb(QKe,'Resource');feb(799,1524,RKe);_.Hl=function Mde(a){};_.Il=function Nde(a){};_.El=function Ode(){return !this.a&&(this.a=new Zde(this)),this.a};_.Fl=function Pde(a){var b,c,d,e,f;d=a.length;if(d>0){BFb(0,a.length);if(a.charCodeAt(0)==47){f=new cnb(4);e=1;for(b=1;b0&&(a=(AFb(0,c,a.length),a.substr(0,c)))}}}return Kde(this,a)};_.Gl=function Qde(){return this.c};_.Ib=function Rde(){var a;return nfb(this.Rm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var Eab=sfb(SKe,'ResourceImpl',799);feb(1525,799,RKe,Sde);var Bab=sfb(SKe,'BinaryResourceImpl',1525);feb(1190,708,QIe);_.bj=function Vde(a){return ZD(a,58)?Tde(this,RD(a,58)):ZD(a,599)?new dMd(RD(a,599).El()):dE(a)===dE(this.f)?RD(a,16).Kc():(jQd(),iQd.a)};_.Ob=function Wde(){return Ude(this)};_.a=false;var Ebb=sfb(ZJe,'EcoreUtil/ContentTreeIterator',1190);feb(1526,1190,QIe,Xde);_.bj=function Yde(a){return dE(a)===dE(this.f)?RD(a,15).Kc():new _je(RD(a,58))};var Cab=sfb(SKe,'ResourceImpl/5',1526);feb(658,2092,nKe,Zde);_.Hc=function $de(a){return this.i<=4?PHd(this,a):ZD(a,54)&&RD(a,54).Jh()==this.a};_.Mi=function _de(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.Oi=function aee(a,b){a==0?this.a.b||(this.a.b=true,null):$Gd(this,a,b)};_.Qi=function bee(a,b){};_.Ri=function cee(a,b,c){};_.Lj=function dee(){return 2};_.jj=function eee(){return this.a};_.Mj=function fee(){return true};_.Nj=function gee(a,b){var c;c=RD(a,54);b=c.fi(this.a,b);return b};_.Oj=function hee(a,b){var c;c=RD(a,54);return c.fi(null,b)};_.Pj=function iee(){return false};_.Si=function jee(){return true};_.aj=function kee(a){return $C(r7,rve,58,a,0,1)};_.Yi=function lee(){return false};var Dab=sfb(SKe,'ResourceImpl/ContentsEList',658);feb(970,2062,kwe,mee);_.fd=function nee(a){return this.a.Ki(a)};_.gc=function oee(){return this.a.gc()};var Fab=sfb(ZJe,'AbstractSequentialInternalEList/1',970);var hke,ike,jke,kke;feb(634,1,{},Yee);var pee,qee;var Lab=sfb(ZJe,'BasicExtendedMetaData',634);feb(1181,1,{},afe);_.Jl=function bfe(){return null};_.Kl=function cfe(){this.a==-2&&$ee(this,uee(this.d,this.b));return this.a};_.Ll=function dfe(){return null};_.Ml=function efe(){return yob(),yob(),vob};_.xe=function ffe(){this.c==fLe&&_ee(this,zee(this.d,this.b));return this.c};_.Nl=function gfe(){return 0};_.a=-2;_.c=fLe;var Hab=sfb(ZJe,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1181);feb(1182,1,{},mfe);_.Jl=function nfe(){this.a==(ree(),pee)&&hfe(this,tee(this.f,this.b));return this.a};_.Kl=function ofe(){return 0};_.Ll=function pfe(){this.c==(ree(),pee)&&ife(this,xee(this.f,this.b));return this.c};_.Ml=function qfe(){!this.d&&jfe(this,yee(this.f,this.b));return this.d};_.xe=function rfe(){this.e==fLe&&kfe(this,zee(this.f,this.b));return this.e};_.Nl=function sfe(){this.g==-2&&lfe(this,Cee(this.f,this.b));return this.g};_.e=fLe;_.g=-2;var Iab=sfb(ZJe,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1182);feb(1180,1,{},wfe);_.b=false;_.c=false;var Jab=sfb(ZJe,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1180);feb(1183,1,{},Jfe);_.c=-2;_.e=fLe;_.f=fLe;var Kab=sfb(ZJe,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1183);feb(593,632,oKe,Kfe);_.Lj=function Lfe(){return this.c};_.ol=function Mfe(){return false};_.Wi=function Nfe(a,b){return b};_.c=0;var Yab=sfb(ZJe,'EDataTypeEList',593);var Tbb=ufb(ZJe,'FeatureMap');feb(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Uge);_.bd=function Vge(a,b){Ofe(this,a,RD(b,76))};_.Fc=function Wge(a){return Rfe(this,RD(a,76))};_.Hi=function _ge(a){Wfe(this,RD(a,76))};_.Nj=function khe(a,b){return mge(this,RD(a,76),b)};_.Oj=function lhe(a,b){return oge(this,RD(a,76),b)};_.Ti=function nhe(a,b){return uge(this,a,b)};_.Wi=function phe(a,b){return zge(this,a,RD(b,76))};_.hd=function rhe(a,b){return Cge(this,a,RD(b,76))};_.Uj=function vhe(a,b){return Ige(this,RD(a,76),b)};_.Vj=function whe(a,b){return Kge(this,RD(a,76),b)};_.Wj=function xhe(a,b,c){return Lge(this,RD(a,76),RD(b,76),c)};_.Zi=function zhe(a,b){return Tge(this,a,RD(b,76))};_.Ol=function Xge(a,b){return Qfe(this,a,b)};_.cd=function Yge(a,b){var c,d,e,f,g,h,i,j,k;j=new ZHd(b.gc());for(e=b.Kc();e.Ob();){d=RD(e.Pb(),76);f=d.Lk();if(qke(this.e,f)){(!f.Si()||!cge(this,f,d.md())&&!PHd(j,d))&&WGd(j,d)}else{k=pke(this.e.Dh(),f);c=RD(this.g,124);g=true;for(h=0;h=0){b=a[this.c];if(this.k.am(b.Lk())){this.j=this.f?b:b.md();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var Mab=sfb(ZJe,'BasicFeatureMap/FeatureEIterator',420);feb(676,420,Jve,She);_.ul=function The(){return true};var Nab=sfb(ZJe,'BasicFeatureMap/ResolvingFeatureEIterator',676);feb(968,496,uKe,Uhe);_.pj=function Vhe(){return this};var Rab=sfb(ZJe,'EContentsEList/1',968);feb(969,496,uKe,Whe);_.ul=function Xhe(){return false};var Sab=sfb(ZJe,'EContentsEList/2',969);feb(967,287,vKe,Yhe);_.wl=function Zhe(a){};_.Ob=function $he(){return false};_.Sb=function _he(){return false};var Tab=sfb(ZJe,'EContentsEList/FeatureIteratorImpl/1',967);feb(840,593,oKe,aie);_.Ni=function bie(){this.a=true};_.Qj=function cie(){return this.a};_.Gk=function die(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var Xab=sfb(ZJe,'EDataTypeEList/Unsettable',840);feb(1958,593,oKe,eie);_.Si=function fie(){return true};var $ab=sfb(ZJe,'EDataTypeUniqueEList',1958);feb(1959,840,oKe,gie);_.Si=function hie(){return true};var Zab=sfb(ZJe,'EDataTypeUniqueEList/Unsettable',1959);feb(147,83,oKe,iie);_.nl=function jie(){return true};_.Wi=function kie(a,b){return gZd(this,a,RD(b,58))};var _ab=sfb(ZJe,'EObjectContainmentEList/Resolving',147);feb(1184,555,oKe,lie);_.nl=function mie(){return true};_.Wi=function nie(a,b){return gZd(this,a,RD(b,58))};var abb=sfb(ZJe,'EObjectContainmentEList/Unsettable/Resolving',1184);feb(766,14,oKe,oie);_.Ni=function pie(){this.a=true};_.Qj=function qie(){return this.a};_.Gk=function rie(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var fbb=sfb(ZJe,'EObjectContainmentWithInverseEList/Unsettable',766);feb(1222,766,oKe,sie);_.nl=function tie(){return true};_.Wi=function uie(a,b){return gZd(this,a,RD(b,58))};var ebb=sfb(ZJe,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1222);feb(757,505,oKe,vie);_.Ni=function wie(){this.a=true};_.Qj=function xie(){return this.a};_.Gk=function yie(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var hbb=sfb(ZJe,'EObjectEList/Unsettable',757);feb(338,505,oKe,zie);_.nl=function Aie(){return true};_.Wi=function Bie(a,b){return gZd(this,a,RD(b,58))};var kbb=sfb(ZJe,'EObjectResolvingEList',338);feb(1844,757,oKe,Cie);_.nl=function Die(){return true};_.Wi=function Eie(a,b){return gZd(this,a,RD(b,58))};var jbb=sfb(ZJe,'EObjectResolvingEList/Unsettable',1844);feb(1527,1,{},Hie);var Fie;var lbb=sfb(ZJe,'EObjectValidator',1527);feb(559,505,oKe,Iie);_.il=function Jie(){return this.d};_.jl=function Kie(){return this.b};_.Mj=function Lie(){return true};_.ml=function Mie(){return true};_.b=0;var pbb=sfb(ZJe,'EObjectWithInverseEList',559);feb(1225,559,oKe,Nie);_.ll=function Oie(){return true};var mbb=sfb(ZJe,'EObjectWithInverseEList/ManyInverse',1225);feb(635,559,oKe,Pie);_.Ni=function Qie(){this.a=true};_.Qj=function Rie(){return this.a};_.Gk=function Sie(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var obb=sfb(ZJe,'EObjectWithInverseEList/Unsettable',635);feb(1224,635,oKe,Tie);_.ll=function Uie(){return true};var nbb=sfb(ZJe,'EObjectWithInverseEList/Unsettable/ManyInverse',1224);feb(767,559,oKe,Vie);_.nl=function Wie(){return true};_.Wi=function Xie(a,b){return gZd(this,a,RD(b,58))};var tbb=sfb(ZJe,'EObjectWithInverseResolvingEList',767);feb(32,767,oKe,Yie);_.ll=function Zie(){return true};var qbb=sfb(ZJe,'EObjectWithInverseResolvingEList/ManyInverse',32);feb(768,635,oKe,$ie);_.nl=function _ie(){return true};_.Wi=function aje(a,b){return gZd(this,a,RD(b,58))};var sbb=sfb(ZJe,'EObjectWithInverseResolvingEList/Unsettable',768);feb(1223,768,oKe,bje);_.ll=function cje(){return true};var rbb=sfb(ZJe,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1223);feb(1185,632,oKe);_.Li=function dje(){return (this.b&1792)==0};_.Ni=function eje(){this.b|=1};_.kl=function fje(){return (this.b&4)!=0};_.Mj=function gje(){return (this.b&40)!=0};_.ll=function hje(){return (this.b&16)!=0};_.ml=function ije(){return (this.b&8)!=0};_.nl=function jje(){return (this.b&cKe)!=0};_.al=function kje(){return (this.b&32)!=0};_.ol=function lje(){return (this.b&gwe)!=0};_.fk=function mje(a){return !this.d?this.Lk().Hk().fk(a):QRd(this.d,a)};_.Qj=function nje(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.Si=function oje(){return (this.b&128)!=0};_.Gk=function qje(){var a;sLd(this);if((this.b&2)!=0){if(Mvd(this.e)){a=(this.b&1)!=0;this.b&=-2;eZd(this,new Q3d(this.e,2,BYd(this.e.Dh(),this.Lk()),a,false))}else{this.b&=-2}}};_.Yi=function rje(){return (this.b&1536)==0};_.b=0;var vbb=sfb(ZJe,'EcoreEList/Generic',1185);feb(1186,1185,oKe,sje);_.Lk=function tje(){return this.a};var ubb=sfb(ZJe,'EcoreEList/Dynamic',1186);feb(765,66,PIe,uje);_.aj=function vje(a){return IMd(this.a.a,a)};var zbb=sfb(ZJe,'EcoreEMap/1',765);feb(764,83,oKe,wje);_.Mi=function xje(a,b){UNd(this.b,RD(b,136))};_.Oi=function yje(a,b){TNd(this.b)};_.Pi=function zje(a,b,c){var d;++(d=this.b,RD(b,136),d).e};_.Qi=function Aje(a,b){VNd(this.b,RD(b,136))};_.Ri=function Bje(a,b,c){VNd(this.b,RD(c,136));dE(c)===dE(b)&&RD(c,136).Ci(aOd(RD(b,136).ld()));UNd(this.b,RD(b,136))};var Abb=sfb(ZJe,'EcoreEMap/DelegateEObjectContainmentEList',764);feb(1220,141,_Je,Cje);var Cbb=sfb(ZJe,'EcoreEMap/Unsettable',1220);feb(1221,764,oKe,Dje);_.Ni=function Eje(){this.a=true};_.Qj=function Fje(){return this.a};_.Gk=function Gje(){var a;sLd(this);if(Mvd(this.e)){a=this.a;this.a=false;qvd(this.e,new Q3d(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var Bbb=sfb(ZJe,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1221);feb(1189,215,Hxe,Zje);_.a=false;_.b=false;var Fbb=sfb(ZJe,'EcoreUtil/Copier',1189);feb(759,1,Ave,_je);_.Nb=function ake(a){Ztb(this,a)};_.Ob=function bke(){return $je(this)};_.Pb=function cke(){var a;$je(this);a=this.b;this.b=null;return a};_.Qb=function dke(){this.a.Qb()};var Gbb=sfb(ZJe,'EcoreUtil/ProperContentIterator',759);feb(1528,1527,{},gke);var eke;var Hbb=sfb(ZJe,'EcoreValidator',1528);var mke;var Sbb=ufb(ZJe,'FeatureMapUtil/Validator');feb(1295,1,{2041:1},rke);_.am=function ske(a){return true};var Kbb=sfb(ZJe,'FeatureMapUtil/1',1295);feb(773,1,{2041:1},wke);_.am=function xke(a){var b;if(this.c==a)return true;b=TD(Wjb(this.a,a));if(b==null){if(vke(this,a)){yke(this.a,a,(Geb(),Feb));return true}else{yke(this.a,a,(Geb(),Eeb));return false}}else{return b==(Geb(),Feb)}};_.e=false;var tke;var Nbb=sfb(ZJe,'FeatureMapUtil/BasicValidator',773);feb(774,45,Hxe,zke);var Mbb=sfb(ZJe,'FeatureMapUtil/BasicValidator/Cache',774);feb(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},Eke);_.bd=function Fke(a,b){Pfe(this.c,this.b,a,b)};_.Fc=function Gke(a){return Qfe(this.c,this.b,a)};_.cd=function Hke(a,b){return Sfe(this.c,this.b,a,b)};_.Gc=function Ike(a){return Ake(this,a)};_.Gi=function Jke(a,b){Ufe(this.c,this.b,a,b)};_.Wk=function Kke(a,b){return Xfe(this.c,this.b,a,b)};_.$i=function Lke(a){return hge(this.c,this.b,a,false)};_.Ii=function Mke(){return Yfe(this.c,this.b)};_.Ji=function Nke(){return Zfe(this.c,this.b)};_.Ki=function Oke(a){return $fe(this.c,this.b,a)};_.Xk=function Pke(a,b){return Bke(this,a,b)};_.$b=function Qke(){Cke(this)};_.Hc=function Rke(a){return cge(this.c,this.b,a)};_.Ic=function Ske(a){return ege(this.c,this.b,a)};_.Xb=function Tke(a){return hge(this.c,this.b,a,true)};_.Fk=function Uke(a){return this};_.dd=function Vke(a){return jge(this.c,this.b,a)};_.dc=function Wke(){return Dke(this)};_.Qj=function Xke(){return !pge(this.c,this.b)};_.Kc=function Yke(){return qge(this.c,this.b)};_.ed=function Zke(){return sge(this.c,this.b)};_.fd=function $ke(a){return tge(this.c,this.b,a)};_.Ti=function _ke(a,b){return vge(this.c,this.b,a,b)};_.Ui=function ale(a,b){wge(this.c,this.b,a,b)};_.gd=function ble(a){return xge(this.c,this.b,a)};_.Mc=function cle(a){return yge(this.c,this.b,a)};_.hd=function dle(a,b){return Ege(this.c,this.b,a,b)};_.Wb=function ele(a){bge(this.c,this.b);Ake(this,RD(a,15))};_.gc=function fle(){return Nge(this.c,this.b)};_.Pc=function gle(){return Oge(this.c,this.b)};_.Qc=function hle(a){return Qge(this.c,this.b,a)};_.Ib=function ile(){var a,b;b=new Qhb;b.a+='[';for(a=Yfe(this.c,this.b);Bhe(a);){Nhb(b,Ghb(Dhe(a)));Bhe(a)&&(b.a+=pve,b)}b.a+=']';return b.a};_.Gk=function jle(){bge(this.c,this.b)};var Obb=sfb(ZJe,'FeatureMapUtil/FeatureEList',509);feb(644,39,GJe,lle);_.hj=function mle(a){return kle(this,a)};_.mj=function nle(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.g=a.ij();a.gj()==1&&(this.d=1);return true}break}case 3:{e=a.gj();switch(e){case 3:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.d=5;b=new ZHd(2);WGd(b,this.g);WGd(b,a.ij());this.g=b;return true}break}}break}case 5:{e=a.gj();switch(e){case 3:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){c=RD(this.g,16);c.Fc(a.ij());return true}break}}break}case 4:{e=a.gj();switch(e){case 3:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.d=1;this.g=a.ij();return true}break}case 4:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){this.d=6;h=new ZHd(2);WGd(h,this.n);WGd(h,a.kj());this.n=h;g=cD(WC(kE,1),Pwe,28,15,[this.o,a.lj()]);this.g=g;return true}break}}break}case 6:{e=a.gj();switch(e){case 4:{f=a.jj();if(dE(f)===dE(this.c)&&kle(this,null)==a.hj(null)){c=RD(this.n,16);c.Fc(a.kj());g=RD(this.g,53);d=$C(kE,Pwe,28,g.length+1,15,1);hib(g,0,d,0,g.length);d[g.length]=a.lj();this.g=d;return true}break}}break}}return false};var Pbb=sfb(ZJe,'FeatureMapUtil/FeatureENotificationImpl',644);feb(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},ole);_.Ol=function ple(a,b){return Qfe(this.c,a,b)};_.Pl=function qle(a,b,c){return Xfe(this.c,a,b,c)};_.Ql=function rle(a,b,c){return age(this.c,a,b,c)};_.Rl=function sle(){return this};_.Sl=function tle(a,b){return ige(this.c,a,b)};_.Tl=function ule(a){return RD(hge(this.c,this.b,a,false),76).Lk()};_.Ul=function vle(a){return RD(hge(this.c,this.b,a,false),76).md()};_.Vl=function wle(){return this.a};_.Wl=function xle(a){return !pge(this.c,a)};_.Xl=function yle(a,b){Fge(this.c,a,b)};_.Yl=function zle(a){return Gge(this.c,a)};_.Zl=function Ale(a){Sge(this.c,a)};var Qbb=sfb(ZJe,'FeatureMapUtil/FeatureFeatureMap',564);feb(1294,1,$Je,Ble);_.Fk=function Cle(a){return hge(this.b,this.a,-1,a)};_.Qj=function Dle(){return !pge(this.b,this.a)};_.Wb=function Ele(a){Fge(this.b,this.a,a)};_.Gk=function Fle(){bge(this.b,this.a)};var Rbb=sfb(ZJe,'FeatureMapUtil/FeatureValue',1294);var Gle,Hle,Ile,Jle,Kle;var Vbb=ufb(hLe,'AnyType');feb(680,63,swe,Mle);var Wbb=sfb(hLe,'InvalidDatatypeValueException',680);var Xbb=ufb(hLe,iLe);var Ybb=ufb(hLe,jLe);var Zbb=ufb(hLe,kLe);var Nle;var Ple;var Rle,Sle,Tle,Ule,Vle,Wle,Xle,Yle,Zle,$le,_le,ame,bme,cme,dme,eme,fme,gme,hme,ime,jme,kme,lme,mme;feb(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},ome);_.Lh=function pme(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new Uge(this,0)),this.c;return !this.c&&(this.c=new Uge(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160);return (!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Vl();case 2:if(c)return !this.b&&(this.b=new Uge(this,2)),this.b;return !this.b&&(this.b=new Uge(this,2)),this.b.b;}return zvd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Uh=function qme(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new Uge(this,0)),_fe(this.c,a,c);case 1:return (!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),71)).Xk(a,c);case 2:return !this.b&&(this.b=new Uge(this,2)),_fe(this.b,a,c);}return d=RD(vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),b),69),d.wk().Ak(this,Yvd(this),b-AYd(this.ii()),a,c)};_.Wh=function rme(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).dc();case 2:return !!this.b&&this.b.i!=0;}return Avd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function sme(a,b){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));Dge(this.c,b);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Wb(b);return;case 2:!this.b&&(this.b=new Uge(this,2));Dge(this.b,b);return;}Bvd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function tme(){return nme(),Rle};_.ki=function ume(a){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));sLd(this.c);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).$b();return;case 2:!this.b&&(this.b=new Uge(this,2));sLd(this.b);return;}Cvd(this,a-AYd(this.ii()),vYd((this.j&2)==0?this.ii():(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.Ib=function vme(){var a;if((this.j&4)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (mixed: ';Mhb(a,this.c);a.a+=', anyAttribute: ';Mhb(a,this.b);a.a+=')';return a.a};var $bb=sfb(lLe,'AnyTypeImpl',844);feb(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},yme);_.Lh=function zme(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return zvd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Wh=function Ame(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return Avd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function Bme(a,b){switch(a){case 0:wme(this,WD(b));return;case 1:xme(this,WD(b));return;}Bvd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function Cme(){return nme(),cme};_.ki=function Dme(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}Cvd(this,a-AYd((nme(),cme)),vYd((this.j&2)==0?cme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.Ib=function Eme(){var a;if((this.j&4)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (data: ';Nhb(a,this.a);a.a+=', target: ';Nhb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var _bb=sfb(lLe,'ProcessingInstructionImpl',681);feb(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},Hme);_.Lh=function Ime(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new Uge(this,0)),this.c;return !this.c&&(this.c=new Uge(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160);return (!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Vl();case 2:if(c)return !this.b&&(this.b=new Uge(this,2)),this.b;return !this.b&&(this.b=new Uge(this,2)),this.b.b;case 3:return !this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true));case 4:return Ije(this.a,(!this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true))));case 5:return this.a;}return zvd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Wh=function Jme(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true))!=null;case 4:return Ije(this.a,(!this.c&&(this.c=new Uge(this,0)),WD(ige(this.c,(nme(),fme),true))))!=null;case 5:return !!this.a;}return Avd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function Kme(a,b){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));Dge(this.c,b);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(RD(rge(this.c,(nme(),Sle)),160),220)).Wb(b);return;case 2:!this.b&&(this.b=new Uge(this,2));Dge(this.b,b);return;case 3:Gme(this,WD(b));return;case 4:Gme(this,Hje(this.a,b));return;case 5:Fme(this,RD(b,156));return;}Bvd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function Lme(){return nme(),eme};_.ki=function Mme(a){switch(a){case 0:!this.c&&(this.c=new Uge(this,0));sLd(this.c);return;case 1:(!this.c&&(this.c=new Uge(this,0)),RD(rge(this.c,(nme(),Sle)),160)).$b();return;case 2:!this.b&&(this.b=new Uge(this,2));sLd(this.b);return;case 3:!this.c&&(this.c=new Uge(this,0));Fge(this.c,(nme(),fme),null);return;case 4:Gme(this,Hje(this.a,null));return;case 5:this.a=null;return;}Cvd(this,a-AYd((nme(),eme)),vYd((this.j&2)==0?eme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};var acb=sfb(lLe,'SimpleAnyTypeImpl',682);feb(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},Nme);_.Lh=function Ome(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new Uge(this,0)),this.a;return !this.a&&(this.a=new Uge(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1)),this.b):(!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1)),dOd(this.b));case 2:return c?(!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2)),this.c):(!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2)),dOd(this.c));case 3:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),ime));case 4:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),jme));case 5:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),lme));case 6:return !this.a&&(this.a=new Uge(this,0)),rge(this.a,(nme(),mme));}return zvd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b,c)};_.Uh=function Pme(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new Uge(this,0)),_fe(this.a,a,c);case 1:return !this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1)),BVd(this.b,a,c);case 2:return !this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2)),BVd(this.c,a,c);case 5:return !this.a&&(this.a=new Uge(this,0)),Bke(rge(this.a,(nme(),lme)),a,c);}return d=RD(vYd((this.j&2)==0?(nme(),hme):(!this.k&&(this.k=new fUd),this.k).Nk(),b),69),d.wk().Ak(this,Yvd(this),b-AYd((nme(),hme)),a,c)};_.Wh=function Qme(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),ime)));case 4:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),jme)));case 5:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),lme)));case 6:return !this.a&&(this.a=new Uge(this,0)),!Dke(rge(this.a,(nme(),mme)));}return Avd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.bi=function Rme(a,b){switch(a){case 0:!this.a&&(this.a=new Uge(this,0));Dge(this.a,b);return;case 1:!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1));CVd(this.b,b);return;case 2:!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2));CVd(this.c,b);return;case 3:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),ime)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,ime),RD(b,16));return;case 4:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),jme)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,jme),RD(b,16));return;case 5:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),lme)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,lme),RD(b,16));return;case 6:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),mme)));!this.a&&(this.a=new Uge(this,0));Ake(rge(this.a,mme),RD(b,16));return;}Bvd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a),b)};_.ii=function Sme(){return nme(),hme};_.ki=function Tme(a){switch(a){case 0:!this.a&&(this.a=new Uge(this,0));sLd(this.a);return;case 1:!this.b&&(this.b=new DVd((JTd(),FTd),C8,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new DVd((JTd(),FTd),C8,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),ime)));return;case 4:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),jme)));return;case 5:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),lme)));return;case 6:!this.a&&(this.a=new Uge(this,0));Cke(rge(this.a,(nme(),mme)));return;}Cvd(this,a-AYd((nme(),hme)),vYd((this.j&2)==0?hme:(!this.k&&(this.k=new fUd),this.k).Nk(),a))};_.Ib=function Ume(){var a;if((this.j&4)!=0)return awd(this);a=new Shb(awd(this));a.a+=' (mixed: ';Mhb(a,this.a);a.a+=')';return a.a};var bcb=sfb(lLe,'XMLTypeDocumentRootImpl',683);feb(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},rne);_.ri=function sne(a,b){switch(a.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:jeb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return WD(b);case 6:return _me(RD(b,195));case 12:case 47:case 49:case 11:return tAd(this,a,b);case 13:return b==null?null:yib(RD(b,247));case 15:case 14:return b==null?null:ane(Kfb(UD(b)));case 17:return bne((nme(),b));case 18:return bne(b);case 21:case 20:return b==null?null:cne(RD(b,161).a);case 27:return dne(RD(b,195));case 30:return ene((nme(),RD(b,15)));case 31:return ene(RD(b,15));case 40:return hne((nme(),b));case 42:return fne((nme(),b));case 43:return fne(b);case 59:case 48:return gne((nme(),b));default:throw Adb(new agb(VHe+a.xe()+WHe));}};_.si=function tne(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=BXd(a),c?fZd(c.vi(),a):-1)),a.G){case 0:return b=new ome,b;case 1:return d=new yme,d;case 2:return e=new Hme,e;case 3:return f=new Nme,f;default:throw Adb(new agb(ZHe+a.zb+WHe));}};_.ti=function une(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.hk()){case 5:case 52:case 4:return b;case 6:return ine(b);case 8:case 7:return b==null?null:$me(b);case 9:return b==null?null:$eb(Oeb((d=nue(b,true),d.length>0&&(BFb(0,d.length),d.charCodeAt(0)==43)?(BFb(1,d.length+1),d.substr(1)):d),-128,127)<<24>>24);case 10:return b==null?null:$eb(Oeb((e=nue(b,true),e.length>0&&(BFb(0,e.length),e.charCodeAt(0)==43)?(BFb(1,e.length+1),e.substr(1)):e),-128,127)<<24>>24);case 11:return WD(uAd(this,(nme(),Vle),b));case 12:return WD(uAd(this,(nme(),Wle),b));case 13:return b==null?null:new Bib(nue(b,true));case 15:case 14:return jne(b);case 16:return WD(uAd(this,(nme(),Xle),b));case 17:return kne((nme(),b));case 18:return kne(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return nue(b,true);case 21:case 20:return lne(b);case 22:return WD(uAd(this,(nme(),Yle),b));case 23:return WD(uAd(this,(nme(),Zle),b));case 24:return WD(uAd(this,(nme(),$le),b));case 25:return WD(uAd(this,(nme(),_le),b));case 26:return WD(uAd(this,(nme(),ame),b));case 27:return mne(b);case 30:return nne((nme(),b));case 31:return nne(b);case 32:return b==null?null:sgb(Oeb((k=nue(b,true),k.length>0&&(BFb(0,k.length),k.charCodeAt(0)==43)?(BFb(1,k.length+1),k.substr(1)):k),qwe,lve));case 33:return b==null?null:new ejb((l=nue(b,true),l.length>0&&(BFb(0,l.length),l.charCodeAt(0)==43)?(BFb(1,l.length+1),l.substr(1)):l));case 34:return b==null?null:sgb(Oeb((m=nue(b,true),m.length>0&&(BFb(0,m.length),m.charCodeAt(0)==43)?(BFb(1,m.length+1),m.substr(1)):m),qwe,lve));case 36:return b==null?null:Hgb(Peb((n=nue(b,true),n.length>0&&(BFb(0,n.length),n.charCodeAt(0)==43)?(BFb(1,n.length+1),n.substr(1)):n)));case 37:return b==null?null:Hgb(Peb((o=nue(b,true),o.length>0&&(BFb(0,o.length),o.charCodeAt(0)==43)?(BFb(1,o.length+1),o.substr(1)):o)));case 40:return qne((nme(),b));case 42:return one((nme(),b));case 43:return one(b);case 44:return b==null?null:new ejb((p=nue(b,true),p.length>0&&(BFb(0,p.length),p.charCodeAt(0)==43)?(BFb(1,p.length+1),p.substr(1)):p));case 45:return b==null?null:new ejb((q=nue(b,true),q.length>0&&(BFb(0,q.length),q.charCodeAt(0)==43)?(BFb(1,q.length+1),q.substr(1)):q));case 46:return nue(b,false);case 47:return WD(uAd(this,(nme(),bme),b));case 59:case 48:return pne((nme(),b));case 49:return WD(uAd(this,(nme(),dme),b));case 50:return b==null?null:bhb(Oeb((r=nue(b,true),r.length>0&&(BFb(0,r.length),r.charCodeAt(0)==43)?(BFb(1,r.length+1),r.substr(1)):r),BKe,32767)<<16>>16);case 51:return b==null?null:bhb(Oeb((f=nue(b,true),f.length>0&&(BFb(0,f.length),f.charCodeAt(0)==43)?(BFb(1,f.length+1),f.substr(1)):f),BKe,32767)<<16>>16);case 53:return WD(uAd(this,(nme(),gme),b));case 55:return b==null?null:bhb(Oeb((g=nue(b,true),g.length>0&&(BFb(0,g.length),g.charCodeAt(0)==43)?(BFb(1,g.length+1),g.substr(1)):g),BKe,32767)<<16>>16);case 56:return b==null?null:bhb(Oeb((h=nue(b,true),h.length>0&&(BFb(0,h.length),h.charCodeAt(0)==43)?(BFb(1,h.length+1),h.substr(1)):h),BKe,32767)<<16>>16);case 57:return b==null?null:Hgb(Peb((i=nue(b,true),i.length>0&&(BFb(0,i.length),i.charCodeAt(0)==43)?(BFb(1,i.length+1),i.substr(1)):i)));case 58:return b==null?null:Hgb(Peb((j=nue(b,true),j.length>0&&(BFb(0,j.length),j.charCodeAt(0)==43)?(BFb(1,j.length+1),j.substr(1)):j)));case 60:return b==null?null:sgb(Oeb((c=nue(b,true),c.length>0&&(BFb(0,c.length),c.charCodeAt(0)==43)?(BFb(1,c.length+1),c.substr(1)):c),qwe,lve));case 61:return b==null?null:sgb(Oeb(nue(b,true),qwe,lve));default:throw Adb(new agb(VHe+a.xe()+WHe));}};var Vme,Wme,Xme,Yme;var ccb=sfb(lLe,'XMLTypeFactoryImpl',2028);feb(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},Bne);_.N=false;_.O=false;var wne=false;var bdb=sfb(lLe,'XMLTypePackageImpl',594);feb(1961,1,{851:1},Ene);_.Kk=function Fne(){return rue(),que};var ncb=sfb(lLe,'XMLTypePackageImpl/1',1961);feb(1970,1,OKe,Gne);_.fk=function Hne(a){return bE(a)};_.gk=function Ine(a){return $C(qJ,Nve,2,a,6,1)};var dcb=sfb(lLe,'XMLTypePackageImpl/10',1970);feb(1971,1,OKe,Jne);_.fk=function Kne(a){return bE(a)};_.gk=function Lne(a){return $C(qJ,Nve,2,a,6,1)};var ecb=sfb(lLe,'XMLTypePackageImpl/11',1971);feb(1972,1,OKe,Mne);_.fk=function Nne(a){return bE(a)};_.gk=function One(a){return $C(qJ,Nve,2,a,6,1)};var fcb=sfb(lLe,'XMLTypePackageImpl/12',1972);feb(1973,1,OKe,Pne);_.fk=function Qne(a){return _D(a)};_.gk=function Rne(a){return $C(VI,Nve,345,a,7,1)};var gcb=sfb(lLe,'XMLTypePackageImpl/13',1973);feb(1974,1,OKe,Sne);_.fk=function Tne(a){return bE(a)};_.gk=function Une(a){return $C(qJ,Nve,2,a,6,1)};var hcb=sfb(lLe,'XMLTypePackageImpl/14',1974);feb(1975,1,OKe,Vne);_.fk=function Wne(a){return ZD(a,15)};_.gk=function Xne(a){return $C(QK,Ize,15,a,0,1)};var icb=sfb(lLe,'XMLTypePackageImpl/15',1975);feb(1976,1,OKe,Yne);_.fk=function Zne(a){return ZD(a,15)};_.gk=function $ne(a){return $C(QK,Ize,15,a,0,1)};var jcb=sfb(lLe,'XMLTypePackageImpl/16',1976);feb(1977,1,OKe,_ne);_.fk=function aoe(a){return bE(a)};_.gk=function boe(a){return $C(qJ,Nve,2,a,6,1)};var kcb=sfb(lLe,'XMLTypePackageImpl/17',1977);feb(1978,1,OKe,coe);_.fk=function doe(a){return ZD(a,161)};_.gk=function eoe(a){return $C(ZI,Nve,161,a,0,1)};var lcb=sfb(lLe,'XMLTypePackageImpl/18',1978);feb(1979,1,OKe,foe);_.fk=function goe(a){return bE(a)};_.gk=function hoe(a){return $C(qJ,Nve,2,a,6,1)};var mcb=sfb(lLe,'XMLTypePackageImpl/19',1979);feb(1962,1,OKe,ioe);_.fk=function joe(a){return ZD(a,857)};_.gk=function koe(a){return $C(Vbb,rve,857,a,0,1)};var ycb=sfb(lLe,'XMLTypePackageImpl/2',1962);feb(1980,1,OKe,loe);_.fk=function moe(a){return bE(a)};_.gk=function noe(a){return $C(qJ,Nve,2,a,6,1)};var ocb=sfb(lLe,'XMLTypePackageImpl/20',1980);feb(1981,1,OKe,ooe);_.fk=function poe(a){return bE(a)};_.gk=function qoe(a){return $C(qJ,Nve,2,a,6,1)};var pcb=sfb(lLe,'XMLTypePackageImpl/21',1981);feb(1982,1,OKe,roe);_.fk=function soe(a){return bE(a)};_.gk=function toe(a){return $C(qJ,Nve,2,a,6,1)};var qcb=sfb(lLe,'XMLTypePackageImpl/22',1982);feb(1983,1,OKe,uoe);_.fk=function voe(a){return bE(a)};_.gk=function woe(a){return $C(qJ,Nve,2,a,6,1)};var rcb=sfb(lLe,'XMLTypePackageImpl/23',1983);feb(1984,1,OKe,xoe);_.fk=function yoe(a){return ZD(a,195)};_.gk=function zoe(a){return $C(gE,Nve,195,a,0,2)};var scb=sfb(lLe,'XMLTypePackageImpl/24',1984);feb(1985,1,OKe,Aoe);_.fk=function Boe(a){return bE(a)};_.gk=function Coe(a){return $C(qJ,Nve,2,a,6,1)};var tcb=sfb(lLe,'XMLTypePackageImpl/25',1985);feb(1986,1,OKe,Doe);_.fk=function Eoe(a){return bE(a)};_.gk=function Foe(a){return $C(qJ,Nve,2,a,6,1)};var ucb=sfb(lLe,'XMLTypePackageImpl/26',1986);feb(1987,1,OKe,Goe);_.fk=function Hoe(a){return ZD(a,15)};_.gk=function Ioe(a){return $C(QK,Ize,15,a,0,1)};var vcb=sfb(lLe,'XMLTypePackageImpl/27',1987);feb(1988,1,OKe,Joe);_.fk=function Koe(a){return ZD(a,15)};_.gk=function Loe(a){return $C(QK,Ize,15,a,0,1)};var wcb=sfb(lLe,'XMLTypePackageImpl/28',1988);feb(1989,1,OKe,Moe);_.fk=function Noe(a){return bE(a)};_.gk=function Ooe(a){return $C(qJ,Nve,2,a,6,1)};var xcb=sfb(lLe,'XMLTypePackageImpl/29',1989);feb(1963,1,OKe,Poe);_.fk=function Qoe(a){return ZD(a,681)};_.gk=function Roe(a){return $C(Xbb,rve,2119,a,0,1)};var Jcb=sfb(lLe,'XMLTypePackageImpl/3',1963);feb(1990,1,OKe,Soe);_.fk=function Toe(a){return ZD(a,17)};_.gk=function Uoe(a){return $C(bJ,Nve,17,a,0,1)};var zcb=sfb(lLe,'XMLTypePackageImpl/30',1990);feb(1991,1,OKe,Voe);_.fk=function Woe(a){return bE(a)};_.gk=function Xoe(a){return $C(qJ,Nve,2,a,6,1)};var Acb=sfb(lLe,'XMLTypePackageImpl/31',1991);feb(1992,1,OKe,Yoe);_.fk=function Zoe(a){return ZD(a,168)};_.gk=function $oe(a){return $C(eJ,Nve,168,a,0,1)};var Bcb=sfb(lLe,'XMLTypePackageImpl/32',1992);feb(1993,1,OKe,_oe);_.fk=function ape(a){return bE(a)};_.gk=function bpe(a){return $C(qJ,Nve,2,a,6,1)};var Ccb=sfb(lLe,'XMLTypePackageImpl/33',1993);feb(1994,1,OKe,cpe);_.fk=function dpe(a){return bE(a)};_.gk=function epe(a){return $C(qJ,Nve,2,a,6,1)};var Dcb=sfb(lLe,'XMLTypePackageImpl/34',1994);feb(1995,1,OKe,fpe);_.fk=function gpe(a){return bE(a)};_.gk=function hpe(a){return $C(qJ,Nve,2,a,6,1)};var Ecb=sfb(lLe,'XMLTypePackageImpl/35',1995);feb(1996,1,OKe,ipe);_.fk=function jpe(a){return bE(a)};_.gk=function kpe(a){return $C(qJ,Nve,2,a,6,1)};var Fcb=sfb(lLe,'XMLTypePackageImpl/36',1996);feb(1997,1,OKe,lpe);_.fk=function mpe(a){return ZD(a,15)};_.gk=function npe(a){return $C(QK,Ize,15,a,0,1)};var Gcb=sfb(lLe,'XMLTypePackageImpl/37',1997);feb(1998,1,OKe,ope);_.fk=function ppe(a){return ZD(a,15)};_.gk=function qpe(a){return $C(QK,Ize,15,a,0,1)};var Hcb=sfb(lLe,'XMLTypePackageImpl/38',1998);feb(1999,1,OKe,rpe);_.fk=function spe(a){return bE(a)};_.gk=function tpe(a){return $C(qJ,Nve,2,a,6,1)};var Icb=sfb(lLe,'XMLTypePackageImpl/39',1999);feb(1964,1,OKe,upe);_.fk=function vpe(a){return ZD(a,682)};_.gk=function wpe(a){return $C(Ybb,rve,2120,a,0,1)};var Ucb=sfb(lLe,'XMLTypePackageImpl/4',1964);feb(2000,1,OKe,xpe);_.fk=function ype(a){return bE(a)};_.gk=function zpe(a){return $C(qJ,Nve,2,a,6,1)};var Kcb=sfb(lLe,'XMLTypePackageImpl/40',2000);feb(2001,1,OKe,Ape);_.fk=function Bpe(a){return bE(a)};_.gk=function Cpe(a){return $C(qJ,Nve,2,a,6,1)};var Lcb=sfb(lLe,'XMLTypePackageImpl/41',2001);feb(2002,1,OKe,Dpe);_.fk=function Epe(a){return bE(a)};_.gk=function Fpe(a){return $C(qJ,Nve,2,a,6,1)};var Mcb=sfb(lLe,'XMLTypePackageImpl/42',2002);feb(2003,1,OKe,Gpe);_.fk=function Hpe(a){return bE(a)};_.gk=function Ipe(a){return $C(qJ,Nve,2,a,6,1)};var Ncb=sfb(lLe,'XMLTypePackageImpl/43',2003);feb(2004,1,OKe,Jpe);_.fk=function Kpe(a){return bE(a)};_.gk=function Lpe(a){return $C(qJ,Nve,2,a,6,1)};var Ocb=sfb(lLe,'XMLTypePackageImpl/44',2004);feb(2005,1,OKe,Mpe);_.fk=function Npe(a){return ZD(a,191)};_.gk=function Ope(a){return $C(lJ,Nve,191,a,0,1)};var Pcb=sfb(lLe,'XMLTypePackageImpl/45',2005);feb(2006,1,OKe,Ppe);_.fk=function Qpe(a){return bE(a)};_.gk=function Rpe(a){return $C(qJ,Nve,2,a,6,1)};var Qcb=sfb(lLe,'XMLTypePackageImpl/46',2006);feb(2007,1,OKe,Spe);_.fk=function Tpe(a){return bE(a)};_.gk=function Upe(a){return $C(qJ,Nve,2,a,6,1)};var Rcb=sfb(lLe,'XMLTypePackageImpl/47',2007);feb(2008,1,OKe,Vpe);_.fk=function Wpe(a){return bE(a)};_.gk=function Xpe(a){return $C(qJ,Nve,2,a,6,1)};var Scb=sfb(lLe,'XMLTypePackageImpl/48',2008);feb(2009,1,OKe,Ype);_.fk=function Zpe(a){return ZD(a,191)};_.gk=function $pe(a){return $C(lJ,Nve,191,a,0,1)};var Tcb=sfb(lLe,'XMLTypePackageImpl/49',2009);feb(1965,1,OKe,_pe);_.fk=function aqe(a){return ZD(a,683)};_.gk=function bqe(a){return $C(Zbb,rve,2121,a,0,1)};var Ycb=sfb(lLe,'XMLTypePackageImpl/5',1965);feb(2010,1,OKe,cqe);_.fk=function dqe(a){return ZD(a,168)};_.gk=function eqe(a){return $C(eJ,Nve,168,a,0,1)};var Vcb=sfb(lLe,'XMLTypePackageImpl/50',2010);feb(2011,1,OKe,fqe);_.fk=function gqe(a){return bE(a)};_.gk=function hqe(a){return $C(qJ,Nve,2,a,6,1)};var Wcb=sfb(lLe,'XMLTypePackageImpl/51',2011);feb(2012,1,OKe,iqe);_.fk=function jqe(a){return ZD(a,17)};_.gk=function kqe(a){return $C(bJ,Nve,17,a,0,1)};var Xcb=sfb(lLe,'XMLTypePackageImpl/52',2012);feb(1966,1,OKe,lqe);_.fk=function mqe(a){return bE(a)};_.gk=function nqe(a){return $C(qJ,Nve,2,a,6,1)};var Zcb=sfb(lLe,'XMLTypePackageImpl/6',1966);feb(1967,1,OKe,oqe);_.fk=function pqe(a){return ZD(a,195)};_.gk=function qqe(a){return $C(gE,Nve,195,a,0,2)};var $cb=sfb(lLe,'XMLTypePackageImpl/7',1967);feb(1968,1,OKe,rqe);_.fk=function sqe(a){return $D(a)};_.gk=function tqe(a){return $C(QI,Nve,485,a,8,1)};var _cb=sfb(lLe,'XMLTypePackageImpl/8',1968);feb(1969,1,OKe,uqe);_.fk=function vqe(a){return ZD(a,222)};_.gk=function wqe(a){return $C(RI,Nve,222,a,0,1)};var adb=sfb(lLe,'XMLTypePackageImpl/9',1969);var xqe,yqe;var Eqe,Fqe;var Jqe;feb(55,63,swe,Lqe);var cdb=sfb(LLe,'RegEx/ParseException',55);feb(836,1,{},Tqe);_.bm=function Uqe(a){return ac*16)throw Adb(new Lqe(TId((Hde(),tJe))));c=c*16+e}while(true);if(this.a!=125)throw Adb(new Lqe(TId((Hde(),uJe))));if(c>MLe)throw Adb(new Lqe(TId((Hde(),vJe))));a=c}else{e=0;if(this.c!=0||(e=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));c=e;Mqe(this);if(this.c!=0||(e=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));c=c*16+e;a=c}break;case 117:d=0;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;a=b;break;case 118:Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;Mqe(this);if(this.c!=0||(d=Xqe(this.a))<0)throw Adb(new Lqe(TId((Hde(),sJe))));b=b*16+d;if(b>MLe)throw Adb(new Lqe(TId((Hde(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw Adb(new Lqe(TId((Hde(),wJe))));}return a};_.dm=function Wqe(a){var b,c;switch(a){case 100:c=(this.e&32)==32?hte('Nd',true):(Vse(),Bse);break;case 68:c=(this.e&32)==32?hte('Nd',false):(Vse(),Ise);break;case 119:c=(this.e&32)==32?hte('IsWord',true):(Vse(),Rse);break;case 87:c=(this.e&32)==32?hte('IsWord',false):(Vse(),Kse);break;case 115:c=(this.e&32)==32?hte('IsSpace',true):(Vse(),Mse);break;case 83:c=(this.e&32)==32?hte('IsSpace',false):(Vse(),Jse);break;default:throw Adb(new yz((b=a,NLe+b.toString(16))));}return c};_.em=function Yqe(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;Mqe(this);b=null;if(this.c==0&&this.a==94){Mqe(this);if(a){k=(Vse(),Vse(),++Use,new xte(5))}else{b=(Vse(),Vse(),++Use,new xte(4));rte(b,0,MLe);k=(null,++Use,new xte(4))}}else{k=(Vse(),Vse(),++Use,new xte(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:ute(k,this.dm(c));d=true;break;case 105:case 73:case 99:case 67:c=this.um(k,c);c<0&&(d=true);break;case 112:case 80:l=Sqe(this,c);if(!l)throw Adb(new Lqe(TId((Hde(),hJe))));ute(k,l);d=true;break;default:c=this.cm();}}else if(m==20){g=phb(this.i,58,this.d);if(g<0)throw Adb(new Lqe(TId((Hde(),iJe))));h=true;if(ihb(this.i,this.d)==94){++this.d;h=false}f=zhb(this.i,this.d,g);i=ite(f,h,(this.e&512)==512);if(!i)throw Adb(new Lqe(TId((Hde(),kJe))));ute(k,i);d=true;if(g+1>=this.j||ihb(this.i,g+1)!=93)throw Adb(new Lqe(TId((Hde(),iJe))));this.d=g+2}Mqe(this);if(!d){if(this.c!=0||this.a!=45){rte(k,c,c)}else{Mqe(this);if((m=this.c)==1)throw Adb(new Lqe(TId((Hde(),jJe))));if(m==0&&this.a==93){rte(k,c,c);rte(k,45,45)}else{j=this.a;m==10&&(j=this.cm());Mqe(this);rte(k,c,j)}}}(this.e&gwe)==gwe&&this.c==0&&this.a==44&&Mqe(this)}if(this.c==1)throw Adb(new Lqe(TId((Hde(),jJe))));if(b){wte(b,k);k=b}vte(k);ste(k);this.b=0;Mqe(this);return k};_.fm=function Zqe(){var a,b,c,d;c=this.em(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){Mqe(this);if(this.c!=9)throw Adb(new Lqe(TId((Hde(),pJe))));b=this.em(false);if(d==4)ute(c,b);else if(a==45)wte(c,b);else if(a==38)tte(c,b);else throw Adb(new yz('ASSERT'))}else{throw Adb(new Lqe(TId((Hde(),qJe))))}}Mqe(this);return c};_.gm=function $qe(){var a,b;a=this.a-48;b=(Vse(),Vse(),++Use,new eue(12,null,a));!this.g&&(this.g=new gyb);dyb(this.g,new Bte(a));Mqe(this);return b};_.hm=function _qe(){Mqe(this);return Vse(),Nse};_.im=function are(){Mqe(this);return Vse(),Lse};_.jm=function bre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.km=function cre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.lm=function dre(){Mqe(this);return fte()};_.mm=function ere(){Mqe(this);return Vse(),Pse};_.nm=function fre(){Mqe(this);return Vse(),Sse};_.om=function gre(){var a;if(this.d>=this.j||((a=ihb(this.i,this.d++))&65504)!=64)throw Adb(new Lqe(TId((Hde(),dJe))));Mqe(this);return Vse(),Vse(),++Use,new Hte(0,a-64)};_.pm=function hre(){Mqe(this);return gte()};_.qm=function ire(){Mqe(this);return Vse(),Tse};_.rm=function jre(){var a;a=(Vse(),Vse(),++Use,new Hte(0,105));Mqe(this);return a};_.sm=function kre(){Mqe(this);return Vse(),Qse};_.tm=function lre(){Mqe(this);return Vse(),Ose};_.um=function mre(a,b){return this.cm()};_.vm=function nre(){Mqe(this);return Vse(),Gse};_.wm=function ore(){var a,b,c,d,e;if(this.d+1>=this.j)throw Adb(new Lqe(TId((Hde(),aJe))));d=-1;b=null;a=ihb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new gyb);dyb(this.g,new Bte(d));++this.d;if(ihb(this.i,this.d)!=41)throw Adb(new Lqe(TId((Hde(),ZIe))));++this.d}else{a==63&&--this.d;Mqe(this);b=Pqe(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));break;default:throw Adb(new Lqe(TId((Hde(),bJe))));}}Mqe(this);e=Qqe(this);c=null;if(e.e==2){if(e.Pm()!=2)throw Adb(new Lqe(TId((Hde(),cJe))));c=e.Lm(1);e=e.Lm(0)}if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return Vse(),Vse(),++Use,new Ute(d,b,e,c)};_.xm=function pre(){Mqe(this);return Vse(),Hse};_.ym=function qre(){var a;Mqe(this);a=_se(24,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.zm=function rre(){var a;Mqe(this);a=_se(20,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Am=function sre(){var a;Mqe(this);a=_se(22,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Bm=function tre(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw Adb(new Lqe(TId((Hde(),$Ie))));if(b==45){++this.d;while(this.d=this.j)throw Adb(new Lqe(TId((Hde(),$Ie))))}if(b==58){++this.d;Mqe(this);d=ate(Qqe(this),a,c);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this)}else if(b==41){++this.d;Mqe(this);d=ate(Qqe(this),a,c)}else throw Adb(new Lqe(TId((Hde(),_Ie))));return d};_.Cm=function ure(){var a;Mqe(this);a=_se(21,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Dm=function vre(){var a;Mqe(this);a=_se(23,Qqe(this));if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Em=function wre(){var a,b;Mqe(this);a=this.f++;b=bte(Qqe(this),a);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return b};_.Fm=function xre(){var a;Mqe(this);a=bte(Qqe(this),0);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Gm=function yre(a){Mqe(this);if(this.c==5){Mqe(this);return $se(a,(Vse(),Vse(),++Use,new Kte(9,a)))}else return $se(a,(Vse(),Vse(),++Use,new Kte(3,a)))};_.Hm=function zre(a){var b;Mqe(this);b=(Vse(),Vse(),++Use,new iue(2));if(this.c==5){Mqe(this);hue(b,(null,Ese));hue(b,a)}else{hue(b,a);hue(b,(null,Ese))}return b};_.Im=function Are(a){Mqe(this);if(this.c==5){Mqe(this);return Vse(),Vse(),++Use,new Kte(9,a)}else return Vse(),Vse(),++Use,new Kte(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var gdb=sfb(LLe,'RegEx/RegexParser',836);feb(1947,836,{},Gre);_.bm=function Hre(a){return false};_.cm=function Ire(){return Dre(this)};_.dm=function Kre(a){return Ere(a)};_.em=function Lre(a){return Fre(this)};_.fm=function Mre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.gm=function Nre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.hm=function Ore(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.im=function Pre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.jm=function Qre(){Mqe(this);return Ere(67)};_.km=function Rre(){Mqe(this);return Ere(73)};_.lm=function Sre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.mm=function Tre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.nm=function Ure(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.om=function Vre(){Mqe(this);return Ere(99)};_.pm=function Wre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.qm=function Xre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.rm=function Yre(){Mqe(this);return Ere(105)};_.sm=function Zre(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.tm=function $re(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.um=function _re(a,b){return ute(a,Ere(b)),-1};_.vm=function ase(){Mqe(this);return Vse(),Vse(),++Use,new Hte(0,94)};_.wm=function bse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.xm=function cse(){Mqe(this);return Vse(),Vse(),++Use,new Hte(0,36)};_.ym=function dse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.zm=function ese(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Am=function fse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Bm=function gse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Cm=function hse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Dm=function ise(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Em=function jse(){var a;Mqe(this);a=bte(Qqe(this),0);if(this.c!=7)throw Adb(new Lqe(TId((Hde(),ZIe))));Mqe(this);return a};_.Fm=function kse(){throw Adb(new Lqe(TId((Hde(),xJe))))};_.Gm=function lse(a){Mqe(this);return $se(a,(Vse(),Vse(),++Use,new Kte(3,a)))};_.Hm=function mse(a){var b;Mqe(this);b=(Vse(),Vse(),++Use,new iue(2));hue(b,a);hue(b,(null,Ese));return b};_.Im=function nse(a){Mqe(this);return Vse(),Vse(),++Use,new Kte(3,a)};var Bre=null,Cre=null;var ddb=sfb(LLe,'RegEx/ParserForXMLSchema',1947);feb(122,1,ZLe,Wse);_.Jm=function Xse(a){throw Adb(new yz('Not supported.'))};_.Km=function dte(){return -1};_.Lm=function ete(a){return null};_.Mm=function jte(){return null};_.Nm=function mte(a){};_.Om=function nte(a){};_.Pm=function ote(){return 0};_.Ib=function pte(){return this.Qm(0)};_.Qm=function qte(a){return this.e==11?'.':''};_.e=0;var vse,wse,xse,yse,zse,Ase=null,Bse,Cse=null,Dse,Ese,Fse=null,Gse,Hse,Ise,Jse,Kse,Lse,Mse,Nse,Ose,Pse,Qse,Rse,Sse,Tse,Use=0;var qdb=sfb(LLe,'RegEx/Token',122);feb(138,122,{3:1,138:1,122:1},xte);_.Qm=function Ate(a){var b,c,d;if(this.e==4){if(this==Dse)c='.';else if(this==Bse)c='\\d';else if(this==Rse)c='\\w';else if(this==Mse)c='\\s';else{d=new Qhb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Nhb(d,zte(this.b[b]))}else{Nhb(d,zte(this.b[b]));d.a+='-';Nhb(d,zte(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==Ise)c='\\D';else if(this==Kse)c='\\W';else if(this==Jse)c='\\S';else{d=new Qhb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Nhb(d,zte(this.b[b]))}else{Nhb(d,zte(this.b[b]));d.a+='-';Nhb(d,zte(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var edb=sfb(LLe,'RegEx/RangeToken',138);feb(592,1,{592:1},Bte);_.a=0;var fdb=sfb(LLe,'RegEx/RegexParser/ReferencePosition',592);feb(591,1,{3:1,591:1},Dte);_.Fb=function Ete(a){var b;if(a==null)return false;if(!ZD(a,591))return false;b=RD(a,591);return lhb(this.b,b.b)&&this.a==b.a};_.Hb=function Fte(){return ohb(this.b+'/'+pse(this.a))};_.Ib=function Gte(){return this.c.Qm(this.a)};_.a=0;var hdb=sfb(LLe,'RegEx/RegularExpression',591);feb(228,122,ZLe,Hte);_.Km=function Ite(){return this.a};_.Qm=function Jte(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+XD(this.a&Bwe);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=txe){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+zhb(c,c.length-6,c.length)}else d=''+XD(this.a&Bwe);}break;case 8:this==Gse||this==Hse?(d=''+XD(this.a&Bwe)):(d='\\'+XD(this.a&Bwe));break;default:d=null;}return d};_.a=0;var idb=sfb(LLe,'RegEx/Token/CharToken',228);feb(318,122,ZLe,Kte);_.Lm=function Lte(a){return this.a};_.Nm=function Mte(a){this.b=a};_.Om=function Nte(a){this.c=a};_.Pm=function Ote(){return 1};_.Qm=function Pte(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.Qm(a)+'*'}else if(this.c==this.b){b=this.a.Qm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.Qm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.Qm(a)+'{'+this.c+',}'}else throw Adb(new yz('Token#toString(): CLOSURE '+this.c+pve+this.b))}else{if(this.c<0&&this.b<0){b=this.a.Qm(a)+'*?'}else if(this.c==this.b){b=this.a.Qm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.Qm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.Qm(a)+'{'+this.c+',}?'}else throw Adb(new yz('Token#toString(): NONGREEDYCLOSURE '+this.c+pve+this.b))}return b};_.b=0;_.c=0;var jdb=sfb(LLe,'RegEx/Token/ClosureToken',318);feb(837,122,ZLe,Qte);_.Lm=function Rte(a){return a==0?this.a:this.b};_.Pm=function Ste(){return 2};_.Qm=function Tte(a){var b;this.b.e==3&&this.b.Lm(0)==this.a?(b=this.a.Qm(a)+'+'):this.b.e==9&&this.b.Lm(0)==this.a?(b=this.a.Qm(a)+'+?'):(b=this.a.Qm(a)+(''+this.b.Qm(a)));return b};var kdb=sfb(LLe,'RegEx/Token/ConcatToken',837);feb(1945,122,ZLe,Ute);_.Lm=function Vte(a){if(a==0)return this.d;if(a==1)return this.b;throw Adb(new yz('Internal Error: '+a))};_.Pm=function Wte(){return !this.b?1:2};_.Qm=function Xte(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var ldb=sfb(LLe,'RegEx/Token/ConditionToken',1945);feb(1946,122,ZLe,Yte);_.Lm=function Zte(a){return this.b};_.Pm=function $te(){return 1};_.Qm=function _te(a){return '(?'+(this.a==0?'':pse(this.a))+(this.c==0?'':pse(this.c))+':'+this.b.Qm(a)+')'};_.a=0;_.c=0;var mdb=sfb(LLe,'RegEx/Token/ModifierToken',1946);feb(838,122,ZLe,aue);_.Lm=function bue(a){return this.a};_.Pm=function cue(){return 1};_.Qm=function due(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.Qm(a)+')'):(b='('+this.a.Qm(a)+')');break;case 20:b='(?='+this.a.Qm(a)+')';break;case 21:b='(?!'+this.a.Qm(a)+')';break;case 22:b='(?<='+this.a.Qm(a)+')';break;case 23:b='(?'+this.a.Qm(a)+')';}return b};_.b=0;var ndb=sfb(LLe,'RegEx/Token/ParenToken',838);feb(530,122,{3:1,122:1,530:1},eue);_.Mm=function fue(){return this.b};_.Qm=function gue(a){return this.e==12?'\\'+this.a:tse(this.b)};_.a=0;var odb=sfb(LLe,'RegEx/Token/StringToken',530);feb(477,122,ZLe,iue);_.Jm=function jue(a){hue(this,a)};_.Lm=function kue(a){return RD(eyb(this.a,a),122)};_.Pm=function lue(){return !this.a?0:this.a.a.c.length};_.Qm=function mue(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=RD(eyb(this.a,0),122);c=RD(eyb(this.a,1),122);c.e==3&&c.Lm(0)==b?(e=b.Qm(a)+'+'):c.e==9&&c.Lm(0)==b?(e=b.Qm(a)+'+?'):(e=b.Qm(a)+(''+c.Qm(a)))}else{f=new Qhb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function Vue(){return this.b>0};_.Tb=function Xue(){return this.b};_.Vb=function Zue(){return this.b-1};_.Qb=function $ue(){throw Adb(new kib(dMe))};_.a=0;_.b=0;var udb=sfb(aMe,'ExclusiveRange/RangeIterator',258);var hE=vfb(eKe,'C');var kE=vfb(hKe,'I');var xdb=vfb(hve,'Z');var lE=vfb(iKe,'J');var gE=vfb(dKe,'B');var iE=vfb(fKe,'D');var jE=vfb(gKe,'F');var wdb=vfb(jKe,'S');var g3=ufb('org.eclipse.elk.core.labels','ILabelManager');var T6=ufb(sIe,'DiagnosticChain');var zab=ufb(QKe,'ResourceSet');var $6=sfb(sIe,'InvocationTargetException',null);var fve=(Qz(),Tz);var gwtOnLoad=gwtOnLoad=ceb;aeb(leb);deb('permProps',[[['locale','default'],[eMe,'gecko1_8']],[['locale','default'],[eMe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],3:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; +},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ +/** + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = Worker; +},{}]},{},[3])(3) +}); diff --git a/lib/main.d.ts b/lib/main.d.ts new file mode 100644 index 0000000..780a5cf --- /dev/null +++ b/lib/main.d.ts @@ -0,0 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export * from "./elk-api"; +import ElkConstructor from "./elk-api"; +export default ElkConstructor; diff --git a/lib/main.js b/lib/main.js new file mode 100644 index 0000000..f7199e8 --- /dev/null +++ b/lib/main.js @@ -0,0 +1,67 @@ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; \ No newline at end of file diff --git a/package.json b/package.json index 23da57b..5a36915 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "elkjs", - "version": "0.10.0", + "version": "0.9.3", "author": { "name": "Ulf Rüegg", "email": "uruurumail@gmail.com"